package org.etk.kernel.container.xml; import java.net.URL; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.etk.kernel.container.configuration.ConfigurationManagerImpl; import org.jibx.runtime.IMarshallingContext; /** * <mapping name="component" class="org.exoplatform.container.xml.Component" pre-get="preGet"> * <value name="key" field="key" usage="optional" /> * <value name="jmx-name" field="jmxName" usage="optional" /> * <value name="type" field="type" /> * <value name="description" field="description" usage="optional" /> * <value name="show-deploy-info" field="showDeployInfo" usage="optional" /> * <!-- threadlocal components --> * <value name="multi-instance" field="multiInstance" usage="optional"/> * * <collection name="component-plugins" field="componentPlugins" usage="optional" * item-type="org.exoplatform.container.xml.ComponentPlugin" /> * <structure map-as="org.exoplatform.container.xml.InitParams" usage="optional" * get-method="getInitParams" set-method="setInitParams"/> * </mapping> * * @author thanh_vucong * */ public class Component { final URL documentURL; String key; String type; String jmxName; String description; ArrayList plugins; private ArrayList<ComponentPlugin> componentPlugins; ArrayList listeners; InitParams initParams; boolean showDeployInfo = false; boolean multiInstance = false; public Component() { documentURL = ConfigurationManagerImpl.getCurrentURL(); } public URL getDocumentURL() { return documentURL; } public String getKey() { return key; } public void setKey(String s) { this.key = s; } public String getJMXName() { return jmxName; } public void setJMXName(String s) { jmxName = s; } public String getType() { return type; } public void setType(String s) { type = s; } public String getDescription() { return description; } public void setDescription(String s) { description = s; } public List getPlugins() { return plugins; } public void setPlugins(ArrayList list) { plugins = list; } public List<ComponentPlugin> getComponentPlugins() { return componentPlugins; } public void setComponentPlugins(ArrayList<ComponentPlugin> list) { if (list != null) { // Sort the list of component plugins first Collections.sort(list); } componentPlugins = list; } public List getListeners() { return listeners; } public void setListeners(ArrayList list) { listeners = list; } public InitParams getInitParams() { return initParams; } public void setInitParams(InitParams ips) { initParams = ips; } /** * Configuration value for show information for debugging. * @return TRUE/FALSE Debug or NOT. */ public boolean getShowDeployInfo() { return showDeployInfo; } public void setShowDeployInfo(boolean b) { showDeployInfo = b; } public boolean isMultiInstance() { return multiInstance; } public void setMultiInstance(boolean b) { multiInstance = b; } public void preGet(IMarshallingContext ictx) { ConfigurationMarshallerUtil.addURLToContent(documentURL, ictx); } }