[exo-jcr-commits] exo-jcr SVN: r2351 - in kernel/trunk/exo.kernel.container/src: main/java/org/exoplatform/container/configuration and 9 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu May 6 07:53:10 EDT 2010
Author: nfilotto
Date: 2010-05-06 07:53:08 -0400 (Thu, 06 May 2010)
New Revision: 2351
Added:
kernel/trunk/exo.kernel.container/src/main/resources/org/exoplatform/container/configuration/kernel-configuration_1_2.xsd
kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/configuration/TestXSD_1_2.java
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-01.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-02.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-03.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-04.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-05.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-06.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-07.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-08.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-09.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-10.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-11.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-12.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-13.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-14.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-15.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-16.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-17.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-18.xml
kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-19.xml
Modified:
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ConfigurationUnmarshaller.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/Namespaces.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/NoKernelNamespaceSAXFilter.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ProfileDOMFilter.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/util/ContainerUtil.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/xml/Configuration.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/xml/ContainerLifecyclePlugin.java
kernel/trunk/exo.kernel.container/src/main/resources/binding.xml
kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestExoContainer.java
kernel/trunk/exo.kernel.container/src/test/resources/org/exoplatform/container/test-exo-container.xml
Log:
EXOJCR-714: Fix for the issues defined in the description
1. We use know the type as key to register a plugin instead of plugin.getClass().getName() that always returns "org.exoplatform.container.xml.ContainerLifecyclePlugin"
2. All the methods are called now (i.e. initContainer, startContainer, stopContainer and destroyContainer)
3. You can now use a non empty constructor to inject InitParams and/or ConfigurationManager if needed
4. The InitParams are injected thanks to the constructor
5. We can define a name and a description within the configuration file. A new schema version has been created for it 1.2.
6. The execution order is defined thanks to the priority that we can set in the configuration file
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java 2010-05-05 10:06:50 UTC (rev 2350)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java 2010-05-06 11:53:08 UTC (rev 2351)
@@ -113,39 +113,101 @@
return context;
}
+ /**
+ * @return the name of the plugin if it is not empty, the FQN of the plugin otherwise
+ */
+ private static String getPluginName(ContainerLifecyclePlugin plugin)
+ {
+ String name = plugin.getName();
+ if (name == null || name.length() == 0)
+ {
+ name = plugin.getClass().getName();
+ }
+ return name;
+ }
+
public void initContainer() throws Exception
{
ConfigurationManager manager = (ConfigurationManager)getComponentInstanceOfType(ConfigurationManager.class);
ContainerUtil.addContainerLifecyclePlugin(this, manager);
ContainerUtil.addComponentLifecyclePlugin(this, manager);
+ ContainerUtil.addComponents(this, manager);
for (ContainerLifecyclePlugin plugin : containerLifecyclePlugin_)
{
- plugin.initContainer(this);
+ try
+ {
+ plugin.initContainer(this);
+ }
+ catch (Exception e)
+ {
+ log.warn("An error occurs with the ContainerLifecyclePlugin '" + getPluginName(plugin) + "'", e);
+ }
}
- ContainerUtil.addComponents(this, manager);
}
- public void startContainer() throws Exception
+ @Override
+ public void dispose()
{
+ destroyContainer();
+ super.dispose();
+ }
+
+ @Override
+ public void start()
+ {
+ super.start();
+ startContainer();
+ }
+
+ @Override
+ public void stop()
+ {
+ stopContainer();
+ super.stop();
+ }
+
+ public void startContainer()
+ {
for (ContainerLifecyclePlugin plugin : containerLifecyclePlugin_)
{
- plugin.startContainer(this);
+ try
+ {
+ plugin.startContainer(this);
+ }
+ catch (Exception e)
+ {
+ log.warn("An error occurs with the ContainerLifecyclePlugin '" + getPluginName(plugin) + "'", e);
+ }
}
}
- public void stopContainer() throws Exception
+ public void stopContainer()
{
for (ContainerLifecyclePlugin plugin : containerLifecyclePlugin_)
{
- plugin.stopContainer(this);
+ try
+ {
+ plugin.stopContainer(this);
+ }
+ catch (Exception e)
+ {
+ log.warn("An error occurs with the ContainerLifecyclePlugin '" + getPluginName(plugin) + "'", e);
+ }
}
}
- public void destroyContainer() throws Exception
+ public void destroyContainer()
{
for (ContainerLifecyclePlugin plugin : containerLifecyclePlugin_)
{
- plugin.destroyContainer(this);
+ try
+ {
+ plugin.destroyContainer(this);
+ }
+ catch (Exception e)
+ {
+ log.warn("An error occurs with the ContainerLifecyclePlugin '" + getPluginName(plugin) + "'", e);
+ }
}
}
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ConfigurationUnmarshaller.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ConfigurationUnmarshaller.java 2010-05-05 10:06:50 UTC (rev 2350)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ConfigurationUnmarshaller.java 2010-05-06 11:53:08 UTC (rev 2351)
@@ -62,6 +62,11 @@
private static final Log log = ExoLogger.getLogger("exo.kernel.container.ConfigurationUnmarshaller");
+ /**
+ * A private copy of the list of kernel namespaces
+ */
+ private static final String[] KERNEL_NAMESPACES = Namespaces.getKernelNamespaces();
+
private class Reporter implements ErrorHandler
{
@@ -135,10 +140,9 @@
public boolean isValid(URL url) throws NullPointerException, IOException
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- String[] schemas = {Namespaces.KERNEL_1_0_URI, Namespaces.KERNEL_1_1_URI};
factory
.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
- factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaSource", schemas);
+ factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaSource", KERNEL_NAMESPACES);
factory.setNamespaceAware(true);
factory.setValidating(true);
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/Namespaces.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/Namespaces.java 2010-05-05 10:06:50 UTC (rev 2350)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/Namespaces.java 2010-05-06 11:53:08 UTC (rev 2351)
@@ -20,8 +20,11 @@
import org.xml.sax.EntityResolver;
+import java.util.Collections;
import java.util.HashMap;
+import java.util.LinkedHashSet;
import java.util.Map;
+import java.util.Set;
/**
* @author <a href="mailto:julien.viet at exoplatform.com">Julien Viet</a>
@@ -37,6 +40,23 @@
public static final String KERNEL_1_1_URI = "http://www.exoplaform.org/xml/ns/kernel_1_1.xsd";
/** . */
+ public static final String KERNEL_1_2_URI = "http://www.exoplaform.org/xml/ns/kernel_1_2.xsd";
+
+ /**
+ * All the namespaces related to the kernel
+ */
+ public static final Set<String> KERNEL_NAMESPACES_SET;
+
+ static
+ {
+ Set<String> tmp = new LinkedHashSet<String>();
+ tmp.add(KERNEL_1_0_URI);
+ tmp.add(KERNEL_1_1_URI);
+ tmp.add(KERNEL_1_2_URI);
+ KERNEL_NAMESPACES_SET = Collections.unmodifiableSet(tmp);
+ }
+
+ /** . */
static final EntityResolver resolver;
static
@@ -44,6 +64,25 @@
Map<String, String> resourceMap = new HashMap<String, String>();
resourceMap.put(KERNEL_1_0_URI, "org/exoplatform/container/configuration/kernel-configuration_1_0.xsd");
resourceMap.put(KERNEL_1_1_URI, "org/exoplatform/container/configuration/kernel-configuration_1_1.xsd");
+ resourceMap.put(KERNEL_1_2_URI, "org/exoplatform/container/configuration/kernel-configuration_1_2.xsd");
resolver = new EntityResolverImpl(Namespaces.class.getClassLoader(), resourceMap);
}
+
+ /**
+ * @return A safe copy of the list of kernel namespaces
+ */
+ public static String[] getKernelNamespaces()
+ {
+ return new String[]{KERNEL_1_0_URI, KERNEL_1_1_URI, KERNEL_1_2_URI};
+ }
+
+ /**
+ * Indicates whether the given uri is a kernel namespace or not
+ * @param uri the uri to check
+ * @return <code>true</code> if it is a kernel namespace, <code>false</code> otherwise.
+ */
+ public static boolean isKernelNamespace(String uri)
+ {
+ return KERNEL_NAMESPACES_SET.contains(uri);
+ }
}
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/NoKernelNamespaceSAXFilter.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/NoKernelNamespaceSAXFilter.java 2010-05-05 10:06:50 UTC (rev 2350)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/NoKernelNamespaceSAXFilter.java 2010-05-06 11:53:08 UTC (rev 2351)
@@ -18,9 +18,6 @@
*/
package org.exoplatform.container.configuration;
-import static org.exoplatform.container.configuration.Namespaces.KERNEL_1_0_URI;
-import static org.exoplatform.container.configuration.Namespaces.KERNEL_1_1_URI;
-
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.xml.sax.Attributes;
@@ -78,7 +75,7 @@
public void startPrefixMapping(String prefix, String uri) throws SAXException
{
- if (KERNEL_1_0_URI.equals(uri) || KERNEL_1_1_URI.equals(uri) || XSI_URI.equals(uri))
+ if (Namespaces.isKernelNamespace(uri) || XSI_URI.equals(uri))
{
blackListedPrefixes.add(prefix);
if (log.isTraceEnabled())
@@ -140,7 +137,7 @@
log.trace("Skipping XSI " + attQName + " attribute");
continue;
}
- else if (KERNEL_1_0_URI.equals(attURI) || KERNEL_1_1_URI.equals(attURI))
+ else if (Namespaces.isKernelNamespace(attURI))
{
if (log.isTraceEnabled())
log.trace("Requalifying prefixed attribute " + attQName + " attribute to " + localName);
@@ -154,7 +151,7 @@
}
//
- if (KERNEL_1_0_URI.equals(uri) || KERNEL_1_1_URI.equals(uri))
+ if (Namespaces.isKernelNamespace(uri))
{
if (log.isTraceEnabled())
log.trace("Requalifying active profile " + qName + " start element to " + localName);
@@ -168,7 +165,7 @@
public void endElement(String uri, String localName, String qName) throws SAXException
{
- if (KERNEL_1_0_URI.equals(uri) || KERNEL_1_1_URI.equals(uri))
+ if (Namespaces.isKernelNamespace(uri))
{
if (log.isTraceEnabled())
log.trace("Requalifying " + qName + " end element");
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ProfileDOMFilter.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ProfileDOMFilter.java 2010-05-05 10:06:50 UTC (rev 2350)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ProfileDOMFilter.java 2010-05-06 11:53:08 UTC (rev 2351)
@@ -27,9 +27,9 @@
import java.util.ArrayList;
import java.util.Collections;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
-import static org.exoplatform.container.configuration.Namespaces.*;
/**
* Filters a kernel DOM according to a list of active profiles.
@@ -44,10 +44,17 @@
private static final String PROFILE_ATTRIBUTE = "profiles";
/** . */
- private static final Set<String> kernelURIs = Tools.set(KERNEL_1_0_URI, KERNEL_1_1_URI);
+ private static final Set<String> kernelURIs = Namespaces.KERNEL_NAMESPACES_SET;
/** . */
- private static final Set<String> kernelWithProfileURIs = Tools.set(KERNEL_1_1_URI);
+ private static final Set<String> kernelWithProfileURIs;
+ static
+ {
+ // All the kernel namespaces but KERNEL_1_0_URI
+ Set<String> tmp = new LinkedHashSet<String>(Namespaces.KERNEL_NAMESPACES_SET);
+ tmp.remove(Namespaces.KERNEL_1_0_URI);
+ kernelWithProfileURIs = Collections.unmodifiableSet(tmp);
+ }
/** . */
private final Set<String> activeProfiles;
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/util/ContainerUtil.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/util/ContainerUtil.java 2010-05-05 10:06:50 UTC (rev 2350)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/util/ContainerUtil.java 2010-05-06 11:53:08 UTC (rev 2351)
@@ -34,11 +34,14 @@
import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.net.URL;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -46,6 +49,7 @@
* @since Oct 28, 2004
* @version $Id: ContainerUtil.java 9894 2006-10-31 02:52:41Z tuan08 $
*/
+ at SuppressWarnings("unchecked")
public class ContainerUtil
{
/** The logger. */
@@ -86,7 +90,7 @@
// in the class path. It cause the configuration run twice
int index1 = key.lastIndexOf("exo-");
int index2 = key.lastIndexOf("exo.");
- int index = index1 < index2 ? index2 : index1;
+ int index = index1 < index2 ? index2 : index1;
if (index >= 0)
key = key.substring(index);
map.put(key, url);
@@ -102,24 +106,49 @@
static public void addContainerLifecyclePlugin(ExoContainer container, ConfigurationManager conf)
{
- Collection plugins = conf.getConfiguration().getContainerLifecyclePlugins();
+ List plugins = new ArrayList(conf.getConfiguration().getContainerLifecyclePlugins());
+ Collections.sort(plugins, COMPARATOR_CONTAINER_PLUGIN);
Iterator i = plugins.iterator();
- ClassLoader loader = Thread.currentThread().getContextClassLoader();
while (i.hasNext())
{
ContainerLifecyclePlugin plugin = (ContainerLifecyclePlugin)i.next();
- try
+ addContainerLifecyclePlugin(container, plugin);
+ }
+ }
+
+ private static final Comparator<org.exoplatform.container.xml.ContainerLifecyclePlugin> COMPARATOR_CONTAINER_PLUGIN =
+ new Comparator<org.exoplatform.container.xml.ContainerLifecyclePlugin>()
+ {
+
+ public int compare(org.exoplatform.container.xml.ContainerLifecyclePlugin o1,
+ org.exoplatform.container.xml.ContainerLifecyclePlugin o2)
{
- Class classType = loader.loadClass(plugin.getType());
- org.exoplatform.container.ContainerLifecyclePlugin instance =
- (org.exoplatform.container.ContainerLifecyclePlugin)classType.newInstance();
- container.addContainerLifecylePlugin(instance);
+ return getPriority(o1) - getPriority(o2);
}
- catch (Exception ex)
+
+ private int getPriority(org.exoplatform.container.xml.ContainerLifecyclePlugin p)
{
- ex.printStackTrace();
+ return p.getPriority() == null ? 0 : Integer.parseInt(p.getPriority());
}
+
+ };
+
+ private static void addContainerLifecyclePlugin(ExoContainer container, ContainerLifecyclePlugin plugin)
+ {
+ try
+ {
+ Class clazz = Class.forName(plugin.getType());
+ org.exoplatform.container.ContainerLifecyclePlugin cplugin =
+ (org.exoplatform.container.ContainerLifecyclePlugin)container
+ .createComponent(clazz, plugin.getInitParams());
+ cplugin.setName(plugin.getName());
+ cplugin.setDescription(plugin.getDescription());
+ container.addContainerLifecylePlugin(cplugin);
}
+ catch (Exception ex)
+ {
+ log.error("Failed to instanciate plugin " + plugin.getType() + ": " + ex.getMessage(), ex);
+ }
}
static public void addComponentLifecyclePlugin(ExoContainer container, ConfigurationManager conf)
@@ -139,7 +168,7 @@
}
catch (Exception ex)
{
- ex.printStackTrace();
+ log.error("Failed to instanciate plugin " + plugin.getType() + ": " + ex.getMessage(), ex);
}
}
}
@@ -166,7 +195,7 @@
if (component.isMultiInstance())
{
container.registerComponent(new ConstructorInjectionComponentAdapter(classType, classType));
- System.out.println("===>>> Thread local component " + classType.getName() + " registered.");
+ log.debug("===>>> Thread local component " + classType.getName() + " registered.");
}
else
{
@@ -181,7 +210,7 @@
if (component.isMultiInstance())
{
container.registerComponent(new ConstructorInjectionComponentAdapter(keyType, classType));
- System.out.println("===>>> Thread local component " + classType.getName() + " registered.");
+ log.debug("===>>> Thread local component " + classType.getName() + " registered.");
}
else
{
@@ -196,11 +225,11 @@
}
catch (ClassNotFoundException ex)
{
- ex.printStackTrace();
+ log.error("Cannot register the component corresponding to key = '" + key + "' and type = '" + type + "'", ex);
}
}
}
-
+
/**
* Loads the properties file corresponding to the given url
* @param url the url of the properties file
@@ -210,7 +239,7 @@
{
return loadProperties(url, true);
}
-
+
/**
* Loads the properties file corresponding to the given url
* @param url the url of the properties file
@@ -237,7 +266,7 @@
String fileName = url.getFile();
if (Tools.endsWithIgnoreCase(path, ".properties"))
{
- if (log.isDebugEnabled())
+ if (log.isDebugEnabled())
log.debug("Attempt to load property file " + path);
props = PropertiesLoader.load(in);
}
@@ -254,7 +283,7 @@
if (props != null && resolveVariables)
{
// Those properties are used for variables resolution
- final Map<String, Object> currentProps = new HashMap<String, Object>();
+ final Map<String, Object> currentProps = new HashMap<String, Object>();
for (Map.Entry<String, String> entry : props.entrySet())
{
String propertyName = entry.getKey();
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/xml/Configuration.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/xml/Configuration.java 2010-05-05 10:06:50 UTC (rev 2350)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/xml/Configuration.java 2010-05-06 11:53:08 UTC (rev 2351)
@@ -60,7 +60,7 @@
public void addContainerLifecyclePlugin(Object object)
{
ContainerLifecyclePlugin plugin = (ContainerLifecyclePlugin)object;
- String key = plugin.getClass().getName();
+ String key = plugin.getType();
containerLifecyclePlugin_.put(key, plugin);
}
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/xml/ContainerLifecyclePlugin.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/xml/ContainerLifecyclePlugin.java 2010-05-05 10:06:50 UTC (rev 2350)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/xml/ContainerLifecyclePlugin.java 2010-05-06 11:53:08 UTC (rev 2351)
@@ -24,10 +24,26 @@
*/
public class ContainerLifecyclePlugin
{
+ private String name;
+
private String type;
+
+ private String description;
+
+ private String priority;
private InitParams initParams;
+
+ public String getName()
+ {
+ return name;
+ }
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
public String getType()
{
return type;
@@ -38,6 +54,26 @@
this.type = type;
}
+ public String getDescription()
+ {
+ return description;
+ }
+
+ public void setDescription(String desc)
+ {
+ this.description = desc;
+ }
+
+ public String getPriority()
+ {
+ return priority;
+ }
+
+ public void setPriority(String priority)
+ {
+ this.priority = priority;
+ }
+
public InitParams getInitParams()
{
return initParams;
Modified: kernel/trunk/exo.kernel.container/src/main/resources/binding.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/resources/binding.xml 2010-05-05 10:06:50 UTC (rev 2350)
+++ kernel/trunk/exo.kernel.container/src/main/resources/binding.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -153,7 +153,10 @@
</mapping>
<mapping name="container-lifecycle-plugin" class="org.exoplatform.container.xml.ContainerLifecyclePlugin">
+ <value name="name" field="name" usage="optional" />
<value name="type" field="type" />
+ <value name="description" field="description" usage="optional" />
+ <value name="priority" field="priority" usage="optional" />
<structure map-as="org.exoplatform.container.xml.InitParams" usage="optional"
get-method="getInitParams" set-method="setInitParams"/>
</mapping>
Added: kernel/trunk/exo.kernel.container/src/main/resources/org/exoplatform/container/configuration/kernel-configuration_1_2.xsd
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/resources/org/exoplatform/container/configuration/kernel-configuration_1_2.xsd (rev 0)
+++ kernel/trunk/exo.kernel.container/src/main/resources/org/exoplatform/container/configuration/kernel-configuration_1_2.xsd 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema
+ targetNamespace="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified"
+ version="1.0">
+
+ <xsd:element name="configuration" type="configurationType"/>
+
+ <xsd:complexType abstract="true" name="profilesdElementType">
+ <xsd:attribute name="profiles" type="xsd:string"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="baseObjectType">
+ <xsd:choice>
+ <xsd:element name="string" type="xsd:string"/>
+ <xsd:element name="int" type="xsd:int"/>
+ <xsd:element name="long" type="xsd:long"/>
+ <xsd:element name="boolean" type="xsd:boolean"/>
+ <xsd:element name="date" type="xsd:date"/>
+ <xsd:element name="double" type="xsd:double"/>
+ <xsd:element name="map" type="mapType"/>
+ <xsd:element name="collection" type="collectionType"/>
+ <xsd:element name="native-array" type="nativeArraytype"/>
+ <xsd:element name="object" type="objectType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="entryType">
+ <xsd:sequence>
+ <xsd:element name="key" type="baseObjectType" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="value" type="baseObjectType" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="mapType">
+ <xsd:sequence>
+ <xsd:element name="entry" type="entryType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="type" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="collectionType">
+ <xsd:sequence>
+ <xsd:element name="value" minOccurs="0" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="baseObjectType">
+ <xsd:attribute name="profiles" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="type" type="xsd:string" use="required"/>
+ <xsd:attribute name="item-type" type="xsd:string"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="nativeArraytype">
+ <xsd:complexContent>
+ <xsd:extension base="baseObjectType">
+ <xsd:sequence>
+ <xsd:element name="type" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="array" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="fieldType">
+ <xsd:complexContent >
+ <xsd:extension base="baseObjectType">
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="objectType">
+ <xsd:sequence>
+ <xsd:element name="field" minOccurs="0" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="fieldType">
+ <xsd:attribute name="profiles" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="type" type="xsd:string"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="propertyType">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="value" type="xsd:string"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="paramType" abstract="true">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="profiles" type="xsd:string"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="valueParamType">
+ <xsd:complexContent>
+ <xsd:extension base="paramType">
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="valuesParamType">
+ <xsd:complexContent>
+ <xsd:extension base="paramType">
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="propertiesParamType">
+ <xsd:complexContent>
+ <xsd:extension base="paramType">
+ <xsd:sequence>
+ <xsd:element name="property" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="objectParamType">
+ <xsd:complexContent>
+ <xsd:extension base="paramType">
+ <xsd:sequence>
+ <xsd:element name="object" type="objectType" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="initParamsType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="object-param" type="objectParamType"/>
+ <xsd:element name="properties-param" type="propertiesParamType"/>
+ <xsd:element name="value-param" type="valueParamType"/>
+ <xsd:element name="values-param" type="valuesParamType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="componentPluginType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="set-method" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="type" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="priority" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="init-params" type="initParamsType" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="profiles" type="xsd:string"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="externalComponentPluginType">
+ <xsd:sequence>
+ <xsd:element name="target-component" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="component-plugin" type="componentPluginType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="containerLifecyclePluginType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="type" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="priority" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="init-params" type="initParamsType" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="manageableComponentsType">
+ <xsd:sequence>
+ <xsd:element name="component-type" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="componentLifecyclePluginType">
+ <xsd:sequence>
+ <xsd:element name="type" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="manageable-components" type="manageableComponentsType" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="init-params" type="initParamsType" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="componentType">
+ <xsd:sequence>
+ <xsd:element name="key" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="jmx-name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="type" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="show-deploy-info" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="multi-instance" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="component-plugins" minOccurs="0" maxOccurs="1">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="component-plugin" type="componentPluginType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="init-params" type="initParamsType" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="profiles" type="xsd:string"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="configurationType">
+ <xsd:sequence>
+ <xsd:element name="container-lifecycle-plugin" type="containerLifecyclePluginType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="component-lifecycle-plugin" type="componentLifecyclePluginType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="component" type="componentType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="external-component-plugins" type="externalComponentPluginType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="import" type="importType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="remove-configuration" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="importType">
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="profiles" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+</xsd:schema>
\ No newline at end of file
Modified: kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestExoContainer.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestExoContainer.java 2010-05-05 10:06:50 UTC (rev 2350)
+++ kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestExoContainer.java 2010-05-06 11:53:08 UTC (rev 2351)
@@ -19,6 +19,7 @@
import org.exoplatform.container.component.BaseComponentPlugin;
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.container.jmx.AbstractTestContainer;
+import org.exoplatform.container.xml.InitParams;
import org.picocontainer.ComponentAdapter;
import org.picocontainer.PicoContainer;
import org.picocontainer.PicoInitializationException;
@@ -41,6 +42,25 @@
public class TestExoContainer extends AbstractTestContainer
{
+ public void testContainerLifecyclePlugin()
+ {
+ final RootContainer container = createRootContainer("test-exo-container.xml");
+ MyCounter counter = (MyCounter)container.getComponentInstanceOfType(MyCounter.class);
+ assertNotNull(counter);
+ assertEquals(2, counter.init.size());
+ assertEquals(2, counter.start.size());
+ container.stop();
+ assertEquals(2, counter.stop.size());
+ container.dispose();
+ assertEquals(2, counter.destroy.size());
+ // Check order
+ assertTrue(counter.init.get(0) instanceof MyContainerLifecyclePlugin2);
+ MyContainerLifecyclePlugin2 plugin = (MyContainerLifecyclePlugin2)counter.init.get(0);
+ assertNotNull(plugin.getName());
+ assertNotNull(plugin.getDescription());
+ assertNotNull(plugin.param);
+ }
+
public void testStackOverFlow()
{
final RootContainer container = createRootContainer("test-exo-container.xml");
@@ -224,4 +244,87 @@
this.myClass_ = myClass;
}
}
+
+ public static class MyCounter
+ {
+ public final List<BaseContainerLifecyclePlugin> init = new ArrayList<BaseContainerLifecyclePlugin>();
+ public final List<BaseContainerLifecyclePlugin> start = new ArrayList<BaseContainerLifecyclePlugin>();
+ public final List<BaseContainerLifecyclePlugin> stop = new ArrayList<BaseContainerLifecyclePlugin>();
+ public final List<BaseContainerLifecyclePlugin> destroy = new ArrayList<BaseContainerLifecyclePlugin>();
+ }
+
+ public static class MyContainerLifecyclePlugin1 extends BaseContainerLifecyclePlugin
+ {
+
+ public MyContainerLifecyclePlugin1()
+ {
+ }
+
+ @Override
+ public void destroyContainer(ExoContainer container) throws Exception
+ {
+ MyCounter counter = (MyCounter)container.getComponentInstanceOfType(MyCounter.class);
+ if (counter != null) counter.destroy.add(this);
+ }
+
+ @Override
+ public void initContainer(ExoContainer container) throws Exception
+ {
+ MyCounter counter = (MyCounter)container.getComponentInstanceOfType(MyCounter.class);
+ if (counter != null) counter.init.add(this);
+ }
+
+ @Override
+ public void startContainer(ExoContainer container) throws Exception
+ {
+ MyCounter counter = (MyCounter)container.getComponentInstanceOfType(MyCounter.class);
+ if (counter != null) counter.start.add(this);
+ }
+
+ @Override
+ public void stopContainer(ExoContainer container) throws Exception
+ {
+ MyCounter counter = (MyCounter)container.getComponentInstanceOfType(MyCounter.class);
+ if (counter != null) counter.stop.add(this);
+ }
+
+ }
+
+ public static class MyContainerLifecyclePlugin2 extends BaseContainerLifecyclePlugin
+ {
+ public final String param;
+
+ public MyContainerLifecyclePlugin2(InitParams params)
+ {
+ this.param = params != null ? params.getValueParam("param").getValue() : null;
+ }
+
+ @Override
+ public void destroyContainer(ExoContainer container) throws Exception
+ {
+ MyCounter counter = (MyCounter)container.getComponentInstanceOfType(MyCounter.class);
+ if (counter != null) counter.destroy.add(this);
+ }
+
+ @Override
+ public void initContainer(ExoContainer container) throws Exception
+ {
+ MyCounter counter = (MyCounter)container.getComponentInstanceOfType(MyCounter.class);
+ if (counter != null) counter.init.add(this);
+ }
+
+ @Override
+ public void startContainer(ExoContainer container) throws Exception
+ {
+ MyCounter counter = (MyCounter)container.getComponentInstanceOfType(MyCounter.class);
+ if (counter != null) counter.start.add(this);
+ }
+
+ @Override
+ public void stopContainer(ExoContainer container) throws Exception
+ {
+ MyCounter counter = (MyCounter)container.getComponentInstanceOfType(MyCounter.class);
+ if (counter != null) counter.stop.add(this);
+ }
+ }
}
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/configuration/TestXSD_1_2.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/configuration/TestXSD_1_2.java (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/configuration/TestXSD_1_2.java 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2009 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.exoplatform.container.configuration;
+
+import org.exoplatform.test.BasicTestCase;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+/**
+ * @author <a href="mailto:nicolas.filotto at exoplatform.com">Nicolas Filotto</a>
+ * @version $Revision$
+ */
+public class TestXSD_1_2 extends BasicTestCase
+{
+
+ public void testValidation() throws Exception
+ {
+ ConfigurationUnmarshaller unmarshaller = new ConfigurationUnmarshaller();
+ String baseDirPath = System.getProperty("basedir");
+ File baseDir = new File(baseDirPath + "/src/test/resources/xsd_1_2");
+ int count = 0;
+ for (File f : baseDir.listFiles(new FileFilter()
+ {
+ public boolean accept(File pathname)
+ {
+ return pathname.getName().endsWith(".xml");
+ }
+ }))
+ {
+ count++;
+ try
+ {
+ URL url = f.toURI().toURL();
+ assertTrue("XML configuration file " + url + " is not valid", unmarshaller.isValid(url));
+ }
+ catch (MalformedURLException e)
+ {
+ fail("Was not expecting such exception " + e.getMessage());
+ }
+ }
+ assertEquals(19, count);
+ }
+}
\ No newline at end of file
Modified: kernel/trunk/exo.kernel.container/src/test/resources/org/exoplatform/container/test-exo-container.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/org/exoplatform/container/test-exo-container.xml 2010-05-05 10:06:50 UTC (rev 2350)
+++ kernel/trunk/exo.kernel.container/src/test/resources/org/exoplatform/container/test-exo-container.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -7,9 +7,28 @@
Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this software; if not,
write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
-<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd http://www.exoplaform.org/xml/ns/kernel_1_1.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd">
+<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+ <container-lifecycle-plugin>
+ <type>org.exoplatform.container.TestExoContainer$MyContainerLifecyclePlugin1</type>
+ </container-lifecycle-plugin>
+ <container-lifecycle-plugin>
+ <name>MyContainerLifecyclePlugin2</name>
+ <type>org.exoplatform.container.TestExoContainer$MyContainerLifecyclePlugin2</type>
+ <description>The description of the plugin</description>
+ <priority>-10</priority>
+ <init-params>
+ <value-param>
+ <name>param</name>
+ <description>a test parameter</description>
+ <value>value</value>
+ </value-param>
+ </init-params>
+ </container-lifecycle-plugin>
<component>
+ <type>org.exoplatform.container.TestExoContainer$MyCounter</type>
+ </component>
+ <component>
<type>org.exoplatform.container.TestExoContainer$MyMTClass</type>
</component>
<component>
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-01.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-01.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-01.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <key>org.exoplatform.portal.config.DataStorage</key>
+ <type>org.exoplatform.portal.config.jcr.DataStorageImpl</type>
+ </component>
+
+ <component>
+ <key>org.exoplatform.portal.application.UserGadgetStorage</key>
+ <type>org.exoplatform.portal.application.jcr.UserGadgetStorageImpl</type>
+ </component>
+
+ <component>
+ <key>org.exoplatform.portal.layout.PortalLayoutService</key>
+ <type>org.exoplatform.portal.layout.jcr.PortalLayoutServiceImpl</type>
+ <init-params>
+ <value-param>
+ <name>template.location</name>
+ <description>Location of container templates</description>
+ <value>war:/conf/portal/template/containers</value>
+ </value-param>
+ </init-params>
+ </component>
+
+ <component>
+ <key>org.exoplatform.portal.config.UserACL</key>
+ <type>org.exoplatform.portal.config.UserACL</type>
+ <init-params>
+ <value-param>
+ <name>super.user</name>
+ <description>administrator</description>
+ <value>root</value>
+ </value-param>
+
+ <value-param>
+ <name>portal.creator.groups</name>
+ <description>groups with membership type have permission to manage portal</description>
+ <value>*:/platform/administrators,*:/organization/management/executive-board</value>
+ </value-param>
+
+ <value-param>
+ <name>navigation.creator.membership.type</name>
+ <description>specific membership type have full permission with group navigation</description>
+ <value>manager</value>
+ </value-param>
+ <value-param>
+ <name>guests.group</name>
+ <description>guests group</description>
+ <value>/platform/guests</value>
+ </value-param>
+ <value-param>
+ <name>access.control.workspace</name>
+ <description>groups with memberships that have the right to access the User Control Workspace</description>
+ <value>*:/platform/administrators,*:/organization/management/executive-board</value>
+ </value-param>
+ </init-params>
+ </component>
+
+ <component>
+ <key>org.exoplatform.portal.config.UserPortalConfigService</key>
+ <type>org.exoplatform.portal.config.UserPortalConfigService</type>
+ <component-plugins>
+ <component-plugin>
+ <name>new.portal.config.user.listener</name>
+ <set-method>initListener</set-method>
+ <type>org.exoplatform.portal.config.NewPortalConfigListener</type>
+ <description>this listener init the portal configuration</description>
+ <init-params>
+ <value-param>
+ <name>default.portal</name>
+ <description>The default portal for checking db is empty or not</description>
+ <value>classic</value>
+ </value-param>
+ <object-param>
+ <name>portal.configuration</name>
+ <description>description</description>
+ <object type="org.exoplatform.portal.config.NewPortalConfig">
+ <field name="predefinedOwner">
+ <collection type="java.util.HashSet">
+ <value><string>classic</string></value>
+ </collection>
+ </field>
+ <field name="ownerType"><string>portal</string></field>
+ <field name="templateLocation"><string>war:/conf/portal</string></field>
+ </object>
+ </object-param>
+ <object-param>
+ <name>group.configuration</name>
+ <description>description</description>
+ <object type="org.exoplatform.portal.config.NewPortalConfig">
+ <field name="predefinedOwner">
+ <collection type="java.util.HashSet">
+ <value><string>platform/administrators</string></value>
+ <value><string>platform/users</string></value>
+ <value><string>platform/guests</string></value>
+ <value><string>organization/management/executive-board</string></value>
+ </collection>
+ </field>
+ <field name="ownerType"><string>group</string></field>
+ <field name="templateLocation"><string>war:/conf/portal</string></field>
+ </object>
+ </object-param>
+ <object-param>
+ <name>user.configuration</name>
+ <description>description</description>
+ <object type="org.exoplatform.portal.config.NewPortalConfig">
+ <field name="predefinedOwner">
+ <collection type="java.util.HashSet">
+ <value><string>root</string></value>
+ <value><string>john</string></value>
+ <value><string>marry</string></value>
+ <value><string>demo</string></value>
+ </collection>
+ </field>
+ <field name="ownerType"><string>user</string></field>
+ <field name="templateLocation"><string>war:/conf/portal</string></field>
+ </object>
+ </object-param>
+ <object-param>
+ <name>page.templates</name>
+ <description>List of page templates</description>
+ <object type="org.exoplatform.portal.config.PageTemplateConfig">
+ <field name="templates">
+ <collection type="java.util.ArrayList"></collection>
+ </field>
+ <field name="location"><string>war:/conf/portal/template/pages</string></field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin>
+ </component-plugins>
+
+ </component>
+
+ <external-component-plugins>
+ <target-component>org.exoplatform.services.organization.OrganizationService</target-component>
+
+ <component-plugin>
+ <name>user.portal.config.listener</name>
+ <set-method>addListenerPlugin</set-method>
+ <type>org.exoplatform.portal.config.UserPortalConfigListener</type>
+ </component-plugin>
+
+ <component-plugin>
+ <name>group.portal.config.listener</name>
+ <set-method>addListenerPlugin</set-method>
+ <type>org.exoplatform.portal.config.GroupPortalConfigListener</type>
+ </component-plugin>
+
+ <component-plugin>
+ <name>ecm.new.user.event.listener</name>
+ <set-method>addListenerPlugin</set-method>
+ <type>org.exoplatform.services.jcr.ext.hierarchy.impl.NewUserListener</type>
+ <description>description</description>
+ <init-params>
+ <object-param>
+ <name>configuration</name>
+ <description>description</description>
+ <object type="org.exoplatform.services.jcr.ext.hierarchy.impl.HierarchyConfig">
+ <field name="repository"><string>repository</string></field>
+ <field name="workspaces">
+ <collection type="java.util.ArrayList">
+ <value><string>collaboration</string></value>
+ </collection>
+ </field>
+ <field name="jcrPaths">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.services.jcr.ext.hierarchy.impl.HierarchyConfig$JcrPath">
+ <field name="alias"><string>userApplicationData</string></field>
+ <field name="path"><string>ApplicationData</string></field>
+ <field name="nodeType"><string>nt:unstructured</string></field>
+ <field name="permissions">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.services.jcr.ext.hierarchy.impl.HierarchyConfig$Permission">
+ <field name="identity"><string>*:/platform/administrators</string></field>
+ <field name="read"><string>true</string></field>
+ <field name="addNode"><string>true</string></field>
+ <field name="setProperty"><string>true</string></field>
+ <field name="remove"><string>true</string></field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ <field name="mixinTypes">
+ <collection type="java.util.ArrayList">
+ </collection>
+ </field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin>
+ </external-component-plugins>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-02.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-02.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-02.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <key>org.exoplatform.application.gadget.GadgetRegistryService</key>
+ <type>org.exoplatform.application.gadget.jcr.GadgetRegistryServiceImpl</type>
+ </component>
+
+ <component>
+ <key>org.exoplatform.application.gadget.SourceStorage</key>
+ <type>org.exoplatform.application.gadget.jcr.SourceStorageImpl</type>
+ <init-params>
+ <properties-param>
+ <name>location</name>
+ <description>The location store source of gadgets</description>
+ <property name="repository" value="repository"></property>
+ <property name="workspace" value="gadgets"></property>
+ <property name="store.path" value="/"></property>
+ </properties-param>
+ </init-params>
+ </component>
+
+ <component>
+ <key>org.exoplatform.application.registry.ApplicationRegistryService</key>
+ <type>org.exoplatform.application.registry.jcr.ApplicationRegistryServiceImpl</type>
+ <component-plugins>
+ <component-plugin>
+ <name>new.portal.portlets.registry</name>
+ <set-method>initListener</set-method>
+ <type>org.exoplatform.application.registry.ApplicationCategoriesPlugins</type>
+ <description>this listener init the portlets are registered in PortletRegister</description>
+ <init-params>
+ <object-param>
+ <name>administration</name>
+ <description>description</description>
+ <object type="org.exoplatform.application.registry.ApplicationCategory">
+ <field name="name"><string>administration</string></field>
+ <field name="displayName"><string>Administration</string></field>
+ <field name="description"><string>application for administration</string></field>
+ <field name="accessPermissions">
+ <collection type="java.util.ArrayList" item-type="java.lang.String">
+ <value><string>*:/platform/administrators</string></value>
+ <value><string>*:/organization/management/executive-board</string></value>
+ </collection>
+ </field>
+ <field name="applications">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.application.registry.Application">
+ <field name="applicationName"><string>ApplicationRegistryPortlet</string></field>
+ <field name="categoryName"><string>administration</string></field>
+ <field name="displayName"><string>Application Registry</string></field>
+ <field name="description"><string>Application Registry</string></field>
+ <field name="applicationType"><string>portlet</string></field>
+ <field name="applicationGroup"><string>exoadmin</string></field>
+ <field name="accessPermissions">
+ <collection type="java.util.ArrayList" item-type="java.lang.String">
+ <value><string>*:/platform/administrators</string></value>
+ <value><string>*:/organization/management/executive-board</string></value>
+ </collection>
+ </field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.application.registry.Application">
+ <field name="applicationName"><string>OrganizationPortlet</string></field>
+ <field name="categoryName"><string>administration</string></field>
+ <field name="displayName"><string>Organization Management</string></field>
+ <field name="description"><string>Organization Management</string></field>
+ <field name="applicationType"><string>portlet</string></field>
+ <field name="applicationGroup"><string>exoadmin</string></field>
+ <field name="accessPermissions">
+ <collection type="java.util.ArrayList" item-type="java.lang.String">
+ <value><string>*:/platform/administrators</string></value>
+ <value><string>*:/organization/management/executive-board</string></value>
+ </collection>
+ </field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.application.registry.Application">
+ <field name="applicationName"><string>AccountPortlet</string></field>
+ <field name="categoryName"><string>administration</string></field>
+ <field name="displayName"><string>New Account</string></field>
+ <field name="description"><string>New Account</string></field>
+ <field name="applicationType"><string>portlet</string></field>
+ <field name="applicationGroup"><string>exoadmin</string></field>
+ <field name="accessPermissions">
+ <collection type="java.util.ArrayList" item-type="java.lang.String">
+ <value><string>*:/platform/administrators</string></value>
+ <value><string>*:/organization/management/executive-board</string></value>
+ </collection>
+ </field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ </object>
+ </object-param>
+
+ <object-param>
+ <name>web</name>
+ <description>description</description>
+ <object type="org.exoplatform.application.registry.ApplicationCategory">
+ <field name="name"><string>web</string></field>
+ <field name="displayName"><string>web</string></field>
+ <field name="description"><string>BasicPortlets</string></field>
+ <field name="accessPermissions">
+ <collection type="java.util.ArrayList" item-type="java.lang.String">
+ <value><string>*:/platform/users</string></value>
+ </collection>
+ </field>
+ <field name="applications">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.application.registry.Application">
+ <field name="categoryName"><string>web</string></field>
+ <field name="applicationName"><string>IFramePortlet</string></field>
+ <field name="displayName"><string>IFrame</string></field>
+ <field name="description"><string>IFrame</string></field>
+ <field name="applicationType"><string>portlet</string></field>
+ <field name="applicationGroup"><string>web</string></field>
+ <field name="accessPermissions">
+ <collection type="java.util.ArrayList" item-type="java.lang.String">
+ <value><string>*:/platform/users</string></value>
+ </collection>
+ </field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.application.registry.Application">
+ <field name="categoryName"><string>web</string></field>
+ <field name="applicationName"><string>SiteMapPortlet</string></field>
+ <field name="displayName"><string>SiteMap</string></field>
+ <field name="description"><string>SiteMap</string></field>
+ <field name="applicationType"><string>portlet</string></field>
+ <field name="applicationGroup"><string>web</string></field>
+ <field name="accessPermissions">
+ <collection type="java.util.ArrayList" item-type="java.lang.String">
+ <value><string>*:/platform/users</string></value>
+ </collection>
+ </field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.application.registry.Application">
+ <field name="categoryName"><string>web</string></field>
+ <field name="applicationName"><string>BrowserPortlet</string></field>
+ <field name="displayName"><string>Web Explorer</string></field>
+ <field name="description"><string>Web Explorer</string></field>
+ <field name="applicationType"><string>portlet</string></field>
+ <field name="applicationGroup"><string>web</string></field>
+ <field name="accessPermissions">
+ <collection type="java.util.ArrayList" item-type="java.lang.String">
+ <value><string>*:/platform/users</string></value>
+ </collection>
+ </field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ </object>
+ </object-param>
+
+ <object-param>
+ <name>dashboard</name>
+ <description>description</description>
+ <object type="org.exoplatform.application.registry.ApplicationCategory">
+ <field name="name"><string>dashboard</string></field>
+ <field name="displayName"><string>Dashboard</string></field>
+ <field name="description"><string>Dashboard</string></field>
+ <field name="accessPermissions">
+ <collection type="java.util.ArrayList" item-type="java.lang.String">
+ <value><string>*:/platform/users</string></value>
+ </collection>
+ </field>
+ <field name="applications">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.application.registry.Application">
+ <field name="categoryName"><string>dashboard</string></field>
+ <field name="applicationName"><string>DashboardPortlet</string></field>
+ <field name="displayName"><string>Dashboard Portlet</string></field>
+ <field name="description"><string>Dashboard Portlet</string></field>
+ <field name="applicationType"><string>portlet</string></field>
+ <field name="applicationGroup"><string>dashboard</string></field>
+ <field name="accessPermissions">
+ <collection type="java.util.ArrayList" item-type="java.lang.String">
+ <value><string>*:/platform/users</string></value>
+ </collection>
+ </field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.application.registry.Application">
+ <field name="categoryName"><string>dashboard</string></field>
+ <field name="applicationName"><string>GadgetPortlet</string></field>
+ <field name="displayName"><string>Gadget Wrapper Portlet</string></field>
+ <field name="description"><string>Gadget Wrapper Portlet</string></field>
+ <field name="applicationType"><string>portlet</string></field>
+ <field name="applicationGroup"><string>dashboard</string></field>
+ <field name="accessPermissions">
+ <collection type="java.util.ArrayList" item-type="java.lang.String">
+ <value><string>*:/platform/users</string></value>
+ </collection>
+ </field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin>
+ </component-plugins>
+ </component>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-03.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-03.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-03.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <external-component-plugins>
+ <target-component>org.exoplatform.services.organization.OrganizationService</target-component>
+ <component-plugin>
+ <name>init.service.listener</name>
+ <set-method>addListenerPlugin</set-method>
+ <type>org.exoplatform.services.organization.OrganizationDatabaseInitializer</type>
+ <description>this listener populate organization data for the first launch</description>
+ <init-params>
+ <value-param>
+ <name>checkDatabaseAlgorithm</name>
+ <description>check database</description>
+ <value>entry</value>
+ </value-param>
+ <value-param>
+ <name>printInformation</name>
+ <description>Print information init database</description>
+ <value>false</value>
+ </value-param>
+ <object-param>
+ <name>configuration</name>
+ <description>description</description>
+ <object type="org.exoplatform.services.organization.OrganizationConfig">
+ <field name="membershipType">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$MembershipType">
+ <field name="type"><string>manager</string></field>
+ <field name="description"><string>manager membership type</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$MembershipType">
+ <field name="type"><string>member</string></field>
+ <field name="description"><string>member membership type</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$MembershipType">
+ <field name="type"><string>validator</string></field>
+ <field name="description"><string>validator membership type</string></field>
+ </object>
+ </value>
+ </collection>
+ </field>
+
+ <field name="group">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>platform</string></field>
+ <field name="parentId"><string></string></field>
+ <field name="description"><string>the /platform group</string></field>
+ <field name="label"><string>Platform</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>administrators</string></field>
+ <field name="parentId"><string>/platform</string></field>
+ <field name="description"><string>the /platform/administrators group</string></field>
+ <field name="label"><string>Administrators</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>users</string></field>
+ <field name="parentId"><string>/platform</string></field>
+ <field name="description"><string>the /platform/users group</string></field>
+ <field name="label"><string>Users</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>guests</string></field>
+ <field name="parentId"><string>/platform</string></field>
+ <field name="description"><string>the /platform/guests group</string></field>
+ <field name="label"><string>Guests</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>organization</string></field>
+ <field name="parentId"><string></string></field>
+ <field name="description"><string>the organization group</string></field>
+ <field name="label"><string>Organization</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>management</string></field>
+ <field name="parentId"><string>/organization</string></field>
+ <field name="description"><string>the /organization/management group</string></field>
+ <field name="label"><string>Management</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>executive-board</string></field>
+ <field name="parentId"><string>/organization/management</string></field>
+ <field name="description"><string>the /organization/management/executive-board group</string></field>
+ <field name="label"><string>Executive Board</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>human-resources</string></field>
+ <field name="parentId"><string>/organization/management</string></field>
+ <field name="description"><string>the /organization/management/human-resource group</string></field>
+ <field name="label"><string>Human Resources</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>communication</string></field>
+ <field name="parentId"><string>/organization</string></field>
+ <field name="description"><string>the /organization/communication group</string></field>
+ <field name="label"><string>Communication</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>marketing</string></field>
+ <field name="parentId"><string>/organization/communication</string></field>
+ <field name="description"><string>the /organization/communication/marketing group</string></field>
+ <field name="label"><string>Marketing</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>press-and-media</string></field>
+ <field name="parentId"><string>/organization/communication</string></field>
+ <field name="description"><string>the /organization/communication/press-and-media group</string></field>
+ <field name="label"><string>Press and Media</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>operations</string></field>
+ <field name="parentId"><string>/organization</string></field>
+ <field name="description"><string>the /organization/operations and media group</string></field>
+ <field name="label"><string>Operations</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>sales</string></field>
+ <field name="parentId"><string>/organization/operations</string></field>
+ <field name="description"><string>the /organization/operations/sales group</string></field>
+ <field name="label"><string>Sales</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>finances</string></field>
+ <field name="parentId"><string>/organization/operations</string></field>
+ <field name="description"><string>the /organization/operations/finances group</string></field>
+ <field name="label"><string>Finances</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>customers</string></field>
+ <field name="parentId"><string></string></field>
+ <field name="description"><string>the /customers group</string></field>
+ <field name="label"><string>Customers</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
+ <field name="name"><string>partners</string></field>
+ <field name="parentId"><string></string></field>
+ <field name="description"><string>the /partners group</string></field>
+ <field name="label"><string>Partners</string></field>
+ </object>
+ </value>
+ </collection>
+ </field>
+
+ <field name="user">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$User">
+ <field name="userName"><string>root</string></field>
+ <field name="password"><string>exo</string></field>
+ <field name="firstName"><string>Root</string></field>
+ <field name="lastName"><string>Root</string></field>
+ <field name="email"><string>root at localhost</string></field>
+ <field name="groups">
+ <string>
+ manager:/platform/administrators,member:/platform/users,
+ member:/organization/management/executive-board
+ </string>
+ </field>
+ </object>
+ </value>
+
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$User">
+ <field name="userName"><string>john</string></field>
+ <field name="password"><string>exo</string></field>
+ <field name="firstName"><string>John</string></field>
+ <field name="lastName"><string>Anthony</string></field>
+ <field name="email"><string>john at localhost</string></field>
+ <field name="groups">
+ <string>
+ member:/platform/administrators,member:/platform/users,
+ manager:/organization/management/executive-board
+ </string>
+ </field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$User">
+ <field name="userName"><string>marry</string></field>
+ <field name="password"><string>exo</string></field>
+ <field name="firstName"><string>Marry</string></field>
+ <field name="lastName"><string>Kelly</string></field>
+ <field name="email"><string>marry at localhost</string></field>
+ <field name="groups">
+ <string>member:/platform/users</string>
+ </field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.organization.OrganizationConfig$User">
+ <field name="userName"><string>demo</string></field>
+ <field name="password"><string>exo</string></field>
+ <field name="firstName"><string>Demo</string></field>
+ <field name="lastName"><string>exo</string></field>
+ <field name="email"><string>demo at localhost</string></field>
+ <field name="groups">
+ <string>member:/platform/guests,member:/platform/users</string>
+ </field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin>
+
+ <component-plugin>
+ <name>new.user.event.listener</name>
+ <set-method>addListenerPlugin</set-method>
+ <type>org.exoplatform.services.organization.impl.NewUserEventListener</type>
+ <description>this listener assign group and membership to a new created user</description>
+ <init-params>
+ <object-param>
+ <name>configuration</name>
+ <description>description</description>
+ <object type="org.exoplatform.services.organization.impl.NewUserConfig">
+ <field name="group">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.services.organization.impl.NewUserConfig$JoinGroup">
+ <field name="groupId"><string>/platform/users</string></field>
+ <field name="membership"><string>member</string></field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ <field name="ignoredUser">
+ <collection type="java.util.HashSet">
+ <value><string>root</string></value>
+ <value><string>john</string></value>
+ <value><string>marry</string></value>
+ <value><string>demo</string></value>
+ </collection>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin>
+
+ </external-component-plugins>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-04.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-04.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-04.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <key>org.exoplatform.services.ldap.LDAPService</key>
+ <type>org.exoplatform.services.ldap.impl.LDAPServiceImpl</type>
+ <init-params>
+ <object-param>
+ <name>ldap.config</name>
+ <description>Default ldap config</description>
+ <object type="org.exoplatform.services.ldap.impl.LDAPConnectionConfig">
+ <!-- for multiple ldap servers, use comma seperated list of host:port (Ex. ldap://127.0.0.1:389,10.0.0.1:389) -->
+ <!-- whether or not to enable ssl, if ssl is used ensure that the javax.net.ssl.keyStore & java.net.ssl.keyStorePassword properties are set -->
+ <!-- exo portal default installed javax.net.ssl.trustStore with file is java.home/lib/security/cacerts-->
+ <!-- ldap service will check protocol, if protocol is ldaps, ssl is enable (Ex. for enable ssl: ldaps://10.0.0.3:636 ;for disable ssl: ldap://10.0.0.3:389 ) -->
+ <!-- when enable ssl, ensure server name is *.directory and port (Ex. active.directory) -->
+ <field name="providerURL"><string>ldaps://10.0.0.3:636</string></field>
+ <field name="rootdn"><string>CN=Administrator,CN=Users, DC=exoplatform,DC=org</string></field>
+ <field name="password"><string>site</string></field>
+
+ <field name="version"><string>3</string></field>
+
+ <field name="minConnection"><int>5</int></field>
+
+ <field name="maxConnection"><int>10</int></field>
+
+ <field name="referralMode"><string>ignore</string></field>
+
+ <field name="serverName"><string>active.directory</string></field>
+
+ </object>
+ </object-param>
+ </init-params>
+ </component>
+
+ <component>
+ <key>org.exoplatform.services.organization.OrganizationService</key>
+ <type>org.exoplatform.services.organization.ldap.OrganizationServiceImpl</type>
+ <component-plugins>
+ <component-plugin>
+ <name>init.service.listener</name>
+ <set-method>addListenerPlugin</set-method>
+ <type>org.exoplatform.services.organization.ldap.OrganizationLdapInitializer</type>
+ <description>this listener populate organization ldap service create default dn</description>
+ </component-plugin>
+ </component-plugins>
+ <init-params>
+ <object-param>
+ <name>ldap.attribute.mapping</name>
+ <description>ldap attribute mapping</description>
+ <object type="org.exoplatform.services.organization.ldap.LDAPAttributeMapping">
+ <field name="userLDAPClasses"><string>top,person,organizationalPerson,user</string></field>
+ <field name="profileLDAPClasses"><string>top,organizationalPerson</string></field>
+ <field name="groupLDAPClasses"><string>top,organizationalUnit</string></field>
+ <field name="membershipTypeLDAPClasses"><string>top,group</string></field>
+ <field name="membershipLDAPClasses"><string>top,group</string></field>
+
+ <field name="baseURL"><string>dc=exoplatform,dc=org</string></field>
+ <field name="groupsURL"><string>ou=groups,ou=portal,dc=exoplatform,dc=org</string></field>
+ <field name="membershipTypeURL"><string>ou=memberships,ou=portal,dc=exoplatform,dc=org</string></field>
+ <field name="userURL"><string>ou=users,ou=portal,dc=exoplatform,dc=org</string></field>
+ <field name="profileURL"><string>ou=profiles,ou=portal,dc=exoplatform,dc=org</string></field>
+
+ <field name="userAuthenticationAttr"><string>mail</string></field>
+ <field name="userUsernameAttr"><string>sAMAccountName</string></field>
+ <field name="userPassword"><string>unicodePwd</string></field>
+ <!--unicodePwd-->
+ <field name="userFirstNameAttr"><string>givenName</string></field>
+ <field name="userLastNameAttr"><string>sn</string></field>
+ <field name="userDisplayNameAttr"><string>displayName</string></field>
+ <field name="userMailAttr"><string>mail</string></field>
+ <field name="userObjectClassFilter"><string>objectClass=user</string></field>
+
+ <field name="membershipTypeMemberValue"><string>member</string></field>
+ <field name="membershipTypeRoleNameAttr"><string>cn</string></field>
+ <field name="membershipTypeNameAttr"><string>cn</string></field>
+ <field name="membershipTypeObjectClassFilter"><string>objectClass=group</string></field>
+ <field name="membershiptypeObjectClass"><string>group</string></field>
+
+ <field name="groupObjectClass"><string>organizationalUnit</string></field>
+ <field name="groupObjectClassFilter"><string>objectClass=organizationalUnit</string></field>
+
+ <field name="membershipObjectClass"><string>group</string></field>
+ <field name="membershipObjectClassFilter"><string>objectClass=group</string></field>
+
+ <field name="ldapCreatedTimeStampAttr"><string>createdTimeStamp</string></field>
+ <field name="ldapModifiedTimeStampAttr"><string>modifiedTimeStamp</string></field>
+ <field name="ldapDescriptionAttr"><string>description</string></field>
+ </object>
+ </object-param>
+ </init-params>
+ </component>
+
+ <!--external-component-plugins>
+ <target-component>org.exoplatform.services.database.HibernateService</target-component>
+ <component-plugin>
+ <name>add.hibernate.mapping</name>
+ <set-method>addPlugin</set-method>
+ <type>org.exoplatform.services.database.impl.AddHibernateMappingPlugin</type>
+ <init-params>
+ <values-param>
+ <name>hibernate.mapping</name>
+ <value>org/exoplatform/services/organization/impl/UserProfileData.hbm.xml</value>
+ </values-param>
+ </init-params>
+ </component-plugin>
+ </external-component-plugins-->
+
+ <import>classpath:/conf/portal/organization-configuration.xml</import>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-05.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-05.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-05.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <key>org.exoplatform.services.ldap.LDAPService</key>
+ <type>org.exoplatform.services.ldap.impl.LDAPServiceImpl</type>
+ <init-params>
+ <object-param>
+ <name>ldap.config</name>
+ <description>Default ldap config</description>
+ <object type="org.exoplatform.services.ldap.impl.LDAPConnectionConfig">
+
+ <!-- for multiple ldap servers, use comma seperated list of host:port (Ex. ldap://127.0.0.1:389,10.0.0.1:389) -->
+ <field name="providerURL"><string>ldap://127.0.0.1:389,10.0.0.1:389</string></field>
+
+ <field name="rootdn"><string>CN=Manager,DC=exoplatform,DC=org</string></field>
+
+ <field name="password"><string>secret</string></field>
+
+ <field name="version"><string>3</string></field>
+
+ <field name="minConnection"><int>5</int></field>
+
+ <field name="maxConnection"><int>10</int></field>
+
+ <field name="referralMode"><string>follow</string></field>
+
+<!--
+ <field name="referralMode"><string>ignore</string></field>
+-->
+
+ <field name="serverName"><string>default</string></field>
+
+<!--
+ LDAP server names : default,
+ active.directory,
+ open.ldap,
+ netscape.directory,
+ redhat.directory;
+-->
+
+
+ </object>
+ </object-param>
+ </init-params>
+ </component>
+
+ <component>
+ <key>org.exoplatform.services.organization.OrganizationService</key>
+ <type>org.exoplatform.services.organization.ldap.OrganizationServiceImpl</type>
+ <component-plugins>
+ <component-plugin>
+ <name>init.service.listener</name>
+ <set-method>addListenerPlugin</set-method>
+ <type>org.exoplatform.services.organization.ldap.OrganizationLdapInitializer</type>
+ <description>this listener populate organization ldap service create default dn</description>
+ </component-plugin>
+ </component-plugins>
+ <init-params>
+ <value-param>
+ <name>ldap.userDN.key</name>
+ <description>The key used to compose user DN</description>
+ <value>cn</value>
+ </value-param>
+
+ <object-param>
+ <name>ldap.attribute.mapping</name>
+ <description>ldap attribute mapping</description>
+ <object type="org.exoplatform.services.organization.ldap.LDAPAttributeMapping">
+ <field name="userLDAPClasses"><string>top,person,organizationalPerson,inetOrgPerson</string></field>
+ <field name="profileLDAPClasses"><string>top,organizationalPerson</string></field>
+ <field name="groupLDAPClasses"><string>top,organizationalUnit</string></field>
+ <field name="membershipTypeLDAPClasses"><string>top,organizationalRole</string></field>
+ <field name="membershipLDAPClasses"><string>top,groupOfNames</string></field>
+
+ <field name="baseURL"><string>dc=exoplatform,dc=org</string></field>
+ <field name="groupsURL"><string>ou=groups,ou=portal,dc=exoplatform,dc=org</string></field>
+ <field name="membershipTypeURL"><string>ou=memberships,ou=portal,dc=exoplatform,dc=org</string></field>
+ <field name="userURL"><string>ou=users,ou=portal,dc=exoplatform,dc=org</string></field>
+ <field name="profileURL"><string>ou=profiles,ou=portal,dc=exoplatform,dc=org</string></field>
+
+ <field name="userUsernameAttr"><string>uid</string></field>
+ <field name="userPassword"><string>userPassword</string></field>
+ <field name="userFirstNameAttr"><string>givenName</string></field>
+ <field name="userLastNameAttr"><string>sn</string></field>
+ <field name="userDisplayNameAttr"><string>displayName</string></field>
+ <field name="userMailAttr"><string>mail</string></field>
+ <field name="userObjectClassFilter"><string>objectClass=person</string></field>
+
+ <field name="membershipTypeMemberValue"><string>member</string></field>
+ <field name="membershipTypeRoleNameAttr"><string>cn</string></field>
+ <field name="membershipTypeNameAttr"><string>cn</string></field>
+ <field name="membershipTypeObjectClassFilter"><string>objectClass=organizationalRole</string></field>
+ <field name="membershiptypeObjectClass"><string>organizationalRole</string></field>
+
+ <field name="groupObjectClass"><string>organizationalUnit</string></field>
+ <field name="groupObjectClassFilter"><string>objectClass=organizationalUnit</string></field>
+
+ <field name="membershipObjectClass"><string>groupOfNames</string></field>
+ <field name="membershipObjectClassFilter"><string>objectClass=groupOfNames</string></field>
+
+ <field name="ldapCreatedTimeStampAttr"><string>createdTimeStamp</string></field>
+ <field name="ldapModifiedTimeStampAttr"><string>modifiedTimeStamp</string></field>
+ <field name="ldapDescriptionAttr"><string>description</string></field>
+ </object>
+ </object-param>
+ </init-params>
+ </component>
+
+ <external-component-plugins>
+ <target-component>org.exoplatform.services.database.HibernateService</target-component>
+ <component-plugin>
+ <name>add.hibernate.mapping</name>
+ <set-method>addPlugin</set-method>
+ <type>org.exoplatform.services.database.impl.AddHibernateMappingPlugin</type>
+ <init-params>
+ <values-param>
+ <name>hibernate.mapping</name>
+ <value>org/exoplatform/services/organization/impl/UserProfileData.hbm.xml</value>
+ </values-param>
+ </init-params>
+ </component-plugin>
+ </external-component-plugins>
+
+ <!-- for ldap clean database
+ <external-component-plugins>
+ <target-component>org.exoplatform.services.ldap.LDAPService</target-component>
+ <component-plugin>
+ <name>delete.object</name>
+ <set-method>addDeleteObject</set-method>
+ <type>org.exoplatform.services.ldap.DeleteObjectCommand</type>
+ <init-params>
+ <values-param>
+ <name>objects.to.delete</name>
+ <value>cn=demo,ou=users,ou=portal,dc=exoplatform,dc=org</value>
+ <value>cn=test,ou=users,ou=portal,dc=exoplatform,dc=org</value>
+ <value>cn=Benj,ou=users,ou=portal,dc=exoplatform,dc=org</value>
+ <value>cn=tuan,ou=users,ou=portal,dc=exoplatform,dc=org</value>
+ </values-param>
+ </init-params>
+ </component-plugin>
+ </external-component-plugins>
+ -->
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-06.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-06.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-06.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <key>org.exoplatform.services.organization.OrganizationService</key>
+ <type>org.exoplatform.services.organization.jdbc.OrganizationServiceImpl</type>
+ </component>
+
+ <external-component-plugins>
+ <target-component>org.exoplatform.services.listener.ListenerService</target-component>
+
+ <component-plugin>
+ <name>organization.user.preDelete</name>
+ <set-method>addListener</set-method>
+ <type>org.exoplatform.services.organization.jdbc.listeners.RemoveUserProfileListener</type>
+ </component-plugin>
+
+ <component-plugin>
+ <name>organization.user.postCreate</name>
+ <set-method>addListener</set-method>
+ <type>org.exoplatform.services.organization.jdbc.listeners.CreateUserListener</type>
+ </component-plugin>
+
+ <component-plugin>
+ <name>organization.user.preDelete</name>
+ <set-method>addListener</set-method>
+ <type>org.exoplatform.services.organization.jdbc.listeners.RemoveMembershipListener</type>
+ </component-plugin>
+
+ <component-plugin>
+ <name>organization.user.preDelete</name>
+ <set-method>addListener</set-method>
+ <type>org.exoplatform.portal.config.RemoveUserPortalConfigListener</type>
+ </component-plugin>
+
+ <component-plugin>
+ <name>organization.membershipType.preDelete</name>
+ <set-method>addListener</set-method>
+ <type>org.exoplatform.services.organization.jdbc.listeners.RemoveMembershipListener</type>
+ </component-plugin>
+
+ <component-plugin>
+ <name>organization.group.preDelete</name>
+ <set-method>addListener</set-method>
+ <type>org.exoplatform.services.organization.jdbc.listeners.RemoveMembershipListener</type>
+ </component-plugin>
+
+ <component-plugin>
+ <name>organization.group.preDelete</name>
+ <set-method>addListener</set-method>
+ <type>org.exoplatform.portal.config.RemoveGroupPortalConfigListener</type>
+ </component-plugin>
+
+ <component-plugin>
+ <name>organization.group.preDelete</name>
+ <set-method>addListener</set-method>
+ <type>org.exoplatform.services.organization.jdbc.listeners.RemoveGroupListener</type>
+ </component-plugin>
+
+ </external-component-plugins>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-07.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-07.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-07.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <key>org.exoplatform.services.jcr.config.RepositoryServiceConfiguration</key>
+ <type>org.exoplatform.services.jcr.impl.config.RepositoryServiceConfigurationImpl</type>
+ <init-params>
+ <value-param>
+ <name>conf-path</name>
+ <description>JCR configuration file</description>
+ <value>war:/conf/jcr/repository-configuration.xml</value>
+ </value-param>
+ <properties-param>
+ <name>working-conf</name>
+ <description>working-conf</description>
+ <property name="persister-class-name" value="org.exoplatform.services.jcr.impl.config.JDBCConfigurationPersister"/>
+ <property name="source-name" value="jdbcexo"/>
+ <property name="dialect" value="hsqldb"/>
+ </properties-param>
+ </init-params>
+ </component>
+
+ <component>
+ <type>org.exoplatform.services.jcr.ext.registry.RegistryService</type>
+ <init-params>
+ <properties-param>
+ <name>locations</name>
+ <property name="repository" value="system"/>
+ </properties-param>
+ </init-params>
+ </component>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-08.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-08.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-08.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <key>org.exoplatform.services.mail.MailService</key>
+ <type>org.exoplatform.services.mail.impl.MailServiceImpl</type>
+ <init-params>
+ <properties-param>
+ <name>config</name>
+ <property name="mail.smtp.auth.username" value="exoservice at gmail.com" />
+ <property name="mail.smtp.auth.password" value="exoadmin" />
+ <property name="mail.smtp.host" value="smtp.gmail.com" />
+ <property name="mail.smtp.port" value="465" />
+ <property name="mail.smtp.starttls.enable" value="true" />
+ <property name="mail.smtp.auth" value="true" />
+ <property name="mail.smtp.debug" value="false" />
+ <property name="mail.smtp.socketFactory.port" value="465" />
+ <property name="mail.smtp.socketFactory.class" value="javax.net.ssl.SSLSocketFactory" />
+ <property name="mail.smtp.socketFactory.fallback" value="false" />
+ </properties-param>
+ </init-params>
+ </component>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-09.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-09.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-09.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <external-component-plugins>
+ <target-component>org.exoplatform.services.jcr.ext.hierarchy.NodeHierarchyCreator</target-component>
+ <component-plugin>
+ <name>addPaths</name>
+ <set-method>addPlugin</set-method>
+ <type>org.exoplatform.services.jcr.ext.hierarchy.impl.AddPathPlugin</type>
+ <init-params>
+ <object-param>
+ <name>cms.configuration</name>
+ <description>configuration for the cms path</description>
+ <object type="org.exoplatform.services.jcr.ext.hierarchy.impl.HierarchyConfig">
+ <field name="repository"><string>repository</string></field>
+ <field name="workspaces">
+ <collection type="java.util.ArrayList">
+ <value><string>collaboration</string></value>
+ </collection>
+ </field>
+ <field name="jcrPaths">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.services.jcr.ext.hierarchy.impl.HierarchyConfig$JcrPath">
+ <field name="alias"><string>usersPath</string></field>
+ <field name="path"><string>/Users</string></field>
+ <field name="permissions">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.services.jcr.ext.hierarchy.impl.HierarchyConfig$Permission">
+ <field name="identity"><string>*:/platform/administrators</string></field>
+ <field name="read"><string>true</string></field>
+ <field name="addNode"><string>true</string></field>
+ <field name="setProperty"><string>true</string></field>
+ <field name="remove"><string>true</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.jcr.ext.hierarchy.impl.HierarchyConfig$Permission">
+ <field name="identity"><string>*:/platform/users</string></field>
+ <field name="read"><string>true</string></field>
+ <field name="addNode"><string>false</string></field>
+ <field name="setProperty"><string>true</string></field>
+ <field name="remove"><string>false</string></field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin>
+ </external-component-plugins>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-10.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-10.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-10.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <key>org.exoplatform.services.jcr.config.RepositoryServiceConfiguration</key>
+ <type>org.exoplatform.services.jcr.impl.config.RepositoryServiceConfigurationImpl</type>
+ <init-params>
+ <value-param>
+ <name>conf-path</name>
+ <description>JCR configuration file</description>
+ <value>war:/conf/jcr/repository-configuration.xml</value>
+ </value-param>
+ <properties-param>
+ <name>working-conf</name>
+ <description>working-conf</description>
+ <property name="persister-class-name" value="org.exoplatform.services.jcr.impl.config.JDBCConfigurationPersister"/>
+ <property name="source-name" value="jdbcexo"/>
+ <property name="dialect" value="hsqldb"/>
+ </properties-param>
+ </init-params>
+ </component>
+
+ <component>
+ <type>org.exoplatform.services.jcr.ext.registry.RegistryService</type>
+ <init-params>
+ <properties-param>
+ <name>locations</name>
+ <property name="repository" value="system"/>
+ </properties-param>
+ </init-params>
+ </component>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-11.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-11.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-11.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <key>org.exoplatform.services.database.HibernateService</key>
+ <jmx-name>database:type=HibernateService</jmx-name>
+ <type>org.exoplatform.services.database.impl.HibernateServiceImpl</type>
+ <init-params>
+ <properties-param>
+ <name>hibernate.properties</name>
+ <description>Default Hibernate Service</description>
+ <property name="hibernate.show_sql" value="false"/>
+ <property name="hibernate.cglib.use_reflection_optimizer" value="true"/>
+ <property name="hibernate.connection.url" value="jdbc:hsqldb:file:../temp/data/exodb"/>
+ <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
+ <property name="hibernate.connection.autocommit" value="true"/>
+ <property name="hibernate.connection.username" value="sa"/>
+ <property name="hibernate.connection.password" value=""/>
+ <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
+ <property name="hibernate.c3p0.min_size" value="5"/>
+ <property name="hibernate.c3p0.max_size" value="20"/>
+ <property name="hibernate.c3p0.timeout" value="1800"/>
+ <property name="hibernate.c3p0.max_statements" value="50"/>
+ </properties-param>
+ </init-params>
+ </component>
+
+ <!--
+ <component>
+ <key>org.exoplatform.services.database.DatabaseService</key>
+ <type>org.exoplatform.services.database.impl.XAPoolTxSupportDatabaseService</type>
+ <init-params>
+ <properties-param>
+ <name>default</name>
+ <description>Connection configuration</description>
+ <property name='connection.driver' value='org.hsqldb.jdbcDriver'/>
+ <property name='connection.url' value='jdbc:hsqldb:file:../temp/data/exodb'/>
+ <property name='connection.login' value='sa'/>
+ <property name='connection.password' value=''/>
+ <property name='connection.min-size' value='3'/>
+ <property name='connection.max-size' value='5'/>
+ </properties-param>
+ </init-params>
+ </component>
+ -->
+
+ <external-component-plugins>
+ <target-component>org.exoplatform.services.naming.InitialContextInitializer</target-component>
+ <component-plugin>
+ <name>bind.datasource</name>
+ <set-method>addPlugin</set-method>
+ <type>org.exoplatform.services.naming.BindReferencePlugin</type>
+ <init-params>
+ <value-param>
+ <name>bind-name</name>
+ <value>jdbcexo</value>
+ </value-param>
+ <value-param>
+ <name>class-name</name>
+ <value>javax.sql.DataSource</value>
+ </value-param>
+ <value-param>
+ <name>factory</name>
+ <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
+ </value-param>
+ <properties-param>
+ <name>ref-addresses</name>
+ <description>ref-addresses</description>
+ <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
+ <property name="url" value="jdbc:hsqldb:file:../temp/data/exodb"/>
+ <property name="username" value="sa"/>
+ <property name="password" value=""/>
+ </properties-param>
+ </init-params>
+ </component-plugin>
+ </external-component-plugins>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-12.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-12.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-12.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <type>org.exoplatform.services.portletcontainer.PortletContainerConf</type>
+ <init-params>
+ <object-param>
+ <name>conf</name>
+ <object type="org.exoplatform.services.portletcontainer.PortletContainer">
+ <field name="global">
+ <object type="org.exoplatform.services.portletcontainer.config.Global">
+ <field name="name"><string>ExoPortletContainer</string></field>
+ <field name="description">
+ <string>A JSR 286 compliant portlet container </string>
+ </field>
+ <field name="majorVersion"><int>2</int></field>
+ <field name="minorVersion"><int>0</int></field>
+ </object>
+ </field>
+ <field name="bundle">
+ <object type="org.exoplatform.services.portletcontainer.config.DelegatedBundle">
+ <field name="enable"><string>true</string></field>
+ </object>
+ </field>
+ <field name="cache">
+ <object type="org.exoplatform.services.portletcontainer.config.Cache">
+ <field name="enable"><string>true</string></field>
+ </object>
+ </field>
+ <field name="supportedContent">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.services.portletcontainer.config.SupportedContent">
+ <field name="name"><string>text/html</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.portletcontainer.config.SupportedContent">
+ <field name="name"> <string>text/wml</string> </field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.portletcontainer.config.SupportedContent">
+ <field name="name"> <string>audio/x-mpeg</string></field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.portletcontainer.config.SupportedContent">
+ <field name="name"> <string>image/bmp</string> </field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.portletcontainer.config.SupportedContent">
+ <field name="name"> <string>image/jpg</string> </field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.portletcontainer.config.SupportedContent">
+ <field name="name"> <string>image/jpeg</string> </field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.portletcontainer.config.SupportedContent">
+ <field name="name"> <string>image/gif</string> </field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ <field name="customMode">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.services.portletcontainer.config.CustomMode">
+ <field name="name"> <string>config</string> </field>
+ <field name="description">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.services.portletcontainer.config.Description">
+ <field name="lang"> <string>en</string></field>
+ <field name="description"><string>to let admin config portlets </string> </field>
+ </object>
+ </value>
+ <value>
+ <object type="org.exoplatform.services.portletcontainer.config.Description">
+ <field
+ name="lang">
+ <string>
+ fr
+ </string>
+ </field>
+ <field
+ name="description">
+ <string>
+ permet de
+ configurer
+ les portlets
+ </string>
+ </field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ <field name="properties">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object
+ type="org.exoplatform.services.portletcontainer.config.Properties">
+ <field name="description">
+ <string>
+ a testing property
+ </string>
+ </field>
+ <field name="name">
+ <string>test</string>
+ </field>
+ <field name="value">
+ <string>test_value</string>
+ </field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-13.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-13.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-13.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <import>war:/conf/common/common-configuration.xml</import>
+ <import>war:/conf/common/logs-configuration.xml</import>
+ <import>war:/conf/database/database-configuration.xml</import>
+ <import>war:/conf/jcr/jcr-configuration.xml</import>
+ <import>war:/conf/common/portlet-container-configuration.xml</import>
+
+ <!--if organization service is database, import hibernate-organization-configuration.xml-->
+ <import>war:/conf/organization/hibernate-configuration.xml</import>
+
+ <!-- <import>war:/conf/jdbc-configuration.xml</import> -->
+ <!--for organization service used active directory which is user lookup server -->
+ <!--
+ <import>war:/conf/activedirectory-configuration.xml</import>
+ -->
+
+ <!--for organization service used ldap server which is user lookup server -->
+ <!--
+ <import>war:/conf/ldap-configuration.xml</import>
+ -->
+ <!-- <import>war:/conf/security-configuration.xml</import> -->
+ <import>war:/conf/organization/organization-configuration.xml</import>
+ <import>war:/conf/jcr/component-plugins-configuration.xml</import>
+ <import>war:/conf/mail/portal-mail-configuration.xml</import>
+ <import>war:/conf/portal/portal-configuration.xml</import>
+ <import>war:/conf/portal/application-registry-configuration.xml</import>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-14.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-14.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-14.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <key>org.exoplatform.services.security.SecurityService</key>
+ <type>org.exoplatform.services.security.impl.SecurityServiceImpl</type>
+ <init-params>
+ <value-param>
+ <name>security.authentication</name>
+ <value>sso</value>
+ </value-param>
+ <value-param>
+ <name>security.sso-authentication</name>
+ <value>cas</value>
+ </value-param>
+ </init-params>
+ </component>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-15.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-15.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-15.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <key>org.exoplatform.services.log.LogConfigurationInitializer</key>
+ <type>org.exoplatform.services.log.LogConfigurationInitializer</type>
+ <init-params>
+
+ <!-- JDK -->
+ <value-param>
+ <name>configurator</name>
+ <value>org.exoplatform.services.log.impl.Jdk14Configurator</value>
+ </value-param>
+ <properties-param>
+ <name>properties</name>
+ <description>jdk1.4 Logger properties</description>
+ <property name="handlers" value="java.util.logging.ConsoleHandler"/>
+ <property name=".level" value="FINE"/>
+ <property name="java.util.logging.ConsoleHandler.level" value="FINE"/>
+ </properties-param>
+ <!-- end JDK -->
+ <!-- Log4J -->
+ <!--
+ <value-param>
+ <name>configurator</name>
+ <value>org.exoplatform.services.log.impl.Log4JConfigurator</value>
+ </value-param>
+ <properties-param>
+ <name>properties</name>
+ <description>Log4J properties</description>
+ <property name="log4j.rootLogger" value="DEBUG, stdout, file"/>
+ <property name="log4j.appender.stdout" value="org.apache.log4j.ConsoleAppender"/>
+ <property name="log4j.appender.stdout.layout" value="org.apache.log4j.PatternLayout"/>
+ <property name="log4j.appender.stdout.layout.ConversionPattern" value="%d {dd.MM.yyyy HH:mm:ss} %c {1}: %m (%F, line %L) %n"/>
+ <property name="log4j.appender.file" value="org.apache.log4j.FileAppender"/>
+ <property name="log4j.appender.file.File" value="jcr.log"/>
+ <property name="log4j.appender.file.layout" value="org.apache.log4j.PatternLayout"/>
+ <property name="log4j.appender.file.layout.ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} %m (%F, line %L) %n"/>
+ </properties-param>
+ -->
+ <!-- end Log4J-->
+ </init-params>
+ </component>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-16.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-16.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-16.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <key>org.exoplatform.services.naming.InitialContextInitializer</key>
+ <type>org.exoplatform.services.naming.InitialContextInitializer</type>
+ <init-params>
+ <properties-param>
+ <name>default-properties</name>
+ <description>Default initial context properties</description>
+ <!--
+ <property name="java.naming.factory.initial" value="org.exoplatform.services.naming.SimpleContextFactory"/>
+ -->
+ </properties-param>
+ </init-params>
+ </component>
+
+ <component>
+ <key>org.exoplatform.services.resources.LocaleConfigService</key>
+ <type>org.exoplatform.services.resources.impl.LocaleConfigServiceImpl</type>
+ <init-params>
+ <value-param>
+ <name>locale.config.file</name>
+ <value>war:/conf/common/locales-config.xml</value>
+ </value-param>
+ </init-params>
+ </component>
+
+ <component>
+ <key>org.exoplatform.services.resources.ResourceBundleService</key>
+ <type>org.exoplatform.services.resources.jcr.ResourceBundleServiceImpl</type>
+ <init-params>
+ <values-param>
+ <name>classpath.resources</name>
+ <description>The resources that start with the following package name should be load from file system</description>
+ <value>locale.portlet</value>
+ </values-param>
+ <values-param>
+ <name>init.resources</name>
+ <description>Store the following resources into the db for the first launch </description>
+ <value>locale.portal.expression</value>
+ <value>locale.portal.services</value>
+ <value>locale.portal.webui</value>
+ <value>locale.portal.custom</value>
+ <value>locale.navigation.portal.classic</value>
+ <value>locale.navigation.group.platform.administrators</value>
+ <value>locale.navigation.group.platform.users</value>
+ <value>locale.navigation.group.platform.guests</value>
+ <value>locale.navigation.group.organization.management.executive-board</value>
+ </values-param>
+ <values-param>
+ <name>portal.resource.names</name>
+ <description>The properties files of the portal , those file will be merged
+ into one ResoruceBundle properties </description>
+ <value>locale.portal.expression</value>
+ <value>locale.portal.services</value>
+ <value>locale.portal.webui</value>
+ <value>locale.portal.custom</value>
+ </values-param>
+ </init-params>
+ </component>
+
+ <component>
+ <key>org.exoplatform.services.cache.CacheService</key>
+ <jmx-name>cache:type=CacheService</jmx-name>
+ <type>org.exoplatform.services.cache.impl.CacheServiceImpl</type>
+ <init-params>
+ <object-param>
+ <name>cache.config.default</name>
+ <description>The default cache configuration</description>
+ <object type="org.exoplatform.services.cache.ExoCacheConfig">
+ <field name="name"><string>default</string></field>
+ <field name="maxSize"><int>300</int></field>
+ <field name="liveTime"><long>-1</long></field>
+ <field name="distributed"><boolean>false</boolean></field>
+ <field name="implementation"><string>org.exoplatform.services.cache.concurrent.ConcurrentFIFOExoCache</string></field>
+ </object>
+ </object-param>
+ </init-params>
+ </component>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-17.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-17.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-17.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <key>org.exoplatform.services.naming.InitialContextInitializer</key>
+ <type>org.exoplatform.services.naming.InitialContextInitializer</type>
+ <init-params>
+ <object-param>
+ <name>configuration</name>
+ <object type="org.exoplatform.services.organization.idm.Config">
+ <field name="typeMappings">
+ <map type="java">
+ <entry>
+ <key><string>/</string></key>
+ <value><string>root</string></value>
+ </entry>
+ </map>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+</component>
+
+<component>
+<key>org.exoplatform.services.naming.InitialContextInitializer</key>
+<type>org.exoplatform.services.naming.InitialContextInitializer</type>
+<init-params>
+ <object-param>
+ <name>configuration</name>
+ <object type="package.name">
+ <field name="string"><string>This is a string</string></field>
+ <field name="int"><int>1234</int></field>
+ <field name="long"><long>123456</long></field>
+ <field name="double"><double>1.1234</double></field>
+ <field name="boolean"><boolean>true</boolean></field>
+ <field name="name">
+ <object type="package.name">
+ <field name="nested 1"><string>value</string></field>
+ <field name="nested 2"><int>1234</int></field>
+ </object>
+ </field>
+ <field name="map">
+ <map type="java.util.HashMap">
+ <entry>
+ <key><string>akey</string></key>
+ <value><string>a value</string></value>
+ </entry>
+ <entry>
+ <key><int>1234</int></key>
+ <value><string>a value</string></value>
+ </entry>
+ </map>
+ </field>
+ <field name="list">
+ <collection type="java.util.ArrayList">
+ <value><string>a value</string></value>
+ </collection>
+ </field>
+ </object>
+ </object-param>
+</init-params>
+</component>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-18.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-18.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-18.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+<configuration
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+
+ <component>
+ <key>org.exoplatform.services.naming.InitialContextInitializer</key>
+ <type>org.exoplatform.services.naming.InitialContextInitializer</type>
+ </component>
+
+ <component profiles="a">
+ <key>org.exoplatform.services.naming.InitialContextInitializer</key>
+ <type>org.exoplatform.services.naming.InitialContextInitializer</type>
+ </component>
+
+ <component profiles="a,b">
+ <key>org.exoplatform.services.naming.InitialContextInitializer</key>
+ <type>org.exoplatform.services.naming.InitialContextInitializer</type>
+ </component>
+
+ <component>
+ <key>org.exoplatform.services.naming.InitialContextInitializer</key>
+ <type>org.exoplatform.services.naming.InitialContextInitializer</type>
+ <init-params>
+ <object-param>
+ <name>object</name>
+ <object type="object"></object>
+ </object-param>
+ <object-param profiles="a">
+ <name>object</name>
+ <object type="object"></object>
+ </object-param>
+ <object-param profiles="a,b">
+ <name>object</name>
+ <object type="object"></object>
+ </object-param>
+ <properties-param>
+ <name>properties</name>
+ </properties-param>
+ <properties-param profiles="a">
+ <name>properties</name>
+ </properties-param>
+ <properties-param profiles="a,b">
+ <name>properties</name>
+ </properties-param>
+ <value-param>
+ <name>value</name>
+ <value>value</value>
+ </value-param>
+ <value-param profiles="a">
+ <name>value</name>
+ <value>value</value>
+ </value-param>
+ <value-param profiles="a,b">
+ <name>value</name>
+ <value>value</value>
+ </value-param>
+ <values-param>
+ <name>values</name>
+ </values-param>
+ <values-param profiles="a">
+ <name>values</name>
+ </values-param>
+ <values-param profiles="a,b">
+ <name>values</name>
+ </values-param>
+ </init-params>
+ </component>
+
+ <import>import_1</import>
+ <import profiles="a">import_1</import>
+ <import profiles="a,b">import_1</import>
+
+</configuration>
\ No newline at end of file
Added: kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-19.xml
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-19.xml (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/xsd_1_2/sample-configuration-19.xml 2010-05-06 11:53:08 UTC (rev 2351)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!--
+
+ Copyright (C) 2009 eXo Platform SAS. This is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License
+ as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This software is distributed in the
+ hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this software; if not,
+ write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ -->
+<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
+ <container-lifecycle-plugin>
+ <type>org.exoplatform.container.TestExoContainer$MyContainerLifecyclePlugin1</type>
+ </container-lifecycle-plugin>
+ <container-lifecycle-plugin>
+ <name>MyContainerLifecyclePlugin2</name>
+ <type>org.exoplatform.container.TestExoContainer$MyContainerLifecyclePlugin2</type>
+ <description>The description of the plugin</description>
+ <priority>10</priority>
+ <init-params>
+ <value-param>
+ <name>param</name>
+ <description>a test parameter</description>
+ <value>value</value>
+ </value-param>
+ </init-params>
+ </container-lifecycle-plugin>
+
+</configuration>
\ No newline at end of file
More information about the exo-jcr-commits
mailing list