Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Anchor
top
top

In This Section

Table of Contents
maxLevel2

 

The services to the Content API are provided through the Session. The Session can be obtained through the SessionManager. Access to the SessionManager is realized by using the dependency injection mechanism as provided by the XperienCentral framework. To implement the dependency injection, two steps need to be performed:

  1. Add a dependency on the SessionManager in the Activator
  2. Add a private property and public setter in the implementation

 

...

In This Topic

Table of Contents
maxLevel2


...

Component Dependency


Panel
borderColor#0081C0
titleColor#0081C0

The following applies to XperienCentral versions R44 and higher.


Use the method getComponentDependency() to create component dependencies in an Activator:


Code Block
themeEclipse
/**
 * Returns a new ComponentDependency instance for the given service class and required flag.
 *
 * @param serviceClass the service class
 * @param required     whether the dependency is required
 * @return the ComponentDependency instance
 *
 * @since 10.43.0
 */
public ComponentDependency getComponentDependency(final Class<?> serviceClass, final boolean required) {
    ComponentDependencyImpl serviceDependency = new ComponentDependencyImpl();
    serviceDependency.setServiceName(serviceClass.getName());
    serviceDependency.setRequired(required);
    return serviceDependency;
} 


Panel
borderColor#0081C0
titleColor#0081C0

The following applies to XperienCentral versions R43 and lower.

Add a Dependency on the SessionManager in the Activator

To add a dependency on the SessionManager add the following lines to the component definition that is present in the activator.java:

 


Code Block
themeEclipse
ComponentDependencyImpl sessionManagerDependency = new ComponentDependencyImpl();
sessionManagerDependency.setServiceName(SessionManager.class.getName());
sessionManagerDependency.setRequired(true);
myComponentDefinition.setDependencies(new ComponentDependency[] {
sessionManagerDependency});

...

Note

The property setDependencies is usually set for the component with an empty array. Be sure to remove the empty occurrence of that property.

...


Back to Toptop

 

 


...

Add the Private Property and Public Setter

The dependency injection mechanism of the XperienCentral framework will inject an instance of the SessionManager into components that depends on the SessionManager. The only thing the implementation class (e.g. myServiceImpl.java) needs to have is a private member with a SessionManager class:

 


Code Block
themeEclipse
private SessionManager mySessionManager;

 


For Elements, Panels and MediaItems, a public setter is also necessary: 


Code Block
themeEclipse
public void setSessionManager(SessionManager sessionManager) {
	mySessionManager = sessionManager;
}

...


This method is called by the OSGi framework each time an instance of, for example, an element is created. The OSGi framework looks for a method that starts with "set" and that has one parameter of the class that is being depended on (in the example SessionManager).

 

 

 

 

 

 

 


 Back to top