[portal-commits] JBoss Portal SVN: r11827 - in branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal: core/impl/coordination and 1 other directories.
portal-commits at lists.jboss.org
portal-commits at lists.jboss.org
Sat Sep 6 08:44:36 EDT 2008
Author: chris.laprun at jboss.com
Date: 2008-09-06 08:44:36 -0400 (Sat, 06 Sep 2008)
New Revision: 11827
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationConfigurator.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/CoordinationService.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/test/core/model/portal/coordination/CoordinationServiceTestCase.java
Log:
- Added getAliasBinding(page, name), removeAliasBinding(page, name) and renameAliasBinding(page, alias name, new name) methods.
- Added test cases.
- I have "optimized" some cases by using declared properties instead of properties (in this commit and previous) and it just
occurred to me that this might break behavior. But as this potential behavior was not tested, I have no way to know... Bolek?
Modified: branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationConfigurator.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationConfigurator.java 2008-09-06 12:14:37 UTC (rev 11826)
+++ branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/coordination/CoordinationConfigurator.java 2008-09-06 12:44:36 UTC (rev 11827)
@@ -253,6 +253,13 @@
void removeAliasBinding(AliasBindingInfo aliasInfo) throws IllegalCoordinationException;
/**
+ * @param page
+ * @param name
+ * @throws IllegalCoordinationException
+ */
+ void removeAliasBinding(Page page, String name);
+
+ /**
* Renames the specified alias to the new name
*
* @param aliasBinding the alias binding to be renamed
@@ -263,12 +270,27 @@
/**
* @param page
+ * @param bindingName
+ * @param newName
+ * @throws IllegalCoordinationException
+ */
+ void renameAliasBinding(Page page, String bindingName, String newName) throws IllegalCoordinationException;
+
+ /**
+ * @param page
* @return collection of alias bindings connected to the given page
*/
Collection<? extends AliasBindingInfo> getAliasBindings(Page page);
/**
* @param page
+ * @param name
+ * @return
+ */
+ AliasBindingInfo getAliasBinding(Page page, String name);
+
+ /**
+ * @param page
* @param parameterQName
* @return window bindings for a given parameter qname
*/
Modified: branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/CoordinationService.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/CoordinationService.java 2008-09-06 12:14:37 UTC (rev 11826)
+++ branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/coordination/CoordinationService.java 2008-09-06 12:44:36 UTC (rev 11827)
@@ -359,7 +359,7 @@
public EventWiringInfo getEventWiring(Page page, String name) throws IllegalCoordinationException
{
ParameterValidation.throwIllegalArgExceptionIfNull(page, "Page");
- ParameterValidation.throwIllegalArgExceptionIfNull(name, "Event wiring name");
+ ParameterValidation.throwIllegalArgExceptionIfNull(name, "event wiring name");
String wiringProp = PREFIX_EVENT_WIRING + name;
String nameProp = PREFIX_EVENT_NAME + name;
@@ -665,35 +665,44 @@
public void removeAliasBinding(AliasBindingInfo aliasInfo) throws IllegalCoordinationException
{
ParameterValidation.throwIllegalArgExceptionIfNull(aliasInfo, "AliasBindingInfo");
+ removeAliasBinding(aliasInfo.getPage(), aliasInfo.getName());
+ }
- AliasInfoPOJO alias = (AliasInfoPOJO)aliasInfo;
- String propName = PREFIX_PARAMETER_ALIAS_NAME + aliasInfo.getName();
- if (alias.getPage().getProperties().keySet().contains(propName))
- {
- alias.getPage().setDeclaredProperty(propName, null);
- }
+ public void removeAliasBinding(Page page, String name)
+ {
+ ParameterValidation.throwIllegalArgExceptionIfNull(name, "window binding name");
+ ParameterValidation.throwIllegalArgExceptionIfNull(page, "Page");
+
+ String nameProp = PREFIX_PARAMETER_ALIAS_NAME + name;
+ page.setDeclaredProperty(nameProp, null);
}
public void renameAliasBinding(AliasBindingInfo aliasBinding, String newName) throws IllegalCoordinationException
{
removeAliasBinding(aliasBinding);
- AliasInfoPOJO alias = (AliasInfoPOJO)aliasBinding;
- setAliasBinding(alias.getPage(), newName, alias.getNames());
+ setAliasBinding(aliasBinding.getPage(), newName, aliasBinding.getNames());
}
+ public void renameAliasBinding(Page page, String bindingName, String newName) throws IllegalCoordinationException
+ {
+ AliasBindingInfo info = getAliasBinding(page, bindingName);
+ removeAliasBinding(page, bindingName);
+ setAliasBinding(page, newName, info.getNames());
+ }
+
public Collection<AliasBindingInfo> getAliasBindings(Page page)
{
ParameterValidation.throwIllegalArgExceptionIfNull(page, "Page");
HashSet<AliasBindingInfo> aliases = new HashSet<AliasBindingInfo>();
- for (String propertyName : page.getProperties().keySet())
+ for (String propertyName : page.getDeclaredProperties().keySet())
{
if (propertyName.startsWith(PREFIX_PARAMETER_ALIAS_NAME))
{
String aliasName = propertyName.substring(PREFIX_PARAMETER_ALIAS_LENGTH);
AliasInfoPOJO info = new AliasInfoPOJO(aliasName, page);
- String qnameList = page.getProperty(propertyName);
+ String qnameList = page.getDeclaredProperty(propertyName);
String[] qnames = qnameList.split(QNAME_SEPARATOR);
if (qnames != null)
{
@@ -710,6 +719,30 @@
return aliases;
}
+ public AliasBindingInfo getAliasBinding(Page page, String name)
+ {
+ ParameterValidation.throwIllegalArgExceptionIfNull(page, "Page");
+ ParameterValidation.throwIllegalArgExceptionIfNull(name, "alias binding name");
+
+ String nameProp = PREFIX_PARAMETER_ALIAS_NAME + name;
+ String qNameList = page.getDeclaredProperty(nameProp);
+ if (qNameList != null)
+ {
+ String[] qnames = qNameList.split(QNAME_SEPARATOR);
+ Set<QName> names = new HashSet<QName>(qnames.length);
+ for (String string : qnames)
+ {
+ QName qname = QName.valueOf(string);
+ names.add(qname);
+ }
+ return new AliasInfoPOJO(name, page, names);
+ }
+ else
+ {
+ return null;
+ }
+ }
+
public Collection<? extends WindowBindingInfo> getWindowBindings(Page page, QName parameterName)
{
ParameterValidation.throwIllegalArgExceptionIfNull(page, "Page");
@@ -976,13 +1009,18 @@
private final Page page;
private final Set<QName> names;
- private AliasInfoPOJO(String name, Page page)
+ private AliasInfoPOJO(String name, Page page, Set<QName> names)
{
this.name = name;
this.page = page;
- this.names = new HashSet<QName>();
+ this.names = names;
}
+ private AliasInfoPOJO(String name, Page page)
+ {
+ this(name, page, new HashSet<QName>());
+ }
+
public String getName()
{
return name;
Modified: branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/test/core/model/portal/coordination/CoordinationServiceTestCase.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/test/core/model/portal/coordination/CoordinationServiceTestCase.java 2008-09-06 12:14:37 UTC (rev 11826)
+++ branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/test/core/model/portal/coordination/CoordinationServiceTestCase.java 2008-09-06 12:44:36 UTC (rev 11827)
@@ -48,6 +48,7 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
/**
* @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot com">Boleslaw Dawidowicz</a>
@@ -422,24 +423,24 @@
Collection<AliasBindingInfo> bindings1 = cos.getAliasBindings(page1);
- assertTrue(bindings1.size() == 1);
+ assertEquals(1, bindings1.size());
AliasBindingInfo info = bindings1.iterator().next();
assertTrue(info.getName().equals("alias1"));
- assertTrue(info.getNames().size() == 3);
+ assertEquals(3, info.getNames().size());
assertTrue(info.getNames().contains(qname1));
assertTrue(info.getNames().contains(qname2));
assertTrue(info.getNames().contains(qname3));
cos.removeAliasBinding(info);
- assertTrue(cos.getAliasBindings(page1).size() == 0);
+ assertTrue(cos.getAliasBindings(page1).isEmpty());
AliasBindingInfo info2 = null;
AliasBindingInfo info3 = null;
Collection<AliasBindingInfo> bindings2 = cos.getAliasBindings(page2);
- assertTrue(bindings2.size() == 2);
+ assertEquals(2, bindings2.size());
for (AliasBindingInfo aliasBindingInfo : bindings2)
{
@@ -458,13 +459,13 @@
assertNotNull(info3);
assertTrue(info2.getName().equals("alias2"));
- assertTrue(info2.getNames().size() == 3);
+ assertEquals(3, info2.getNames().size());
assertTrue(info2.getNames().contains(qname4));
assertTrue(info2.getNames().contains(qname5));
assertTrue(info2.getNames().contains(qname6));
assertTrue(info3.getName().equals("alias3"));
- assertTrue(info3.getNames().size() == 3);
+ assertEquals(3, info3.getNames().size());
assertTrue(info3.getNames().contains(qname7));
assertTrue(info3.getNames().contains(qname8));
assertTrue(info3.getNames().contains(qname9));
@@ -473,6 +474,96 @@
TransactionAssert.commitTransaction();
}
+ public void testGetAliasBinding() throws Exception
+ {
+ TransactionAssert.beginTransaction();
+
+ Page page1 = getPage1();
+
+ QName qname1 = new QName("nm1", "local1");
+ QName qname2 = new QName("nm2", "local2");
+ QName qname3 = new QName("nm3", "local3");
+ QName qname4 = new QName("nm4", "local4");
+ QName qname5 = new QName("nm5", "local5");
+ QName qname6 = new QName("nm6", "local6");
+
+ HashSet<QName> qnames1 = new HashSet<QName>();
+ qnames1.add(qname1);
+ qnames1.add(qname2);
+ qnames1.add(qname3);
+
+ HashSet<QName> qnames2 = new HashSet<QName>();
+ qnames2.add(qname4);
+ qnames2.add(qname5);
+ qnames2.add(qname6);
+
+ cos.setAliasBinding(page1, "alias1", qnames1);
+ cos.setAliasBinding(page1, "alias2", qnames2);
+
+ AliasBindingInfo info = cos.getAliasBinding(page1, "alias1");
+ assertNotNull(info);
+ assertEquals("alias1", info.getName());
+ assertEquals(page1, info.getPage());
+ Set<QName> names = info.getNames();
+ assertNotNull(names);
+ assertEquals(3, names.size());
+ assertTrue(names.contains(qname1));
+ assertTrue(names.contains(qname2));
+ assertTrue(names.contains(qname3));
+
+ info = cos.getAliasBinding(page1, "alias2");
+ assertNotNull(info);
+ assertEquals("alias2", info.getName());
+ assertEquals(page1, info.getPage());
+ names = info.getNames();
+ assertNotNull(names);
+ assertEquals(3, names.size());
+ assertTrue(names.contains(qname4));
+ assertTrue(names.contains(qname5));
+ assertTrue(names.contains(qname6));
+
+ TransactionAssert.commitTransaction();
+ }
+
+ public void testRemoveAliasBinding() throws Exception
+ {
+ TransactionAssert.beginTransaction();
+
+ Page page1 = getPage1();
+
+ QName qname1 = new QName("nm1", "local1");
+ QName qname2 = new QName("nm2", "local2");
+ QName qname3 = new QName("nm3", "local3");
+ QName qname4 = new QName("nm4", "local4");
+ QName qname5 = new QName("nm5", "local5");
+ QName qname6 = new QName("nm6", "local6");
+
+ HashSet<QName> qnames1 = new HashSet<QName>();
+ qnames1.add(qname1);
+ qnames1.add(qname2);
+ qnames1.add(qname3);
+
+ HashSet<QName> qnames2 = new HashSet<QName>();
+ qnames2.add(qname4);
+ qnames2.add(qname5);
+ qnames2.add(qname6);
+
+ cos.setAliasBinding(page1, "alias1", qnames1);
+ cos.setAliasBinding(page1, "alias2", qnames2);
+
+ Collection<AliasBindingInfo> bindings = cos.getAliasBindings(page1);
+ assertEquals(2, bindings.size());
+
+ cos.removeAliasBinding(page1, "alias1");
+ bindings = cos.getAliasBindings(page1);
+ assertEquals(1, bindings.size());
+ assertNull(cos.getAliasBinding(page1, "alias1"));
+ assertNotNull(cos.getAliasBinding(page1, "alias2"));
+
+ TransactionAssert.commitTransaction();
+ }
+
+
public void testRenameEventWiring() throws IllegalCoordinationException
{
TransactionAssert.beginTransaction();
@@ -699,6 +790,11 @@
info = bindings1.iterator().next();
assertEquals("new", info.getName());
+ cos.renameAliasBinding(page1, "new", "newer");
+
+ info = cos.getAliasBinding(page1, "newer");
+ assertNotNull(info);
+
TransactionAssert.commitTransaction();
}
More information about the portal-commits
mailing list