/*
* Copyright (C) 2003-2010 eXo Platform SAS.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see<http://www.gnu.org/licenses/>.
*/
package org.exoplatform.container.definition;
import org.exoplatform.commons.utils.PropertyManager;
import org.exoplatform.container.RootContainer;
import org.exoplatform.container.jmx.AbstractTestContainer;
import org.exoplatform.container.monitor.jvm.J2EEServerInfo;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Created by The eXo Platform SAS
* Author : Nicolas Filotto
* nicolas.filotto@exoplatform.com
* 18 fホvr. 2010
*/
public class TestPortalContainerConfig extends AbstractTestContainer
{
public void testInitValues()
{
RootContainer rootContainer = createRootContainer("empty-config.xml");
PortalContainerConfig config =
(PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config);
rootContainer = createRootContainer("portal-container-config-with-no-default-values.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
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");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
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());
try
{
rootContainer =
createRootContainer("portal-container-config-with-default-values-and-with-default-portal-def.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
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());
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_default.portal.container");
System.getProperties().remove("_default.rest.context");
System.getProperties().remove("_default.realm.name");
System.getProperties().remove("_portal.container");
System.getProperties().remove("_rest.context");
System.getProperties().remove("_realm.name");
PropertyManager.refresh();
}
try
{
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal", config.getDefaultPortalContainer());
assertEquals("myRest", config.getDefaultRestContext());
assertEquals("my-exo-domain", config.getDefaultRealmName());
assertTrue(config.hasDefinition());
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_ignore.unregistered.webapp.true");
System.getProperties().remove("_ignore.unregistered.webapp.false");
PropertyManager.refresh();
}
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-defs.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal", config.getDefaultPortalContainer());
assertEquals("myRest", config.getDefaultRestContext());
assertEquals("my-exo-domain", config.getDefaultRealmName());
assertTrue(config.hasDefinition());
try
{
rootContainer =
createRootContainer("portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal-dpcdef", config.getDefaultPortalContainer());
assertEquals("myRest-dpcdef", config.getDefaultRestContext());
assertEquals("my-exo-domain-dpcdef", config.getDefaultRealmName());
assertTrue(config.hasDefinition());
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_portal.container");
PropertyManager.refresh();
}
rootContainer = createRootContainer("portal-container-config-with-no-default-values-but-with-portal-def.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal-pcdef", config.getDefaultPortalContainer());
assertEquals("myRest-pcdef", config.getDefaultRestContext());
assertEquals("my-exo-domain-pcdef", config.getDefaultRealmName());
assertTrue(config.hasDefinition());
try
{
rootContainer = createRootContainer("portal-container-config-with-no-default-values-but-with-portal-defs.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("portal", config.getDefaultPortalContainer());
assertEquals("myRest", config.getDefaultRestContext());
assertEquals("my-exo-domain", config.getDefaultRealmName());
assertTrue(config.hasDefinition());
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_value.true");
PropertyManager.refresh();
}
rootContainer = createRootContainer("portal-container-config-with-no-default-values-but-with-portal-defs2.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal-pcdef", config.getDefaultPortalContainer());
assertEquals("myRest-pcdef", config.getDefaultRestContext());
assertEquals("my-exo-domain-pcdef", config.getDefaultRealmName());
assertTrue(config.hasDefinition());
}
public void testChanges()
{
Set<String> s;
try
{
createRootContainer("portal-container-config-with-no-default-values-but-with-portal-defs.xml");
s = TestPortalContainerDefinitionChange.NAMES.get("change1");
assertNotNull(s);
assertEquals(2, s.size());
assertTrue(s.contains("portal"));
assertTrue(s.contains("myPortal-pcdef"));
s = TestPortalContainerDefinitionChange.NAMES.get("change2");
assertNotNull(s);
assertEquals(1, s.size());
assertTrue(s.contains("portal"));
s = TestPortalContainerDefinitionChange.NAMES.get("change3");
assertNotNull(s);
assertEquals(1, s.size());
assertTrue(s.contains("myPortal-pcdef"));
s = TestPortalContainerDefinitionChange.NAMES.get("change4");
assertNotNull(s);
assertEquals(2, s.size());
assertTrue(s.contains("portal"));
assertTrue(s.contains("myPortal-pcdef"));
s = TestPortalContainerDefinitionChange.NAMES.get("change5");
assertNotNull(s);
assertEquals(1, s.size());
assertTrue(s.contains("portal"));
s = TestPortalContainerDefinitionChange.NAMES.get("change6");
assertNull(s);
}
finally
{
TestPortalContainerDefinitionChange.NAMES.clear();
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_value.true");
PropertyManager.refresh();
}
try
{
createRootContainer("portal-container-config-with-no-default-values-but-with-portal-defs.xml", "change6");
s = TestPortalContainerDefinitionChange.NAMES.get("change6");
assertNotNull(s);
assertEquals(1, s.size());
assertTrue(s.contains("portal"));
}
finally
{
TestPortalContainerDefinitionChange.NAMES.clear();
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_value.true");
PropertyManager.refresh();
}
}
public void testDependencies()
{
// Empty
RootContainer rootContainer = createRootContainer("portal-container-config-with-no-default-values.xml");
PortalContainerConfig config =
(PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getDependencies(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME));
assertNull(config.getDependencies("foo"));
assertNull(config.getDependencies("myPortal"));
assertNull(config.getDependencies("myPortal-pcdef"));
List<String> names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, names.get(0));
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && !names.isEmpty());
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, names.get(0));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, names.get(0));
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, config.getPortalContainerName("foo"));
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"));
assertEquals(PortalContainerConfig.DEFAULT_REALM_NAME, config.getRealmName("foo"));
assertEquals(PortalContainerConfig.DEFAULT_REALM_NAME, config.getRealmName("myPortal"));
assertEquals(PortalContainerConfig.DEFAULT_REALM_NAME, config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertFalse(config.isPortalContainerName("myPortal"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertTrue(config.isPortalContainerName(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME));
// Needed for backward compatibility
assertTrue(config.isScopeValid(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, "foo"));
assertFalse(config.isScopeValid("foo", "foo"));
assertFalse(config.isScopeValid("myPortal", "foo"));
assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
assertFalse(config.hasDefinition());
// Unregister the portal container
rootContainer = createRootContainer("portal-container-config-with-no-default-values.xml", "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, config.getPortalContainerName("foo"));
assertTrue(config.isPortalContainerName(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME));
assertTrue(config.isScopeValid(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, "foo"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, names.get(0));
// Empty with AddDependencies, AddDependenciesBefore and AddDependenciesAfter
String[] profiles =
{"AddDependencies", "AddDependenciesBefore-No-Target", "AddDependenciesBefore-With-Fake-Target",
"AddDependenciesAfter-No-Target", "AddDependenciesAfter-With-Fake-Target"};
List<String> deps;
for (String profile : profiles)
{
rootContainer = createRootContainer("portal-container-config-with-no-default-values2.xml", profile);
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
deps = config.getDependencies(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME);
assertTrue(deps != null && deps.size() == 1 && deps.contains("foo"));
deps = config.getDependencies("foo");
assertTrue(deps != null && deps.size() == 1 && deps.contains("foo"));
deps = config.getDependencies("myPortal");
assertTrue(deps != null && deps.size() == 1 && deps.contains("foo"));
deps = config.getDependencies("myPortal-pcdef");
assertTrue(deps != null && deps.size() == 1 && deps.contains("foo"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, names.get(0));
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && !names.isEmpty());
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, names.get(0));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, names.get(0));
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, config.getPortalContainerName("foo"));
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"));
assertEquals(PortalContainerConfig.DEFAULT_REALM_NAME, config.getRealmName("foo"));
assertEquals(PortalContainerConfig.DEFAULT_REALM_NAME, config.getRealmName("myPortal"));
assertEquals(PortalContainerConfig.DEFAULT_REALM_NAME, config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertFalse(config.isPortalContainerName("myPortal"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertTrue(config.isPortalContainerName(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME));
// Needed for backward compatibility
assertFalse(config.isScopeValid("foo", "foo"));
assertFalse(config.isScopeValid("myPortal", "foo"));
assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
assertTrue(config.isScopeValid(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, "foo"));
assertFalse(config.hasDefinition());
// Unregister the portal container
rootContainer = createRootContainer("portal-container-config-with-no-default-values2.xml", profile, "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, config.getPortalContainerName("foo"));
assertTrue(config.isPortalContainerName(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME));
assertTrue(config.isScopeValid(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, "foo"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, names.get(0));
}
// Without dependencies
String[] ignoreWebappProfiles = {"ignore.unregistered.webapp-default", "ignore.unregistered.webapp-false", "ignore.unregistered.webapp-true"};
for (int i = 0; i < ignoreWebappProfiles.length; i++)
{
try
{
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def.xml", ignoreWebappProfiles[i]);
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getDependencies("foo"));
assertNull(config.getDependencies("myPortal"));
assertNull(config.getDependencies("myPortal-pcdef"));
names = config.getPortalContainerNames("foo");
if (i < ignoreWebappProfiles.length - 1)
{
// Default behavior
assertTrue(names != null && !names.isEmpty());
assertEquals(2, names.size());
assertTrue(names.contains("myPortal"));
assertTrue(names.contains("myPortal-pcdef"));
assertEquals("myPortal", config.getPortalContainerName("foo"));
}
else
{
// Ignore webapp needed for EXOJCR-795
assertTrue(names != null && names.isEmpty());
assertNull(config.getPortalContainerName("foo"));
}
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal", names.get(0));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
assertEquals("myPortal", config.getPortalContainerName("myPortal"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myRest", config.getRestContextName("foo"));
assertEquals("myRest", config.getRestContextName("myPortal"));
assertEquals("myRest-pcdef", config.getRestContextName("myPortal-pcdef"));
assertEquals("my-exo-domain", config.getRealmName("foo"));
assertEquals("my-exo-domain", config.getRealmName("myPortal"));
assertEquals("my-exo-domain-pcdef", config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertTrue(config.isPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
// Needed for backward compatibility
assertFalse(config.isScopeValid("foo", "foo"));
if (i < ignoreWebappProfiles.length - 1)
{
// Default behavior
assertTrue(config.isScopeValid("myPortal", "foo"));
assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
}
else
{
// Ignore webapp needed for EXOJCR-795
assertFalse(config.isScopeValid("myPortal", "foo"));
assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
}
assertTrue(config.isScopeValid("myPortal", "myPortal"));
assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
assertTrue(config.hasDefinition());
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_ignore.unregistered.webapp.true");
System.getProperties().remove("_ignore.unregistered.webapp.false");
PropertyManager.refresh();
}
}
try
{
// Unregister the portal container
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def.xml", "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myPortal", config.getPortalContainerName("myPortal"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertTrue(config.isPortalContainerName("myPortal"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal"));
assertFalse(config.isScopeValid("myPortal", "myPortal-pcdef"));
assertTrue(config.isScopeValid("myPortal", "myPortal"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && names.isEmpty());
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal"));
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_ignore.unregistered.webapp.true");
System.getProperties().remove("_ignore.unregistered.webapp.false");
PropertyManager.refresh();
}
try
{
// Unregister the default portal container
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def.xml", "disable-pc2");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertNull(config.getPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("myPortal"));
assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal"));
assertFalse(config.isScopeValid("myPortal", "myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal", "myPortal"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && names.isEmpty());
config.disablePortalContainer("myPortal-pcdef");
assertNull(config.getPortalContainerName("myPortal-pcdef"));
assertNull(config.getPortalContainerName("myPortal"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("myPortal"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal"));
assertFalse(config.isScopeValid("myPortal", "myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal", "myPortal"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && names.isEmpty());
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && names.isEmpty());
config.registerPortalContainerName("myPortal-pcdef");
assertNull(config.getPortalContainerName("myPortal-pcdef"));
assertNull(config.getPortalContainerName("myPortal"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("myPortal"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal"));
assertFalse(config.isScopeValid("myPortal", "myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal", "myPortal"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && names.isEmpty());
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && names.isEmpty());
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_ignore.unregistered.webapp.true");
System.getProperties().remove("_ignore.unregistered.webapp.false");
PropertyManager.refresh();
}
// Without dependencies and with no portal container name
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-empty-portal-def.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getDependencies("foo"));
assertNull(config.getDependencies("myPortal"));
assertNull(config.getDependencies("myPortal-pcdef"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal", names.get(0));
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal", names.get(0));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal", names.get(0));
assertEquals("myPortal", config.getPortalContainerName("foo"));
assertEquals("myPortal", config.getPortalContainerName("myPortal"));
assertEquals("myPortal", config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myRest", config.getRestContextName("foo"));
assertEquals("myRest", config.getRestContextName("myPortal"));
assertEquals("myRest", config.getRestContextName("myPortal-pcdef"));
assertEquals("my-exo-domain", config.getRealmName("foo"));
assertEquals("my-exo-domain", config.getRealmName("myPortal"));
assertEquals("my-exo-domain", config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertTrue(config.isPortalContainerName("myPortal"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
// Unregister the portal container
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-empty-portal-def.xml", "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal", config.getPortalContainerName("foo"));
assertTrue(config.isPortalContainerName("myPortal"));
assertTrue(config.isScopeValid("myPortal", "foo"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal", names.get(0));
try
{
// Without dependencies and with no rest context name an realm name
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-empty-portal-def2.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getDependencies("foo"));
assertNull(config.getDependencies("myPortal"));
assertNull(config.getDependencies("myPortal-pcdef"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
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));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
assertEquals("myPortal", config.getPortalContainerName("foo"));
assertEquals("myPortal", config.getPortalContainerName("myPortal"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myRest", config.getRestContextName("foo"));
assertEquals("myRest", config.getRestContextName("myPortal"));
assertEquals("myRest", config.getRestContextName("myPortal-pcdef"));
assertEquals("my-exo-domain", config.getRealmName("foo"));
assertEquals("my-exo-domain", config.getRealmName("myPortal"));
assertEquals("my-exo-domain", config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertTrue(config.isPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
// Needed for backward compatibility
assertFalse(config.isScopeValid("foo", "foo"));
assertTrue(config.isScopeValid("myPortal", "foo"));
assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
assertTrue(config.isScopeValid("myPortal", "myPortal"));
assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
assertTrue(config.hasDefinition());
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_default.portal.container");
System.getProperties().remove("_default.rest.context");
System.getProperties().remove("_default.realm.name");
System.getProperties().remove("_portal.container");
PropertyManager.refresh();
}
try
{
// Unregister the portal container
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-empty-portal-def2.xml", "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getPortalContainerName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && names.isEmpty());
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_default.portal.container");
System.getProperties().remove("_default.rest.context");
System.getProperties().remove("_default.realm.name");
System.getProperties().remove("_portal.container");
PropertyManager.refresh();
}
try
{
// Without dependencies and with default portal container definition
rootContainer =
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");
assertNull(deps);
deps = config.getDependencies("myPortal");
assertNull(deps);
deps = config.getDependencies("myPortal-pcdef");
assertTrue(deps != null && deps.size() == 1 && deps.contains("fooX"));
names = config.getPortalContainerNames("fooX");
assertTrue(names != null && !names.isEmpty());
assertEquals(2, names.size());
assertTrue(names.contains("myPortal-dpcdef"));
assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("foo");
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());
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"));
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"));
assertEquals("myRest-pcdef", config.getRestContextName("myPortal-pcdef"));
assertEquals("my-exo-domain-dpcdef", config.getRealmName("foo"));
assertEquals("my-exo-domain-dpcdef", config.getRealmName("myPortal"));
assertEquals("my-exo-domain-pcdef", config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertFalse(config.isPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-dpcdef"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("foo", "fooX"));
assertFalse(config.isScopeValid("myPortal", "fooX"));
assertTrue(config.isScopeValid("myPortal-dpcdef", "fooX"));
assertTrue(config.isScopeValid("myPortal-pcdef", "fooX"));
assertTrue(config.hasDefinition());
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_portal.container");
PropertyManager.refresh();
}
try
{
// Unregister the portal container
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml", "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal-dpcdef", config.getPortalContainerName("foo"));
assertEquals("myPortal-dpcdef", config.getPortalContainerName("myPortal"));
assertEquals("myPortal-dpcdef", config.getPortalContainerName("myPortal-dpcdef"));
assertNull(config.getPortalContainerName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertFalse(config.isPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-dpcdef"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("foo", "fooX"));
assertFalse(config.isScopeValid("myPortal", "fooX"));
assertTrue(config.isScopeValid("myPortal-dpcdef", "fooX"));
assertFalse(config.isScopeValid("myPortal-pcdef", "fooX"));
assertTrue(config.isScopeValid("myPortal-dpcdef", "myPortal-dpcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && names.isEmpty());
names = config.getPortalContainerNames("myPortal-dpcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal-dpcdef"));
names = config.getPortalContainerNames("fooX");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal-dpcdef"));
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_portal.container");
PropertyManager.refresh();
}
try
{
// Unregister the default portal container
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml", "disable-pc2");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal-pcdef", config.getPortalContainerName("foo"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal"));
assertNull(config.getPortalContainerName("myPortal-dpcdef"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertFalse(config.isPortalContainerName("myPortal"));
assertFalse(config.isPortalContainerName("myPortal-dpcdef"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("foo", "fooX"));
assertFalse(config.isScopeValid("myPortal", "fooX"));
assertFalse(config.isScopeValid("myPortal-dpcdef", "fooX"));
assertTrue(config.isScopeValid("myPortal-pcdef", "fooX"));
assertFalse(config.isScopeValid("myPortal-dpcdef", "myPortal-dpcdef"));
assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-dpcdef");
assertTrue(names != null && names.isEmpty());
names = config.getPortalContainerNames("fooX");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal-pcdef"));
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_portal.container");
PropertyManager.refresh();
}
profiles =
new String[]{"AddDependencies", "AddDependenciesBefore-No-Target", "AddDependenciesBefore-With-Fake-Target",
"AddDependenciesBefore-With-Target", "AddDependenciesAfter-No-Target",
"AddDependenciesAfter-With-Fake-Target", "AddDependenciesAfter-With-Target"};
for (String profile : profiles)
{
try
{
rootContainer =
createRootContainer(
"portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml",
"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")
|| profile.equals("AddDependenciesBefore-With-Fake-Target")
|| profile.equals("AddDependenciesBefore-With-Target"))
{
assertEquals(0, index);
}
else
{
assertEquals(1, index);
}
names = config.getPortalContainerNames("fooX");
assertTrue(names != null && !names.isEmpty());
assertEquals(2, names.size());
assertTrue(names.contains("myPortal-dpcdef"));
assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("foo");
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());
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-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"));
assertEquals("myRest-pcdef", config.getRestContextName("myPortal-pcdef"));
assertEquals("my-exo-domain-dpcdef", config.getRealmName("foo"));
assertEquals("my-exo-domain-dpcdef", config.getRealmName("myPortal"));
assertEquals("my-exo-domain-pcdef", config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertFalse(config.isPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("foo", "fooX"));
assertFalse(config.isScopeValid("myPortal", "fooX"));
assertTrue(config.isScopeValid("myPortal-pcdef", "fooX"));
assertTrue(config.hasDefinition());
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_portal.container");
PropertyManager.refresh();
}
try
{
// Unregister the portal container
rootContainer = createRootContainer(
"portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml",
"with-profiles", profile, "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal-dpcdef", config.getPortalContainerName("foo"));
assertEquals("myPortal-dpcdef", config.getPortalContainerName("myPortal"));
assertEquals("myPortal-dpcdef", config.getPortalContainerName("myPortal-dpcdef"));
assertNull(config.getPortalContainerName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertFalse(config.isPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-dpcdef"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("foo", "fooX"));
assertFalse(config.isScopeValid("myPortal", "fooX"));
assertTrue(config.isScopeValid("myPortal-dpcdef", "fooX"));
assertFalse(config.isScopeValid("myPortal-pcdef", "fooX"));
assertTrue(config.isScopeValid("myPortal-dpcdef", "myPortal-dpcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && names.isEmpty());
names = config.getPortalContainerNames("myPortal-dpcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal-dpcdef"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal-dpcdef"));
names = config.getPortalContainerNames("fooX");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal-dpcdef"));
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_portal.container");
PropertyManager.refresh();
}
try
{
// Unregister the default portal container
rootContainer = createRootContainer(
"portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml",
"with-profiles", profile, "disable-pc2");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal-pcdef", config.getPortalContainerName("foo"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal"));
assertNull(config.getPortalContainerName("myPortal-dpcdef"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertFalse(config.isPortalContainerName("myPortal"));
assertFalse(config.isPortalContainerName("myPortal-dpcdef"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("foo", "fooX"));
assertFalse(config.isScopeValid("myPortal", "fooX"));
assertFalse(config.isScopeValid("myPortal-dpcdef", "fooX"));
assertTrue(config.isScopeValid("myPortal-pcdef", "fooX"));
assertFalse(config.isScopeValid("myPortal-dpcdef", "myPortal-dpcdef"));
assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-dpcdef");
assertTrue(names != null && names.isEmpty());
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("fooX");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal-pcdef"));
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_portal.container");
PropertyManager.refresh();
}
}
// With dependencies
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def2.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getDependencies("foo"));
assertNull(config.getDependencies("myPortal"));
deps = config.getDependencies("myPortal-pcdef");
assertTrue(deps != null && deps.size() == 3);
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal", names.get(0));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
assertEquals("myPortal-pcdef", config.getPortalContainerName("foo"));
assertEquals("myPortal", config.getPortalContainerName("myPortal"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myRest", config.getRestContextName("foo"));
assertEquals("myRest", config.getRestContextName("myPortal"));
assertEquals("myRest-pcdef", config.getRestContextName("myPortal-pcdef"));
assertEquals("my-exo-domain", config.getRealmName("foo"));
assertEquals("my-exo-domain", config.getRealmName("myPortal"));
assertEquals("my-exo-domain-pcdef", config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertTrue(config.isPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("foo", "foo"));
assertFalse(config.isScopeValid("myPortal", "foo"));
assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal"));
assertTrue(config.isScopeValid("myPortal-pcdef", "fooY"));
assertTrue(config.hasDefinition());
// Unregister the portal container
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def2.xml", "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal", config.getPortalContainerName("foo"));
assertEquals("myPortal", config.getPortalContainerName("myPortal"));
assertNull(config.getPortalContainerName("myPortal-pcdef"));
assertTrue(config.isPortalContainerName("myPortal"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal"));
assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
assertFalse(config.isScopeValid("myPortal", "myPortal-pcdef"));
assertTrue(config.isScopeValid("myPortal", "myPortal"));
assertTrue(config.isScopeValid("myPortal", "foo"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && names.isEmpty());
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal"));
// Unregister the default portal container
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def2.xml", "disable-pc2");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal-pcdef", config.getPortalContainerName("foo"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
assertTrue(config.isScopeValid("myPortal-pcdef", "myPortal"));
assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
assertFalse(config.isScopeValid("myPortal", "myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal", "myPortal"));
assertFalse(config.isScopeValid("myPortal", "foo"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal-pcdef"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal-pcdef"));
for (String profile : profiles)
{
rootContainer =
createRootContainer("portal-container-config-with-default-values-and-with-portal-def2.xml",
"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() == 4);
int index = deps.indexOf("fooX");
if (profile.equals("AddDependenciesBefore-No-Target") || profile.equals("AddDependenciesBefore-With-Fake-Target"))
{
assertEquals(0, index);
}
else if (profile.equals("AddDependenciesBefore-With-Target"))
{
assertEquals(1, index);
}
else if (profile.equals("AddDependenciesAfter-With-Target"))
{
assertEquals(2, index);
}
else
{
assertEquals(3, index);
}
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal", names.get(0));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
assertEquals("myPortal-pcdef", config.getPortalContainerName("foo"));
assertEquals("myPortal", config.getPortalContainerName("myPortal"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myRest", config.getRestContextName("foo"));
assertEquals("myRest", config.getRestContextName("myPortal"));
assertEquals("myRest-pcdef", config.getRestContextName("myPortal-pcdef"));
assertEquals("my-exo-domain", config.getRealmName("foo"));
assertEquals("my-exo-domain", config.getRealmName("myPortal"));
assertEquals("my-exo-domain-pcdef", config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertTrue(config.isPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("foo", "foo"));
assertFalse(config.isScopeValid("myPortal", "foo"));
assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
assertTrue(config.hasDefinition());
// Unregister the portal container
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def2.xml",
"with-profiles", profile, "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal", config.getPortalContainerName("foo"));
assertNull(config.getPortalContainerName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && names.isEmpty());
assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal"));
}
// With dependencies and with default portal container definition
rootContainer =
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");
assertNull(deps);
deps = config.getDependencies("myPortal");
assertNull(deps);
deps = config.getDependencies("myPortal-pcdef");
assertTrue(deps != null && deps.size() == 3);
names = config.getPortalContainerNames("fooX");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertEquals("myPortal", names.get(0));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertEquals("myPortal-pcdef", names.get(0));
names = config.getPortalContainerNames("myPortal");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal", names.get(0));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && !names.isEmpty());
assertEquals("myPortal-pcdef", names.get(0));
assertEquals("myPortal-pcdef", config.getPortalContainerName("foo"));
assertEquals("myPortal", config.getPortalContainerName("myPortal"));
assertEquals("myPortal-pcdef", config.getPortalContainerName("myPortal-pcdef"));
assertEquals("myRest", config.getRestContextName("foo"));
assertEquals("myRest", config.getRestContextName("myPortal"));
assertEquals("myRest-pcdef", config.getRestContextName("myPortal-pcdef"));
assertEquals("my-exo-domain", config.getRealmName("foo"));
assertEquals("my-exo-domain", config.getRealmName("myPortal"));
assertEquals("my-exo-domain-pcdef", config.getRealmName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("foo"));
assertTrue(config.isPortalContainerName("myPortal"));
assertTrue(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("foo", "foo"));
assertFalse(config.isScopeValid("myPortal", "foo"));
assertTrue(config.isScopeValid("myPortal-pcdef", "foo"));
assertTrue(config.hasDefinition());
// Unregister the portal container
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def2.xml", "disable-pc");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("myPortal", config.getPortalContainerName("foo"));
assertNull(config.getPortalContainerName("myPortal-pcdef"));
assertFalse(config.isPortalContainerName("myPortal-pcdef"));
assertFalse(config.isScopeValid("myPortal-pcdef", "myPortal-pcdef"));
names = config.getPortalContainerNames("myPortal-pcdef");
assertTrue(names != null && names.isEmpty());
assertFalse(config.isScopeValid("myPortal-pcdef", "foo"));
names = config.getPortalContainerNames("foo");
assertTrue(names != null && !names.isEmpty());
assertEquals(1, names.size());
assertTrue(names.contains("myPortal"));
}
public void testSettings()
{
// Without settings, without portal definition and without default values
RootContainer rootContainer = createRootContainer("portal-container-config-with-no-default-values.xml");
PortalContainerConfig config =
(PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getSetting("foo", "foo"));
assertNull(config.getSetting("myPortal", "foo"));
assertNull(config.getSetting("myPortal-pcdef", "foo"));
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, config.getSetting("foo",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, config.getSetting("myPortal",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, config.getSetting("myPortal-pcdef",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_REST_CONTEXT_NAME, config.getSetting("foo",
PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_REST_CONTEXT_NAME, config.getSetting("myPortal",
PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_REST_CONTEXT_NAME, config.getSetting("myPortal-pcdef",
PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_REALM_NAME, config.getSetting("foo",
PortalContainerConfig.REALM_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_REALM_NAME, config.getSetting("myPortal",
PortalContainerConfig.REALM_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_REALM_NAME, config.getSetting("myPortal-pcdef",
PortalContainerConfig.REALM_SETTING_NAME));
rootContainer = createRootContainer("portal-container-config-with-no-default-values.xml", "with-profiles");
config =
(PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getSetting("foo", "foo"));
assertNull(config.getSetting("myPortal", "foo"));
assertNull(config.getSetting("myPortal-pcdef", "foo"));
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, config.getSetting("foo",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, config.getSetting("myPortal",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_PORTAL_CONTAINER_NAME, config.getSetting("myPortal-pcdef",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_REST_CONTEXT_NAME, config.getSetting("foo",
PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_REST_CONTEXT_NAME, config.getSetting("myPortal",
PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_REST_CONTEXT_NAME, config.getSetting("myPortal-pcdef",
PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_REALM_NAME, config.getSetting("foo",
PortalContainerConfig.REALM_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_REALM_NAME, config.getSetting("myPortal",
PortalContainerConfig.REALM_SETTING_NAME));
assertEquals(PortalContainerConfig.DEFAULT_REALM_NAME, config.getSetting("myPortal-pcdef",
PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("value1", config.getSetting("foo", "string"));
assertEquals("value1", config.getSetting("foo", "stringX"));
// Without settings and without portal definition
rootContainer = createRootContainer("portal-container-config-with-default-values.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getSetting("foo", "foo"));
assertNull(config.getSetting("myPortal", "foo"));
assertNull(config.getSetting("myPortal-pcdef", "foo"));
assertEquals("myPortal", config.getSetting("foo", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal", config.getSetting("myPortal", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal", config.getSetting("myPortal-pcdef", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myRest", config.getSetting("foo", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest", config.getSetting("myPortal", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest", config.getSetting("myPortal-pcdef", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("foo", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("myPortal", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("myPortal-pcdef", PortalContainerConfig.REALM_SETTING_NAME));
// Without settings, without portal definition and with empty default portal container definition
rootContainer =
createRootContainer("portal-container-config-with-default-values-and-with-empty-default-portal-def.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getSetting("foo", "foo"));
assertNull(config.getSetting("myPortal", "foo"));
assertNull(config.getSetting("myPortal-pcdef", "foo"));
assertEquals("myPortal", config.getSetting("foo", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal", config.getSetting("myPortal", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal", config.getSetting("myPortal-pcdef", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myRest", config.getSetting("foo", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest", config.getSetting("myPortal", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest", config.getSetting("myPortal-pcdef", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("foo", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("myPortal", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("myPortal-pcdef", PortalContainerConfig.REALM_SETTING_NAME));
// Without settings, without portal definition and with default portal container definition
try
{
rootContainer =
createRootContainer("portal-container-config-with-default-values-and-with-default-portal-def.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getSetting("foo", "foo"));
assertNull(config.getSetting("myPortal", "foo"));
assertNull(config.getSetting("myPortal-pcdef", "foo"));
assertEquals("myPortal-dpcdef", config.getSetting("foo", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-dpcdef", config
.getSetting("myPortal", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-dpcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myRest-dpcdef", config.getSetting("foo", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest-dpcdef", config.getSetting("myPortal", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest-dpcdef", config
.getSetting("myPortal-pcdef", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("my-exo-domain-dpcdef", config.getSetting("foo", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain-dpcdef", config.getSetting("myPortal", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain-dpcdef", config
.getSetting("myPortal-pcdef", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("value0", config.getSetting("foo", "string"));
assertEquals(new Integer(100), config.getSetting("foo", "int"));
assertEquals(new Long(100), config.getSetting("foo", "long"));
assertEquals(new Double(100), config.getSetting("foo", "double"));
assertEquals(new Boolean(false), config.getSetting("foo", "boolean"));
assertEquals("value0", config.getSetting("myPortal", "string"));
assertEquals(new Integer(100), config.getSetting("myPortal", "int"));
assertEquals(new Long(100), config.getSetting("myPortal", "long"));
assertEquals(new Double(100), config.getSetting("myPortal", "double"));
assertEquals(new Boolean(false), config.getSetting("myPortal", "boolean"));
assertEquals("value0", config.getSetting("myPortal-pcdef", "string"));
assertEquals(new Integer(100), config.getSetting("myPortal-pcdef", "int"));
assertEquals(new Long(100), config.getSetting("myPortal-pcdef", "long"));
assertEquals(new Double(100), config.getSetting("myPortal-pcdef", "double"));
assertEquals(new Boolean(false), config.getSetting("myPortal-pcdef", "boolean"));
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_default.portal.container");
System.getProperties().remove("_default.rest.context");
System.getProperties().remove("_default.realm.name");
System.getProperties().remove("_portal.container");
System.getProperties().remove("_rest.context");
System.getProperties().remove("_realm.name");
PropertyManager.refresh();
}
try
{
// Without settings and with portal definition
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-portal-def.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getSetting("foo", "foo"));
assertNull(config.getSetting("myPortal", "foo"));
assertNull(config.getSetting("myPortal-pcdef", "foo"));
assertEquals("myPortal", config.getSetting("foo", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal", config.getSetting("myPortal", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myRest", config.getSetting("foo", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest", config.getSetting("myPortal", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest-pcdef", config.getSetting("myPortal-pcdef", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("foo", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("myPortal", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain-pcdef", config.getSetting("myPortal-pcdef", PortalContainerConfig.REALM_SETTING_NAME));
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_ignore.unregistered.webapp.true");
System.getProperties().remove("_ignore.unregistered.webapp.false");
PropertyManager.refresh();
}
try
{
// Without settings, with portal definition and with default portal definition
rootContainer =
createRootContainer("portal-container-config-with-default-values-and-with-portal-def-with-default-portal-def.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getSetting("foo", "foo"));
assertNull(config.getSetting("myPortal", "foo"));
assertNull(config.getSetting("myPortal-pcdef", "foo"));
assertEquals("myPortal-dpcdef", config.getSetting("foo", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-dpcdef", config
.getSetting("myPortal", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myRest-dpcdef", config.getSetting("foo", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest-dpcdef", config.getSetting("myPortal", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest-pcdef", config.getSetting("myPortal-pcdef", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("my-exo-domain-dpcdef", config.getSetting("foo", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain-dpcdef", config.getSetting("myPortal", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain-pcdef", config.getSetting("myPortal-pcdef", PortalContainerConfig.REALM_SETTING_NAME));
}
finally
{
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_portal.container");
PropertyManager.refresh();
}
// With internal settings
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-settings.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getSetting("foo", "foo"));
assertNull(config.getSetting("myPortal", "foo"));
assertEquals("value", config.getSetting("myPortal-pcdef", "foo"));
assertNull(config.getSetting("foo", "foo2"));
assertNull(config.getSetting("myPortal", "foo2"));
assertNull(config.getSetting("myPortal-pcdef", "foo2"));
assertEquals("value", config.getSetting("myPortal-pcdef", "string"));
assertEquals(new Integer(10), config.getSetting("myPortal-pcdef", "int"));
assertEquals(new Long(10), config.getSetting("myPortal-pcdef", "long"));
assertEquals(new Double(10), config.getSetting("myPortal-pcdef", "double"));
assertEquals(new Boolean(true), config.getSetting("myPortal-pcdef", "boolean"));
assertEquals("myPortal", config.getSetting("foo", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal", config.getSetting("myPortal", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myRest", config.getSetting("foo", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest", config.getSetting("myPortal", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest-pcdef", config.getSetting("myPortal-pcdef", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("foo", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("myPortal", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain-pcdef", config.getSetting("myPortal-pcdef", PortalContainerConfig.REALM_SETTING_NAME));
// With internal settings and default portal definition
rootContainer =
createRootContainer("portal-container-config-with-default-values-and-with-settings-with-default-portal-def.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getSetting("foo", "foo"));
assertNull(config.getSetting("myPortal", "foo"));
assertEquals("value", config.getSetting("myPortal-pcdef", "foo"));
assertEquals("value", config.getSetting("foo", "foo2"));
assertEquals("value", config.getSetting("myPortal", "foo2"));
assertEquals("value", config.getSetting("myPortal-pcdef", "foo2"));
assertNull(config.getSetting("foo", "foo3"));
assertNull(config.getSetting("myPortal", "foo3"));
assertNull(config.getSetting("myPortal-pcdef", "foo3"));
assertEquals("myPortal-dpcdef", config.getSetting("foo", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-dpcdef", config
.getSetting("myPortal", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myRest-dpcdef", config.getSetting("foo", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest-dpcdef", config.getSetting("myPortal", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest-pcdef", config.getSetting("myPortal-pcdef", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("my-exo-domain-dpcdef", config.getSetting("foo", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain-dpcdef", config.getSetting("myPortal", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain-pcdef", config.getSetting("myPortal-pcdef", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("value0", config.getSetting("foo", "string"));
assertEquals(new Integer(100), config.getSetting("foo", "int"));
assertEquals(new Long(100), config.getSetting("foo", "long"));
assertEquals(new Double(100), config.getSetting("foo", "double"));
assertEquals(new Boolean(false), config.getSetting("foo", "boolean"));
assertEquals("value0", config.getSetting("myPortal", "string"));
assertEquals(new Integer(100), config.getSetting("myPortal", "int"));
assertEquals(new Long(100), config.getSetting("myPortal", "long"));
assertEquals(new Double(100), config.getSetting("myPortal", "double"));
assertEquals(new Boolean(false), config.getSetting("myPortal", "boolean"));
assertEquals("value", config.getSetting("myPortal-pcdef", "string"));
assertEquals(new Integer(10), config.getSetting("myPortal-pcdef", "int"));
assertEquals(new Long(10), config.getSetting("myPortal-pcdef", "long"));
assertEquals(new Double(10), config.getSetting("myPortal-pcdef", "double"));
assertEquals(new Boolean(true), config.getSetting("myPortal-pcdef", "boolean"));
// With external settings
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-external-settings.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getSetting("foo", "foo"));
assertNull(config.getSetting("myPortal", "foo"));
assertNull(config.getSetting("myPortal-pcdef", "foo"));
assertNull(config.getSetting("foo", "foo2"));
assertNull(config.getSetting("myPortal", "foo2"));
assertEquals("value", config.getSetting("myPortal-pcdef", "foo2"));
assertEquals("new value", config.getSetting("myPortal-pcdef", "string"));
assertEquals("20", config.getSetting("myPortal-pcdef", "int"));
assertEquals("20", config.getSetting("myPortal-pcdef", "long"));
assertEquals("20", config.getSetting("myPortal-pcdef", "double"));
assertEquals("false", config.getSetting("myPortal-pcdef", "boolean"));
assertEquals("myPortal-pcdef-myRest-pcdef-my-exo-domain-pcdef-value-new value", config.getSetting(
"myPortal-pcdef", "complex-value"));
assertEquals("myPortal", config.getSetting("foo", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal", config.getSetting("myPortal", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myRest", config.getSetting("foo", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest", config.getSetting("myPortal", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest-pcdef", config.getSetting("myPortal-pcdef", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("foo", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("myPortal", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain-pcdef", config.getSetting("myPortal-pcdef", PortalContainerConfig.REALM_SETTING_NAME));
// Simple usecase from gatein
rootContainer = createRootContainer("sample-gtn-configuration.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("../gatein/data", config.getSetting("portal", "gatein.data.dir"));
assertEquals("../gatein/data/db", config.getSetting("portal", "gatein.db.data.dir"));
assertEquals("jdbc:hsqldb:file:../gatein/data/db/data/jdbcjcr_portal", config.getSetting("portal",
"gatein.jcr.datasource.url"));
// With external settings, with several portal container definitions and with
// default portal container definition
rootContainer =
createRootContainer("portal-container-config-with-default-values-and-with-external-settings-with-default-portal-def.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("value0", config.getSetting("foo", "foo"));
assertEquals("value0", config.getSetting("myPortal", "foo"));
assertEquals("value0", config.getSetting("myPortal0", "foo"));
assertEquals("value0", config.getSetting("myPortal-pcdef", "foo"));
assertEquals("value0", config.getSetting("myPortal2", "foo"));
assertNull(config.getSetting("foo", "foo2"));
assertNull(config.getSetting("myPortal", "foo2"));
assertNull(config.getSetting("myPortal0", "foo2"));
assertEquals("value", config.getSetting("myPortal-pcdef", "foo2"));
assertNull(config.getSetting("myPortal2", "foo2"));
assertEquals("new value0", config.getSetting("foo", "string"));
assertEquals("200", config.getSetting("foo", "int"));
assertEquals("200", config.getSetting("foo", "long"));
assertEquals("200", config.getSetting("foo", "double"));
assertEquals("true", config.getSetting("foo", "boolean"));
assertEquals("myPortal-myRest-my-exo-domain-value0-new value0", config.getSetting("foo", "complex-value2"));
assertEquals("new value0", config.getSetting("myPortal", "string"));
assertEquals("200", config.getSetting("myPortal", "int"));
assertEquals("200", config.getSetting("myPortal", "long"));
assertEquals("200", config.getSetting("myPortal", "double"));
assertEquals("true", config.getSetting("myPortal", "boolean"));
assertEquals("myPortal-myRest-my-exo-domain-value0-new value0", config.getSetting("myPortal", "complex-value2"));
assertEquals("new value0", config.getSetting("myPortal0", "string"));
assertEquals("200", config.getSetting("myPortal0", "int"));
assertEquals("200", config.getSetting("myPortal0", "long"));
assertEquals("200", config.getSetting("myPortal0", "double"));
assertEquals("true", config.getSetting("myPortal0", "boolean"));
assertEquals("myPortal0-myRest0-my-exo-domain0-value0-new value0", config.getSetting("myPortal0",
"complex-value2"));
assertEquals("new value", config.getSetting("myPortal-pcdef", "string"));
assertEquals("20", config.getSetting("myPortal-pcdef", "int"));
assertEquals("20", config.getSetting("myPortal-pcdef", "long"));
assertEquals("20", config.getSetting("myPortal-pcdef", "double"));
assertEquals("false", config.getSetting("myPortal-pcdef", "boolean"));
assertEquals("myPortal-pcdef-myRest-pcdef-my-exo-domain-pcdef-value-new value", config.getSetting(
"myPortal-pcdef", "complex-value"));
assertEquals("myPortal-pcdef-myRest-pcdef-my-exo-domain-pcdef-value0-new value", config.getSetting(
"myPortal-pcdef", "complex-value2"));
assertEquals("new value0", config.getSetting("myPortal2", "string"));
assertEquals("200", config.getSetting("myPortal2", "int"));
assertEquals("200", config.getSetting("myPortal2", "long"));
assertEquals("200", config.getSetting("myPortal2", "double"));
assertEquals("true", config.getSetting("myPortal2", "boolean"));
assertEquals("myPortal2-myRest2-my-exo-domain2-value0-new value0", config.getSetting("myPortal2",
"complex-value2"));
assertEquals("myPortal", config.getSetting("foo", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal", config.getSetting("myPortal", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myRest", config.getSetting("foo", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest", config.getSetting("myPortal", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest-pcdef", config.getSetting("myPortal-pcdef", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("foo", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("myPortal", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain-pcdef", config.getSetting("myPortal-pcdef", PortalContainerConfig.REALM_SETTING_NAME));
String path =
TestPortalContainerConfig.class.getResource(
"portal-container-config-with-default-values-and-with-external-settings2.xml").getPath();
path = path.substring(0, path.lastIndexOf('/'));
String oldPath = System.getProperty(J2EEServerInfo.EXO_CONF_PARAM);
try
{
System.setProperty(J2EEServerInfo.EXO_CONF_PARAM, path);
// With external settings in exo-conf directory
rootContainer =
createRootContainer("portal-container-config-with-default-values-and-with-external-settings2.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getSetting("foo", "foo"));
assertNull(config.getSetting("myPortal", "foo"));
assertNull(config.getSetting("myPortal-pcdef", "foo"));
assertNull(config.getSetting("foo", "foo2"));
assertNull(config.getSetting("myPortal", "foo2"));
assertEquals("value 2", config.getSetting("myPortal-pcdef", "foo2"));
assertEquals("new value 2", config.getSetting("myPortal-pcdef", "string"));
assertEquals("22", config.getSetting("myPortal-pcdef", "int"));
assertEquals("22", config.getSetting("myPortal-pcdef", "long"));
assertEquals("22", config.getSetting("myPortal-pcdef", "double"));
assertEquals("true", config.getSetting("myPortal-pcdef", "boolean"));
assertEquals("myPortal-pcdef-myRest-pcdef-my-exo-domain-pcdef-value 2-new value 2", config.getSetting(
"myPortal-pcdef", "complex-value"));
assertEquals("myPortal", config.getSetting("foo", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal", config.getSetting("myPortal", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myRest", config.getSetting("foo", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest", config.getSetting("myPortal", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("foo", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("myPortal", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.REALM_SETTING_NAME));
// With external settings in exo-conf directory, with several portal container definitions
// and with default portal container definition
rootContainer =
createRootContainer("portal-container-config-with-default-values-and-with-external-settings-with-default-portal-def2.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("value01", config.getSetting("foo", "foo"));
assertEquals("value01", config.getSetting("myPortal", "foo"));
assertEquals("value01", config.getSetting("myPortal0", "foo"));
assertEquals("value01", config.getSetting("myPortal-pcdef", "foo"));
assertEquals("value01", config.getSetting("myPortal2", "foo"));
assertNull(config.getSetting("foo", "foo2"));
assertNull(config.getSetting("myPortal", "foo2"));
assertNull(config.getSetting("myPortal0", "foo2"));
assertEquals("value 2", config.getSetting("myPortal-pcdef", "foo2"));
assertNull(config.getSetting("myPortal2", "foo2"));
assertEquals("new value01", config.getSetting("foo", "string"));
assertEquals("2001", config.getSetting("foo", "int"));
assertEquals("2001", config.getSetting("foo", "long"));
assertEquals("2001", config.getSetting("foo", "double"));
assertEquals("false", config.getSetting("foo", "boolean"));
assertEquals("myPortal-myRest-my-exo-domain-value01-new value01", config.getSetting("foo", "complex-value2"));
assertEquals("new value01", config.getSetting("myPortal", "string"));
assertEquals("2001", config.getSetting("myPortal", "int"));
assertEquals("2001", config.getSetting("myPortal", "long"));
assertEquals("2001", config.getSetting("myPortal", "double"));
assertEquals("false", config.getSetting("myPortal", "boolean"));
assertEquals("myPortal-myRest-my-exo-domain-value01-new value01", config.getSetting("myPortal",
"complex-value2"));
assertEquals("new value01", config.getSetting("myPortal0", "string"));
assertEquals("2001", config.getSetting("myPortal0", "int"));
assertEquals("2001", config.getSetting("myPortal0", "long"));
assertEquals("2001", config.getSetting("myPortal0", "double"));
assertEquals("false", config.getSetting("myPortal0", "boolean"));
assertEquals("myPortal0-myRest0-my-exo-domain0-value01-new value01", config.getSetting("myPortal0",
"complex-value2"));
assertEquals("new value 2", config.getSetting("myPortal-pcdef", "string"));
assertEquals("22", config.getSetting("myPortal-pcdef", "int"));
assertEquals("22", config.getSetting("myPortal-pcdef", "long"));
assertEquals("22", config.getSetting("myPortal-pcdef", "double"));
assertEquals("true", config.getSetting("myPortal-pcdef", "boolean"));
assertEquals("myPortal-pcdef-myRest-pcdef-my-exo-domain-pcdef-value 2-new value 2", config.getSetting(
"myPortal-pcdef", "complex-value"));
assertEquals("myPortal-pcdef-myRest-pcdef-my-exo-domain-pcdef-value01-new value 2", config.getSetting(
"myPortal-pcdef", "complex-value2"));
assertEquals("new value01", config.getSetting("myPortal2", "string"));
assertEquals("2001", config.getSetting("myPortal2", "int"));
assertEquals("2001", config.getSetting("myPortal2", "long"));
assertEquals("2001", config.getSetting("myPortal2", "double"));
assertEquals("false", config.getSetting("myPortal2", "boolean"));
assertEquals("myPortal2-myRest2-my-exo-domain2-value01-new value01", config.getSetting("myPortal2",
"complex-value2"));
assertEquals("myPortal", config.getSetting("foo", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal", config.getSetting("myPortal", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myRest", config.getSetting("foo", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest", config.getSetting("myPortal", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("foo", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("myPortal", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.REALM_SETTING_NAME));
}
finally
{
if (oldPath == null)
{
System.getProperties().remove(J2EEServerInfo.EXO_CONF_PARAM);
}
else
{
System.setProperty(J2EEServerInfo.EXO_CONF_PARAM, oldPath);
}
}
// With both settings internal and external
rootContainer = createRootContainer("portal-container-config-with-default-values-and-with-both-settings.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertNull(config.getSetting("foo", "foo"));
assertNull(config.getSetting("myPortal", "foo"));
assertEquals("value", config.getSetting("myPortal-pcdef", "foo"));
assertNull(config.getSetting("foo", "foo2"));
assertNull(config.getSetting("myPortal", "foo2"));
assertEquals("value", config.getSetting("myPortal-pcdef", "foo2"));
assertEquals("new value", config.getSetting("myPortal-pcdef", "string"));
assertEquals(new Integer(20), config.getSetting("myPortal-pcdef", "int"));
assertEquals(new Long(20), config.getSetting("myPortal-pcdef", "long"));
assertEquals(new Double(20), config.getSetting("myPortal-pcdef", "double"));
assertEquals(new Boolean(false), config.getSetting("myPortal-pcdef", "boolean"));
assertEquals("myPortal", config.getSetting("foo", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal", config.getSetting("myPortal", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myRest", config.getSetting("foo", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest", config.getSetting("myPortal", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest-pcdef", config.getSetting("myPortal-pcdef", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("foo", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("myPortal", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain-pcdef", config.getSetting("myPortal-pcdef", PortalContainerConfig.REALM_SETTING_NAME));
try
{
System.setProperty("TestPortalContainerConfig-string", "system value");
System.setProperty("TestPortalContainerConfig-int", "50");
// With both settings internal and external and default portal container definition
rootContainer =
createRootContainer("portal-container-config-with-default-values-and-with-both-settings-with-default-portal-def.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("value0", config.getSetting("foo", "foo"));
assertEquals("value0", config.getSetting("myPortal", "foo"));
assertEquals("value0", config.getSetting("myPortal-pcdef", "foo"));
assertEquals("value", config.getSetting("foo", "foo2"));
assertEquals("value", config.getSetting("myPortal", "foo2"));
assertEquals("value", config.getSetting("myPortal-pcdef", "foo2"));
assertNull(config.getSetting("foo", "foo3"));
assertNull(config.getSetting("myPortal", "foo3"));
assertEquals("value", config.getSetting("myPortal-pcdef", "foo3"));
assertEquals("-${foo3}-", config.getSetting("foo", "complex-value3"));
assertEquals("-${foo3}-", config.getSetting("myPortal", "complex-value3"));
assertEquals("-value-", config.getSetting("myPortal-pcdef", "complex-value3"));
assertNull(config.getSetting("foo", "complex-value4"));
assertNull(config.getSetting("myPortal", "complex-value4"));
assertEquals("-value-", config.getSetting("myPortal-pcdef", "complex-value4"));
assertEquals("-value-", config.getSetting("foo", "complex-value5"));
assertEquals("-value-", config.getSetting("myPortal", "complex-value5"));
assertEquals("-value-", config.getSetting("myPortal-pcdef", "complex-value5"));
assertNull(config.getSetting("foo", "complex-value6"));
assertNull(config.getSetting("myPortal", "complex-value6"));
assertEquals("-value-", config.getSetting("myPortal-pcdef", "complex-value6"));
assertNull(config.getSetting("foo", "complex-value7"));
assertNull(config.getSetting("myPortal", "complex-value7"));
assertEquals("-value-", config.getSetting("myPortal-pcdef", "complex-value7"));
assertEquals("-${foo6}-", config.getSetting("foo", "complex-value8"));
assertEquals("-${foo6}-", config.getSetting("myPortal", "complex-value8"));
assertEquals("-value-", config.getSetting("myPortal-pcdef", "complex-value8"));
assertEquals("-property_value_1-", config.getSetting("foo", "complex-value9"));
assertEquals("-property_value_1-", config.getSetting("myPortal", "complex-value9"));
assertEquals("-property_value_1-", config.getSetting("myPortal-pcdef", "complex-value9"));
assertNull(config.getSetting("foo", "complex-value10"));
assertNull(config.getSetting("myPortal", "complex-value10"));
assertEquals("--value--", config.getSetting("myPortal-pcdef", "complex-value10"));
assertNull(config.getSetting("foo", "complex-value11"));
assertNull(config.getSetting("myPortal", "complex-value11"));
assertEquals("-default-", config.getSetting("myPortal-pcdef", "complex-value11"));
assertEquals("-default-", config.getSetting("foo", "complex-value12"));
assertEquals("-default-", config.getSetting("myPortal", "complex-value12"));
assertEquals("-value-", config.getSetting("myPortal-pcdef", "complex-value12"));
assertEquals("-property_value_1-", config.getSetting("foo", "complex-value13"));
assertEquals("-property_value_1-", config.getSetting("myPortal", "complex-value13"));
assertEquals("-property_value_1-", config.getSetting("myPortal-pcdef", "complex-value13"));
assertEquals("-default-", config.getSetting("foo", "complex-value14"));
assertEquals("-default-", config.getSetting("myPortal", "complex-value14"));
assertEquals("-default-", config.getSetting("myPortal-pcdef", "complex-value14"));
assertEquals("-system value-", config.getSetting("foo", "cpv1"));
assertEquals("-system value-", config.getSetting("myPortal", "cpv1"));
assertEquals("-system value-", config.getSetting("myPortal-pcdef", "cpv1"));
assertEquals(new Integer(50), config.getSetting("foo", "cpv2"));
assertEquals(new Integer(50), config.getSetting("myPortal", "cpv2"));
assertEquals(new Integer(50), config.getSetting("myPortal-pcdef", "cpv2"));
assertEquals("-property_value_1-", config.getSetting("foo", "cpv3"));
assertEquals("-property_value_1-", config.getSetting("myPortal", "cpv3"));
assertEquals("-property_value_1-", config.getSetting("myPortal-pcdef", "cpv3"));
assertEquals("-value-", config.getSetting("foo", "cpv4"));
assertEquals("-value-", config.getSetting("myPortal", "cpv4"));
assertEquals("-value-", config.getSetting("myPortal-pcdef", "cpv4"));
assertEquals("-system value-", config.getSetting("foo", "cpv5"));
assertEquals("-system value-", config.getSetting("myPortal", "cpv5"));
assertEquals("-system value-", config.getSetting("myPortal-pcdef", "cpv5"));
assertEquals("new value0", config.getSetting("foo", "string"));
assertEquals(new Integer(200), config.getSetting("foo", "int"));
assertEquals(new Integer(60), config.getSetting("foo", "int2"));
assertEquals(new Long(200), config.getSetting("foo", "long"));
assertEquals(new Double(200), config.getSetting("foo", "double"));
assertEquals(new Boolean(true), config.getSetting("foo", "boolean"));
assertEquals("new value0", config.getSetting("myPortal", "string"));
assertEquals(new Integer(200), config.getSetting("myPortal", "int"));
assertEquals(new Integer(60), config.getSetting("myPortal", "int2"));
assertEquals(new Long(200), config.getSetting("myPortal", "long"));
assertEquals(new Double(200), config.getSetting("myPortal", "double"));
assertEquals(new Boolean(true), config.getSetting("myPortal", "boolean"));
assertEquals("new value", config.getSetting("myPortal-pcdef", "string"));
assertEquals(new Integer(20), config.getSetting("myPortal-pcdef", "int"));
assertEquals(new Integer(60), config.getSetting("myPortal-pcdef", "int2"));
assertEquals(new Long(20), config.getSetting("myPortal-pcdef", "long"));
assertEquals(new Double(20), config.getSetting("myPortal-pcdef", "double"));
assertEquals(new Boolean(false), config.getSetting("myPortal-pcdef", "boolean"));
assertEquals("myPortal", config.getSetting("foo", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal", config.getSetting("myPortal", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myRest", config.getSetting("foo", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest", config.getSetting("myPortal", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("foo", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("myPortal", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.REALM_SETTING_NAME));
}
finally
{
System.getProperties().remove("TestPortalContainerConfig-string");
System.getProperties().remove("TestPortalContainerConfig-int");
// Clear the System Properties added by the PropertyConfigurator
System.getProperties().remove("_default.portal.container");
System.getProperties().remove("_default.rest.context");
System.getProperties().remove("_default.realm.name");
System.getProperties().remove("_portal.container");
System.getProperties().remove("_rest.context");
System.getProperties().remove("_realm.name");
PropertyManager.refresh();
}
// With both settings internal and external, and with invalid values
rootContainer = createRootContainer("portal-container-config-with-invalid-values.xml");
config = (PortalContainerConfig)rootContainer.getComponentInstanceOfType(PortalContainerConfig.class);
assertEquals("value", config.getSetting("myPortal-pcdef", "internal-empty-value"));
assertEquals("", config.getSetting("myPortal-pcdef", "external-empty-value"));
assertEquals("", config.getSetting("myPortal-pcdef", "fake-value-4-string"));
assertEquals(new Integer(10), config.getSetting("myPortal-pcdef", "fake-value-4-int"));
assertEquals(new Integer(10), config.getSetting("myPortal-pcdef", "invalid-value-4-int"));
assertEquals("myPortal", config.getSetting("foo", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal", config.getSetting("myPortal", PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myPortal-pcdef", config.getSetting("myPortal-pcdef",
PortalContainerConfig.PORTAL_CONTAINER_SETTING_NAME));
assertEquals("myRest", config.getSetting("foo", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest", config.getSetting("myPortal", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("myRest", config.getSetting("myPortal-pcdef", PortalContainerConfig.REST_CONTEXT_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("foo", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("myPortal", PortalContainerConfig.REALM_SETTING_NAME));
assertEquals("my-exo-domain", config.getSetting("myPortal-pcdef", PortalContainerConfig.REALM_SETTING_NAME));
}
public static class TestPortalContainerDefinitionChange implements PortalContainerDefinitionChange
{
public String name;
public static Map<String, Set<String>> NAMES = new HashMap<String, Set<String>>();
public void apply(PortalContainerDefinition pcd)
{
Set<String> names = NAMES.get(name);
if (names == null)
{
names = new HashSet<String>();
NAMES.put(name, names);
}
names.add(pcd.getName());
}
}
}