Author: nfilotto
Date: 2010-09-22 07:26:10 -0400 (Wed, 22 Sep 2010)
New Revision: 3173
Modified:
kernel/branches/2.2.3-CP01/exo.kernel.container/src/main/java/org/exoplatform/container/definition/PortalContainerConfig.java
kernel/branches/2.2.3-CP01/exo.kernel.container/src/test/java/org/exoplatform/container/definition/TestPortalContainerConfig.java
kernel/branches/2.2.3-CP01/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml
Log:
EXOJCR-974: 2 main changes have been applied:
1. For all the webapp not defined in any dependency list,
PortalContainerConfig.getPortalContainerNames will return the list of all the portal
containers and PortalContainerConfig.getPortalContainerName will return the default portal
container.
2. The default portal container is considered as a known portal even if it has not been
registered thanks to a component-plugin
Modified:
kernel/branches/2.2.3-CP01/exo.kernel.container/src/main/java/org/exoplatform/container/definition/PortalContainerConfig.java
===================================================================
---
kernel/branches/2.2.3-CP01/exo.kernel.container/src/main/java/org/exoplatform/container/definition/PortalContainerConfig.java 2010-09-22
07:48:29 UTC (rev 3172)
+++
kernel/branches/2.2.3-CP01/exo.kernel.container/src/main/java/org/exoplatform/container/definition/PortalContainerConfig.java 2010-09-22
11:26:10 UTC (rev 3173)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.container.definition;
+import org.exoplatform.commons.utils.PropertyManager;
import org.exoplatform.container.PortalContainer;
import org.exoplatform.container.PropertyConfigurator;
import org.exoplatform.container.RootContainer;
@@ -112,7 +113,7 @@
/**
* The list of all the web application scopes
*/
- private Map<String, List<String>> scopes;
+ private Map<String, List<String>> scopes = Collections.unmodifiableMap(new
HashMap<String, List<String>>());
/**
* The list of all the {@link PortalContainerDefinition} that have been registered
@@ -397,7 +398,7 @@
{
throw new IllegalArgumentException("The context name cannot be
null");
}
- if (scopes.isEmpty())
+ if (definitions.isEmpty())
{
// we assume that the old behavior is expected
final String portalContainerName =
@@ -413,7 +414,8 @@
// The given context is a portal container
return Collections.singletonList(contextName);
}
- return Collections.emptyList();
+ // By default we scope it to all the portal containers
+ return portalContainerNames;
}
return result;
}
@@ -435,16 +437,22 @@
// The given context name is a context name of a portal container
return contextName;
}
- else if (scopes.isEmpty())
+ else if (definitions.isEmpty())
{
// we assume that the old behavior is expected
- return defaultDefinition.getName();
+ return defaultDefinition.getName();
}
final List<String> result = scopes.get(contextName);
if (result == null || result.isEmpty())
{
- // This context has not been added as dependency of any portal containers
- return null;
+ // This context has not been added as dependency of any portal containers
+ if (PropertyManager.isDevelopping())
+ {
+ log.debug("The context '" + contextName + "' has not
been added as " +
+ "dependency of any portal containers");
+ }
+ // by default we will return the default portal container
+ return defaultDefinition.getName();
}
return result.get(0);
}
@@ -457,12 +465,18 @@
public List<String> getDependencies(String portalContainerName)
{
final PortalContainerDefinition definition = definitions.get(portalContainerName);
- List<String> result = null;
if (definition != null)
{
- result = definition.getDependencies();
+ // A definition has been defined
+ List<String> result = definition.getDependencies();
+ return result == null || result.isEmpty() ? defaultDefinition.getDependencies()
: result;
}
- return result == null || result.isEmpty() ? defaultDefinition.getDependencies() :
result;
+ else if (definitions.isEmpty())
+ {
+ // The old behavior is expected
+ return defaultDefinition.getDependencies();
+ }
+ return null;
}
/**
@@ -542,7 +556,7 @@
if (portalContainerName == null)
{
throw new IllegalArgumentException("The portal container name cannot be
null");
- }
+ }
return getPortalContainerNames(contextName).contains(portalContainerName);
}
Modified:
kernel/branches/2.2.3-CP01/exo.kernel.container/src/test/java/org/exoplatform/container/definition/TestPortalContainerConfig.java
===================================================================
---
kernel/branches/2.2.3-CP01/exo.kernel.container/src/test/java/org/exoplatform/container/definition/TestPortalContainerConfig.java 2010-09-22
07:48:29 UTC (rev 3172)
+++
kernel/branches/2.2.3-CP01/exo.kernel.container/src/test/java/org/exoplatform/container/definition/TestPortalContainerConfig.java 2010-09-22
11:26:10 UTC (rev 3173)
@@ -30,7 +30,7 @@
* Created by The eXo Platform SAS
* Author : Nicolas Filotto
* nicolas.filotto(a)exoplatform.com
- * 18 f�vr. 2010
+ * 18 fホvr. 2010
*/
public class TestPortalContainerConfig extends AbstractTestContainer
{
@@ -48,6 +48,9 @@
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME,
config.getDefaultPortalContainer());
assertEquals(PortalContainerConfig.DEFAULT_REST_CONTEXT_NAME,
config.getDefaultRestContext());
assertEquals(PortalContainerConfig.DEFAULT_REALM_NAME,
config.getDefaultRealmName());
+ assertTrue(config.isPortalContainerName("portal"));
+ assertFalse(config.isPortalContainerName("myPortal"));
+ assertFalse(config.isPortalContainerName("myPortal-dpcdef"));
assertFalse(config.hasDefinition());
rootContainer =
createRootContainer("portal-container-config-with-default-values.xml");
@@ -56,6 +59,9 @@
assertEquals("myPortal", config.getDefaultPortalContainer());
assertEquals("myRest", config.getDefaultRestContext());
assertEquals("my-exo-domain", config.getDefaultRealmName());
+ assertFalse(config.isPortalContainerName("portal"));
+ assertTrue(config.isPortalContainerName("myPortal"));
+ assertFalse(config.isPortalContainerName("myPortal-dpcdef"));
assertFalse(config.hasDefinition());
rootContainer =
@@ -65,6 +71,9 @@
assertEquals("myPortal-dpcdef", config.getDefaultPortalContainer());
assertEquals("myRest-dpcdef", config.getDefaultRestContext());
assertEquals("my-exo-domain-dpcdef", config.getDefaultRealmName());
+ assertFalse(config.isPortalContainerName("portal"));
+ assertFalse(config.isPortalContainerName("myPortal"));
+ assertTrue(config.isPortalContainerName("myPortal-dpcdef"));
assertFalse(config.hasDefinition());
rootContainer =
createRootContainer("portal-container-config-with-default-values-and-with-portal-def.xml");
@@ -234,12 +243,14 @@
assertTrue(names != null && !names.isEmpty());
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME,
names.get(0));
names = config.getPortalContainerNames("myPortal");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME,
names.get(0));
names = config.getPortalContainerNames("myPortal-pcdef");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME,
names.get(0));
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME,
config.getPortalContainerName("foo"));
- assertNull(config.getPortalContainerName("myPortal"));
- assertNull(config.getPortalContainerName("myPortal-pcdef"));
+ assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME,
config.getPortalContainerName("myPortal"));
+ assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME,
config.getPortalContainerName("myPortal-pcdef"));
assertEquals(PortalContainerConfig.DEFAULT_REST_CONTEXT_NAME,
config.getRestContextName("foo"));
assertEquals(PortalContainerConfig.DEFAULT_REST_CONTEXT_NAME,
config.getRestContextName("myPortal"));
assertEquals(PortalContainerConfig.DEFAULT_REST_CONTEXT_NAME,
config.getRestContextName("myPortal-pcdef"));
@@ -265,7 +276,9 @@
assertNull(config.getDependencies("myPortal-pcdef"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
- assertEquals("myPortal", names.get(0));
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal"));
+ assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal", names.get(0));
@@ -287,7 +300,7 @@
// Needed for backward compatibility
assertFalse(config.isScopeValid("foo", "foo"));
assertTrue(config.isScopeValid("myPortal", "foo"));
- assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
assertTrue(config.isScopeValid("myPortal", "myPortal"));
assertTrue(config.isScopeValid("myPortal-pcdef",
"myPortal-pcdef"));
assertTrue(config.hasDefinition());
@@ -328,7 +341,9 @@
assertNull(config.getDependencies("myPortal-pcdef"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
- assertEquals("myPortal", names.get(0));
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal"));
+ assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal", names.get(0));
@@ -350,7 +365,7 @@
// Needed for backward compatibility
assertFalse(config.isScopeValid("foo", "foo"));
assertTrue(config.isScopeValid("myPortal", "foo"));
- assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
assertTrue(config.isScopeValid("myPortal", "myPortal"));
assertTrue(config.isScopeValid("myPortal-pcdef",
"myPortal-pcdef"));
assertTrue(config.hasDefinition());
@@ -360,9 +375,9 @@
createRootContainer("portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml");
config =
(PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
deps = config.getDependencies("foo");
- assertTrue(deps != null && deps.size() == 1 &&
deps.contains("fooX"));
+ assertNull(deps);
deps = config.getDependencies("myPortal");
- assertTrue(deps != null && deps.size() == 1 &&
deps.contains("fooX"));
+ assertNull(deps);
deps = config.getDependencies("myPortal-pcdef");
assertTrue(deps != null && deps.size() == 1 &&
deps.contains("fooX"));
names = config.getPortalContainerNames("fooX");
@@ -371,14 +386,20 @@
assertTrue(names.contains("myPortal-dpcdef"));
assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("foo");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
+ assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
+ assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
- assertNull(config.getPortalContainerName("foo"));
- assertNull(config.getPortalContainerName("myPortal"));
+ assertEquals("myPortal-dpcdef",
config.getPortalContainerName("foo"));
+ assertEquals("myPortal-dpcdef",
config.getPortalContainerName("myPortal"));
assertEquals("myPortal-pcdef",
config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myRest-dpcdef",
config.getRestContextName("foo"));
assertEquals("myRest-dpcdef",
config.getRestContextName("myPortal"));
@@ -407,6 +428,10 @@
"with-profiles", profile);
config =
(PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
deps = config.getDependencies("foo");
+ assertNull(deps);
+ deps = config.getDependencies("myPortal");
+ assertNull(deps);
+ deps = config.getDependencies("myPortal-pcdef");
assertTrue(deps != null && deps.size() == 2 &&
deps.contains("fooX") && deps.contains("foo"));
int index = deps.indexOf("foo");
if (profile.equals("AddDependenciesBefore-No-Target")
@@ -419,10 +444,6 @@
{
assertEquals(1, index);
}
- deps = config.getDependencies("myPortal");
- assertTrue(deps != null && deps.size() == 2 &&
deps.contains("fooX") && deps.contains("foo"));
- deps = config.getDependencies("myPortal-pcdef");
- assertTrue(deps != null && deps.size() == 2 &&
deps.contains("fooX") && deps.contains("foo"));
names = config.getPortalContainerNames("fooX");
assertTrue(names != null && !names.isEmpty());
assertEquals(2, names.size());
@@ -430,15 +451,19 @@
assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
- assertEquals(1, names.size());
- assertEquals("myPortal-dpcdef", names.get(0));
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
+ assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal");
- assertTrue(names != null && names.isEmpty());
+ assertTrue(names != null && !names.isEmpty());
+ assertEquals(2, names.size());
+ assertTrue(names.contains("myPortal-dpcdef"));
+ assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
- assertEquals("myPortal-dpcdef",
config.getPortalContainerName("foo"));
- assertNull(config.getPortalContainerName("myPortal"));
+ assertEquals("myPortal-pcdef",
config.getPortalContainerName("foo"));
+ assertEquals("myPortal-dpcdef",
config.getPortalContainerName("myPortal"));
assertEquals("myPortal-pcdef",
config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myRest-dpcdef",
config.getRestContextName("foo"));
assertEquals("myRest-dpcdef",
config.getRestContextName("myPortal"));
@@ -487,7 +512,7 @@
assertFalse(config.isScopeValid("myPortal", "foo"));
assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
assertFalse(config.isScopeValid("myPortal-pcdef",
"myPortal"));
- assertFalse(config.isScopeValid("myPortal-pcdef", "fooY"));
+ assertTrue(config.isScopeValid("myPortal-pcdef", "fooY"));
assertTrue(config.hasDefinition());
for (String profile : profiles)
@@ -497,9 +522,9 @@
"with-profiles", profile);
config =
(PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
deps = config.getDependencies("foo");
- assertTrue(deps != null && deps.size() == 1 &&
deps.contains("fooX"));
+ assertNull(deps);
deps = config.getDependencies("myPortal");
- assertTrue(deps != null && deps.size() == 1 &&
deps.contains("fooX"));
+ assertNull(deps);
deps = config.getDependencies("myPortal-pcdef");
assertTrue(deps != null && deps.size() == 4);
int index = deps.indexOf("fooX");
@@ -551,9 +576,9 @@
createRootContainer("portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def2.xml");
config =
(PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
deps = config.getDependencies("foo");
- assertTrue(deps != null && deps.size() == 1 &&
deps.contains("fooX"));
+ assertNull(deps);
deps = config.getDependencies("myPortal");
- assertTrue(deps != null && deps.size() == 1 &&
deps.contains("fooX"));
+ assertNull(deps);
deps = config.getDependencies("myPortal-pcdef");
assertTrue(deps != null && deps.size() == 3);
names = config.getPortalContainerNames("fooX");
Modified:
kernel/branches/2.2.3-CP01/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml
===================================================================
---
kernel/branches/2.2.3-CP01/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml 2010-09-22
07:48:29 UTC (rev 3172)
+++
kernel/branches/2.2.3-CP01/exo.kernel.container/src/test/resources/org/exoplatform/container/definition/portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml 2010-09-22
11:26:10 UTC (rev 3173)
@@ -107,7 +107,7 @@
<values-param>
<name>apply.specific</name>
<value>fake</value>
- <value>myPortal-dpcdef</value>
+ <value>myPortal-pcdef</value>
</values-param>
<object-param profiles="AddDependencies">
<name>change</name>