[portal-commits] JBoss Portal SVN: r11957 - in branches/JBoss_Portal_Branch_2_7: wsrp/src/main/org/jboss/portal/test/wsrp/consumer and 1 other directories.
portal-commits at lists.jboss.org
portal-commits at lists.jboss.org
Wed Sep 24 03:54:40 EDT 2008
Author: chris.laprun at jboss.com
Date: 2008-09-24 03:54:40 -0400 (Wed, 24 Sep 2008)
New Revision: 11957
Modified:
branches/JBoss_Portal_Branch_2_7/core-wsrp/src/main/org/jboss/portal/wsrp/admin/ui/ConsumerBean.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/RegistrationInfoTestCase.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RegistrationInfo.java
Log:
- Renamed *Modified to *ModifiedSinceLastRefresh since it fits semantics better.
- Added isModifyRegistrationNeeded to handle most of the modifyRegistration checking logic to RegistrationInfo.
- Added tests.
Modified: branches/JBoss_Portal_Branch_2_7/core-wsrp/src/main/org/jboss/portal/wsrp/admin/ui/ConsumerBean.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/core-wsrp/src/main/org/jboss/portal/wsrp/admin/ui/ConsumerBean.java 2008-09-23 21:28:50 UTC (rev 11956)
+++ branches/JBoss_Portal_Branch_2_7/core-wsrp/src/main/org/jboss/portal/wsrp/admin/ui/ConsumerBean.java 2008-09-24 07:54:40 UTC (rev 11957)
@@ -403,7 +403,7 @@
if (!isRegistrationLocallyModified())
{
IllegalStateException e =
- new IllegalStateException("Registration not locally modified: there should be expected registration from producer!");
+ new IllegalStateException("Registration not locally modified: there should be expected registration from producer!");
log.debug(e);
throw e;
}
@@ -412,11 +412,11 @@
try
{
// todo: this should be done better cf regPropListener
- newReg.setModified(true); // mark as modified to force refresh of RegistrationData
+ newReg.setModifiedSinceLastRefresh(true); // mark as modified to force refresh of RegistrationData
// attempt to modify the registration using new registration info
info.setRegistrationInfo(newReg);
info.modifyRegistration();
- newReg.setModified(false);
+ newReg.setModifiedSinceLastRefresh(false);
registrationLocallyModified = false;
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/RegistrationInfoTestCase.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/RegistrationInfoTestCase.java 2008-09-23 21:28:50 UTC (rev 11956)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/RegistrationInfoTestCase.java 2008-09-24 07:54:40 UTC (rev 11957)
@@ -70,7 +70,8 @@
// and we don't know if the registration is valid
assertNull(info.isRegistrationValid());
- assertFalse(info.isModified());
+ assertFalse(info.isModifiedSinceLastRefresh());
+ assertFalse(info.isModifyRegistrationNeeded());
try
{
@@ -98,7 +99,8 @@
// check status
assertNull(info.isConsistentWithProducerExpectations());
- assertTrue(info.isModified());
+ assertTrue(info.isModifiedSinceLastRefresh());
+ assertTrue(info.isModifyRegistrationNeeded());
Map properties = info.getRegistrationProperties();
assertFalse(properties.isEmpty());
@@ -120,7 +122,8 @@
RegistrationProperty prop = info.getRegistrationProperty("prop0");
assertNull(prop.isInvalid());
assertFalse(result.hasIssues());
- assertFalse(info.isModified());
+ assertFalse(info.isModifiedSinceLastRefresh());
+ assertFalse(info.isModifyRegistrationNeeded());
assertTrue(info.isConsistentWithProducerExpectations());
// specifiy that the prop is valid to simulate a successful registration (integration test, should have something
@@ -146,6 +149,7 @@
assertTrue(info.isRegistrationDeterminedNotRequired());
assertFalse(info.isRegistrationDeterminedRequired());
assertTrue(info.isRegistrationValid());
+ assertFalse(info.isModifyRegistrationNeeded());
result = info.refresh(sd, producerId, false, false, false);
assertNotNull(result);
@@ -155,6 +159,7 @@
assertTrue(info.isRegistrationDeterminedNotRequired());
assertFalse(info.isRegistrationDeterminedRequired());
assertTrue(info.isRegistrationValid());
+ assertFalse(info.isModifyRegistrationNeeded());
}
public void testRefreshRegistrationDefaultRegistrationNoLocalInfo()
@@ -178,13 +183,15 @@
// set a registration property
info.setRegistrationPropertyValue("foo", "bar");
+ // we were not registered so this is a failure and not a need to call modifyRegistration
RegistrationInfo.RegistrationRefreshResult result = info.refresh(
- createServiceDescription(true, 0), producerId, false, false, false);
+ createServiceDescription(true, 0), producerId, false, false, true);
assertNotNull(result);
assertTrue(result.hasIssues());
assertEquals(RefreshResult.Status.FAILURE, result.getStatus());
assertEquals(1, info.getRegistrationProperties().size());
assertEquals(1, result.getRegistrationProperties().size());
+ assertFalse(info.isModifyRegistrationNeeded());
Map regProps = result.getRegistrationProperties();
assertNotNull(regProps);
@@ -196,6 +203,34 @@
assertEquals(RegistrationProperty.Status.INEXISTENT, prop.getStatus());
}
+ public void testRefreshRegistrationDefaultRegistrationExtraLocalInfoWhileRegistered()
+ {
+ // set a registration property
+ info.setRegistrationPropertyValue("foo", "bar");
+
+ // simulate being registered
+ info.setRegistrationHandle("blah");
+
+ // we were registered so we need to call modifyRegistration, force check of extra props
+ RegistrationInfo.RegistrationRefreshResult result = info.refresh(
+ createServiceDescription(true, 0), producerId, false, false, true);
+ assertNotNull(result);
+ assertEquals(RefreshResult.Status.MODIFY_REGISTRATION_REQUIRED, result.getStatus());
+ assertTrue(result.hasIssues());
+ assertEquals(1, info.getRegistrationProperties().size());
+ assertEquals(1, result.getRegistrationProperties().size());
+ assertTrue(info.isModifyRegistrationNeeded());
+
+ Map regProps = result.getRegistrationProperties();
+ assertNotNull(regProps);
+
+ RegistrationProperty prop = (RegistrationProperty)regProps.get("foo");
+ assertNotNull(prop);
+ assertEquals("bar", prop.getValue());
+ assertTrue(prop.isInvalid());
+ assertEquals(RegistrationProperty.Status.INEXISTENT, prop.getStatus());
+ }
+
public void testRefreshRegistrationRegistrationNoLocalInfo()
{
// producer requests 2 registration properties
@@ -207,6 +242,7 @@
assertEquals(RefreshResult.Status.FAILURE, result.getStatus());
assertEquals(0, info.getRegistrationProperties().size());
assertEquals(2, result.getRegistrationProperties().size());
+ assertFalse(info.isModifyRegistrationNeeded()); // we weren't registered
Map regProps = result.getRegistrationProperties();
assertNotNull(regProps);
@@ -294,24 +330,29 @@
assertTrue(info.isRegistrationRequired());
assertTrue(info.isRegistrationDeterminedRequired());
assertFalse(info.isRegistrationDeterminedNotRequired());
+ assertFalse(info.isModifyRegistrationNeeded());
}
public void testGetRegistrationData()
{
assertNotNull(info.getRegistrationData());
- assertFalse(info.isModified());
+ assertFalse(info.isModifiedSinceLastRefresh());
+ assertFalse(info.isModifyRegistrationNeeded());
info.setRegistrationPropertyValue("prop0", "value0");
- assertTrue(info.isModified());
+ assertTrue(info.isModifiedSinceLastRefresh());
+ assertTrue(info.isModifyRegistrationNeeded());
RegistrationData registrationData = info.getRegistrationData();
checkRegistrationData(registrationData, "value0");
Property[] properties;
// check that setRegistrationValidInternalState properly updates RegistrationData if required
info.setRegistrationPropertyValue("prop0", "value1");
- assertTrue(info.isModified());
+ assertTrue(info.isModifiedSinceLastRefresh());
+ assertTrue(info.isModifyRegistrationNeeded());
info.setRegistrationValidInternalState();
- assertFalse(info.isModified());
+ assertFalse(info.isModifiedSinceLastRefresh());
+ assertFalse(info.isModifyRegistrationNeeded());
properties = info.getRegistrationData().getRegistrationProperties();
assertEquals("value1", properties[0].getStringValue());
}
@@ -365,7 +406,7 @@
assertTrue(info.isRegistrationDeterminedRequired());
assertFalse(info.isRegistrationValid());
assertFalse(info.isConsistentWithProducerExpectations());
- assertFalse(info.isModified());
+ assertFalse(info.isModifiedSinceLastRefresh());
}
private void checkRegistrationData(RegistrationData registrationData, String prop0Value)
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java 2008-09-23 21:28:50 UTC (rev 11956)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java 2008-09-24 07:54:40 UTC (rev 11957)
@@ -250,7 +250,7 @@
public boolean isModifyRegistrationRequired()
{
- return isModifyRegistrationRequired || (persistentRegistrationInfo != null && persistentRegistrationInfo.isModified());
+ return isModifyRegistrationRequired || (persistentRegistrationInfo != null && persistentRegistrationInfo.isModifiedSinceLastRefresh());
}
// FIX-ME: remove when a better dirty management is in place at property level
@@ -308,7 +308,7 @@
{
ServiceDescription serviceDescription;
- if(isModifyRegistrationRequired)
+ if (isModifyRegistrationRequired)
{
return new RefreshResult(RefreshResult.Status.MODIFY_REGISTRATION_REQUIRED);
}
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RegistrationInfo.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RegistrationInfo.java 2008-09-23 21:28:50 UTC (rev 11956)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/consumer/RegistrationInfo.java 2008-09-24 07:54:40 UTC (rev 11957)
@@ -64,7 +64,8 @@
private transient Boolean requiresRegistration;
private transient Boolean consistentWithProducerExpectations;
private transient RegistrationData registrationData;
- private transient boolean modified;
+ private transient boolean modifiedSinceLastRefresh;
+ private transient boolean modifyRegistrationNeeded;
private transient ProducerInfo parent;
public RegistrationInfo(ProducerInfo producerInfo)
@@ -154,7 +155,7 @@
public boolean isRefreshNeeded()
{
- boolean result = requiresRegistration == null || isModified();
+ boolean result = requiresRegistration == null || isModifiedSinceLastRefresh();
if (result)
{
log.debug("Refresh needed");
@@ -307,7 +308,7 @@
{
throw new IllegalArgumentException("Cannot remove inexistent registration property '" + name + "'");
}
- setModified(true);
+ setModifiedSinceLastRefresh(true);
}
private Map<String, RegistrationProperty> getOrCreateRegistrationPropertiesMap(boolean forceCreate)
@@ -402,7 +403,8 @@
{
result.setRegistrationProperties(new HashMap<String, RegistrationProperty>(persistentRegistrationProperties));
}
- setModified(false);
+ setModifiedSinceLastRefresh(false);
+ modifyRegistrationNeeded = false;
if (serviceDescription.isRequiresRegistration())
{
@@ -450,7 +452,7 @@
}
log.debug("Missing value for property '" + name + "'");
- result.setStatus(RefreshResult.Status.FAILURE);
+ setResultAsFailedOrModifyNeeded(result);
}
}
}
@@ -562,6 +564,19 @@
}
}
log.debug(message);
+ setResultAsFailedOrModifyNeeded(result);
+ }
+ }
+
+ private void setResultAsFailedOrModifyNeeded(RegistrationRefreshResult result)
+ {
+ if (persistentRegistrationHandle != null)
+ {
+ result.setStatus(RefreshResult.Status.MODIFY_REGISTRATION_REQUIRED);
+ modifyRegistrationNeeded = true;
+ }
+ else
+ {
result.setStatus(RefreshResult.Status.FAILURE);
}
}
@@ -627,7 +642,8 @@
consistentWithProducerExpectations = Boolean.TRUE; // since we have a registration context, we're consistent with the Producer
requiresRegistration = Boolean.TRUE; // we know we require registration
- setModified(false); // our state is clean :)
+ setModifiedSinceLastRefresh(false); // our state is clean :)
+ modifyRegistrationNeeded = false;
}
public RegistrationContext getRegistrationContext()
@@ -644,20 +660,26 @@
}
}
- public boolean isModified()
+ public boolean isModifyRegistrationNeeded()
{
- return modified;
+ return modifyRegistrationNeeded;
}
- public void setModified(boolean modified)
+ public boolean isModifiedSinceLastRefresh()
{
- this.modified = modified;
+ return modifiedSinceLastRefresh;
}
+ public void setModifiedSinceLastRefresh(boolean modifiedSinceLastRefresh)
+ {
+ this.modifiedSinceLastRefresh = modifiedSinceLastRefresh;
+ }
+
/** todo: Should be package-only, public for tests... */
public void propertyValueChanged(RegistrationProperty property, Object oldValue, Object newValue)
{
- setModified(true);
+ setModifiedSinceLastRefresh(true);
+ modifyRegistrationNeeded = true;
}
public class RegistrationRefreshResult extends RefreshResult
More information about the portal-commits
mailing list