[exo-jcr-commits] exo-jcr SVN: r1378 - in jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src: main/java/org/exoplatform/services/jcr/dataflow/persistent and 16 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Jan 13 11:24:33 EST 2010


Author: pnedonosko
Date: 2010-01-13 11:24:32 -0500 (Wed, 13 Jan 2010)
New Revision: 1378

Added:
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/JCRNodeTypeDataPersister.java
Removed:
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/JcrNodeTypeDataPersister.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/NodeIteratorOnDemand.java
Modified:
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/TransactionChangesLog.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedNodeData.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/config/JDBCConfigurationPersister.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NamespaceDataPersister.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/PropertyImpl.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/AbstractNodeTypeRepository.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/NodeTypeDefinitionImpl.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/NodeTypeImpl.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/NodeTypeDataBuilder.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/NodeTypeReadException.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/value/ValueConstraintsMatcher.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/FrozenNodeInitializer.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/AbstractItemDataCopyVisitor.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/DefaultItemDataCopyVisitor.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientNodeData.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientValueData.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CleanableFilePersistedValueData.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataWriter.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/SessionChangesLog.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/StandaloneStoragePluginProvider.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestSessionDataManager.java
Log:
EXOJCR-378: cleanups

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/TransactionChangesLog.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/TransactionChangesLog.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/TransactionChangesLog.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -76,10 +76,8 @@
       return new ChangesLogIterator(changesLogs);
    }
 
-   /*
-    * (non-Javadoc)
-    * 
-    * @see org.exoplatform.services.jcr.dataflow.ItemStateChangesLog#getAllStates()
+   /**
+    * {@inheritDoc}
     */
    public List<ItemState> getAllStates()
    {
@@ -98,10 +96,8 @@
       return states;
    }
 
-   /*
-    * (non-Javadoc)
-    * 
-    * @see org.exoplatform.services.jcr.dataflow.ItemStateChangesLog#getSize()
+   /**
+    * {@inheritDoc}
     */
    public int getSize()
    {
@@ -168,68 +164,6 @@
       return list;
    }
 
