Author: chris.laprun(a)jboss.com
Date: 2009-12-20 05:23:34 -0500 (Sun, 20 Dec 2009)
New Revision: 1078
Modified:
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/JCRConsumerRegistry.java
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/JCRRegistrationPersistenceManager.java
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/ConsumerCapabilitiesMapping.java
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/ConsumerMapping.java
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/RegistrationMapping.java
Log:
- If an exception occurs when we create objects, do not save when we close the session
(revert).
- Fixed ConsumerCapabilitiesMapping.initFrom that wasn't properly dealing with null
objects.
- ConsumerMapping is now keeping a list of RegistrationMappings instead of a map.
- Started fixing RegistrationMapping initFrom and toRegistration methods. Still need to
deal with how to create RegistrationPropertiesMapping.
Modified:
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/JCRConsumerRegistry.java
===================================================================
---
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/JCRConsumerRegistry.java 2009-12-20
04:23:19 UTC (rev 1077)
+++
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/consumer/JCRConsumerRegistry.java 2009-12-20
10:23:34 UTC (rev 1078)
@@ -69,13 +69,21 @@
{
ChromatticSession session = persister.getSession();
- ProducerInfosMapping pims = getProducerInfosMapping(session);
- ProducerInfoMapping pim = pims.createProducerInfo(info.getId());
- String key = session.persist(pims, pim, info.getId());
- info.setKey(key);
- pim.initFrom(info);
+ try
+ {
+ ProducerInfosMapping pims = getProducerInfosMapping(session);
+ ProducerInfoMapping pim = pims.createProducerInfo(info.getId());
+ String key = session.persist(pims, pim, info.getId());
+ info.setKey(key);
+ pim.initFrom(info);
- persister.closeSession(session, true);
+ persister.closeSession(session, true);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace(); // todo: fix me
+ persister.closeSession(session, false);
+ }
}
@Override
Modified:
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/JCRRegistrationPersistenceManager.java
===================================================================
---
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/JCRRegistrationPersistenceManager.java 2009-12-20
04:23:19 UTC (rev 1077)
+++
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/JCRRegistrationPersistenceManager.java 2009-12-20
10:23:34 UTC (rev 1078)
@@ -97,11 +97,20 @@
protected RegistrationSPI internalCreateRegistration(ConsumerSPI consumer, Map
registrationProperties)
{
ChromatticSession session = persister.getSession();
- ConsumerMapping cm = session.findById(ConsumerMapping.class,
consumer.getPersistentKey());
- RegistrationMapping rm = cm.createAndAddRegistrationMappingFrom(null);
- RegistrationSPI registration = newRegistrationSPI(consumer, registrationProperties,
rm.getPersistentKey());
- rm.initFrom(registration);
- persister.closeSession(session, true);
+ RegistrationSPI registration = null;
+ try
+ {
+ ConsumerMapping cm = session.findById(ConsumerMapping.class,
consumer.getPersistentKey());
+ RegistrationMapping rm = cm.createAndAddRegistrationMappingFrom(null);
+ registration = newRegistrationSPI(consumer, registrationProperties,
rm.getPersistentKey());
+ rm.initFrom(registration);
+ persister.closeSession(session, true);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace(); // todo fix me
+ persister.closeSession(session, false);
+ }
return registration;
}
@@ -127,10 +136,20 @@
ConsumerSPI consumer = super.internalCreateConsumer(consumerId, consumerName);
ChromatticSession session = persister.getSession();
- ConsumerMapping cm = mappings.createConsumer(consumerId);
- mappings.getConsumers().add(cm);
- cm.initFrom(consumer);
- persister.closeSession(session, true);
+ mappings = session.findByPath(ConsumersAndGroupsMapping.class,
ConsumersAndGroupsMapping.NODE_NAME); // todo: needed?
+ try
+ {
+ ConsumerMapping cm = mappings.createConsumer(consumerId);
+ mappings.getConsumers().add(cm);
+ cm.initFrom(consumer);
+ consumer.setPersistentKey(cm.getPersistentKey());
+ persister.closeSession(session, true);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace(); // todo: fix me
+ persister.closeSession(session, false);
+ }
return consumer;
}
@@ -157,11 +176,19 @@
ConsumerGroupSPI group = super.internalCreateConsumerGroup(name);
ChromatticSession session = persister.getSession();
- ConsumerGroupMapping cgm = mappings.createConsumerGroup(name);
- mappings.getConsumerGroups().add(cgm);
- group.setPersistentKey(cgm.getPersistentKey());
- cgm.initFrom(group);
- persister.closeSession(session, true);
+ try
+ {
+ ConsumerGroupMapping cgm = mappings.createConsumerGroup(name);
+ mappings.getConsumerGroups().add(cgm);
+ group.setPersistentKey(cgm.getPersistentKey());
+ cgm.initFrom(group);
+ persister.closeSession(session, true);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace(); // todo: fix me
+ persister.closeSession(session, false);
+ }
return group;
}
Modified:
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/ConsumerCapabilitiesMapping.java
===================================================================
---
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/ConsumerCapabilitiesMapping.java 2009-12-20
04:23:19 UTC (rev 1077)
+++
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/ConsumerCapabilitiesMapping.java 2009-12-20
10:23:34 UTC (rev 1078)
@@ -73,10 +73,26 @@
{
setSupportsGetMethod(capabilities.supportsGetMethod());
- setSupportedModes(convertToStringList(capabilities.getSupportedModes()));
-
setSupportedWindowStates(convertToStringList(capabilities.getSupportedWindowStates()));
- setSupportedUserScopes(capabilities.getSupportedUserScopes());
- setSupportedUserProfileData(capabilities.getSupportedUserProfileData());
+ List<String> modes = convertToStringList(capabilities.getSupportedModes());
+ if (modes != null)
+ {
+ setSupportedModes(modes);
+ }
+ List<String> states =
convertToStringList(capabilities.getSupportedWindowStates());
+ if (states != null)
+ {
+ setSupportedWindowStates(states);
+ }
+ List<String> scopes = capabilities.getSupportedUserScopes();
+ if (ParameterValidation.existsAndIsNotEmpty(scopes))
+ {
+ setSupportedUserScopes(scopes);
+ }
+ List<String> userProfileData = capabilities.getSupportedUserProfileData();
+ if (ParameterValidation.existsAndIsNotEmpty(userProfileData))
+ {
+ setSupportedUserProfileData(userProfileData);
+ }
}
private List<String> convertToStringList(List list)
Modified:
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/ConsumerMapping.java
===================================================================
---
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/ConsumerMapping.java 2009-12-20
04:23:19 UTC (rev 1077)
+++
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/ConsumerMapping.java 2009-12-20
10:23:34 UTC (rev 1078)
@@ -41,7 +41,7 @@
import org.gatein.registration.RegistrationStatus;
import org.gatein.registration.spi.ConsumerSPI;
-import java.util.Map;
+import java.util.List;
/**
* @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a>
@@ -77,10 +77,10 @@
@OneToMany
@RelatedMappedBy("consumer")
- public abstract Map<String, RegistrationMapping> getRegistrations();
+ public abstract List<RegistrationMapping> getRegistrations();
@Create
- public abstract RegistrationMapping createRegistration();
+ public abstract RegistrationMapping createRegistration(String path);
@ManyToOne(type = RelationshipType.PATH)
@MappedBy("group")
@@ -98,8 +98,8 @@
public RegistrationMapping createAndAddRegistrationMappingFrom(Registration
registration)
{
// create, add to parent then init
- RegistrationMapping rm = createRegistration();
- getRegistrations().put(rm.getPersistentKey(), rm);
+ RegistrationMapping rm = createRegistration("" + System.nanoTime());
+ getRegistrations().add(rm);
if (registration != null)
{
rm.initFrom(registration);
@@ -151,7 +151,7 @@
consumer.setGroup(persistenceManager.getConsumerGroup(cgm.getName()));
}
- for (RegistrationMapping rm : getRegistrations().values())
+ for (RegistrationMapping rm : getRegistrations())
{
consumer.addRegistration(rm.toRegistration(persistenceManager, consumer));
}
Modified:
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/RegistrationMapping.java
===================================================================
---
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/RegistrationMapping.java 2009-12-20
04:23:19 UTC (rev 1077)
+++
portal/branches/wsrp-integration/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/RegistrationMapping.java 2009-12-20
10:23:34 UTC (rev 1078)
@@ -28,6 +28,7 @@
import org.chromattic.api.annotations.NodeMapping;
import org.chromattic.api.annotations.OneToOne;
import org.chromattic.api.annotations.Property;
+import org.gatein.common.util.ParameterValidation;
import
org.gatein.portal.wsrp.state.producer.registrations.JCRRegistrationPersistenceManager;
import org.gatein.registration.Registration;
import org.gatein.registration.RegistrationException;
@@ -35,6 +36,9 @@
import org.gatein.registration.spi.ConsumerSPI;
import org.gatein.registration.spi.RegistrationSPI;
+import javax.xml.namespace.QName;
+import java.util.Map;
+
/**
* @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a>
* @version $Revision$
@@ -75,16 +79,27 @@
setStatus(registration.getStatus());
setRegistrationHandle(registration.getRegistrationHandle());
- getProperties().initFrom(registration.getProperties());
+ Map<QName, Object> properties = registration.getProperties();
+ if (ParameterValidation.existsAndIsNotEmpty(properties))
+ {
+ RegistrationPropertiesMapping rpm = getProperties(); // todo: how to create a
new one if there isn't one already?
+ rpm.initFrom(properties);
+ }
}
public RegistrationSPI toRegistration(JCRRegistrationPersistenceManager
persistenceManager, ConsumerSPI consumer) throws RegistrationException
{
- ConsumerMapping cm = getConsumer();
+ RegistrationPropertiesMapping rpm = getProperties();
+ Map<QName, Object> props = null;
+ if (rpm != null)
+ {
+ props = rpm.toPropMap();
+ }
- RegistrationSPI reg = persistenceManager.newRegistrationSPI(consumer,
getProperties().toPropMap(), getPersistentKey());
+ RegistrationSPI reg = persistenceManager.newRegistrationSPI(consumer, props,
getPersistentKey());
reg.setStatus(getStatus());
reg.setRegistrationHandle(getRegistrationHandle());
+
return reg;
}
}