You are viewing a plain text version of this content. The canonical link for it is here.
Posted to graffito-commits@incubator.apache.org by cl...@apache.org on 2005/09/21 18:51:00 UTC

svn commit: r290788 - in /incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence: PersistenceManager.java impl/PersistenceManagerImpl.java

Author: clombart
Date: Wed Sep 21 11:50:55 2005
New Revision: 290788

URL: http://svn.apache.org/viewcvs?rev=290788&view=rev
Log:
Change the repository manager API

Modified:
    incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java
    incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java

Modified: incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java?rev=290788&r1=290787&r2=290788&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java (original)
+++ incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java Wed Sep 21 11:50:55 2005
@@ -15,9 +15,6 @@
  */
 package org.apache.portals.graffito.jcr.persistence;
 
-import javax.jcr.Repository;
-import javax.jcr.Session;
-
 import org.apache.portals.graffito.jcr.exception.JcrMappingException;
 
 /**
@@ -30,31 +27,7 @@
  */
 public interface PersistenceManager
 {
-    /** 
-     * This method creates the graffito namespaces and custom node types
-     *  required for running a graffito managed jcr repository.
-     * 
-     * @throws JcrMappingException JcrMappingException
-     */
-    public void setupRepository() throws JcrMappingException;
-    /**
-     * 
-     * @return The JCR repository object
-     */
-    public Repository getRepository();
-
-    /**
-     * 
-     * @return The associated JCR session 
-     */
-    public Session getSession();
-
-    /**
-     * 
-     * @return The user name
-     */
-    public String getUser();
-
+    
     /**
      * Check if an item exists
      * @param path the JCR item path
@@ -94,18 +67,11 @@
      * @throws org.apache.portals.graffito.jcr.exception.JcrMappingException 
      */
     public void remove(String path) throws JcrMappingException;
-        
-    /** 
-     * Getter for property jcrCustomNodeTypeCreator.
-     * 
-     * @return jcrCustomNodeTypeCreator
-     */
-    public CustomNodeTypeCreator getJcrCustomNodeTypeCreator();
-
-    /** 
-     * Setter for property jcrCustomNodeTypeCreator.
-     * 
-     * @param object CustomNodeTypeCreator
+    
+    
+    /**
+     * Close the JCR session    
      */
-    public void setJcrCustomNodeTypeCreator(CustomNodeTypeCreator object);
+    public void logout() throws JcrMappingException;
+        
 }

Modified: incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java?rev=290788&r1=290787&r2=290788&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java (original)
+++ incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java Wed Sep 21 11:50:55 2005
@@ -44,19 +44,15 @@
     private final static Log log = LogFactory.getLog(PersistenceManagerImpl.class);    
     
    
-    /** Jackrabbit jcr repository.
+    /** 
+     * Jackrabbit jcr repository.
      */
     private Repository repository;
     
     /** Jackrabbit jcr session.
      */
     private Session session;
-       
-
-    /** Custom node type creator dependency needed during repository setup.
-     */
-    private CustomNodeTypeCreator jcrCustomNodeTypeCreator;
-    
+           
     /**
      * The Mapper component
      */
@@ -72,13 +68,7 @@
      */
     private ObjectConverter objectConverter;
     
-    /** Graffito namespace prefix constant.
-     */
-    private static final String GRAFFITO_NAMESPACE_PREFIX   = "graffito";
 
-    /** Graffito namespace constant.
-     */
-    private static final String GRAFFITO_NAMESPACE          = "http://incubator.apache.org/graffito";
 
     /**
      * Contructor for setting up a session to interact with a jcr repository. 
@@ -86,10 +76,10 @@
      * @param mapper the Mapper component
      * @param repository The JCR repository reference
      * @param session The JCR Session
-     * @param jcrCustomNodeTypeCreator Custom node type creator
+     * 
      * @throws JcrMappingException when it is impossible to create the PersistenceManager
      */
-    public PersistenceManagerImpl(Mapper mapper, Repository repository, Session session, CustomNodeTypeCreator jcrCustomNodeTypeCreator) throws JcrMappingException
+    public PersistenceManagerImpl(Mapper mapper, Repository repository, Session session) throws JcrMappingException
     {
        try
        {
@@ -97,9 +87,7 @@
         this.repository = repository;
         this.session = session;
         this.atomicTypeConverterFactory = AtomicTypeConverterFactory.getInstance(session.getValueFactory());
-        this.objectConverter = new ObjectConverter(mapper, atomicTypeConverterFactory);
-        this.jcrCustomNodeTypeCreator = jcrCustomNodeTypeCreator;
-        
+        this.objectConverter = new ObjectConverter(mapper, atomicTypeConverterFactory);                
        }
        catch(Exception e)
        {
@@ -107,75 +95,7 @@
        }
     }
     
