Author: chris.laprun(a)jboss.com
Date: 2010-02-09 17:46:56 -0500 (Tue, 09 Feb 2010)
New Revision: 1598
Modified:
portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/RegistrationPropertiesMapping.java
portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/wsrp/producer-registrations-nodetypes.xml
Log:
- Added residual properties on wsrp:registrationproperties so that we can add arbitrary
registration properties and retrieve them in a Map. We do
however need (until @Properties supports scoping) to filter properties when building
them back from JCR as we will also retrieve JCR-internal
properties that way.
Modified:
portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/RegistrationPropertiesMapping.java
===================================================================
---
portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/RegistrationPropertiesMapping.java 2010-02-09
22:38:46 UTC (rev 1597)
+++
portal/trunk/component/wsrp/src/main/java/org/gatein/portal/wsrp/state/producer/registrations/mapping/RegistrationPropertiesMapping.java 2010-02-09
22:46:56 UTC (rev 1598)
@@ -1,34 +1,37 @@
/*
-* JBoss, a division of Red Hat
-* Copyright 2008, Red Hat Middleware, LLC, and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
-*/
+ * JBoss, a division of Red Hat
+ * Copyright 2010, Red Hat Middleware, LLC, and individual
+ * contributors as indicated by the @authors tag. See the
+ * copyright.txt in the distribution for a full listing of
+ * individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
package org.gatein.portal.wsrp.state.producer.registrations.mapping;
import org.chromattic.api.annotations.PrimaryType;
import org.chromattic.api.annotations.Properties;
+import org.exoplatform.commons.utils.Tools;
import javax.xml.namespace.QName;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+import java.util.Set;
/**
* @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a>
@@ -39,6 +42,9 @@
{
public static final String NODE_NAME = "wsrp:registrationproperties";
+ /** Need to ignore JCR properties for now until scoping mechanism exists on
@Properties� */
+ private static final Set<String> propertiesBlackList =
Tools.set("jcr:uuid", "jcr:primaryType");
+
@Properties
public abstract Map<String, String> getProperties();
@@ -51,7 +57,12 @@
properties = new HashMap<QName, Object>(propMap.size());
for (Map.Entry<String, String> entry : propMap.entrySet())
{
- properties.put(QName.valueOf(entry.getKey()), entry.getValue());
+ String key = entry.getKey();
+ // ignore JCR-specific properties
+ if (!propertiesBlackList.contains(key))
+ {
+ properties.put(QName.valueOf(key), entry.getValue());
+ }
}
}
@@ -60,7 +71,7 @@
public void initFrom(Map<QName, Object> properties)
{
- if(properties != null)
+ if (properties != null)
{
Map<String, String> map = getProperties();
Modified:
portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/wsrp/producer-registrations-nodetypes.xml
===================================================================
---
portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/wsrp/producer-registrations-nodetypes.xml 2010-02-09
22:38:46 UTC (rev 1597)
+++
portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/wsrp/producer-registrations-nodetypes.xml 2010-02-09
22:46:56 UTC (rev 1598)
@@ -2,7 +2,7 @@
<!--
~ JBoss, a division of Red Hat
- ~ Copyright 2009, Red Hat Middleware, LLC, and individual
+ ~ Copyright 2010, Red Hat Middleware, LLC, and individual
~ contributors as indicated by the @authors tag. See the
~ copyright.txt in the distribution for a full listing of
~ individual contributors.
@@ -118,8 +118,7 @@
</propertyDefinitions>
<childNodeDefinitions>
<childNodeDefinition name="properties"
defaultPrimaryType="wsrp:registrationproperties" autoCreated="false"
- mandatory="false"
- onParentVersion="COPY"
protected="false" sameNameSiblings="false">
+ mandatory="false"
onParentVersion="COPY" protected="false"
sameNameSiblings="false">
<requiredPrimaryTypes>
<requiredPrimaryType>wsrp:registrationproperties</requiredPrimaryType>
</requiredPrimaryTypes>
@@ -127,12 +126,18 @@
</childNodeDefinitions>
</nodeType>
- <nodeType name="wsrp:registrationproperties" isMixin="false"
hasOrderableChildNodes="true"
- primaryItemName="">
+ <nodeType name="wsrp:registrationproperties" isMixin="false"
hasOrderableChildNodes="true" primaryItemName="">
<supertypes>
<supertype>nt:base</supertype>
<supertype>mix:referenceable</supertype>
</supertypes>
+ <!-- residual properties so that we can store an arbritrary number of
registration properties -->
+ <propertyDefinitions>
+ <propertyDefinition name="*" requiredType="undefined"
autoCreated="false" mandatory="false"
+ onParentVersion="COPY" protected="false"
multiple="false">
+ <valueConstraints/>
+ </propertyDefinition>
+ </propertyDefinitions>
</nodeType>
<nodeType name="wsrp:consumergroup" isMixin="false"
hasOrderableChildNodes="true" primaryItemName="">