You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by we...@apache.org on 2004/06/18 22:40:24 UTC
cvs commit: jakarta-jetspeed-2/components/prefs/src/java/org/apache/jetspeed/prefs PreferencesProvider.java
weaver 2004/06/18 13:40:24
Modified: components/prefs/src/test/org/apache/jetspeed/prefs
TestPropertyManager.java TestPreferences.java
components/prefs/src/java/org/apache/jetspeed/prefs/impl
PreferencesProviderImpl.java PreferencesImpl.java
PreferencesFactoryImpl.java
PropertyManagerImpl.java
components/prefs/src/java/org/apache/jetspeed/prefs
PreferencesProvider.java
Log:
Preferences impl can now turn property manager validation on/off
Revision Changes Path
1.16 +1 -1 jakarta-jetspeed-2/components/prefs/src/test/org/apache/jetspeed/prefs/TestPropertyManager.java
Index: TestPropertyManager.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/components/prefs/src/test/org/apache/jetspeed/prefs/TestPropertyManager.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- TestPropertyManager.java 27 May 2004 19:32:26 -0000 1.15
+++ TestPropertyManager.java 18 Jun 2004 20:40:24 -0000 1.16
@@ -63,7 +63,7 @@
{
super.setUp();
pms =new PropertyManagerImpl(persistenceStore);
- provider = new PreferencesProviderImpl(persistenceStore, "org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl");
+ provider = new PreferencesProviderImpl(persistenceStore, "org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl", true);
// Class.forName("org.apache.jetspeed.prefs.impl.PreferencesImpl");
}
1.15 +30 -1 jakarta-jetspeed-2/components/prefs/src/test/org/apache/jetspeed/prefs/TestPreferences.java
Index: TestPreferences.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/components/prefs/src/test/org/apache/jetspeed/prefs/TestPreferences.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- TestPreferences.java 27 May 2004 19:32:26 -0000 1.14
+++ TestPreferences.java 18 Jun 2004 20:40:24 -0000 1.15
@@ -62,7 +62,7 @@
{
super.setUp();
pms = new PropertyManagerImpl(persistenceStore);
- provider = new PreferencesProviderImpl(persistenceStore, "org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl");
+ provider = new PreferencesProviderImpl(persistenceStore, "org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl", true);
}
/**
@@ -85,6 +85,8 @@
*/
public void testUserRoot()
{
+ pms = new PropertyManagerImpl(persistenceStore);
+ provider = new PreferencesProviderImpl(persistenceStore, "org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl", true);
Preferences prefs = Preferences.userRoot();
if (null != prefs)
{
@@ -95,12 +97,27 @@
assertTrue("expected user root == '/', " + prefs, false);
}
}
+
+ public void testSansPropertyManager()
+ {
+ pms = new PropertyManagerImpl(persistenceStore);
+ provider = new PreferencesProviderImpl(persistenceStore, "org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl", false);
+ Preferences pref0 = Preferences.userRoot();
+ // Test that the property manager is off
+ Preferences pref1 = pref0.node("testOpenNode");
+ pref1.put("0", "I am 0 key");
+
+ assertNotNull(pref1.get("0", null));
+
+ }
/**
* <p>Test system root.</p>
*/
public void testSystemRoot()
{
+ pms = new PropertyManagerImpl(persistenceStore);
+ provider = new PreferencesProviderImpl(persistenceStore, "org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl", true);
Preferences prefs = Preferences.systemRoot();
if (null != prefs)
{
@@ -117,6 +134,8 @@
*/
public void testNodeAndChildrenNames()
{
+ pms = new PropertyManagerImpl(persistenceStore);
+ provider = new PreferencesProviderImpl(persistenceStore, "org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl", true);
Preferences prefs = Preferences.userRoot();
// Test without children.
try
@@ -168,6 +187,9 @@
{
assertTrue("backing store exception: " + bse, false);
}
+
+
+
}
/**
@@ -176,6 +198,8 @@
*/
public void testPropertyAndPropertyKeys()
{
+ pms = new PropertyManagerImpl(persistenceStore);
+ provider = new PreferencesProviderImpl(persistenceStore, "org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl", true);
// 1. Current node does not have any property associated to it.
// No property has been defined nor added to the node. There should be
@@ -235,6 +259,8 @@
{
assertTrue("backing store exception: " + bse, false);
}
+
+
}
/**
@@ -282,6 +308,7 @@
Preferences.userRoot().node("/user").removeNode();
Preferences.userRoot().node("/an1").removeNode();
Preferences.userRoot().node("/rn1").removeNode();
+ Preferences.userRoot().node("/testOpenNode").removeNode();
}
catch (PropertyException pex)
{
@@ -292,5 +319,7 @@
System.out.println("BackingStoreException" + bse);
}
}
+
+
}
1.5 +62 -3 jakarta-jetspeed-2/components/prefs/src/java/org/apache/jetspeed/prefs/impl/PreferencesProviderImpl.java
Index: PreferencesProviderImpl.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/components/prefs/src/java/org/apache/jetspeed/prefs/impl/PreferencesProviderImpl.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- PreferencesProviderImpl.java 27 May 2004 19:30:45 -0000 1.4
+++ PreferencesProviderImpl.java 18 Jun 2004 20:40:24 -0000 1.5
@@ -18,12 +18,13 @@
import org.apache.commons.logging.LogFactory;
import org.apache.jetspeed.components.persistence.store.PersistenceStore;
import org.apache.jetspeed.prefs.PreferencesProvider;
+import org.picocontainer.Startable;
/**
* @author <a href="">David Le Strat</a>
*
*/
-public class PreferencesProviderImpl implements PreferencesProvider
+public class PreferencesProviderImpl implements PreferencesProvider, Startable
{
/** Logger. */
private static final Log log = LogFactory.getLog(PreferencesProviderImpl.class);
@@ -33,19 +34,35 @@
private PersistenceStore persistenceStore;
+
+ private boolean enablePropertyManager;
+
+ // private List ignoredPathes;
/**
* <p>Constructor providing the {@link PersistenceStore}
* and store key name and the {@link java.util.prefs.PreferencesFactory}.</p>
*/
- public PreferencesProviderImpl(PersistenceStore persistenceStore, String prefsFactoryImpl)
+ public PreferencesProviderImpl(PersistenceStore persistenceStore, String prefsFactoryImpl, boolean enablePropertyManager)
{
if (log.isDebugEnabled()) log.debug("Constructing PreferencesProviderImpl...");
this.persistenceStore = persistenceStore;
System.setProperty("java.util.prefs.PreferencesFactory", prefsFactoryImpl);
PreferencesProviderImpl.prefProvider = this;
-
+ this.enablePropertyManager = enablePropertyManager;
+// if(ignoredPathes != null)
+// {
+// this.ignoredPathes = Arrays.asList(ignoredPathes);
+// }
+// else
+// {
+// this.ignoredPathes = new ArrayList(0);
+// }
+
+
}
+
+
@@ -55,5 +72,47 @@
public PersistenceStore getPersistenceStore()
{
return persistenceStore;
+ }
+
+
+
+
+ /**
+ * <p>
+ * isPropertyManagerEnabled
+ * </p>
+ *
+ * @see org.apache.jetspeed.prefs.PreferencesProvider#isPropertyManagerEnabled()
+ * @return
+ */
+ public boolean isPropertyManagerEnabled()
+ {
+ return enablePropertyManager;
+ }
+ /**
+ * <p>
+ * start
+ * </p>
+ *
+ * @see org.picocontainer.Startable#start()
+ *
+ */
+ public void start()
+ {
+ // This will make sure that we are loaded into the vm immediately
+
+ }
+ /**
+ * <p>
+ * stop
+ * </p>
+ *
+ * @see org.picocontainer.Startable#stop()
+ *
+ */
+ public void stop()
+ {
+
+
}
}
1.11 +27 -26 jakarta-jetspeed-2/components/prefs/src/java/org/apache/jetspeed/prefs/impl/PreferencesImpl.java
Index: PreferencesImpl.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/components/prefs/src/java/org/apache/jetspeed/prefs/impl/PreferencesImpl.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- PreferencesImpl.java 27 May 2004 19:30:45 -0000 1.10
+++ PreferencesImpl.java 18 Jun 2004 20:40:24 -0000 1.11
@@ -24,7 +24,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.jetspeed.components.ComponentManager;
import org.apache.jetspeed.components.persistence.store.PersistenceStore;
import org.apache.jetspeed.prefs.PreferencesProvider;
import org.apache.jetspeed.prefs.om.Node;
@@ -32,6 +31,7 @@
import org.apache.jetspeed.prefs.om.PropertyKey;
import org.apache.jetspeed.prefs.om.impl.NodeImpl;
import org.apache.jetspeed.prefs.om.impl.PropertyImpl;
+import org.apache.jetspeed.prefs.om.impl.PropertyKeyImpl;
/**
* <p>{@link Preferences} implementation relying on Jetspeed
@@ -43,13 +43,11 @@
{
/** User <tt>Preferences<tt> node type. */
- private static final int USER_NODE_TYPE = 0;
+ public static final int USER_NODE_TYPE = 0;
/** System <tt>Preferences</tt> node type. */
- private static final int SYSTEM_NODE_TYPE = 1;
+ public static final int SYSTEM_NODE_TYPE = 1;
- /** The component manager. */
- private ComponentManager cm;
/** Common queries. **/
@@ -84,14 +82,11 @@
private static final int ERROR_NODE_CREATION_FAILED = 3;
private static final int ERROR_PARENT_NOT_FOUND = 4;
- /** User root node. */
- static Preferences userRoot = new PreferencesImpl(null, "", USER_NODE_TYPE);
-
- /** System root node. */
- static Preferences systemRoot = new PreferencesImpl(null, "", SYSTEM_NODE_TYPE);
-
+
protected PersistenceStore persistenceStore;
+ protected PreferencesProvider prefProvider;
+
/**
* <p>Constructs a root node in the underlying
* datastore if they have not yet been created.</p>
@@ -107,7 +102,7 @@
if (log.isDebugEnabled())
log.debug("Constructing node: " + nodeName);
- PreferencesProvider prefProvider = PreferencesProviderImpl.prefProvider;
+ prefProvider = PreferencesProviderImpl.prefProvider;
persistenceStore = prefProvider.getPersistenceStore();
this.commonQueries = new CommonQueries(persistenceStore);
@@ -418,7 +413,7 @@
log.error("Could not retrieve node property: [key: " + key + ", value:" + value + "]");
return;
}
- ArrayList newProperties = new ArrayList(properties.size() + 1);
+
boolean foundProp = false;
boolean foundKey = false;
// First if the property exists, update its value.
@@ -435,11 +430,11 @@
curProp.setPropertyValue(curProp.getPropertyKey().getPropertyKeyType(), value);
curProp.setModifiedDate(new Timestamp(System.currentTimeMillis()));
}
- newProperties.add(curProp);
+
}
// The property does not already exist. Create a new property, if
// the property key exits and is associated to this node.
- if (!foundProp)
+ if (prefProvider.isPropertyManagerEnabled() && !foundProp)
{
for (Iterator i = nodeKeys.iterator(); i.hasNext();)
{
@@ -450,11 +445,20 @@
if (log.isDebugEnabled())
log.debug("New property value: [" + key + ", " + value + "]");
- newProperties.add(
+ properties.add(
new PropertyImpl(nodeObj.getNodeId(), curpk.getPropertyKeyId(), curpk, curpk.getPropertyKeyType(), value));
}
}
}
+ else if (!prefProvider.isPropertyManagerEnabled() && !foundProp)
+ {
+ foundKey = true;
+ PropertyKey pKey = new PropertyKeyImpl(key, Property.STRING_TYPE);
+ properties.add(
+ new PropertyImpl(nodeObj.getNodeId(), pKey.getPropertyKeyId(), pKey, pKey.getPropertyKeyType(), value));
+
+ }
+
if (!foundKey)
{
if (log.isWarnEnabled())
@@ -464,15 +468,12 @@
// Update node.
PersistenceStore store = getPersistenceStore();
if (log.isDebugEnabled())
- log.debug("Updated properties: " + newProperties.size());
- // What's going on.
- if (newProperties.size() > 0)
- log.debug("Properties: " + ((Property) newProperties.get(0)).toString());
-
+ log.debug("Updated properties: " + properties.size());
+
try
{
store.lockForWrite(nodeObj);
- nodeObj.setNodeProperties(newProperties);
+
nodeObj.setModifiedDate(new Timestamp(System.currentTimeMillis()));
if (log.isDebugEnabled())
log.debug("Node for update: " + nodeObj.toString());
@@ -538,13 +539,14 @@
// Get the property set def.
Node nodeObj = (Node) nodeResult[NODE];
Collection properties = nodeObj.getNodeProperties();
- ArrayList newProperties = new ArrayList(properties.size());
+
for (Iterator i = properties.iterator(); i.hasNext();)
{
Property curProp = (Property) i.next();
- if (!(curProp.getPropertyKey().getPropertyKeyName().equals(key)))
+
+ if ((curProp.getPropertyKey().getPropertyKeyName().equals(key)))
{
- newProperties.add(curProp);
+ i.remove();
}
}
// Update node.
@@ -552,7 +554,6 @@
try
{
store.lockForWrite(nodeObj);
- nodeObj.setNodeProperties(newProperties);
nodeObj.setModifiedDate(new Timestamp(System.currentTimeMillis()));
store.getTransaction().checkpoint();
}
1.2 +25 -2 jakarta-jetspeed-2/components/prefs/src/java/org/apache/jetspeed/prefs/impl/PreferencesFactoryImpl.java
Index: PreferencesFactoryImpl.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/components/prefs/src/java/org/apache/jetspeed/prefs/impl/PreferencesFactoryImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PreferencesFactoryImpl.java 26 Feb 2004 04:30:46 -0000 1.1
+++ PreferencesFactoryImpl.java 18 Jun 2004 20:40:24 -0000 1.2
@@ -25,13 +25,26 @@
*/
public class PreferencesFactoryImpl implements PreferencesFactory
{
+ static Preferences userRoot;
+
+ static Preferences systemRoot;
+
+ public PreferencesFactoryImpl()
+ {
+ systemRoot();
+ userRoot();
+ }
/**
* @see java.util.prefs.PreferencesFactory#systemRoot()
*/
public Preferences systemRoot()
{
- return PreferencesImpl.systemRoot;
+ if(systemRoot == null)
+ {
+ systemRoot = new PreferencesImpl(null, "", PreferencesImpl.SYSTEM_NODE_TYPE);
+ }
+ return systemRoot;
}
/**
@@ -39,7 +52,17 @@
*/
public Preferences userRoot()
{
- return PreferencesImpl.userRoot;
+ if(userRoot == null)
+ {
+ userRoot = new PreferencesImpl(null, "", PreferencesImpl.USER_NODE_TYPE);
+ }
+ return userRoot;
+ }
+
+ public void reset()
+ {
+ systemRoot = new PreferencesImpl(null, "", PreferencesImpl.SYSTEM_NODE_TYPE);
+ userRoot = new PreferencesImpl(null, "", PreferencesImpl.USER_NODE_TYPE);
}
}
1.8 +4 -1 jakarta-jetspeed-2/components/prefs/src/java/org/apache/jetspeed/prefs/impl/PropertyManagerImpl.java
Index: PropertyManagerImpl.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/components/prefs/src/java/org/apache/jetspeed/prefs/impl/PropertyManagerImpl.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- PropertyManagerImpl.java 5 Jun 2004 16:52:52 -0000 1.7
+++ PropertyManagerImpl.java 18 Jun 2004 20:40:24 -0000 1.8
@@ -54,6 +54,8 @@
private CommonQueries commonQueries;
private PersistenceStore persistenceStore;
+
+
/**
* <p>
@@ -66,6 +68,8 @@
{
throw new IllegalArgumentException("persistenceStore cannot be null for PropertyManagerImpl");
}
+
+
this.persistenceStore = persistenceStore;
this.commonQueries = new CommonQueries(persistenceStore);
@@ -309,5 +313,4 @@
throw new PropertyException(PropertyException.NODE_NOT_FOUND);
}
}
-
}
1.3 +3 -1 jakarta-jetspeed-2/components/prefs/src/java/org/apache/jetspeed/prefs/PreferencesProvider.java
Index: PreferencesProvider.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/components/prefs/src/java/org/apache/jetspeed/prefs/PreferencesProvider.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PreferencesProvider.java 27 May 2004 19:29:24 -0000 1.2
+++ PreferencesProvider.java 18 Jun 2004 20:40:24 -0000 1.3
@@ -26,6 +26,8 @@
*/
public interface PreferencesProvider
{
- PersistenceStore getPersistenceStore();
+ PersistenceStore getPersistenceStore();
+
+ boolean isPropertyManagerEnabled();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org