-   /**
-    * Find if the node ancestor was renamed in this changes log.
-    * 
-    * @param item - target node
-    * @return - the pair of states of item ancestor, ItemState[] {DELETED,
-    *         RENAMED} or null if renaming is not detected.
-    * @throws IllegalPathException
-    */
-   @Deprecated
-   public ItemState[] findRenamed(ItemData item) throws IllegalPathException
-   {
-      List<ItemState> allStates = getAllStates();
-      // search from the end for DELETED state.
-      // RENAMED comes after the DELETED in the log immediately
-      for (int i = allStates.size() - 1; i >= 0; i--)
-      {
-         ItemState state = allStates.get(i);
-         if (state.getState() == ItemState.DELETED && !state.isPersisted()
-            && item.getQPath().isDescendantOf(state.getData().getQPath()))
-         {
-            // 1. if it's a parent or the parent is descendant of logged data
-            try
-            {
-               ItemState delete = state;
-               ItemState rename = allStates.get(i + 1);
-
-               if (rename.getState() == ItemState.RENAMED && rename.isPersisted()
-                  && rename.getData().getIdentifier().equals(delete.getData().getIdentifier()))
-               {
-
-                  // 2. search of most fresh state of rename for searched rename state
-                  // (i.e. for ancestor
-                  // state of the given node)
-                  for (int bi = allStates.size() - 1; bi >= i + 2; bi--)
-                  {
-                     state = allStates.get(bi);
-                     if (state.getState() == ItemState.RENAMED && state.isPersisted()
-                        && state.getData().getIdentifier().equals(rename.getData().getIdentifier()))
-                     {
-                        // got much fresh
-                        rename = state;
-                        delete = allStates.get(i - 1); // try the fresh delete state
-                        if (delete.getData().getIdentifier().equals(rename.getData().getIdentifier()))
-                           return new ItemState[]{delete, rename}; // 3. ok, got it
-                     }
-                  }
-
-                  return new ItemState[]{delete, rename}; // 4. ok, there are no
-                  // more fresh we have
-                  // found before p.2
-               } // else, it's not a rename, search deeper
-            }
-            catch (IndexOutOfBoundsException e)
-            {
-               // the pair not found
-               return null;
-            }
-         }
-      }
-      return null;
-   }
-
    public String dump()
    {
       String str = "ChangesLog: size" + changesLogs.size() + "\n ";

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedNodeData.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedNodeData.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedNodeData.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -55,13 +55,10 @@
    
    private static final int ACL_IS_NOT_NULL = 1;
 
-   //TODO remove final
    protected int orderNumber;
 
-   //TODO remove final
    protected InternalQName primaryTypeName;
 
-   //TODO remove final
    protected InternalQName[] mixinTypeNames;
 
    protected AccessControlList acl;

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -43,7 +43,7 @@
 import org.exoplatform.services.jcr.impl.core.lock.LockManagerImpl;
 import org.exoplatform.services.jcr.impl.core.nodetype.NodeTypeDataManagerImpl;
 import org.exoplatform.services.jcr.impl.core.nodetype.NodeTypeManagerImpl;
-import org.exoplatform.services.jcr.impl.core.nodetype.registration.JcrNodeTypeDataPersister;
+import org.exoplatform.services.jcr.impl.core.nodetype.registration.JCRNodeTypeDataPersister;
 import org.exoplatform.services.jcr.impl.core.observation.ObservationManagerRegistry;
 import org.exoplatform.services.jcr.impl.core.query.QueryManagerFactory;
 import org.exoplatform.services.jcr.impl.core.query.RepositoryIndexSearcherHolder;
@@ -495,7 +495,7 @@
       registerComponentImplementation(LocationFactory.class);
       registerComponentImplementation(ValueFactoryImpl.class);
 
-      registerComponentImplementation(JcrNodeTypeDataPersister.class);
+      registerComponentImplementation(JCRNodeTypeDataPersister.class);
       registerComponentImplementation(NamespaceDataPersister.class);
       registerComponentImplementation(NamespaceRegistryImpl.class);
 
@@ -561,8 +561,8 @@
       nsRegistry.start();
 
       //Node types now.
-      JcrNodeTypeDataPersister nodeTypePersister =
-         (JcrNodeTypeDataPersister)this.getComponentInstanceOfType(JcrNodeTypeDataPersister.class);
+      JCRNodeTypeDataPersister nodeTypePersister =
+         (JCRNodeTypeDataPersister)this.getComponentInstanceOfType(JCRNodeTypeDataPersister.class);
 
       NodeTypeDataManagerImpl ntManager =
          (NodeTypeDataManagerImpl)this.getComponentInstanceOfType(NodeTypeDataManagerImpl.class);

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/config/JDBCConfigurationPersister.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/config/JDBCConfigurationPersister.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/config/JDBCConfigurationPersister.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -22,6 +22,8 @@
 import org.exoplatform.services.jcr.config.ConfigurationPersister;
 import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
 import org.exoplatform.services.jcr.impl.storage.jdbc.DBConstants;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -39,14 +41,14 @@
 /**
  * Repository service configuration persister.
  * 
- * TODO use log.
- * 
  * @author <a href="mailto:peter.nedonosko at exoplatform.com.ua">Peter Nedonosko</a>
  * @version $Id: JDBCConfigurationPersister.java 11907 2008-03-13 15:36:21Z ksm $
  */
 public class JDBCConfigurationPersister implements ConfigurationPersister
 {
 
+   protected static Log LOG = ExoLogger.getLogger("jcr.JDBCConfigurationPersister");
+
    public final static String PARAM_SOURCE_NAME = "source-name";
 
    public final static String PARAM_DIALECT = "dialect";
@@ -112,8 +114,10 @@
       {
          sourceNameParam = params.getProperty("sourceName"); // try old, pre 1.9 name
          if (sourceNameParam == null)
+         {
             throw new RepositoryConfigurationException("Repository service configuration. Source name ("
                + PARAM_SOURCE_NAME + ") is expected");
+         }
       }
 
       String dialectParam = params.getProperty(PARAM_DIALECT);
@@ -154,8 +158,10 @@
    protected void checkInitialized() throws RepositoryConfigurationException
    {
       if (sourceName == null)
+      {
          throw new RepositoryConfigurationException(
             "Repository service configuration persister isn not initialized. Call init() before.");
+      }
    }
 
    protected Connection openConnection() throws NamingException, SQLException
@@ -322,9 +328,8 @@
 
                if (ps.executeUpdate() <= 0)
                {
-                  System.out
-                     .println(this.getClass().getCanonicalName()
-                        + " [WARN] Repository service configuration doesn't stored ok. No rows was affected in JDBC operation. Datasource "
+                  LOG
+                     .warn("Repository service configuration doesn't stored ok. No rows was affected in JDBC operation. Datasource "
                         + sourceName + ". SQL: " + sql);
                }
             }

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -806,19 +806,6 @@
    abstract void loadData(ItemData data, NodeData parent) throws RepositoryException;
 
    /**
-    * Loads data.
-    *
-    * @param data
-    *          source item data
-    * @param itemDefinitionData
-    *          source item definition data
-    * @throws RepositoryException
-    *          if errors occurs
-    */
-   @Deprecated
-   abstract void loadData(ItemData data, ItemDefinitionData itemDefinitionData) throws RepositoryException;
-
-   /**
     * Returns Item definition data.
     *
     * @return

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NamespaceDataPersister.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NamespaceDataPersister.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NamespaceDataPersister.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -403,8 +403,6 @@
       dataManager.save(new TransactionChangesLog(changesLog));
    }
 
-   // TODO remove me
-   @Deprecated
    private boolean isInialized()
    {
       return nsRoot != null;

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -44,7 +44,6 @@
 import org.exoplatform.services.jcr.impl.Constants;
 import org.exoplatform.services.jcr.impl.core.itemfilters.ItemDataFilter;
 import org.exoplatform.services.jcr.impl.core.itemfilters.ItemDataNamePatternFilter;
-import org.exoplatform.services.jcr.impl.core.itemfilters.NamePatternFilter;
 import org.exoplatform.services.jcr.impl.core.lock.LockImpl;
 import org.exoplatform.services.jcr.impl.core.nodetype.ItemAutocreator;
 import org.exoplatform.services.jcr.impl.core.nodetype.NodeDefinitionImpl;
@@ -1504,13 +1503,6 @@
       ConstraintViolationException
    {
 
-      // TODO
-      //      if (data == null)
-      //      {
-      //         throw new InvalidItemStateException("Data is null for " + this.getPath()
-      //            + " Probably was deleted by another session and can not be loaded from container ");
-      //      }
-
       if (data.isNode())
       {
          NodeData nodeData = (NodeData)data;
@@ -1547,46 +1539,6 @@
    }
 
    /**
-    * {@inheritDoc}
-    */
-   @Override
-   @Deprecated
-   public void loadData(ItemData data, ItemDefinitionData itemDefinitionData) throws RepositoryException,
-      InvalidItemStateException, ConstraintViolationException
-   {
-
-      if (data == null)
-      {
-         throw new InvalidItemStateException("Data is null for " + this.getPath()
-            + " Probably was deleted by another session and can not be loaded from container ");
-      }
-
-      if (!data.isNode())
-      {
-         throw new RepositoryException("Load data failed: Node expected");
-      }
-
-      NodeData nodeData = (NodeData)data;
-
-      // TODO do we need this three checks here?
-      if (nodeData.getPrimaryTypeName() == null)
-         throw new RepositoryException("Load data: NodeData has no primaryTypeName. Null value found. "
-            + (nodeData.getQPath() != null ? nodeData.getQPath().getAsString() : "[null path node]") + " " + nodeData);
-
-      if (nodeData.getMixinTypeNames() == null)
-         throw new RepositoryException("Load data: NodeData has no mixinTypeNames. Null value found. "
-            + (nodeData.getQPath() != null ? nodeData.getQPath().getAsString() : "[null path node]"));
-
-      if (nodeData.getACL() == null)
-         throw new RepositoryException("ACL is NULL " + nodeData.getQPath().getAsString());
-
-      this.data = nodeData;
-      this.location = null;
-      this.qpath = nodeData.getQPath();
-      this.definition = (NodeDefinitionData)itemDefinitionData;
-   }
-
-   /**
     * Init NodeDefinition.
     * 
     * @param parent NodeData 

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/PropertyImpl.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/PropertyImpl.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/PropertyImpl.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -26,12 +26,9 @@
 import org.exoplatform.services.jcr.datamodel.ItemData;
 import org.exoplatform.services.jcr.datamodel.NodeData;
 import org.exoplatform.services.jcr.datamodel.PropertyData;
-import org.exoplatform.services.jcr.datamodel.ValueData;
 import org.exoplatform.services.jcr.impl.Constants;
 import org.exoplatform.services.jcr.impl.core.nodetype.PropertyDefinitionImpl;
 import org.exoplatform.services.jcr.impl.core.value.BaseValue;
-import org.exoplatform.services.jcr.impl.dataflow.TransientPropertyData;
-import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
 
 import java.io.InputStream;
 import java.util.Calendar;

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -28,7 +28,6 @@
 import org.exoplatform.services.jcr.dataflow.PlainChangesLog;
 import org.exoplatform.services.jcr.dataflow.SharedDataManager;
 import org.exoplatform.services.jcr.datamodel.IllegalPathException;
-import org.exoplatform.services.jcr.datamodel.InternalQName;
 import org.exoplatform.services.jcr.datamodel.ItemData;
 import org.exoplatform.services.jcr.datamodel.NodeData;
 import org.exoplatform.services.jcr.datamodel.PropertyData;
@@ -1497,48 +1496,6 @@
    }
 
    /**
-    * Wraps NodeData into NodeImpl.
-    *
-    * @param data
-    *          NodeData to wrap
-    * @param parentPrimaryTypeName
-    *          parent primary type name
-    * @param parentMixinTypeNames
-    *          parent mixin type names
-    * @param pool
-    *          indicates does the item fall in pool
-    * @return  NodeImpl object
-    * @throws RepositoryException
-    *          if errors is occurs
-    */
-   public NodeImpl wrapNodeData(NodeData data, NodeData parent) throws RepositoryException
-   {
-
-      NodeImpl node = itemFactory.createNode(data, parent);
-      //NodeImpl node = (NodeImpl)itemsPool.get(data);
-      session.getActionHandler().postRead(node);
-
-      NodeImpl pooledItem = (NodeImpl)itemsPool.getItem(data.getIdentifier());
-      if (pooledItem == null)
-      {
-         NodeData pooledData = (NodeData)itemsPool.getData(data.getIdentifier());
-         if (pooledData != null)
-         {
-            node.loadData(pooledData);
-         }
-
-         // TODO
-         node = (NodeImpl)itemsPool.get(node);
-      }
-      else
-      {
-         node = pooledItem;
-      }
-
-      return node;
-   }
-
-   /**
     * Removes all pending changes of this item
     * 
     * @param item
@@ -1988,30 +1945,6 @@
       }
 
       /**
-       * @param newItem
-       * @return the item
-       * @throws RepositoryException
-       */
-      @Deprecated
-      ItemImpl get(ItemImpl newItem) throws RepositoryException
-      {
-         String identifier = newItem.getInternalIdentifier();
-
-         ItemImpl item = items.get(identifier);
-         if (item == null)
-         {
-            //datas.remove(identifier);
-            items.put(identifier, newItem);
-            return newItem;
-         }
-         else
-         {
-            item.loadData(newItem.getData(), newItem.getItemDefinitionData());
-            return item;
-         }
-      }
-
-      /**
        * Get ItemImpl from the pool using given data.   
        * 
        * @param newData ItemData
@@ -2056,32 +1989,6 @@
       }
 
       /**
-       * Gets item from pool.
-       *
-       * @param identifier
-       *          item identifier
-       * @return ItemImpl object from pool
-       */
-      @Deprecated
-      ItemImpl getItem(String identifier)
-      {
-         return items.get(identifier);
-      }
-
-      /**
-       * Gets item from pool.
-       *
-       * @param identifier
-       *          item identifier
-       * @return ItemData object from pool
-       */
-      @Deprecated
-      ItemData getData(String identifier)
-      {
-         return null; //datas.get(identifier);
-      }
-
-      /**
        * Reload an existed item in the pool with given data
        * 
        * @param itemData

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/AbstractNodeTypeRepository.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/AbstractNodeTypeRepository.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/AbstractNodeTypeRepository.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -34,7 +34,6 @@
 
 import javax.jcr.RepositoryException;
 
-
 /**
  * @author <a href="mailto:Sergey.Kabashnyuk at exoplatform.org">Sergey Kabashnyuk</a>
  * @version $Id: exo-jboss-codetemplates.xml 34360 2009-07-22 23:58:59Z ksm $
@@ -58,22 +57,19 @@
     */
    public List<NodeTypeData> getAllNodeTypes() throws RepositoryException
    {
-      // TODO Auto-generated method stub
       return nodeTypeDataPersister.getAllNodeTypes();
    }
 
    /**
-    * @see org.exoplatform.services.jcr.core.ComponentPersister#isStorageFilled()
+    * {@inheritDoc}
     */
    public boolean isStorageFilled()
    {
-      // TODO Auto-generated method stub
       return nodeTypeDataPersister.isStorageFilled();
    }
 
    /**
-    * @throws RepositoryException 
-    * @see org.exoplatform.services.jcr.impl.core.nodetype.NodeTypeRepository#update(java.util.List, org.exoplatform.services.jcr.impl.core.nodetype.registration.UpdateNodeTypeObserver)
+    * {@inheritDoc}
     */
    public void registerNodeType(final List<NodeTypeData> nodeTypes, final NodeTypeDataManager nodeTypeDataManager,
       final String accessControlPolicy, final int alreadyExistsBehaviour) throws RepositoryException
@@ -163,7 +159,6 @@
     */
    public void start()
    {
-      // TODO Auto-generated method stub
 
    }
 
@@ -172,7 +167,6 @@
     */
    public void stop()
    {
-      // TODO Auto-generated method stub
 
    }
 }

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -19,7 +19,6 @@
 package org.exoplatform.services.jcr.impl.core.nodetype;
 
 import org.exoplatform.services.jcr.access.AccessControlEntry;
-import org.exoplatform.services.jcr.access.AccessControlList;
 import org.exoplatform.services.jcr.core.nodetype.NodeDefinitionData;
 import org.exoplatform.services.jcr.core.nodetype.NodeTypeData;
 import org.exoplatform.services.jcr.core.nodetype.NodeTypeDataManager;

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/NodeTypeDefinitionImpl.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/NodeTypeDefinitionImpl.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/NodeTypeDefinitionImpl.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -28,7 +28,6 @@
 import javax.jcr.RepositoryException;
 import javax.jcr.ValueFactory;
 import javax.jcr.nodetype.NodeDefinition;
-
 import javax.jcr.nodetype.PropertyDefinition;
 
 /**

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/NodeTypeImpl.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/NodeTypeImpl.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/NodeTypeImpl.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -27,6 +27,7 @@
 import org.exoplatform.services.jcr.datamodel.InternalQName;
 import org.exoplatform.services.jcr.impl.Constants;
 import org.exoplatform.services.jcr.impl.core.LocationFactory;
+import org.exoplatform.services.jcr.impl.core.nodetype.registration.NodeTypeReadException;
 import org.exoplatform.services.jcr.impl.util.JCRDateFormat;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
@@ -44,7 +45,6 @@
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 import javax.jcr.ValueFactory;
-import javax.jcr.ValueFormatException;
 import javax.jcr.nodetype.NoSuchNodeTypeException;
 import javax.jcr.nodetype.NodeDefinition;
 import javax.jcr.nodetype.NodeType;

Copied: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/JCRNodeTypeDataPersister.java (from rev 1377, jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/JcrNodeTypeDataPersister.java)
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/JCRNodeTypeDataPersister.java	                        (rev 0)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/JCRNodeTypeDataPersister.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -0,0 +1,418 @@
+/*
+ * Copyright (C) 2009 eXo Platform SAS.
+ *
+ * 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.
+ */
+/**
+ * Created by The eXo Platform SAS.
+ * 
+ * @author <a href="mailto:Sergey.Kabashnyuk at gmail.com">Sergey Kabashnyuk</a>
+ * @version $Id: $
+ */
+package org.exoplatform.services.jcr.impl.core.nodetype.registration;
+
+import org.exoplatform.services.jcr.access.AccessControlEntry;
+import org.exoplatform.services.jcr.access.AccessControlList;
+import org.exoplatform.services.jcr.access.AccessControlPolicy;
+import org.exoplatform.services.jcr.config.RepositoryEntry;
+import org.exoplatform.services.jcr.core.ExtendedPropertyType;
+import org.exoplatform.services.jcr.core.nodetype.NodeTypeData;
+import org.exoplatform.services.jcr.dataflow.DataManager;
+import org.exoplatform.services.jcr.dataflow.ItemState;
+import org.exoplatform.services.jcr.dataflow.PlainChangesLog;
+import org.exoplatform.services.jcr.dataflow.PlainChangesLogImpl;
+import org.exoplatform.services.jcr.dataflow.TransactionChangesLog;
+import org.exoplatform.services.jcr.datamodel.InternalQName;
+import org.exoplatform.services.jcr.datamodel.ItemData;
+import org.exoplatform.services.jcr.datamodel.NodeData;
+import org.exoplatform.services.jcr.datamodel.QPathEntry;
+import org.exoplatform.services.jcr.datamodel.ValueData;
+import org.exoplatform.services.jcr.impl.Constants;
+import org.exoplatform.services.jcr.impl.dataflow.ItemDataRemoveVisitor;
+import org.exoplatform.services.jcr.impl.dataflow.TransientNodeData;
+import org.exoplatform.services.jcr.impl.dataflow.TransientPropertyData;
+import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.jcr.PropertyType;
+import javax.jcr.RepositoryException;
+import javax.jcr.nodetype.NoSuchNodeTypeException;
+
+/**
+ * Created by The eXo Platform SAS.
+ * 
+ * @author <a href="mailto:Sergey.Kabashnyuk at gmail.com">Sergey Kabashnyuk</a>
+ * @version $Id: $
+ */
+public class JCRNodeTypeDataPersister implements NodeTypeDataPersister
+{
+
+   protected final Log log = ExoLogger.getLogger(getClass().getName());
+
+   private final DataManager dataManager;
+
+   private NodeData nodeTypeStorageRoot;
+
+   private final NodeTypeDefinitionAccessProvider definitionAccessProvider;
+
+   private final boolean addACL;
+
+   private boolean started = false;
+
+   /**
+    * @param dataManager
+    * @throws RepositoryException
+    */
+   public JCRNodeTypeDataPersister(DataManager dataManager, boolean addACL) throws RepositoryException
+   {
+      super();
+      this.dataManager = dataManager;
+      this.addACL = addACL;
+
+      this.definitionAccessProvider = new NodeTypeDefinitionAccessProvider(dataManager);
+   }
+
+   /**
+    * @param dataManager
+    * @throws RepositoryException
+    */
+   public JCRNodeTypeDataPersister(DataManager dataManager, NodeData nodeTypeStorageRoot) throws RepositoryException
+   {
+      super();
+      this.dataManager = dataManager;
+      this.nodeTypeStorageRoot = nodeTypeStorageRoot;
+      this.definitionAccessProvider = new NodeTypeDefinitionAccessProvider(dataManager);
+      this.addACL = true;
+
+   }
+
+   /**
+    * @param dataManager
+    * @throws RepositoryException
+    */
+   public JCRNodeTypeDataPersister(DataManager dataManager, RepositoryEntry repConfig) throws RepositoryException
+   {
+      this(dataManager, !repConfig.getAccessControl().equals(AccessControlPolicy.DISABLE));
+   }
+
+   /**
+    * {@inheritDoc}
+    */
+   public void addNodeType(NodeTypeData nodeType) throws RepositoryException
+   {
+      if (!started)
+      {
+         log.warn("Unable save nodetype " + nodeType.getName().getAsString()
+            + " in to the storage. Storage not initialized");
+         return;
+      }
+
+      PlainChangesLog changesLog = new PlainChangesLogImpl();
+      definitionAccessProvider.write(changesLog, nodeTypeStorageRoot, nodeType);
+      dataManager.save(new TransactionChangesLog(changesLog));
+   }
+
+   /**
+    * {@inheritDoc}
+    */
+   public boolean hasNodeType(InternalQName nodeTypeName) throws RepositoryException
+   {
+      if (!validatate())
+      {
+         return false;
+      }
+
+      NodeData nodeTypeData = (NodeData)dataManager.getItemData(nodeTypeStorageRoot, new QPathEntry(nodeTypeName, 1));
+
+      return nodeTypeData != null;
+   }
+
+   public NodeData initNodetypesRoot(NodeData nsSystem, boolean addACL) throws RepositoryException
+   {
+      PlainChangesLog changesLog = new PlainChangesLogImpl();
+      TransientNodeData jcrNodetypes;
+
+      long start = System.currentTimeMillis();
+
+      if (addACL)
+      {
+         AccessControlList acl = new AccessControlList();
+         InternalQName[] mixins = new InternalQName[]{Constants.EXO_OWNEABLE, Constants.EXO_PRIVILEGEABLE};
+
+         jcrNodetypes =
+            TransientNodeData.createNodeData(nsSystem, Constants.JCR_NODETYPES, Constants.NT_UNSTRUCTURED, mixins,
+               Constants.NODETYPESROOT_UUID);
+
+         TransientPropertyData primaryType =
+            TransientPropertyData.createPropertyData(jcrNodetypes, Constants.JCR_PRIMARYTYPE, PropertyType.NAME, false,
+               new TransientValueData(jcrNodetypes.getPrimaryTypeName()));
+
+         changesLog.add(ItemState.createAddedState(jcrNodetypes)).add(ItemState.createAddedState(primaryType));
+
+         // jcr:mixinTypes
+         List<ValueData> mixValues = new ArrayList<ValueData>();
+         for (InternalQName mixin : mixins)
+         {
+            mixValues.add(new TransientValueData(mixin));
+         }
+         TransientPropertyData exoMixinTypes =
+            TransientPropertyData.createPropertyData(jcrNodetypes, Constants.JCR_MIXINTYPES, PropertyType.NAME, true,
+               mixValues);
+
+         TransientPropertyData exoOwner =
+            TransientPropertyData.createPropertyData(jcrNodetypes, Constants.EXO_OWNER, PropertyType.STRING, false,
+               new TransientValueData(acl.getOwner()));
+
+         List<ValueData> permsValues = new ArrayList<ValueData>();
+         for (int i = 0; i < acl.getPermissionEntries().size(); i++)
+         {
+            AccessControlEntry entry = acl.getPermissionEntries().get(i);
+            permsValues.add(new TransientValueData(entry));
+         }
+         TransientPropertyData exoPerms =
+            TransientPropertyData.createPropertyData(jcrNodetypes, Constants.EXO_PERMISSIONS,
+               ExtendedPropertyType.PERMISSION, true, permsValues);
+
+         changesLog.add(ItemState.createAddedState(exoMixinTypes)).add(ItemState.createAddedState(exoOwner)).add(
+            ItemState.createAddedState(exoPerms));
+         changesLog.add(new ItemState(jcrNodetypes, ItemState.MIXIN_CHANGED, false, null));
+      }
+      else
+      {
+         jcrNodetypes =
+            TransientNodeData.createNodeData(nsSystem, Constants.JCR_NODETYPES, Constants.NT_UNSTRUCTURED,
+               Constants.NODETYPESROOT_UUID);
+
+         TransientPropertyData primaryType =
+            TransientPropertyData.createPropertyData(jcrNodetypes, Constants.JCR_PRIMARYTYPE, PropertyType.NAME, false,
+               new TransientValueData(jcrNodetypes.getPrimaryTypeName()));
+
+         changesLog.add(ItemState.createAddedState(jcrNodetypes)).add(ItemState.createAddedState(primaryType));
+      }
+
+      if (log.isDebugEnabled())
+         log.debug("/jcr:system/jcr:nodetypes is created, creation time: " + (System.currentTimeMillis() - start)
+            + " ms");
+
+      dataManager.save(new TransactionChangesLog(changesLog));
+
+      return jcrNodetypes;
+
+   }
+
+   /**
+    * {@inheritDoc}
+    */
+   public boolean isStorageFilled()
+   {
+      if (nodeTypeStorageRoot == null)
+      {
+         log.warn(" Storage not initialized");
+         return false;
+      }
+      try
+      {
+         List<NodeData> storageContent = dataManager.getChildNodesData(nodeTypeStorageRoot);
+         return storageContent.size() > 0;
+      }
+      catch (RepositoryException e)
+      {
+         log.error(e.getLocalizedMessage(), e);
+
+      }
+      return false;
+   }
+
+   /**
+    * {@inheritDoc}
+    */
+   public void addNodeTypes(List<NodeTypeData> nodeTypes) throws RepositoryException
+   {
+      if (!validatate())
+      {
+         return;
+      }
+
+      PlainChangesLog changesLog = new PlainChangesLogImpl();
+      for (NodeTypeData nodeTypeData : nodeTypes)
+      {
+         definitionAccessProvider.write(changesLog, nodeTypeStorageRoot, nodeTypeData);
+      }
+
+      dataManager.save(new TransactionChangesLog(changesLog));
+
+   }
+
+   /**
+    * {@inheritDoc}
+    */
+   public void removeNodeType(NodeTypeData nodeType) throws RepositoryException
+   {
+      if (!validatate())
+      {
+         return;
+      }
+
+      validatate();
+      NodeData nodeTypeData =
+         (NodeData)dataManager.getItemData(nodeTypeStorageRoot, new QPathEntry(nodeType.getName(), 1));
+      ItemDataRemoveVisitor removeVisitor = new ItemDataRemoveVisitor(dataManager, nodeTypeStorageRoot.getQPath());
+      nodeTypeData.accept(removeVisitor);
+
+      PlainChangesLog changesLog = new PlainChangesLogImpl();
+      changesLog.addAll(removeVisitor.getRemovedStates());
+      dataManager.save(new TransactionChangesLog(changesLog));
+   }
+
+   public void start()
+   {
+      if (!started)
+      {
+         try
+         {
+            NodeData jcrSystem = (NodeData)dataManager.getItemData(Constants.SYSTEM_UUID);
+            if (jcrSystem != null)
+            {
+               NodeData jcrNodetypes =
+                  (NodeData)dataManager.getItemData(jcrSystem, new QPathEntry(Constants.JCR_NODETYPES, 1));
+               if (jcrNodetypes == null)
+                  this.nodeTypeStorageRoot = initNodetypesRoot(jcrSystem, addACL);
+               else
+                  this.nodeTypeStorageRoot = jcrNodetypes;
+            }
+            else
+            {
+               throw new RuntimeException("Nodetypes storage (/jcr:systemnode) is not initialized.");
+            }
+         }
+         catch (RepositoryException e)
+         {
+            throw new RuntimeException(e.getLocalizedMessage(), e);
+         }
+         started = true;
+      }
+   }
+
+   public void stop()
+   {
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.impl.core.nodetype.registration.NodeTypeDataPersister#unmarshall(org.exoplatform.services.jcr.datamodel.InternalQName, java.util.Set)
+    */
+   public NodeTypeData getNodeType(InternalQName nodeTypeName) throws RepositoryException, NoSuchNodeTypeException
+   {
+      if (nodeTypeStorageRoot == null)
+      {
+         log.warn(" Storage not initialized");
+         return null;
+      }
+      //Searching nodeType root
+      ItemData nodeType = dataManager.getItemData(nodeTypeStorageRoot, new QPathEntry(nodeTypeName, 1));
+      if (nodeType == null)
+         throw new NoSuchNodeTypeException("Node type definition " + nodeTypeName.getAsString() + "not found");
+      if (!nodeType.isNode())
+         throw new RepositoryException("Unexpected property found " + nodeType.getQPath().getAsString()
+            + ". Should be node.");
+
+      NodeData nodeTypeRoot = (NodeData)nodeType;
+
+      if (!Constants.NT_NODETYPE.equals(nodeTypeRoot.getPrimaryTypeName()))
+         throw new RepositoryException("Unexpected node type of NodeData found "
+            + nodeTypeRoot.getPrimaryTypeName().getAsString() + ". Should be " + Constants.NT_NODETYPE.getAsString());
+
+      return definitionAccessProvider.read(nodeTypeRoot);
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.impl.core.nodetype.registration.NodeTypeDataPersister#getNodeType(java.util.Set)
+    */
+   public List<NodeTypeData> getAllNodeTypes() throws RepositoryException
+   {
+      if (!validatate())
+      {
+         return new ArrayList<NodeTypeData>();
+      }
+
+      validatate();
+      List<NodeData> nodeTypes = dataManager.getChildNodesData(nodeTypeStorageRoot);
+      List<NodeTypeData> result = new ArrayList<NodeTypeData>();
+      for (NodeData nodeData : nodeTypes)
+      {
+         if (Constants.NT_NODETYPE.equals(nodeData.getPrimaryTypeName()))
+            result.add(definitionAccessProvider.read(nodeData));
+      }
+      return result;
+   }
+
+   /**
+    * {@inheritDoc}
+    */
+   public void update(List<NodeTypeData> nodeTypes, UpdateNodeTypeObserver observer) throws RepositoryException
+   {
+
+      PlainChangesLog changesLog = new PlainChangesLogImpl();
+
+      for (NodeTypeData nodeTypeData : nodeTypes)
+      {
+
+         if (observer != null)
+         {
+            if (observer.shouldSkip(nodeTypeData, changesLog))
+               continue;
+            observer.beforeUpdate(nodeTypeData, changesLog);
+
+         }
+         if (!validatate())
+         {
+            continue;
+         }
+         // remove first
+         NodeData removeNodeTypeData =
+            (NodeData)dataManager.getItemData(nodeTypeStorageRoot, new QPathEntry(nodeTypeData.getName(), 1));
+         if (removeNodeTypeData != null)
+         {
+            ItemDataRemoveVisitor removeVisitor =
+               new ItemDataRemoveVisitor(dataManager, nodeTypeStorageRoot.getQPath());
+            removeNodeTypeData.accept(removeVisitor);
+
+            changesLog.addAll(removeVisitor.getRemovedStates());
+         }
+         // add
+         definitionAccessProvider.write(changesLog, nodeTypeStorageRoot, nodeTypeData);
+         if (observer != null)
+            observer.afterUpdate(nodeTypeData, changesLog);
+      }
+
+      dataManager.save(new TransactionChangesLog(changesLog));
+
+   }
+
+   private boolean validatate()
+   {
+      if (this.nodeTypeStorageRoot == null)
+      {
+         if (log.isDebugEnabled())
+            log.debug(" Storage not initialized");
+         return false;
+      }
+      return true;
+   }
+}

Deleted: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/JcrNodeTypeDataPersister.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/JcrNodeTypeDataPersister.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/JcrNodeTypeDataPersister.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -1,425 +0,0 @@
-/*
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * 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.
- */
-/**
- * Created by The eXo Platform SAS.
- * 
- * @author <a href="mailto:Sergey.Kabashnyuk at gmail.com">Sergey Kabashnyuk</a>
- * @version $Id: $
- */
-package org.exoplatform.services.jcr.impl.core.nodetype.registration;
-
-import org.exoplatform.services.jcr.access.AccessControlEntry;
-import org.exoplatform.services.jcr.access.AccessControlList;
-import org.exoplatform.services.jcr.access.AccessControlPolicy;
-import org.exoplatform.services.jcr.config.RepositoryEntry;
-import org.exoplatform.services.jcr.core.ExtendedPropertyType;
-import org.exoplatform.services.jcr.core.nodetype.NodeTypeData;
-import org.exoplatform.services.jcr.dataflow.DataManager;
-import org.exoplatform.services.jcr.dataflow.ItemState;
-import org.exoplatform.services.jcr.dataflow.ItemStateChangesLog;
-import org.exoplatform.services.jcr.dataflow.PlainChangesLog;
-import org.exoplatform.services.jcr.dataflow.PlainChangesLogImpl;
-import org.exoplatform.services.jcr.dataflow.TransactionChangesLog;
-import org.exoplatform.services.jcr.datamodel.InternalQName;
-import org.exoplatform.services.jcr.datamodel.ItemData;
-import org.exoplatform.services.jcr.datamodel.NodeData;
-import org.exoplatform.services.jcr.datamodel.QPathEntry;
-import org.exoplatform.services.jcr.datamodel.ValueData;
-import org.exoplatform.services.jcr.impl.Constants;
-import org.exoplatform.services.jcr.impl.dataflow.ItemDataRemoveVisitor;
-import org.exoplatform.services.jcr.impl.dataflow.TransientNodeData;
-import org.exoplatform.services.jcr.impl.dataflow.TransientPropertyData;
-import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
-import org.exoplatform.services.log.ExoLogger;
-import org.exoplatform.services.log.Log;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.jcr.PropertyType;
-import javax.jcr.RepositoryException;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
-
-/**
- * Created by The eXo Platform SAS.
- * 
- * @author <a href="mailto:Sergey.Kabashnyuk at gmail.com">Sergey Kabashnyuk</a>
- * @version $Id: $
- */
-public class JcrNodeTypeDataPersister implements NodeTypeDataPersister
-{
-
-   protected final Log log = ExoLogger.getLogger(getClass().getName());
-
-   private final DataManager dataManager;
-
-   private NodeData nodeTypeStorageRoot;
-
-   private final NodeTypeDefinitionAccessProvider definitionAccessProvider;
-
-   private final boolean addACL;
-
-   private boolean started = false;
-
-   //   /**
-   //    * ChangesLog Buffer (used for saves before start).
-   //    */
-   //   private List<ItemStateChangesLog> changesLogBuffer = new ArrayList<ItemStateChangesLog>();
-
-   /**
-    * @param dataManager
-    * @throws RepositoryException
-    */
-   public JcrNodeTypeDataPersister(DataManager dataManager, boolean addACL) throws RepositoryException
-   {
-      super();
-      this.dataManager = dataManager;
-      this.addACL = addACL;
-
-      this.definitionAccessProvider = new NodeTypeDefinitionAccessProvider(dataManager);
-   }
-
-   /**
-    * @param dataManager
-    * @throws RepositoryException
-    */
-   public JcrNodeTypeDataPersister(DataManager dataManager, NodeData nodeTypeStorageRoot) throws RepositoryException
-   {
-      super();
-      this.dataManager = dataManager;
-      this.nodeTypeStorageRoot = nodeTypeStorageRoot;
-      this.definitionAccessProvider = new NodeTypeDefinitionAccessProvider(dataManager);
-      this.addACL = true;
-
-   }
-
-   /**
-    * @param dataManager
-    * @throws RepositoryException
-    */
-   public JcrNodeTypeDataPersister(DataManager dataManager, RepositoryEntry repConfig) throws RepositoryException
-   {
-      this(dataManager, !repConfig.getAccessControl().equals(AccessControlPolicy.DISABLE));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   public void addNodeType(NodeTypeData nodeType) throws RepositoryException
-   {
-      if (!started)
-      {
-         log.warn("Unable save nodetype " + nodeType.getName().getAsString()
-            + " in to the storage. Storage not initialized");
-         return;
-      }
-
-      PlainChangesLog changesLog = new PlainChangesLogImpl();
-      definitionAccessProvider.write(changesLog, nodeTypeStorageRoot, nodeType);
-      dataManager.save(new TransactionChangesLog(changesLog));
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   public boolean hasNodeType(InternalQName nodeTypeName) throws RepositoryException
-   {
-      if (!validatate())
-      {
-         return false;
-      }
-
-      NodeData nodeTypeData = (NodeData)dataManager.getItemData(nodeTypeStorageRoot, new QPathEntry(nodeTypeName, 1));
-
-      return nodeTypeData != null;
-   }
-
-   public NodeData initNodetypesRoot(NodeData nsSystem, boolean addACL) throws RepositoryException
-   {
-      PlainChangesLog changesLog = new PlainChangesLogImpl();
-      TransientNodeData jcrNodetypes;
-
-      long start = System.currentTimeMillis();
-
-      if (addACL)
-      {
-         AccessControlList acl = new AccessControlList();
-         InternalQName[] mixins = new InternalQName[]{Constants.EXO_OWNEABLE, Constants.EXO_PRIVILEGEABLE};
-
-         jcrNodetypes =
-            TransientNodeData.createNodeData(nsSystem, Constants.JCR_NODETYPES, Constants.NT_UNSTRUCTURED, mixins,
-               Constants.NODETYPESROOT_UUID);
-
-         TransientPropertyData primaryType =
-            TransientPropertyData.createPropertyData(jcrNodetypes, Constants.JCR_PRIMARYTYPE, PropertyType.NAME, false,
-               new TransientValueData(jcrNodetypes.getPrimaryTypeName()));
-
-         changesLog.add(ItemState.createAddedState(jcrNodetypes)).add(ItemState.createAddedState(primaryType));
-
-         // jcr:mixinTypes
-         List<ValueData> mixValues = new ArrayList<ValueData>();
-         for (InternalQName mixin : mixins)
-         {
-            mixValues.add(new TransientValueData(mixin));
-         }
-         TransientPropertyData exoMixinTypes =
-            TransientPropertyData.createPropertyData(jcrNodetypes, Constants.JCR_MIXINTYPES, PropertyType.NAME, true,
-               mixValues);
-
-         TransientPropertyData exoOwner =
-            TransientPropertyData.createPropertyData(jcrNodetypes, Constants.EXO_OWNER, PropertyType.STRING, false,
-               new TransientValueData(acl.getOwner()));
-
-         List<ValueData> permsValues = new ArrayList<ValueData>();
-         for (int i = 0; i < acl.getPermissionEntries().size(); i++)
-         {
-            AccessControlEntry entry = acl.getPermissionEntries().get(i);
-            permsValues.add(new TransientValueData(entry));
-         }
-         TransientPropertyData exoPerms =
-            TransientPropertyData.createPropertyData(jcrNodetypes, Constants.EXO_PERMISSIONS,
-               ExtendedPropertyType.PERMISSION, true, permsValues);
-
-         changesLog.add(ItemState.createAddedState(exoMixinTypes)).add(ItemState.createAddedState(exoOwner)).add(
-            ItemState.createAddedState(exoPerms));
-         changesLog.add(new ItemState(jcrNodetypes, ItemState.MIXIN_CHANGED, false, null));
-      }
-      else
-      {
-         jcrNodetypes =
-            TransientNodeData.createNodeData(nsSystem, Constants.JCR_NODETYPES, Constants.NT_UNSTRUCTURED,
-               Constants.NODETYPESROOT_UUID);
-
-         TransientPropertyData primaryType =
-            TransientPropertyData.createPropertyData(jcrNodetypes, Constants.JCR_PRIMARYTYPE, PropertyType.NAME, false,
-               new TransientValueData(jcrNodetypes.getPrimaryTypeName()));
-
-         changesLog.add(ItemState.createAddedState(jcrNodetypes)).add(ItemState.createAddedState(primaryType));
-      }
-
-      if (log.isDebugEnabled())
-         log.debug("/jcr:system/jcr:nodetypes is created, creation time: " + (System.currentTimeMillis() - start)
-            + " ms");
-
-      dataManager.save(new TransactionChangesLog(changesLog));
-
-      return jcrNodetypes;
-
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   public boolean isStorageFilled()
-   {
-      if (nodeTypeStorageRoot == null)
-      {
-         log.warn(" Storage not initialized");
-         return false;
-      }
-      try
-      {
-         List<NodeData> storageContent = dataManager.getChildNodesData(nodeTypeStorageRoot);
-         return storageContent.size() > 0;
-      }
-      catch (RepositoryException e)
-      {
-         log.error(e.getLocalizedMessage(), e);
-
-      }
-      return false;
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   public void addNodeTypes(List<NodeTypeData> nodeTypes) throws RepositoryException
-   {
-      if (!validatate())
-      {
-         return;
-      }
-
-      PlainChangesLog changesLog = new PlainChangesLogImpl();
-      for (NodeTypeData nodeTypeData : nodeTypes)
-      {
-         definitionAccessProvider.write(changesLog, nodeTypeStorageRoot, nodeTypeData);
-      }
-
-      dataManager.save(new TransactionChangesLog(changesLog));
-
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   public void removeNodeType(NodeTypeData nodeType) throws RepositoryException
-   {
-      if (!validatate())
-      {
-         return;
-      }
-
-      validatate();
-      NodeData nodeTypeData =
-         (NodeData)dataManager.getItemData(nodeTypeStorageRoot, new QPathEntry(nodeType.getName(), 1));
-      ItemDataRemoveVisitor removeVisitor = new ItemDataRemoveVisitor(dataManager, nodeTypeStorageRoot.getQPath());
-      nodeTypeData.accept(removeVisitor);
-
-      PlainChangesLog changesLog = new PlainChangesLogImpl();
-      changesLog.addAll(removeVisitor.getRemovedStates());
-      dataManager.save(new TransactionChangesLog(changesLog));
-
-   }
-
-   public void start()
-   {
-      if (!started)
-      {
-         try
-         {
-            NodeData jcrSystem = (NodeData)dataManager.getItemData(Constants.SYSTEM_UUID);
-            if (jcrSystem != null)
-            {
-               NodeData jcrNodetypes =
-                  (NodeData)dataManager.getItemData(jcrSystem, new QPathEntry(Constants.JCR_NODETYPES, 1));
-               if (jcrNodetypes == null)
-                  this.nodeTypeStorageRoot = initNodetypesRoot(jcrSystem, addACL);
-               else
-                  this.nodeTypeStorageRoot = jcrNodetypes;
-            }
-            else
-            {
-               throw new RuntimeException("Nodetypes storage (/jcr:systemnode) is not initialized.");
-            }
-         }
-         catch (RepositoryException e)
-         {
-            throw new RuntimeException(e.getLocalizedMessage(), e);
-         }
-         started = true;
-      }
-   }
-
-   public void stop()
-   {
-   }
-
-   /**
-    * @see org.exoplatform.services.jcr.impl.core.nodetype.registration.NodeTypeDataPersister#unmarshall(org.exoplatform.services.jcr.datamodel.InternalQName, java.util.Set)
-    */
-   public NodeTypeData getNodeType(InternalQName nodeTypeName) throws RepositoryException, NoSuchNodeTypeException
-   {
-      if (nodeTypeStorageRoot == null)
-      {
-         log.warn(" Storage not initialized");
-         return null;
-      }
-      //Searching nodeType root
-      ItemData nodeType = dataManager.getItemData(nodeTypeStorageRoot, new QPathEntry(nodeTypeName, 1));
-      if (nodeType == null)
-         throw new NoSuchNodeTypeException("Node type definition " + nodeTypeName.getAsString() + "not found");
-      if (!nodeType.isNode())
-         throw new RepositoryException("Unexpected property found " + nodeType.getQPath().getAsString()
-            + ". Should be node.");
-
-      NodeData nodeTypeRoot = (NodeData)nodeType;
-
-      if (!Constants.NT_NODETYPE.equals(nodeTypeRoot.getPrimaryTypeName()))
-         throw new RepositoryException("Unexpected node type of NodeData found "
-            + nodeTypeRoot.getPrimaryTypeName().getAsString() + ". Should be " + Constants.NT_NODETYPE.getAsString());
-
-      return definitionAccessProvider.read(nodeTypeRoot);
-   }
-
-   /**
-    * @see org.exoplatform.services.jcr.impl.core.nodetype.registration.NodeTypeDataPersister#getNodeType(java.util.Set)
-    */
-   public List<NodeTypeData> getAllNodeTypes() throws RepositoryException
-   {
-      if (!validatate())
-      {
-         return new ArrayList<NodeTypeData>();
-      }
-
-      validatate();
-      List<NodeData> nodeTypes = dataManager.getChildNodesData(nodeTypeStorageRoot);
-      List<NodeTypeData> result = new ArrayList<NodeTypeData>();
-      for (NodeData nodeData : nodeTypes)
-      {
-         if (Constants.NT_NODETYPE.equals(nodeData.getPrimaryTypeName()))
-            result.add(definitionAccessProvider.read(nodeData));
-      }
-      return result;
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   public void update(List<NodeTypeData> nodeTypes, UpdateNodeTypeObserver observer) throws RepositoryException
-   {
-
-      PlainChangesLog changesLog = new PlainChangesLogImpl();
-
-      for (NodeTypeData nodeTypeData : nodeTypes)
-      {
-
-         if (observer != null)
-         {
-            if (observer.shouldSkip(nodeTypeData, changesLog))
-               continue;
-            observer.beforeUpdate(nodeTypeData, changesLog);
-
-         }
-         if (!validatate())
-         {
-            continue;
-         }
-         // remove first
-         NodeData removeNodeTypeData =
-            (NodeData)dataManager.getItemData(nodeTypeStorageRoot, new QPathEntry(nodeTypeData.getName(), 1));
-         if (removeNodeTypeData != null)
-         {
-            ItemDataRemoveVisitor removeVisitor =
-               new ItemDataRemoveVisitor(dataManager, nodeTypeStorageRoot.getQPath());
-            removeNodeTypeData.accept(removeVisitor);
-
-            changesLog.addAll(removeVisitor.getRemovedStates());
-         }
-         // add
-         definitionAccessProvider.write(changesLog, nodeTypeStorageRoot, nodeTypeData);
-         if (observer != null)
-            observer.afterUpdate(nodeTypeData, changesLog);
-      }
-
-      dataManager.save(new TransactionChangesLog(changesLog));
-
-   }
-
-   private boolean validatate()
-   {
-      if (this.nodeTypeStorageRoot == null)
-      {
-         if (log.isDebugEnabled())
-            log.debug(" Storage not initialized");
-         return false;
-      }
-      return true;
-   }
-}

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/NodeTypeDataBuilder.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/NodeTypeDataBuilder.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/NodeTypeDataBuilder.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -25,7 +25,6 @@
 import org.exoplatform.services.jcr.datamodel.InternalQName;
 import org.exoplatform.services.jcr.impl.Constants;
 
-
 import java.util.LinkedList;
 import java.util.List;
 

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/NodeTypeReadException.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/NodeTypeReadException.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/registration/NodeTypeReadException.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -39,7 +39,6 @@
    public NodeTypeReadException()
    {
       super();
-      // TODO Auto-generated constructor stub
    }
 
    /**
@@ -49,7 +48,6 @@
    public NodeTypeReadException(String message, Throwable rootCause)
    {
       super(message, rootCause);
-      // TODO Auto-generated constructor stub
    }
 
    /**
@@ -58,7 +56,6 @@
    public NodeTypeReadException(String message)
    {
       super(message);
-      // TODO Auto-generated constructor stub
    }
 
    /**
@@ -67,7 +64,6 @@
    public NodeTypeReadException(Throwable rootCause)
    {
       super(rootCause);
-      // TODO Auto-generated constructor stub
    }
 
 }

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/value/ValueConstraintsMatcher.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/value/ValueConstraintsMatcher.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/value/ValueConstraintsMatcher.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -27,7 +27,6 @@
 import org.exoplatform.services.jcr.impl.core.JCRPath;
 import org.exoplatform.services.jcr.impl.core.JCRPathMatcher;
 import org.exoplatform.services.jcr.impl.core.LocationFactory;
-import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
 import org.exoplatform.services.jcr.impl.util.JCRDateFormat;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/FrozenNodeInitializer.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/FrozenNodeInitializer.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/FrozenNodeInitializer.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -21,7 +21,6 @@
 import org.exoplatform.services.jcr.core.nodetype.NodeDefinitionData;
 import org.exoplatform.services.jcr.core.nodetype.NodeTypeDataManager;
 import org.exoplatform.services.jcr.core.nodetype.PropertyDefinitionData;
-import org.exoplatform.services.jcr.dataflow.ItemDataTraversingVisitor;
 import org.exoplatform.services.jcr.dataflow.ItemState;
 import org.exoplatform.services.jcr.dataflow.PlainChangesLog;
 import org.exoplatform.services.jcr.datamodel.InternalQName;
@@ -41,7 +40,6 @@
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
 
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Stack;
 

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/AbstractItemDataCopyVisitor.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/AbstractItemDataCopyVisitor.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/AbstractItemDataCopyVisitor.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -63,7 +63,6 @@
       {
          for (ValueData vd : src)
          {
-            // TODO fix according OPT branch code
             if (vd.isByteArray())
             {
                copy.add(new TransientValueData(vd.getOrderNumber(), vd.getAsByteArray()));

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/DefaultItemDataCopyVisitor.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/DefaultItemDataCopyVisitor.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/DefaultItemDataCopyVisitor.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -27,12 +27,8 @@
 import org.exoplatform.services.jcr.datamodel.ValueData;
 import org.exoplatform.services.jcr.impl.Constants;
 import org.exoplatform.services.jcr.impl.core.SessionDataManager;
-import org.exoplatform.services.jcr.impl.util.io.FileCleaner;
 import org.exoplatform.services.jcr.util.IdGenerator;
 
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Stack;

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientNodeData.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientNodeData.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientNodeData.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -42,7 +42,6 @@
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 
-import javax.jcr.PathNotFoundException;
 import javax.jcr.RepositoryException;
 
 public class TransientNodeData extends TransientItemData implements Comparable, NodeData, ItemData, Externalizable

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientValueData.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientValueData.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientValueData.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -185,9 +185,6 @@
       {
          if (isByteArrayAfterSpool())
          {
-            // TODO JCR-992 don't copy bytes
-            // byte[] bytes = new byte[data.length];
-            // System.arraycopy(data, 0, bytes, 0, data.length);
             return data;
          }
          else
@@ -1105,7 +1102,7 @@
     *          int
     */
    // TODO make it protected
-   public TransientValueData()
+   TransientValueData()
    {
    }
 

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -18,12 +18,6 @@
  */
 package org.exoplatform.services.jcr.impl.dataflow.persistent;
 
-import java.util.Calendar;
-import java.util.List;
-
-import javax.jcr.InvalidItemStateException;
-import javax.jcr.RepositoryException;
-
 import org.exoplatform.services.jcr.access.AccessControlList;
 import org.exoplatform.services.jcr.dataflow.ItemStateChangesLog;
 import org.exoplatform.services.jcr.dataflow.SharedDataManager;
@@ -35,6 +29,12 @@
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
 
+import java.util.Calendar;
+import java.util.List;
+
+import javax.jcr.InvalidItemStateException;
+import javax.jcr.RepositoryException;
+
 /**
  * Created by The eXo Platform SAS. Data Manager supported ACL Inheritance
  * 

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -290,8 +290,6 @@
       this.requestCache = new HashMap<Integer, DataRequest>();
       addItemPersistenceListener(cache);
 
-      //TODO transactionManager = null;
-      
       if (cache instanceof JBossCacheWorkspaceStorageCache)
       {
          transactionManager = ((JBossCacheWorkspaceStorageCache)cache).getTransactionManager();

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CleanableFilePersistedValueData.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CleanableFilePersistedValueData.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CleanableFilePersistedValueData.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -25,7 +25,6 @@
 import org.exoplatform.services.log.Log;
 
 import java.io.FileNotFoundException;
-import java.io.IOException;
 
 import javax.jcr.RepositoryException;
 

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -18,12 +18,6 @@
  */
 package org.exoplatform.services.jcr.impl.dataflow.persistent;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.jcr.InvalidItemStateException;
-import javax.jcr.RepositoryException;
-
 import org.exoplatform.services.jcr.dataflow.ChangesLogIterator;
 import org.exoplatform.services.jcr.dataflow.CompositeChangesLog;
 import org.exoplatform.services.jcr.dataflow.DataManager;
@@ -42,6 +36,12 @@
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.jcr.InvalidItemStateException;
+import javax.jcr.RepositoryException;
+
 /**
  * Created by The eXo Platform SAS. Responsible for: *redirecting repository operations if item is
  * descendant of /jcr:system/jcr:versionStorage *adding version history for newly added/assigned

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -689,40 +689,6 @@
       return Fqn.fromRelativeElements(root, parentId);
    }
 
-   //   /**
-   //    * Internal put Item.
-   //    *
-   //    * @param item ItemData, new data to put in the cache
-   //    * @return ItemData, previous data or null
-   //    */
-   //   protected ItemData cacheItem(ItemData item)
-   //   {
-   //      if (item.isNode())
-   //      {
-   //         if (item.getParentIdentifier() != null)
-   //         {
-   //            // if not a root node - add in CHILD_NODES
-   //            cache.put(makeChildFqn(childNodes, item.getParentIdentifier(), item.getQPath().getEntries()[item.getQPath()
-   //               .getEntries().length - 1]), ITEM_ID, item.getIdentifier());
-   //         }
-   //      }
-   //      else
-   //      {
-   //         // add in CHILD_PROPS
-   //         cache.put(makeChildFqn(childProps, item.getParentIdentifier(), item.getQPath().getEntries()[item.getQPath()
-   //            .getEntries().length - 1]), ITEM_ID, item.getIdentifier());
-   //
-   //         // TODO REFERENCEs hadnling
-   //         //if (prop.getType() == PropertyType.REFERENCE)
-   //         //{
-   //         //   addReferences(data);
-   //         //}
-   //      }
-   //
-   //      // add in ITEMS
-   //      return (ItemData)cache.put(makeItemFqn(item.getIdentifier()), ITEM_DATA, item);
-   //   }
-
    /**
     * Internal put Item.
     *

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataWriter.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataWriter.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataWriter.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -21,7 +21,6 @@
 import org.exoplatform.services.jcr.dataflow.serialization.ObjectWriter;
 import org.exoplatform.services.jcr.dataflow.serialization.SerializationConstants;
 import org.exoplatform.services.jcr.impl.dataflow.AbstractPersistedValueData;
-import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
 import org.exoplatform.services.jcr.impl.dataflow.persistent.FilePersistedValueData;
 import org.exoplatform.services.jcr.util.IdGenerator;
 

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/SessionChangesLog.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/SessionChangesLog.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/SessionChangesLog.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -27,7 +27,6 @@
 import org.exoplatform.services.jcr.datamodel.QPath;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
 import org.exoplatform.services.jcr.impl.Constants;
-import org.exoplatform.services.jcr.impl.dataflow.TransientItemData;
 
 import java.util.ArrayList;
 import java.util.Collection;

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/StandaloneStoragePluginProvider.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/StandaloneStoragePluginProvider.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/StandaloneStoragePluginProvider.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -125,10 +125,7 @@
    }
 
    /**
-    * @param property
-    * @return ValueIOChannel appropriate for this property (by path, id etc) or null if no such
-    *         channel found
-    * @throws IOException
+    * {@inheritDoc}
     */
    public ValueIOChannel getApplicableChannel(PropertyData property, int valueOrderNumer) throws IOException
    {
@@ -146,6 +143,9 @@
       return null;
    }
 
+   /**
+    * {@inheritDoc}
+    */
    public void checkConsistency(WorkspaceStorageConnection dataConnection)
    {
       Iterator<ValueStoragePlugin> plugins = iterator();
@@ -156,6 +156,9 @@
       }
    }
 
+   /**
+    * {@inheritDoc}
+    */
    public ValueIOChannel getChannel(String storageId) throws IOException, ValueStorageNotFoundException
    {
       Iterator<ValueStoragePlugin> plugins = iterator();

Deleted: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/NodeIteratorOnDemand.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/NodeIteratorOnDemand.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/NodeIteratorOnDemand.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -1,173 +0,0 @@
-/*
- * Copyright (C) 2003-2009 eXo Platform SAS.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License
- * as published by the Free Software Foundation; either version 3
- * of the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see<http://www.gnu.org/licenses/>.
- */
-package org.exoplatform.services.jcr.impl.util;
-
-import org.exoplatform.services.jcr.datamodel.NodeData;
-import org.exoplatform.services.jcr.impl.core.NodeImpl;
-import org.exoplatform.services.jcr.impl.core.SessionDataManager;
-import org.exoplatform.services.log.ExoLogger;
-import org.exoplatform.services.log.Log;
-
-import java.util.Iterator;
-import java.util.List;
-
-import javax.jcr.Node;
-import javax.jcr.RepositoryException;
-
-/**
- * Created by The eXo Platform SAS.
- * 
- * <br/>
- * Date: 2009
- * 
- * @author <a href="mailto:anatoliy.bazko at exoplatform.com.ua">Anatoliy Bazko</a>
- * @version $Id$
- */
- at Deprecated
-public class NodeIteratorOnDemand extends EntityCollection
-{
-   protected static Log log = ExoLogger.getLogger("jcr.NodeIteratorOnDemand");
-
-   private final Iterator<Object> iter;
-
-   private final List<Object> list;
-
-   private final SessionDataManager dataManager;
-
-   private final NodeData parent;
-
-   private NodeImpl next;
-
-   private int pos;
-
-   /**
-    * NodeIteratorOnDemand  constructor. Gets list of NodeData and returns NodeImpl object on demand.
-    * NodeImpl objects will be created on next() or nextNode() methods when will be called.
-    *
-    * @param list
-    *          NodeData list
-    * @param parentPrimaryTypeName
-    *          parent primary type name
-    * @param parentMixinTypeNames
-    *          parent mixin type names
-    * @param dataManager
-    *          session data manager
-    */
-   @Deprecated
-   public NodeIteratorOnDemand(List<Object> list, SessionDataManager dataManager, NodeData parent)
-   {
-      this.list = list;
-
-      this.dataManager = dataManager;
-      this.parent = parent;
-
-      this.iter = list.iterator();
-      this.pos = 0;
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   public Node nextNode()
-   {
-      wrapNodeData();
-
-      pos++;
-      return (Node)iter.next();
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   public void skip(long skipNum)
-   {
-      pos += skipNum;
-      while (skipNum-- > 0)
-      {
-         iter.next();
-      }
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   public long getSize()
-   {
-      return list.size();
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   public long getPosition()
-   {
-      return pos;
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   public boolean hasNext()
-   {
-      return iter.hasNext();
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   public Object next()
-   {
-      wrapNodeData();
-
-      pos++;
-      return iter.next();
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   public void remove()
-   {
-      iter.remove();
-   }
-
-   /**
-    * Wraps NodeData into NodeImpl. 
-    */
-   private void wrapNodeData()
-   {
-      if (pos >= list.size())
-      {
-         return;
-      }
-
-      Object item = list.get(pos);
-      if (!(item instanceof NodeImpl))
-      {
-         try
-         {
-            list.set(pos, dataManager.wrapNodeData((NodeData)item, parent));
-         }
-         catch (RepositoryException e)
-         {
-            log.error(e);
-         }
-      }
-   }
-
-
-}

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -40,7 +40,6 @@
 import org.exoplatform.services.jcr.impl.core.RepositoryImpl;
 import org.exoplatform.services.jcr.impl.core.value.ValueFactoryImpl;
 import org.exoplatform.services.jcr.impl.dataflow.ItemDataRemoveVisitor;
-import org.exoplatform.services.jcr.impl.dataflow.TransientNodeData;
 import org.exoplatform.services.jcr.impl.dataflow.version.VersionHistoryDataHelper;
 import org.exoplatform.services.jcr.impl.xml.VersionHistoryRemover;
 import org.exoplatform.services.jcr.impl.xml.importing.dataflow.ImportItemData;

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestSessionDataManager.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestSessionDataManager.java	2010-01-13 15:57:16 UTC (rev 1377)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestSessionDataManager.java	2010-01-13 16:24:32 UTC (rev 1378)
@@ -124,7 +124,7 @@
       System.out.println("item >" + node1.getPath());
       assertTrue(pool.contains(uuid));
       // return the same value
-      assertEquals(node1, pool.get(node1));
+      assertEquals(node1, pool.get(node1.getData()));
 
       // add one more node
       data =



More information about the exo-jcr-commits mailing list