Package org.exoplatform.services.jcr.dataflow

Examples of org.exoplatform.services.jcr.dataflow.DataManager


      {
         LOG.debug("Restore on parent " + destParent.getQPath().getAsString() + " as " + name.getAsString()
            + ", removeExisting=" + removeExisting);
      }

      DataManager dmanager = restoreSession.getTransientNodesManager().getTransactManager();

      NodeData frozenData =
         (NodeData)dmanager.getItemData(nodeData(), new QPathEntry(Constants.JCR_FROZENNODE, 1), ItemType.NODE);

      ItemDataRestoreVisitor restoreVisitor =
         new ItemDataRestoreVisitor(destParent, name, historyData, restoreSession, removeExisting, delegatedLog);

      frozenData.accept(restoreVisitor);
View Full Code Here


   public void restore(SessionImpl restoreSession, NodeData destParent, InternalQName name, boolean removeExisting)
      throws RepositoryException
   {
      checkValid();

      DataManager dmanager = restoreSession.getTransientNodesManager().getTransactManager();

      NodeData vh = (NodeData)dmanager.getItemData(nodeData().getParentIdentifier()); // version
      // parent it's a VH
      VersionHistoryDataHelper historyHelper =
         new VersionHistoryDataHelper(vh, dmanager, session.getWorkspace().getNodeTypesHolder());

      SessionChangesLog changesLog = restoreLog(destParent, name, historyHelper, restoreSession, removeExisting, null);
      dmanager.save(changesLog);
   }