-    /**
-     * 
-     * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#setupRepository()
-     */
-    public void setupRepository() throws JcrMappingException
-    {
-         try
-         {
-            String[] jcrNamespaces = getSession().getWorkspace().getNamespaceRegistry().getPrefixes();
-            boolean createGraffitoNamespace = true;
-            for (int i = 0; i < jcrNamespaces.length; i++)
-            {
-                if (jcrNamespaces[i].equals(GRAFFITO_NAMESPACE_PREFIX))
-                {
-                    createGraffitoNamespace = false;
-                    log.debug("Graffito namespace exists.");
-                }
-            }
-             
-            if (createGraffitoNamespace)
-            {
-                getSession().getWorkspace().getNamespaceRegistry().registerNamespace(GRAFFITO_NAMESPACE_PREFIX, GRAFFITO_NAMESPACE);
-                log.info("Successfully created graffito namespace.");
-            }
-            
-            if (getSession().getRootNode() != null)
-            {
-                log.info("Jcr repository setup successfull.");
-            }
-            
-//            if (getJcrCustomNodeTypeCreator().createInitialJcrCustomNodeTypes())
-//            {
-//                log.info("Jcr custom node type creation successful.");
-//            }
-        }
-        catch (Exception e)
-        {
-            log.error("Error while setting up the jcr repository.", e);
-            throw new JcrMappingException(e.getMessage());
-        }
-    }
-    
-    /**
-     * 
-     * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#getRepository()
-     */
-    public Repository getRepository()
-    {       
-        return this.repository;
-    }
-    
-    /**
-     * 
-     * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#getSession()
-     */
-    public Session getSession()
-    {
-        return this.session; 
-    }
-    
-    /**
-     * 
-     * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#getUser()
-     */
-    public String getUser()
-    {
-        return getSession().getUserID();
-    }
-    
+        
     /**
      * 
      * @see org.apache.portals.graffito.jcr.session.JcrSession#getObject(java.lang.Class, java.lang.String)
@@ -212,9 +132,9 @@
                 throw new JcrMappingException("Path already exists : " + path);
             }
         }
-        catch (RepositoryException re)
+        catch (RepositoryException e)
         {
-            throw new JcrMappingException(re.getMessage());
+            throw new JcrMappingException("Impossible to insert the object at " + path, e);
         }
         
         
@@ -235,9 +155,9 @@
                 throw new JcrMappingException("Path is not existing : " + path);
             }
         }
-        catch (RepositoryException re)
+        catch (RepositoryException e)
         {
-            throw new JcrMappingException(re.getMessage());
+            throw new JcrMappingException("Impossible to update", e);
         }
         
         objectConverter.update(session, path, object);  
@@ -257,9 +177,9 @@
             item.remove();
             parent.save();
         }
-        catch (RepositoryException re)
+        catch (RepositoryException e)
         {
-            throw new JcrMappingException(re.getMessage());
+            throw new JcrMappingException("Impossible to remove the object at " + path);
         }
     }
     
@@ -273,29 +193,31 @@
         {
             return session.itemExists(path);
         }
-        catch (RepositoryException re)
+        catch (RepositoryException e)
         {
-            throw new JcrMappingException(re.getMessage());
+            throw new JcrMappingException("Impossible to check if the object exist", e);
         }
     }
 
-    /**
-     * 
-     * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#getJcrCustomNodeTypeCreator()
-     */
-    public CustomNodeTypeCreator getJcrCustomNodeTypeCreator()
-    {
-        return jcrCustomNodeTypeCreator;
-    }
 
     /**
      * 
-     * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#setJcrCustomNodeTypeCreator(org.apache.portals.graffito.jcr.persistence.CustomNodeTypeCreator)
+     * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#logout()
      */
-    public void setJcrCustomNodeTypeCreator(CustomNodeTypeCreator object)
+    public void logout() throws JcrMappingException
     {
-        this.jcrCustomNodeTypeCreator = object;
+        try 
+        {
+           session.save();
+           session.logout();
+        }
+        catch (Exception e)
+        {
+            throw new JcrMappingException("Impossible to logout", e);
+        }
     }
+
+    
     
   
 }