You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by sa...@apache.org on 2012/08/07 13:31:05 UTC
svn commit: r1370189 - in /ofbiz/branches/jackrabbit20120501: ./
framework/jcr/config/ framework/jcr/lib/
framework/jcr/src/org/ofbiz/jcr/access/jackrabbit/
framework/jcr/src/org/ofbiz/jcr/test/ framework/jcr/testdef/
Author: sascharodekamp
Date: Tue Aug 7 11:31:04 2012
New Revision: 1370189
URL: http://svn.apache.org/viewvc?rev=1370189&view=rev
Log:
Update Jackrabbit to version 2.5.1, fix tests to run with the new jackrabbit version
Added:
ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-api-2.5.1.jar (with props)
ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-core-2.5.1.jar (with props)
ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-jca-2.5.1.jar (with props)
ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-jcr-commons-2.5.1.jar (with props)
ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-spi-2.5.1.jar (with props)
ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-spi-commons-2.5.1.jar (with props)
ofbiz/branches/jackrabbit20120501/framework/jcr/lib/lucene-core-3.6.0.jar (with props)
Removed:
ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-api-2.3.3.jar
ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-core-2.3.3.jar
ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-jca-2.3.3.jar
ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-jcr-commons-2.3.3.jar
ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-spi-2.3.3.jar
ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-spi-commons-2.3.3.jar
Modified:
ofbiz/branches/jackrabbit20120501/.classpath
ofbiz/branches/jackrabbit20120501/LICENSE
ofbiz/branches/jackrabbit20120501/framework/jcr/config/jackrabbit.xml
ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/access/jackrabbit/VersioningManagerJackrabbit.java
ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitDataTests.java
ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitFilesTests.java
ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitQueryTests.java
ofbiz/branches/jackrabbit20120501/framework/jcr/testdef/jcrtests.xml
Modified: ofbiz/branches/jackrabbit20120501/.classpath
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/.classpath?rev=1370189&r1=1370188&r2=1370189&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/.classpath (original)
+++ ofbiz/branches/jackrabbit20120501/.classpath Tue Aug 7 11:31:04 2012
@@ -205,13 +205,13 @@
<classpathentry kind="src" path="specialpurpose/webpos/src"/>
<classpathentry kind="src" path="specialpurpose/workflow/src"/>
<classpathentry exported="true" kind="con" path="GROOVY_DSL_SUPPORT"/>
- <classpathentry kind="lib" path="framework/jcr/lib/jackrabbit-api-2.3.3.jar"/>
- <classpathentry kind="lib" path="framework/jcr/lib/jackrabbit-core-2.3.3.jar"/>
- <classpathentry kind="lib" path="framework/jcr/lib/jackrabbit-jca-2.3.3.jar"/>
- <classpathentry kind="lib" path="framework/jcr/lib/jackrabbit-jcr-commons-2.3.3.jar"/>
+ <classpathentry kind="lib" path="framework/jcr/lib/jackrabbit-api-2.5.1.jar"/>
+ <classpathentry kind="lib" path="framework/jcr/lib/jackrabbit-core-2.5.1.jar"/>
+ <classpathentry kind="lib" path="framework/jcr/lib/jackrabbit-jca-2.5.1.jar"/>
+ <classpathentry kind="lib" path="framework/jcr/lib/jackrabbit-jcr-commons-2.5.1.jar"/>
<classpathentry kind="lib" path="framework/jcr/lib/jackrabbit-ocm-2.0.jar"/>
- <classpathentry kind="lib" path="framework/jcr/lib/jackrabbit-spi-2.3.3.jar"/>
- <classpathentry kind="lib" path="framework/jcr/lib/jackrabbit-spi-commons-2.3.3.jar"/>
+ <classpathentry kind="lib" path="framework/jcr/lib/jackrabbit-spi-2.5.1.jar"/>
+ <classpathentry kind="lib" path="framework/jcr/lib/jackrabbit-spi-commons-2.5.1.jar"/>
<classpathentry kind="lib" path="framework/jcr/lib/jcr-2.0.jar"/>
<classpathentry kind="lib" path="framework/catalina/lib/tomcat-7.0.29-catalina-ha.jar"/>
<classpathentry kind="lib" path="framework/catalina/lib/tomcat-7.0.29-catalina-tribes.jar"/>
Modified: ofbiz/branches/jackrabbit20120501/LICENSE
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/LICENSE?rev=1370189&r1=1370188&r2=1370189&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/LICENSE (original)
+++ ofbiz/branches/jackrabbit20120501/LICENSE Tue Aug 7 11:31:04 2012
@@ -82,15 +82,14 @@ ofbiz/framework/catalina/lib/tomcat-7.0.
ofbiz/trunk/framework/entity/lib/commons-dbcp-1.4.jar
ofbiz/trunk/framework/entity/lib/jdbc/derby-10.8.2.2.jar
ofbiz/trunk/framework/entity/lib/jdbc/derbytools-10.8.2.2.jar
-ofbiz/trunk/framework/jcr/lib/cglib-2.2.jar
ofbiz/trunk/framework/jcr/lib/concurrent-1.3.4.jar
-ofbiz/trunk/framework/jcr/lib/jackrabbit-api-2.3.3.jar
-ofbiz/trunk/framework/jcr/lib/jackrabbit-core-2.3.3.jar
-ofbiz/trunk/framework/jcr/lib/jackrabbit-jca-2.3.3.jar
-ofbiz/trunk/framework/jcr/lib/jackrabbit-jcr-commons-2.3.3.jar
+ofbiz/trunk/framework/jcr/lib/jackrabbit-api-2.5.1.jar
+ofbiz/trunk/framework/jcr/lib/jackrabbit-core-2.5.1.jar
+ofbiz/trunk/framework/jcr/lib/jackrabbit-jca-2.5.1.jar
+ofbiz/trunk/framework/jcr/lib/jackrabbit-jcr-commons-2.5.1.jar
ofbiz/trunk/framework/jcr/lib/jackrabbit-ocm-2.0.jar
-ofbiz/trunk/framework/jcr/lib/jackrabbit-spi-2.3.3.jar
-ofbiz/trunk/framework/jcr/lib/jackrabbit-spi-commons-2.3.3.jar
+ofbiz/trunk/framework/jcr/lib/jackrabbit-spi-2.5.1.jar
+ofbiz/trunk/framework/jcr/lib/jackrabbit-spi-commons-2.5.1.jar
ofbiz/trunk/framework/jcr/lib/jcr-2.0.jar
ofbiz/trunk/framework/jcr/lib/tagsoup-1.2.1.jar
ofbiz/trunk/framework/jcr/lib/tika-core-1.0.jar
Modified: ofbiz/branches/jackrabbit20120501/framework/jcr/config/jackrabbit.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/config/jackrabbit.xml?rev=1370189&r1=1370188&r2=1370189&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/jcr/config/jackrabbit.xml (original)
+++ ofbiz/branches/jackrabbit20120501/framework/jcr/config/jackrabbit.xml Tue Aug 7 11:31:04 2012
@@ -96,12 +96,11 @@
<!--
Search index and the file system it uses.
class: FQN of class implementing the QueryHandler interface
-
+ -->
<SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
<param name="path" value="${wsp.home}/index"/>
<param name="supportHighlighting" value="true"/>
</SearchIndex>
- -->
</Workspace>
<!--
@@ -131,10 +130,9 @@
<!--
Search index for content that is shared repository wide
(/jcr:system tree, contains mainly versions)
-
+ -->
<SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
<param name="path" value="${rep.home}/repository/index"/>
<param name="supportHighlighting" value="true"/>
</SearchIndex>
- -->
</Repository>
\ No newline at end of file
Added: ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-api-2.5.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-api-2.5.1.jar?rev=1370189&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-api-2.5.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-core-2.5.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-core-2.5.1.jar?rev=1370189&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-core-2.5.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-jca-2.5.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-jca-2.5.1.jar?rev=1370189&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-jca-2.5.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-jcr-commons-2.5.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-jcr-commons-2.5.1.jar?rev=1370189&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-jcr-commons-2.5.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-spi-2.5.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-spi-2.5.1.jar?rev=1370189&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-spi-2.5.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-spi-commons-2.5.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-spi-commons-2.5.1.jar?rev=1370189&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ofbiz/branches/jackrabbit20120501/framework/jcr/lib/jackrabbit-spi-commons-2.5.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ofbiz/branches/jackrabbit20120501/framework/jcr/lib/lucene-core-3.6.0.jar
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/lib/lucene-core-3.6.0.jar?rev=1370189&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ofbiz/branches/jackrabbit20120501/framework/jcr/lib/lucene-core-3.6.0.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/access/jackrabbit/VersioningManagerJackrabbit.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/access/jackrabbit/VersioningManagerJackrabbit.java?rev=1370189&r1=1370188&r2=1370189&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/access/jackrabbit/VersioningManagerJackrabbit.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/access/jackrabbit/VersioningManagerJackrabbit.java Tue Aug 7 11:31:04 2012
@@ -29,6 +29,7 @@ import javax.jcr.NodeIterator;
import javax.jcr.PathNotFoundException;
import javax.jcr.RepositoryException;
import javax.jcr.UnsupportedRepositoryOperationException;
+import javax.jcr.nodetype.NodeType;
import javax.jcr.version.VersionException;
import org.apache.jackrabbit.ocm.manager.ObjectContentManager;
@@ -40,245 +41,265 @@ import org.ofbiz.jcr.util.jackrabbit.Jac
public class VersioningManagerJackrabbit implements VersioningManager {
- private final static String module = VersioningManagerJackrabbit.class.getName();
+ private final static String module = VersioningManagerJackrabbit.class.getName();
- private final ObjectContentManager ocm;
+ private final ObjectContentManager ocm;
- private final Set<String> checkedOutNodeStore = Collections.synchronizedSet(new HashSet<String>());
- private final static String NOVERSION = "-0.0";
+ private final Set<String> checkedOutNodeStore = Collections.synchronizedSet(new HashSet<String>());
+ private final static String NOVERSION = "-0.0";
- VersioningManagerJackrabbit(ObjectContentManager ocm) {
- this.ocm = ocm;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.ofbiz.jcr.access.VersioningManager#getVersionList(java.lang.String)
- */
- @Override
- public List<String> getVersionList(String nodePath) {
- List<String> result = new ArrayList<String>();
- VersionIterator versionIterator = null;
- try {
- versionIterator = this.ocm.getAllVersions(nodePath);
- } catch (VersionException e) {
- Debug.logError(e, module);
- return result;
- }
-
- // write the versions to the array list.
- while (versionIterator.hasNext()) {
- Version version = (Version) versionIterator.next();
- // filter the root version string, because it's not needed each node
- // starts with the version number 1.0
- if (isNotRootVersion(version)) {
- result.add(version.getName());
- }
- }
-
- return result;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.ofbiz.jcr.access.VersioningManager#checkIfVersionExist(java.lang.
- * String, java.lang.String)
- */
- @Override
- public boolean checkIfVersionExist(String nodePath, String version) {
- return getVersionList(nodePath).contains(version);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.ofbiz.jcr.access.VersioningManager#checkOutContentObject(java.lang
- * .String)
- */
- @Override
- public void checkOutContentObject(String nodePath) {
- // check if the parent node is the root node, because the
- // root node can not be checked out.
- if (JackrabbitUtils.isARootNode(nodePath)) {
- return;
- }
-
- try {
- if (doNodeExist(nodePath) && isNodeNotCheckedOut(nodePath)) {
- this.ocm.checkout(nodePath);
- this.addContentToCheckInList(nodePath);
- }
- } catch (VersionException e) {
- Debug.logError(e, module);
- } catch (UnsupportedRepositoryOperationException e) {
- Debug.logError(e, module);
- } catch (RepositoryException e) {
- Debug.logError(e, module);
- }
- }
-
- public void checkOutContentObject(String nodePath, boolean checkOutAllSubnodes) {
- if (checkOutAllSubnodes) {
- try {
- checkOutRelatedNodes(nodePath);
- } catch (RepositoryException e) {
- Debug.logError(e, module);
- }
- } else {
- checkOutContentObject(nodePath);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.ofbiz.jcr.access.VersioningManager#addContentToCheckInList(java.lang
- * .String)
- */
- @Override
- public void addContentToCheckInList(String nodePath) {
- checkedOutNodeStore.add(nodePath);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.ofbiz.jcr.access.VersioningManager#checkInContentAndSaveState()
- */
- @Override
- public void checkInContentAndSaveState() {
- ocm.save();
-
- try {
- for (String nodePath : checkedOutNodeStore) {
- checkinNode(nodePath);
- }
-
- // reset the node store after everything is checked in
- checkedOutNodeStore.clear();
- } catch (VersionException e) {
- Debug.logError(e, module);
- } catch (UnsupportedRepositoryOperationException e) {
- Debug.logError(e, module);
- } catch (RepositoryException e) {
- Debug.logError(e, module);
- }
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.ofbiz.jcr.access.VersioningManager#getBaseVersion(java.lang.String)
- */
- @Override
- public String getBaseVersion(String nodePath) {
- try {
- return ocm.getBaseVersion(nodePath).getName();
- } catch (VersionException e) {
- Debug.logError(e, module);
- return NOVERSION;
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.ofbiz.jcr.access.VersioningManager#getRootVersion(java.lang.String)
- */
- @Override
- public String getRootVersion(String nodePath) {
- try {
- return ocm.getRootVersion(nodePath).getName();
- } catch (VersionException e) {
- Debug.logError(e, module);
- return NOVERSION;
- }
- }
-
- /**
- * Checks out recursively all related nodes (parent, all child's (if exists)
- * and the node itself)
- *
- * @param startNode
- * @throws RepositoryException
- */
- private void checkOutRelatedNodes(String startNodePath) throws RepositoryException {
- Node startNode = getNode(startNodePath);
- List<String> nodesToCheckOut = new ArrayList<String>();
-
- nodesToCheckOut.add(startNodePath);
- nodesToCheckOut.add(startNode.getParent().getPath());
-
- if (startNode.hasNodes()) {
- List<String> allChildNodes = getAllChildNodes(startNode);
- nodesToCheckOut.addAll(allChildNodes);
- }
-
- for (String node : nodesToCheckOut) {
- this.checkOutContentObject(node);
- }
-
- }
-
- /**
- * Return recursively all child nodes
- *
- * @param startNode
- * @return
- * @throws RepositoryException
- */
- private List<String> getAllChildNodes(Node startNode) throws RepositoryException {
- List<String> nodes = new ArrayList<String>();
-
- NodeIterator subNodeIterator = startNode.getNodes();
- while (subNodeIterator.hasNext()) {
- Node subNode = subNodeIterator.nextNode();
-
- if (subNode.hasNodes()) {
- nodes.addAll(getAllChildNodes(subNode));
- }
-
- nodes.add(subNode.getPath());
- }
-
- return nodes;
- }
-
- private void checkinNode(String nodePath) throws RepositoryException, UnsupportedRepositoryOperationException, VersionException {
- if (doNodeExist(nodePath) && this.isNodeCheckedOut(nodePath)) {
- this.ocm.checkin(nodePath);
- }
- }
-
- private Node getNode(String startNodePath) throws PathNotFoundException, RepositoryException {
- return ocm.getSession().getNode(startNodePath);
- }
-
- private boolean isNotRootVersion(Version version) {
- return !ConstantsJackrabbit.ROOTVERSION.equals(version.getName());
- }
-
- private boolean doNodeExist(String nodePath) throws RepositoryException {
- return this.ocm.getSession().nodeExists(nodePath);
- }
-
- private boolean isNodeNotCheckedOut(String nodePath) throws RepositoryException, UnsupportedRepositoryOperationException {
- return !isNodeCheckedOut(nodePath);
- }
-
- private boolean isNodeCheckedOut(String nodePath) throws UnsupportedRepositoryOperationException, RepositoryException {
- boolean isNodeMarkedAsCheckedOut = this.ocm.getSession().getWorkspace().getVersionManager().isCheckedOut(nodePath);
- boolean isNodeInCheckedOutNodeStore = checkedOutNodeStore.contains(nodePath);
+ VersioningManagerJackrabbit(ObjectContentManager ocm) {
+ this.ocm = ocm;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.ofbiz.jcr.access.VersioningManager#getVersionList(java.lang.String)
+ */
+ @Override
+ public List<String> getVersionList(String nodePath) {
+ List<String> result = new ArrayList<String>();
+ VersionIterator versionIterator = null;
+ try {
+ versionIterator = this.ocm.getAllVersions(nodePath);
+ } catch (VersionException e) {
+ Debug.logError(e, module);
+ return result;
+ }
+
+ // write the versions to the array list.
+ while (versionIterator.hasNext()) {
+ Version version = (Version) versionIterator.next();
+ // filter the root version string, because it's not needed each node
+ // starts with the version number 1.0
+ if (isNotRootVersion(version)) {
+ result.add(version.getName());
+ }
+ }
+
+ return result;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.ofbiz.jcr.access.VersioningManager#checkIfVersionExist(java.lang.
+ * String, java.lang.String)
+ */
+ @Override
+ public boolean checkIfVersionExist(String nodePath, String version) {
+ return getVersionList(nodePath).contains(version);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.ofbiz.jcr.access.VersioningManager#checkOutContentObject(java.lang
+ * .String)
+ */
+ @Override
+ public void checkOutContentObject(String nodePath) {
+ // check if the parent node is the root node, because the
+ // root node can not be checked out.
+ if (JackrabbitUtils.isARootNode(nodePath)) {
+ return;
+ }
+
+ try {
+ if (doNodeExist(nodePath) && isNodeVersionable(nodePath) && isNodeNotCheckedOut(nodePath)) {
+ this.ocm.checkout(nodePath);
+ this.addContentToCheckInList(nodePath);
+ }
+ } catch (VersionException e) {
+ Debug.logError(e, module);
+ } catch (UnsupportedRepositoryOperationException e) {
+ Debug.logError(e, module);
+ } catch (RepositoryException e) {
+ Debug.logError(e, module);
+ }
+ }
+
+ private boolean isNodeVersionable(String nodePath) {
+ boolean isVersionable = false;
+ try {
+ NodeType[] nodeType = this.ocm.getSession().getNode(nodePath).getMixinNodeTypes();
+ for (NodeType type : nodeType) {
+ isVersionable = type.isNodeType(NodeType.MIX_VERSIONABLE);
+ }
+
+ } catch (PathNotFoundException e) {
+ Debug.logError(e, module);
+ } catch (RepositoryException e) {
+ Debug.logError(e, module);
+ }
+ return isVersionable;
+ }
+
+ public void checkOutContentObject(String nodePath, boolean checkOutAllSubnodes) {
+ if (checkOutAllSubnodes) {
+ try {
+ checkOutRelatedNodes(nodePath);
+ } catch (RepositoryException e) {
+ Debug.logError(e, module);
+ }
+ } else {
+ checkOutContentObject(nodePath);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.ofbiz.jcr.access.VersioningManager#addContentToCheckInList(java.lang
+ * .String)
+ */
+ @Override
+ public void addContentToCheckInList(String nodePath) {
+ checkedOutNodeStore.add(nodePath);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.ofbiz.jcr.access.VersioningManager#checkInContentAndSaveState()
+ */
+ @Override
+ public void checkInContentAndSaveState() {
+ ocm.save();
+
+ try {
+ for (String nodePath : checkedOutNodeStore) {
+ checkinNode(nodePath);
+ }
+
+ // reset the node store after everything is checked in
+ checkedOutNodeStore.clear();
+ } catch (VersionException e) {
+ Debug.logError(e, module);
+ } catch (UnsupportedRepositoryOperationException e) {
+ Debug.logError(e, module);
+ } catch (RepositoryException e) {
+ Debug.logError(e, module);
+ }
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.ofbiz.jcr.access.VersioningManager#getBaseVersion(java.lang.String)
+ */
+ @Override
+ public String getBaseVersion(String nodePath) {
+ try {
+ return ocm.getBaseVersion(nodePath).getName();
+ } catch (VersionException e) {
+ Debug.logError(e, module);
+ return NOVERSION;
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.ofbiz.jcr.access.VersioningManager#getRootVersion(java.lang.String)
+ */
+ @Override
+ public String getRootVersion(String nodePath) {
+ try {
+ return ocm.getRootVersion(nodePath).getName();
+ } catch (VersionException e) {
+ Debug.logError(e, module);
+ return NOVERSION;
+ }
+ }
+
+ /**
+ * Checks out recursively all related nodes (parent, all child's (if exists)
+ * and the node itself)
+ *
+ * @param startNode
+ * @throws RepositoryException
+ */
+ private void checkOutRelatedNodes(String startNodePath) throws RepositoryException {
+ Node startNode = getNode(startNodePath);
+ List<String> nodesToCheckOut = new ArrayList<String>();
+
+ nodesToCheckOut.add(startNodePath);
+ nodesToCheckOut.add(startNode.getParent().getPath());
+
+ if (startNode.hasNodes()) {
+ List<String> allChildNodes = getAllChildNodes(startNode);
+ nodesToCheckOut.addAll(allChildNodes);
+ }
+
+ for (String node : nodesToCheckOut) {
+ this.checkOutContentObject(node);
+ }
+
+ }
+
+ /**
+ * Return recursively all child nodes
+ *
+ * @param startNode
+ * @return
+ * @throws RepositoryException
+ */
+ private List<String> getAllChildNodes(Node startNode) throws RepositoryException {
+ List<String> nodes = new ArrayList<String>();
+
+ NodeIterator subNodeIterator = startNode.getNodes();
+ while (subNodeIterator.hasNext()) {
+ Node subNode = subNodeIterator.nextNode();
+
+ if (subNode.hasNodes()) {
+ nodes.addAll(getAllChildNodes(subNode));
+ }
+
+ nodes.add(subNode.getPath());
+ }
+
+ return nodes;
+ }
+
+ private void checkinNode(String nodePath) throws RepositoryException, UnsupportedRepositoryOperationException,
+ VersionException {
+ if (doNodeExist(nodePath) && this.isNodeCheckedOut(nodePath)) {
+ this.ocm.checkin(nodePath);
+ }
+ }
+
+ private Node getNode(String startNodePath) throws PathNotFoundException, RepositoryException {
+ return ocm.getSession().getNode(startNodePath);
+ }
+
+ private boolean isNotRootVersion(Version version) {
+ return !ConstantsJackrabbit.ROOTVERSION.equals(version.getName());
+ }
+
+ private boolean doNodeExist(String nodePath) throws RepositoryException {
+ return this.ocm.getSession().nodeExists(nodePath);
+ }
+
+ private boolean isNodeNotCheckedOut(String nodePath) throws RepositoryException,
+ UnsupportedRepositoryOperationException {
+ return !isNodeCheckedOut(nodePath);
+ }
+
+ private boolean isNodeCheckedOut(String nodePath) throws UnsupportedRepositoryOperationException,
+ RepositoryException {
+ boolean isNodeMarkedAsCheckedOut = this.ocm.getSession().getWorkspace().getVersionManager()
+ .isCheckedOut(nodePath);
+ boolean isNodeInCheckedOutNodeStore = checkedOutNodeStore.contains(nodePath);
- return (isNodeMarkedAsCheckedOut && isNodeInCheckedOutNodeStore);
- }
+ return (isNodeMarkedAsCheckedOut && isNodeInCheckedOutNodeStore);
+ }
}
Modified: ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitDataTests.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitDataTests.java?rev=1370189&r1=1370188&r2=1370189&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitDataTests.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitDataTests.java Tue Aug 7 11:31:04 2012
@@ -59,21 +59,21 @@ public class JackrabbitDataTests extends
protected void tearDown() throws Exception {
}
- public void testAccessorConstructor() throws RepositoryException {
- JcrRepositoryAccessor accessor = new JackrabbitRepositoryAccessor(userLogin, delegator);
+ public void testAccessorDataTree() throws RepositoryException {
+ JcrRepositoryAccessor accessor = new JackrabbitRepositoryAccessor(userLogin, delegator);
- assertNotNull(accessor);
- assertEquals("/", accessor.getSession().getRootNode().getPath());
+ JSONArray array = accessor.getJsonDataTree();
+ // should be 0 because there are no entries in the repository yet
+ assertEquals(0, array.size());
- accessor.closeAccess();
+ accessor.closeAccess();
}
- public void testAccessorDataTree() throws RepositoryException {
+ public void testAccessorConstructor() throws RepositoryException {
JcrRepositoryAccessor accessor = new JackrabbitRepositoryAccessor(userLogin, delegator);
- JSONArray array = accessor.getJsonDataTree();
- // should be 0 because there are no entries in the repository yet
- assertEquals(0, array.size());
+ assertNotNull(accessor);
+ assertEquals("/", accessor.getSession().getRootNode().getPath());
accessor.closeAccess();
}
Modified: ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitFilesTests.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitFilesTests.java?rev=1370189&r1=1370188&r2=1370189&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitFilesTests.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitFilesTests.java Tue Aug 7 11:31:04 2012
@@ -18,62 +18,73 @@ under the License.
*/
package org.ofbiz.jcr.test;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+
+import javax.jcr.RepositoryException;
+
+import net.sf.json.JSONArray;
+
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.entity.GenericValue;
+import org.ofbiz.jcr.access.JcrRepositoryAccessor;
+import org.ofbiz.jcr.access.jackrabbit.JackrabbitRepositoryAccessor;
+import org.ofbiz.jcr.api.JcrFileHelper;
+import org.ofbiz.jcr.api.jackrabbit.JackrabbitFileHelper;
import org.ofbiz.service.testtools.OFBizTestCase;
public class JackrabbitFilesTests extends OFBizTestCase {
- private GenericValue userLogin = null;
+ private GenericValue userLogin = null;
- public JackrabbitFilesTests(String name) {
- super(name);
- }
+ public JackrabbitFilesTests(String name) {
+ super(name);
+ }
- @Override
- protected void setUp() throws Exception {
- userLogin = delegator.findOne("UserLogin", UtilMisc.toMap("userLoginId", "system"), true);
+ @Override
+ protected void setUp() throws Exception {
+ userLogin = delegator.findOne("UserLogin", UtilMisc.toMap("userLoginId", "system"), true);
- }
+ }
- @Override
- protected void tearDown() throws Exception {
- }
+ @Override
+ protected void tearDown() throws Exception {
+ }
- /*
- public void testAccessorFileTree() throws RepositoryException {
- JcrRepositoryAccessor accessor = new JackrabbitRepositoryAccessor(userLogin);
+ public void testAccessorFileTree() throws RepositoryException {
+ JcrRepositoryAccessor accessor = new JackrabbitRepositoryAccessor(userLogin, delegator);
- JSONArray array = accessor.getJsonFileTree();
- assertEquals(0, array.size()); // should be 0 because there are no
- // entries in the repository yet
- accessor.closeAccess();
- }*/
+ JSONArray array = accessor.getJsonFileTree();
+ assertEquals(0, array.size()); // should be 0 because there are no
+ // entries in the repository yet
+ accessor.closeAccess();
+ }
- /*
- * Test the File upload
- */ /*
- public void testCreateRepositoryFileNode() throws Exception {
- File f = new File("stopofbiz.sh");
- File f2 = new File("README");
- assertTrue(f.exists() && f2.exists());
+ /*
+ * Test the File upload
+ */
+ public void testCreateRepositoryFileNode() throws Exception {
+ File f = new File("LICENSE");
+ File f2 = new File("README");
+ assertTrue(f.exists() && f2.exists());
- InputStream file = new FileInputStream(f);
+ InputStream file = new FileInputStream(f);
- JcrFileHelper helper = new JackrabbitFileHelper(userLogin);
- helper.storeContentInRepository(file, f.getName(), "/fileHome");
+ JcrFileHelper helper = new JackrabbitFileHelper(userLogin, delegator);
+ helper.storeContentInRepository(file, f.getName(), "/fileHome");
- assertNotNull(helper.getRepositoryContent("/fileHome/" + f.getName()));
+ assertNotNull(helper.getRepositoryContent("/fileHome/" + f.getName()));
- // add a second file to the same folder
- file = new FileInputStream(f2);
+ // add a second file to the same folder
+ file = new FileInputStream(f2);
- helper.storeContentInRepository(file, f2.getName(), "/fileHome");
- assertNotNull(helper.getRepositoryContent("/fileHome/" + f2.getName()));
+ helper.storeContentInRepository(file, f2.getName(), "/fileHome");
+ assertNotNull(helper.getRepositoryContent("/fileHome/" + f2.getName()));
- // remove all files in folder
- helper.removeContentObject("/fileHome");
+ // remove all files in folder
+ helper.removeContentObject("/fileHome");
- helper.closeContentSession();
- }*/
+ helper.closeContentSession();
+ }
}
\ No newline at end of file
Modified: ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitQueryTests.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitQueryTests.java?rev=1370189&r1=1370188&r2=1370189&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitQueryTests.java (original)
+++ ofbiz/branches/jackrabbit20120501/framework/jcr/src/org/ofbiz/jcr/test/JackrabbitQueryTests.java Tue Aug 7 11:31:04 2012
@@ -18,57 +18,66 @@ under the License.
*/
package org.ofbiz.jcr.test;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Map;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.query.QueryResult;
+
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.entity.GenericValue;
+import org.ofbiz.jcr.access.JcrRepositoryAccessor;
+import org.ofbiz.jcr.access.jackrabbit.JackrabbitRepositoryAccessor;
+import org.ofbiz.jcr.api.JcrDataHelper;
+import org.ofbiz.jcr.api.jackrabbit.JackrabbitArticleHelper;
import org.ofbiz.service.testtools.OFBizTestCase;
public class JackrabbitQueryTests extends OFBizTestCase {
- private GenericValue userLogin = null;
+ private GenericValue userLogin = null;
- public JackrabbitQueryTests(String name) {
- super(name);
- }
+ public JackrabbitQueryTests(String name) {
+ super(name);
+ }
- @Override
- protected void setUp() throws Exception {
- userLogin = delegator.findOne("UserLogin", UtilMisc.toMap("userLoginId", "system"), true);
+ @Override
+ protected void setUp() throws Exception {
+ userLogin = delegator.findOne("UserLogin", UtilMisc.toMap("userLoginId", "system"), true);
- }
+ }
- @Override
- protected void tearDown() throws Exception {
- }
+ @Override
+ protected void tearDown() throws Exception {
+ }
- /*
- public void testAccessorQuery() throws RepositoryException {
- JcrRepositoryAccessor accessor = new JackrabbitRepositoryAccessor(userLogin);
- QueryResult results = accessor.queryForRepositoryData("SELECT * FROM [rep:root]");
+ public void testAccessorQuery() throws RepositoryException {
+ JcrRepositoryAccessor accessor = new JackrabbitRepositoryAccessor(userLogin, delegator);
+ QueryResult results = accessor.queryForRepositoryData("SELECT * FROM [rep:root]");
- assertNotNull(results);
- assertEquals(1, results.getNodes().getSize());
+ assertNotNull(results);
+ assertEquals(1, results.getNodes().getSize());
- accessor.closeAccess();
- }*/
+ accessor.closeAccess();
+ }
- /*
- public void testQuery() throws Exception {
- JcrDataHelper helper = new JackrabbitArticleHelper(userLogin);
+ public void testQuery() throws Exception {
+ JcrDataHelper helper = new JackrabbitArticleHelper(userLogin, delegator);
- helper.storeContentInRepository("/query", "en", "query", "query test", new GregorianCalendar());
+ helper.storeContentInRepository("/query", "en", "query", "query test", Calendar.getInstance());
- List<Map<String, String>> queryResult = helper.queryData("SELECT * FROM [nt:unstructured]");
+ List<Map<String, String>> queryResult = helper.queryData("SELECT * FROM [nt:unstructured]");
- assertEquals(3, queryResult.size()); // the list should contain 3 result
- // sets
+ assertEquals(3, queryResult.size()); // the list should contain 3 result
+ // sets
- assertEquals("/", queryResult.get(0).get("path"));
- assertEquals("/query", queryResult.get(1).get("path"));
- assertEquals("/query/en", queryResult.get(2).get("path"));
+ assertEquals("/", queryResult.get(0).get("path"));
+ assertEquals("/query", queryResult.get(1).get("path"));
+ assertEquals("/query/en", queryResult.get(2).get("path"));
- helper.removeContentObject("query");
+ helper.removeContentObject("query");
- helper.closeContentSession();
+ helper.closeContentSession();
- }*/
+ }
}
\ No newline at end of file
Modified: ofbiz/branches/jackrabbit20120501/framework/jcr/testdef/jcrtests.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20120501/framework/jcr/testdef/jcrtests.xml?rev=1370189&r1=1370188&r2=1370189&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20120501/framework/jcr/testdef/jcrtests.xml (original)
+++ ofbiz/branches/jackrabbit20120501/framework/jcr/testdef/jcrtests.xml Tue Aug 7 11:31:04 2012
@@ -32,10 +32,8 @@
<test-group case-name="jackrabbit-tests">
<junit-test-suite class-name="org.ofbiz.jcr.test.JackrabbitBaseTests"/>
<junit-test-suite class-name="org.ofbiz.jcr.test.JackrabbitDataTests"/>
- <!--
<junit-test-suite class-name="org.ofbiz.jcr.test.JackrabbitFilesTests"/>
<junit-test-suite class-name="org.ofbiz.jcr.test.JackrabbitQueryTests"/>
- -->
</test-group>
<!--