Author: chris.laprun(a)jboss.com
Date: 2006-11-27 13:30:43 -0500 (Mon, 27 Nov 2006)
New Revision: 5724
Modified:
trunk/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/RegistrationTestCase.java
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/RegistrationHandler.java
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/registration/api/Registration.java
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/registration/impl/RegistrationImpl.java
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/registration/impl/RegistrationManagerImpl.java
Log:
- Implemented deregister.
- Added hook on Registration to clear associated state (to be implemented).
Modified:
trunk/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/RegistrationTestCase.java
===================================================================
---
trunk/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/RegistrationTestCase.java 2006-11-27
18:29:16 UTC (rev 5723)
+++
trunk/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/RegistrationTestCase.java 2006-11-27
18:30:43 UTC (rev 5724)
@@ -25,7 +25,10 @@
import org.jboss.portal.common.junit.ExtendedAssert;
import org.jboss.portal.wsrp.WSRPConstants;
+import org.jboss.portal.wsrp.WSRPTypeFactory;
+import org.jboss.portal.wsrp.core.GetMarkup;
import org.jboss.portal.wsrp.core.GetServiceDescription;
+import org.jboss.portal.wsrp.core.InvalidRegistrationFault;
import org.jboss.portal.wsrp.core.OperationFailedFault;
import org.jboss.portal.wsrp.core.RegistrationContext;
import org.jboss.portal.wsrp.core.RegistrationData;
@@ -83,34 +86,40 @@
registrationService.register(regData);
}
- /*public void testDeregister() throws Exception
+ public void testDeregister() throws Exception
{
// initiate registration
- initRegistrationInfo();
+ configureRegistrationSettings(false);
RegistrationContext rc = registerConsumer();
// deregister
registrationService.deregister(rc);
- // Try to get service description with the deregistered context
- GetServiceDescription gs = getNoRegistrationServiceDescriptionRequest();
- gs.setRegistrationContext(rc);
+ // try to get markup, portlet handle doesn't matter since it should fail before
trying to retrieve the portlet
+ GetMarkup getMarkup = WSRPTypeFactory.createDefaultMarkupRequest("foo");
+ getMarkup.getMarkupParams().setMarkupCharacterSets(new
String[]{WSRPConstants.DEFAULT_CHARACTER_SET});
try
{
- serviceDescriptionService.getServiceDescription(gs);
+ markupService.getMarkup(getMarkup);
ExtendedAssert.fail("Consumer tried to access info with a de-registered
context. Operations should fail.");
}
catch (InvalidRegistrationFault invalidRegistrationFault)
{
// expected
}
- }*/
+ // Get description should still work?
+ GetServiceDescription gs = getNoRegistrationServiceDescriptionRequest();
+ gs.setRegistrationContext(rc);
+
+ ExtendedAssert.assertNotNull(serviceDescriptionService.getServiceDescription(gs));
+ }
+
/*public void testModifyRegistration() throws Exception
{
// initiate registration
- initRegistrationInfo();
+ configureRegistrationSettings(false);
RegistrationContext rc = registerConsumer();
// now modify Producer's set of required registration info
Modified: trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/RegistrationHandler.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/RegistrationHandler.java 2006-11-27
18:29:16 UTC (rev 5723)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/RegistrationHandler.java 2006-11-27
18:30:43 UTC (rev 5724)
@@ -24,6 +24,7 @@
package org.jboss.portal.wsrp.producer;
import org.jboss.logging.Logger;
+import org.jboss.portal.common.util.ParameterValidation;
import org.jboss.portal.wsrp.WSRPTypeFactory;
import org.jboss.portal.wsrp.WSRPUtils;
import org.jboss.portal.wsrp.core.InvalidRegistrationFault;
@@ -38,6 +39,7 @@
import org.jboss.portal.wsrp.core.WSRP_v1_Registration_PortType;
import org.jboss.portal.wsrp.producer.registration.api.Consumer;
import org.jboss.portal.wsrp.producer.registration.api.ConsumerCapabilities;
+import org.jboss.portal.wsrp.producer.registration.api.NoSuchRegistrationException;
import org.jboss.portal.wsrp.producer.registration.api.Registration;
import org.jboss.portal.wsrp.producer.registration.api.RegistrationException;
import org.jboss.portal.wsrp.producer.registration.api.RegistrationStatus;
@@ -110,7 +112,30 @@
{
WSRPUtils.throwOperationFailedFaultIfValueIsMissing(deregister,
"RegistrationContext");
- return null; // todo: implement
+ String registrationHandle = deregister.getRegistrationHandle();
+ if (ParameterValidation.isNullOrEmpty(registrationHandle))
+ {
+ throwInvalidRegistrationFault("Null or empty registration handle");
+ }
+
+ log.debug("Attempting to deregister registration with handle '" +
registrationHandle + "'");
+
+ try
+ {
+ producer.getRegistrationManager().removeRegistration(registrationHandle);
+ }
+ catch (NoSuchRegistrationException e)
+ {
+ log.debug(e);
+ throwInvalidRegistrationFault(e.getLocalizedMessage());
+ }
+ catch (RegistrationException e)
+ {
+ log.debug(e);
+ throw WSRPUtils.createOperationFailedFault(e);
+ }
+
+ return new ReturnAny();
}
public RegistrationState modifyRegistration(ModifyRegistration modifyRegistration)
throws MissingParametersFault,
@@ -139,7 +164,7 @@
try
{
Registration reg =
producer.getRegistrationManager().getRegistration(regHandle);
- return RegistrationStatus.VALID.equals(reg.getStatus());
+ return reg != null &&
RegistrationStatus.VALID.equals(reg.getStatus());
}
catch (RegistrationException e)
{
Modified:
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/registration/api/Registration.java
===================================================================
---
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/registration/api/Registration.java 2006-11-27
18:29:16 UTC (rev 5723)
+++
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/registration/api/Registration.java 2006-11-27
18:30:43 UTC (rev 5724)
@@ -93,4 +93,7 @@
* @param status the new status
*/
void setStatus(RegistrationStatus status);
+
+ /** Clears any state (cloned portlet information, session, etc) associated with this
Registration */
+ void clearAssociatedState();
}
Modified:
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/registration/impl/RegistrationImpl.java
===================================================================
---
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/registration/impl/RegistrationImpl.java 2006-11-27
18:29:16 UTC (rev 5723)
+++
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/registration/impl/RegistrationImpl.java 2006-11-27
18:30:43 UTC (rev 5724)
@@ -148,4 +148,9 @@
this.status = status;
}
+ public void clearAssociatedState()
+ {
+ //todo: implement
+ }
+
}
Modified:
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/registration/impl/RegistrationManagerImpl.java
===================================================================
---
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/registration/impl/RegistrationManagerImpl.java 2006-11-27
18:29:16 UTC (rev 5723)
+++
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/registration/impl/RegistrationManagerImpl.java 2006-11-27
18:30:43 UTC (rev 5724)
@@ -35,6 +35,7 @@
import org.jboss.portal.wsrp.producer.registration.api.RegistrationManager;
import org.jboss.portal.wsrp.producer.registration.api.RegistrationPersistenceManager;
import org.jboss.portal.wsrp.producer.registration.api.RegistrationPolicy;
+import org.jboss.portal.wsrp.producer.registration.api.RegistrationStatus;
import java.util.ArrayList;
import java.util.Collection;
@@ -243,17 +244,12 @@
removeRegistration(registration);
}
- public void removeRegistration(Registration registration) throws
RegistrationException, NoSuchRegistrationException
+ public void removeRegistration(Registration registration) throws
RegistrationException
{
ParameterValidation.throwIllegalArgExceptionIfNull(registration,
"Registration");
- String handle = registration.getRegistrationHandle();
- Consumer consumer = getConsumerFor(handle);
- if (consumer == null)
- {
- throw new NoSuchRegistrationException("Could not locate a Consumer for
Registration with handle '" + handle
- + "' (id: '" + registration.getId() + "')");
- }
+ registration.setStatus(RegistrationStatus.INVALID); // just in case...
+ registration.clearAssociatedState();
persistenceManager.removeRegistration(registration.getId());
registrations.remove(registration.getRegistrationHandle());
Show replies by date