Package nl.gx.webmanager.wcb.foundation
Class ComponentBundleImpl
- java.lang.Object
-
- nl.gx.webmanager.wcb.foundation.ComponentBundleImpl
-
- All Implemented Interfaces:
ComponentBundle
public final class ComponentBundleImpl extends Object implements ComponentBundle
Implementation of a GX WebManager component bundle providing registration and management of the components the WCB provides.
-
-
Constructor Summary
Constructors Constructor Description ComponentBundleImpl(ComponentBundleDefinition bundleDefinition, org.apache.felix.dm.DependencyManager dependencyManager)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
componentTypeAdded(org.osgi.framework.ServiceReference serviceReference, Object service)
Call-back method for the dependency manager.void
componentTypeRemoved(org.osgi.framework.ServiceReference serviceReference, Object service)
Call-back method for the dependency manager.void
deleteExcludedBundleResources(String srcFileNamePrefix, String destFileNamePrefix, String baseDirectory)
Deletes all files not in the given jar source (srcFileNamePrefix) from the given destFileNamePrefix.void
deleteFileFromDisk(File file)
Deletes file from disk.void
destroy()
Callback from dependency manager.String
formatFileName(String fileName)
Ensures that the given fileName is a system path; System specifiek direcory indicators.String
getBaseDirectory()
Returns the base directory where all backend files are located.org.osgi.framework.BundleContext
getBundleContext()
Gets the bundle context.ComponentBundleDefinition
getBundleDefinition()
org.apache.felix.dm.DependencyManager
getDependencyManager()
Gets the dependency manager.List<String>
getRegisteredComponentIds()
Returns all component ids registered by the ComponentBundle.org.osgi.framework.Version
getVersion()
The technical version of a ComponentBundle is read from the Manifest.String
getWebrootDirectory()
Returns the base directory where all static files are located.String
getWorkDirectory()
path of a working directory which can be used by this component bundle to store temporary or non-temporary files.void
init()
Callback from dependency manager.boolean
isLicensed(ComponentDefinition componentDefinition)
Returns if a valid license is installed for the given component definitionvoid
start()
Checks if the component bundle's components are registered, if not, it registers the components.void
stop()
Deactivates all component bundle's components.String
substringAfter(String str, String separator)
Returns the substring of str after the seperator.void
writeComponentBundleResourcesToFile(String srcFileNamePrefix, String destFileNamePrefix, String baseDirectory)
Deploys all files from the given jar source (srcFileNamePrefix)to the given destFileNamePrefix.
-
-
-
Constructor Detail
-
ComponentBundleImpl
public ComponentBundleImpl(ComponentBundleDefinition bundleDefinition, org.apache.felix.dm.DependencyManager dependencyManager)
Constructor.- Parameters:
bundleDefinition
- bundleDefinition for this bundledependencyManager
- dependencyManager for this bundle
-
-
Method Detail
-
init
public void init()
Callback from dependency manager.
-
destroy
public void destroy()
Callback from dependency manager.
-
start
public void start() throws Exception
Description copied from interface:ComponentBundle
Checks if the component bundle's components are registered, if not, it registers the components. Then checks if the components are installed, if not, it installs the components. Finally activates all components.- Specified by:
start
in interfaceComponentBundle
- Throws:
Exception
- when starting of ComponentBundle was not successful.
-
stop
public void stop()
Description copied from interface:ComponentBundle
Deactivates all component bundle's components.- Specified by:
stop
in interfaceComponentBundle
-
componentTypeAdded
public void componentTypeAdded(org.osgi.framework.ServiceReference serviceReference, Object service)
Call-back method for the dependency manager. The Component Bundle has a non-required service dependency on Component Types with this call-back method. In case of a Component Type being added make sure that all components this bundle exposes that are of the added component type are checked, and if not made a service of yet create a service and register to the dependency manager.- Parameters:
serviceReference
- Reference to the added component type service and its meta data.service
- The actual component type service.
-
componentTypeRemoved
public void componentTypeRemoved(org.osgi.framework.ServiceReference serviceReference, Object service)
Call-back method for the dependency manager. A call occurs whenever a component type service is not active anymore. The dependency manager makes sure any component services that are of the type of component that is being removed is made inactive.- Parameters:
serviceReference
- Reference to the added component type service and its meta data.service
- The actual component type service.
-
getBundleDefinition
public ComponentBundleDefinition getBundleDefinition()
- Specified by:
getBundleDefinition
in interfaceComponentBundle
- Returns:
-
getVersion
public org.osgi.framework.Version getVersion()
Description copied from interface:ComponentBundle
The technical version of a ComponentBundle is read from the Manifest.- Specified by:
getVersion
in interfaceComponentBundle
- Returns:
- the technical version, or null if not defined properly in the Manifest
-
getBundleContext
public org.osgi.framework.BundleContext getBundleContext()
Gets the bundle context.- Specified by:
getBundleContext
in interfaceComponentBundle
- Returns:
- bundle context
-
getDependencyManager
public org.apache.felix.dm.DependencyManager getDependencyManager()
Gets the dependency manager.- Returns:
- dependency manager.
-
isLicensed
public boolean isLicensed(ComponentDefinition componentDefinition)
Description copied from interface:ComponentBundle
Returns if a valid license is installed for the given component definition- Specified by:
isLicensed
in interfaceComponentBundle
- Parameters:
componentDefinition
- Component definition to check the license for- Returns:
true
if a valid license is installed for the component definition or the component definition is not licensed,false
otherwise
-
getBaseDirectory
public String getBaseDirectory()
Description copied from interface:ComponentBundle
Returns the base directory where all backend files are located.- Specified by:
getBaseDirectory
in interfaceComponentBundle
- Returns:
- the base directory where all backend files are located
-
getWebrootDirectory
public String getWebrootDirectory()
Description copied from interface:ComponentBundle
Returns the base directory where all static files are located.- Specified by:
getWebrootDirectory
in interfaceComponentBundle
- Returns:
- the base directory where all static files are located
-
getWorkDirectory
public String getWorkDirectory()
path of a working directory which can be used by this component bundle to store temporary or non-temporary files. This work directory is intended to be used only by master, never by slaves. For this reason this method will return null when retrieved from a slave.- Specified by:
getWorkDirectory
in interfaceComponentBundle
- Returns:
- Full path to a local working directory when this method is invoked from the master, null if this method is invoked from a slave or if the directory could not be created.
-
getRegisteredComponentIds
public List<String> getRegisteredComponentIds()
Description copied from interface:ComponentBundle
Returns all component ids registered by the ComponentBundle.- Specified by:
getRegisteredComponentIds
in interfaceComponentBundle
- Returns:
- all component ids registered by the ComponentBundle
-
deleteFileFromDisk
public void deleteFileFromDisk(File file)
Description copied from interface:ComponentBundle
Deletes file from disk.- Specified by:
deleteFileFromDisk
in interfaceComponentBundle
- Parameters:
file
- File to delete
-
writeComponentBundleResourcesToFile
public void writeComponentBundleResourcesToFile(String srcFileNamePrefix, String destFileNamePrefix, String baseDirectory)
Description copied from interface:ComponentBundle
Deploys all files from the given jar source (srcFileNamePrefix)to the given destFileNamePrefix.- Specified by:
writeComponentBundleResourcesToFile
in interfaceComponentBundle
- Parameters:
srcFileNamePrefix
- prefix for the srcFileNames location in the jar f.e. editpresentation/destFileNamePrefix
- destination path can hold bundle specific names f.e./WEB-INF/wm/jsp/edit/wcb/{bundle_id}/
baseDirectory
- base directory for the destination path
-
formatFileName
public String formatFileName(String fileName)
Description copied from interface:ComponentBundle
Ensures that the given fileName is a system path; System specifiek direcory indicators.- Specified by:
formatFileName
in interfaceComponentBundle
- Parameters:
fileName
- Original file name- Returns:
- fileName File name formatted using the correct directory separators
-
substringAfter
public String substringAfter(String str, String separator)
Description copied from interface:ComponentBundle
Returns the substring of str after the seperator.- Specified by:
substringAfter
in interfaceComponentBundle
- Parameters:
str
- input Stringseparator
- seperator string- Returns:
- substring after seperator, "" if seperator not exists
-
deleteExcludedBundleResources
public void deleteExcludedBundleResources(String srcFileNamePrefix, String destFileNamePrefix, String baseDirectory)
Description copied from interface:ComponentBundle
Deletes all files not in the given jar source (srcFileNamePrefix) from the given destFileNamePrefix.- Specified by:
deleteExcludedBundleResources
in interfaceComponentBundle
- Parameters:
srcFileNamePrefix
- prefix for the srcFileNames location in the jar f.e. editpresentation/destFileNamePrefix
- destination path can hold bundle specific names f.e./WEB-INF/wm/jsp/edit/wcb/{bundle_id}/
baseDirectory
- base directory for the destination path
-
-