View Full Code Here

   }

   protected void doUpdate(NodeData mergeNode, NodeData corrNode) throws RepositoryException
   {

      DataManager mergeDataManager = mergeSession.getTransientNodesManager().getTransactManager();

      QPath mergePath = mergeNode.getQPath();

      TransientNodeData mergedNode =
         new TransientNodeData(mergePath, mergeNode.getIdentifier(), mergeNode.getPersistedVersion(),
            corrNode.getPrimaryTypeName(), corrNode.getMixinTypeNames(), mergeNode.getOrderNumber(),
            mergeNode.getParentIdentifier(), mergeNode.getACL());

      if (!mergeNode.getIdentifier().equals(corrNode.getIdentifier()))
      {

         NodeData existedSameIdentifier = (NodeData)mergeDataManager.getItemData(corrNode.getIdentifier());
         if (existedSameIdentifier != null)
         {
            // if an incoming node has the same
            // UUID as a node already existing in this workspace,
            // the already existing node is removed

            RemoveVisitor remover = new RemoveVisitor();
            existedSameIdentifier.accept(remover);

            changes.addAll(remover.getRemovedStates());
         }
      }

      changes.add(new ItemState(mergedNode, ItemState.UPDATED, true, mergeNode.getQPath(), true));

      // replace set of properties of n with those of n'.
      DataManager corrDataManager = corrSession.getTransientNodesManager().getTransactManager();
      List<PropertyData> corrChildProps = corrDataManager.getChildPropertiesData(corrNode);
      List<PropertyData> mergeChildProps = mergeDataManager.getChildPropertiesData(mergeNode);

      Map<InternalQName, PropertyData> existedProps = new HashMap<InternalQName, PropertyData>();
      for (PropertyData cp : mergeChildProps)
      {
         TransientPropertyData existed =
            new TransientPropertyData(cp.getQPath(), cp.getIdentifier(), cp.getPersistedVersion(), cp.getType(),
               cp.getParentIdentifier(), cp.isMultiValued(), copyValues(cp));
         changes.add(new ItemState(existed, ItemState.DELETED, true, mergedNode.getQPath(), true));

         existedProps.put(existed.getQPath().getName(), existed);
      }

      for (PropertyData cp : corrChildProps)
      {
         PropertyData existed = existedProps.get(cp.getQPath().getName());
         TransientPropertyData mcp =
            new TransientPropertyData(QPath.makeChildPath(mergePath, cp.getQPath().getName()), existed != null
               ? existed.getIdentifier() : cp.getIdentifier(), existed != null ? existed.getPersistedVersion()
               : cp.getPersistedVersion(), cp.getType(), mergedNode.getIdentifier(), cp.isMultiValued(), copyValues(cp));

         changes.add(new ItemState(mcp, ItemState.ADDED, true, mergedNode.getQPath(), true));
      }

      List<NodeData> childNodes = corrDataManager.getChildNodesData(corrNode);
      parents.push(new ContextParent(mergedNode, childNodes, UPDATE));

      // let S be the set of child nodes of n.
      // let S' be the set of child nodes of n'.
      // judging by the name of the child node:
View Full Code Here

   }

   protected void doUpdate(NodeData mergeNode, NodeData corrNode) throws RepositoryException
   {

      DataManager mergeDataManager = mergeSession.getTransientNodesManager().getTransactManager();

      QPath mergePath = mergeNode.getQPath();

      TransientNodeData mergedNode =
         new TransientNodeData(mergePath, mergeNode.getIdentifier(), mergeNode.getPersistedVersion(),
            corrNode.getPrimaryTypeName(), corrNode.getMixinTypeNames(), mergeNode.getOrderNumber(),
            mergeNode.getParentIdentifier(), mergeNode.getACL());

      if (!mergeNode.getIdentifier().equals(corrNode.getIdentifier()))
      {

         NodeData existedSameIdentifier = (NodeData)mergeDataManager.getItemData(corrNode.getIdentifier());
         if (existedSameIdentifier != null)
         {
            // if an incoming node has the same
            // UUID as a node already existing in this workspace,
            // the already existing node is removed

            RemoveVisitor remover = new RemoveVisitor();
            existedSameIdentifier.accept(remover);

            changes.addAll(remover.getRemovedStates());
         }
      }

      changes.add(new ItemState(mergedNode, ItemState.UPDATED, true, mergeNode.getQPath(), true));

      // replace set of properties of n with those of n'.
      DataManager corrDataManager = corrSession.getTransientNodesManager().getTransactManager();
      List<PropertyData> corrChildProps = corrDataManager.getChildPropertiesData(corrNode);
      List<PropertyData> mergeChildProps = mergeDataManager.getChildPropertiesData(mergeNode);

      Map<InternalQName, PropertyData> existedProps = new HashMap<InternalQName, PropertyData>();
      for (PropertyData cp : mergeChildProps)
      {
         TransientPropertyData existed =
            new TransientPropertyData(cp.getQPath(), cp.getIdentifier(), cp.getPersistedVersion(), cp.getType(),
               cp.getParentIdentifier(), cp.isMultiValued(), copyValues(cp));
         changes.add(new ItemState(existed, ItemState.DELETED, true, mergedNode.getQPath(), true));

         existedProps.put(existed.getQPath().getName(), existed);
      }

      for (PropertyData cp : corrChildProps)
      {
         PropertyData existed = existedProps.get(cp.getQPath().getName());
         TransientPropertyData mcp =
            new TransientPropertyData(QPath.makeChildPath(mergePath, cp.getQPath().getName()), existed != null
               ? existed.getIdentifier() : cp.getIdentifier(), existed != null ? existed.getPersistedVersion()
               : cp.getPersistedVersion(), cp.getType(), mergedNode.getIdentifier(), cp.isMultiValued(), copyValues(cp));

         changes.add(new ItemState(mcp, ItemState.ADDED, true, mergedNode.getQPath(), true));
      }

      List<NodeData> childNodes = corrDataManager.getChildNodesData(corrNode);
      parents.push(new ContextParent(mergedNode, childNodes, UPDATE));

      // let S be the set of child nodes of n.
      // let S' be the set of child nodes of n'.
      // judging by the name of the child node:
View Full Code Here

      {
         LOG.debug("Restore on parent " + destParent.getQPath().getAsString() + " as " + name.getAsString()
            + ", removeExisting=" + removeExisting);
      }

      DataManager dmanager = restoreSession.getTransientNodesManager().getTransactManager();

      NodeData frozenData =
         (NodeData)dmanager.getItemData(nodeData(), new QPathEntry(Constants.JCR_FROZENNODE, 1), ItemType.NODE);

      ItemDataRestoreVisitor restoreVisitor =
         new ItemDataRestoreVisitor(destParent, name, historyData, restoreSession, removeExisting, delegatedLog);

      frozenData.accept(restoreVisitor);
View Full Code Here

      throws RepositoryException
   {

      checkValid();

      DataManager dmanager = restoreSession.getTransientNodesManager().getTransactManager();

      NodeData vh = (NodeData)dmanager.getItemData(nodeData().getParentIdentifier()); // version
      // parent it's a VH
      VersionHistoryDataHelper historyHelper =
         new VersionHistoryDataHelper(vh, dmanager, session.getWorkspace().getNodeTypesHolder());

      SessionChangesLog changesLog = restoreLog(destParent, name, historyHelper, restoreSession, removeExisting, null);
      dmanager.save(changesLog);
   }
View Full Code Here

      testRoot.save();
   }

   protected List<QPathEntry[]> createInternalAPICase() throws Exception
   {
      DataManager dm =
         ((NodeImpl)testRoot).getSession().getTransientNodesManager().getTransactManager().getStorageDataManager();

      List<QPathEntry[]> props = new ArrayList<QPathEntry[]>();
      NodeData rootData = (NodeData)((NodeImpl)testRoot).getData();
      fBLOB1.mark(FILE1_SIZE);
      fBLOB2.mark(FILE2_SIZE);
      for (int i = 0; i < FILES_COUNT; i++)
      {
         try
         {
            SessionChangesLog changes = new SessionChangesLog(((NodeImpl)testRoot).getSession());

            TransientNodeData ntfile =
               TransientNodeData.createNodeData(rootData, InternalQName.parse("[]blob" + i), Constants.NT_FILE);
            changes.add(ItemState.createAddedState(ntfile));

            TransientPropertyData ntfilePrimaryType =
               TransientPropertyData.createPropertyData(ntfile, Constants.JCR_PRIMARYTYPE, PropertyType.NAME, false,
                  new TransientValueData(Constants.NT_FILE));
            changes.add(ItemState.createAddedState(ntfilePrimaryType));

            TransientNodeData res =
               TransientNodeData.createNodeData(ntfile, Constants.JCR_CONTENT, Constants.NT_UNSTRUCTURED);
            changes.add(ItemState.createAddedState(res));

            TransientPropertyData resPrimaryType =
               TransientPropertyData.createPropertyData(res, Constants.JCR_PRIMARYTYPE, PropertyType.NAME, false,
                  new TransientValueData(Constants.NT_UNSTRUCTURED));
            changes.add(ItemState.createAddedState(resPrimaryType));

            List<ValueData> data = new ArrayList<ValueData>();
            if (i % 10 == 0)
            {
               data.add(new TransientValueData(fBLOB1, SpoolConfig.getDefaultSpoolConfig()));
               data.add(new TransientValueData(fBLOB2, SpoolConfig.getDefaultSpoolConfig()));
            }
            else
            {
               data.add(new TransientValueData(fBLOB1, SpoolConfig.getDefaultSpoolConfig()));
            }

            TransientPropertyData resData =
               TransientPropertyData.createPropertyData(res, Constants.JCR_DATA, PropertyType.BINARY, data.size() > 1,
                  data);
            changes.add(ItemState.createAddedState(resData));

            TransientPropertyData resMimeType =
               TransientPropertyData.createPropertyData(res, Constants.JCR_MIMETYPE, PropertyType.STRING, false,
                  new TransientValueData("application/x-octet-stream"));
            changes.add(ItemState.createAddedState(resMimeType));

            TransientPropertyData resLastModified =
               TransientPropertyData.createPropertyData(res, Constants.JCR_LASTMODIFIED, PropertyType.DATE, false,
                  new TransientValueData(Calendar.getInstance()));
            changes.add(ItemState.createAddedState(resLastModified));

            QPath path = resData.getQPath();

            dm.save(new TransactionChangesLog(changes));

            props.add(path.getRelPath(path.getEntries().length - rootData.getQPath().getEntries().length));
         }
         catch (RepositoryException e)
         {
View Full Code Here

      return props;
   }

   protected void deleteInternalAPICase() throws RepositoryException
   {
      final DataManager dm =
         ((NodeImpl)testRoot).getSession().getTransientNodesManager().getTransactManager().getStorageDataManager();
      final SessionChangesLog changes = new SessionChangesLog(((NodeImpl)testRoot).getSession());

      class Remover
      {
         void delete(NodeData node) throws RepositoryException
         {
            for (NodeData nd : dm.getChildNodesData(node))
            {
               new Remover().delete(nd);
            }
            for (PropertyData pd : dm.getChildPropertiesData(node))
            {
               changes.add(ItemState.createDeletedState(pd));
            }
            changes.add(ItemState.createDeletedState(node));
         }
      }

      NodeData rootData = (NodeData)((NodeImpl)testRoot).getData();

      new Remover().delete(rootData);

      dm.save(new TransactionChangesLog(changes));
   }
View Full Code Here

   }

   public void _testReadWriteInternalAPI() throws Exception
   {

      DataManager manager =
         ((NodeImpl)testRoot).getSession().getTransientNodesManager().getTransactManager().getStorageDataManager();
      NodeData parent = (NodeData)((NodeImpl)testRoot).getData();

      long time = System.currentTimeMillis();
      List<QPathEntry[]> props = createInternalAPICase();
View Full Code Here

         for (WorkspaceEntry wEntry : repositoryEntry.getWorkspaceEntries())
         {
            repositoryService.getRepository(this.repositoryEntry.getName()).getWorkspaceContainer(wEntry.getName())
               .getComponentInstancesOfType(Backupable.class);

            DataManager dataManager =
               (WorkspacePersistentDataManager)repositoryService.getRepository(this.repositoryEntry.getName())
                  .getWorkspaceContainer(wEntry.getName()).getComponent(WorkspacePersistentDataManager.class);

            FileCleanerHolder fileCleanHolder =
               (FileCleanerHolder)repositoryService.getRepository(this.repositoryEntry.getName())
View Full Code Here

TOP

Related Classes of org.exoplatform.services.jcr.dataflow.DataManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.