[portal-commits] JBoss Portal SVN: r8918 - in branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal: wsrp/producer/config and 2 other directories.
portal-commits at lists.jboss.org
portal-commits at lists.jboss.org
Tue Nov 13 18:55:03 EST 2007
Author: chris.laprun at jboss.com
Date: 2007-11-13 18:55:03 -0500 (Tue, 13 Nov 2007)
New Revision: 8918
Modified:
branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/test/wsrp/other/RegistrationPropertyDescriptionTestCase.java
branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/producer/config/ProducerRegistrationRequirements.java
branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/producer/config/impl/ProducerRegistrationRequirementsImpl.java
branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/registration/RegistrationPropertyDescription.java
Log:
- Properly update the parent when a RegistrationPropertyDescription is renamed.
Modified: branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/test/wsrp/other/RegistrationPropertyDescriptionTestCase.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/test/wsrp/other/RegistrationPropertyDescriptionTestCase.java 2007-11-13 23:03:14 UTC (rev 8917)
+++ branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/test/wsrp/other/RegistrationPropertyDescriptionTestCase.java 2007-11-13 23:55:03 UTC (rev 8918)
@@ -60,6 +60,17 @@
assertTrue(parent.notifyCalled);
}
+ public void testChangingNameUpdatesParent()
+ {
+ TestParent parent = new TestParent();
+ desc.setParent(parent);
+ assertNotNull(parent.getRegistrationPropertyWith("foo"));
+
+ desc.setName(QName.valueOf("bar"));
+ assertEquals(desc, parent.getRegistrationPropertyWith("bar"));
+ assertNull(parent.getRegistrationPropertyWith("foo"));
+ }
+
public void testModifyIfNeeded()
{
String oldValue = "old";
@@ -82,6 +93,9 @@
{
private boolean notifyCalled;
+ // prop name fakes the existence of a property as only one property exists for the tests
+ private String propName = "foo";
+
void resetNotifyCalled()
{
notifyCalled = false;
@@ -138,6 +152,12 @@
public RegistrationPropertyDescription getRegistrationPropertyWith(String name)
{
+ // return desc only if it matches the name we know about (used to fake property name updates)
+ if (propName.equals(name))
+ {
+ return desc;
+ }
+
return null;
}
@@ -175,5 +195,16 @@
public void reloadPolicyFrom(String policyClassName, String validatorClassName)
{
}
+
+ public void propertyHasBeenRenamed(RegistrationPropertyDescription propertyDescription, QName oldName)
+ {
+ // fake updating the property map
+ // if the old name was foo...
+ if ("foo".equals(oldName.getLocalPart()))
+ {
+ // then set the prop name to the new property name
+ propName = propertyDescription.getName().getLocalPart();
+ }
+ }
}
}
Modified: branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/producer/config/ProducerRegistrationRequirements.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/producer/config/ProducerRegistrationRequirements.java 2007-11-13 23:03:14 UTC (rev 8917)
+++ branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/producer/config/ProducerRegistrationRequirements.java 2007-11-13 23:55:03 UTC (rev 8918)
@@ -79,4 +79,6 @@
RegistrationPolicy getPolicy();
void reloadPolicyFrom(String policyClassName, String validatorClassName);
+
+ void propertyHasBeenRenamed(RegistrationPropertyDescription propertyDescription, QName oldName);
}
Modified: branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/producer/config/impl/ProducerRegistrationRequirementsImpl.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/producer/config/impl/ProducerRegistrationRequirementsImpl.java 2007-11-13 23:03:14 UTC (rev 8917)
+++ branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/producer/config/impl/ProducerRegistrationRequirementsImpl.java 2007-11-13 23:55:03 UTC (rev 8918)
@@ -286,7 +286,22 @@
}
}
+ public void propertyHasBeenRenamed(RegistrationPropertyDescription propertyDescription, QName oldName)
+ {
+ ParameterValidation.throwIllegalArgExceptionIfNull(propertyDescription, "RegistrationPropertyDescription");
+ ParameterValidation.throwIllegalArgExceptionIfNull(oldName, "property old name");
+ if (registrationProperties.containsKey(oldName))
+ {
+ synchronized (this)
+ {
+ registrationProperties.remove(oldName);
+ registrationProperties.put(propertyDescription.getName(), propertyDescription);
+ }
+ }
+ }
+
+
public void setPolicyClassName(String policyClassName)
{
this.policyClassName = policyClassName;
Modified: branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/registration/RegistrationPropertyDescription.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/registration/RegistrationPropertyDescription.java 2007-11-13 23:03:14 UTC (rev 8917)
+++ branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/registration/RegistrationPropertyDescription.java 2007-11-13 23:55:03 UTC (rev 8918)
@@ -166,7 +166,16 @@
public void setName(QName name)
{
- this.name = (QName)modifyIfNeeded(this.name, name);
+ if (valueWillBeUpdated(this.name, name))
+ {
+ QName oldName = this.name;
+ this.name = name;
+ if (parent != null)
+ {
+ parent.notifyRegistrationPropertyChangeListeners();
+ parent.propertyHasBeenRenamed(this, oldName);
+ }
+ }
}
public QName getType()
@@ -320,7 +329,7 @@
public Object modifyIfNeeded(Object oldValue, Object newValue)
{
- if ((oldValue != null && !oldValue.equals(newValue)) || (oldValue == null && newValue != null))
+ if (valueWillBeUpdated(oldValue, newValue))
{
oldValue = newValue;
notifyParentOfChangeIfNeeded();
@@ -329,6 +338,11 @@
return oldValue;
}
+ private boolean valueWillBeUpdated(Object oldValue, Object newValue)
+ {
+ return (oldValue != null && !oldValue.equals(newValue)) || (oldValue == null && newValue != null);
+ }
+
/**
* Tries to heuristically determine the language for this RegistrationPropertyDescription
*
More information about the portal-commits
mailing list