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