You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2010/09/30 14:55:40 UTC
svn commit: r1003049 - in /jackrabbit/commons/ocm/trunk: ./
src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/
src/main/java/org/apache/jackrabbit/ocm/manager/beanconverter/impl/
src/main/java/org/apache/jackrabbit/ocm/manager/co...
Author: jukka
Date: Thu Sep 30 12:55:39 2010
New Revision: 1003049
URL: http://svn.apache.org/viewvc?rev=1003049&view=rev
Log:
OCM-43: Reviving OCM framework with Jackrabbit 2.x
Patch by Kadir Alaca
Modified:
jackrabbit/commons/ocm/trunk/pom.xml
jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/BinaryTypeConverterImpl.java
jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/ByteArrayTypeConverterImpl.java
jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/UndefinedTypeConverterImpl.java
jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/beanconverter/impl/ReferenceBeanConverterImpl.java
jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/BeanReferenceCollectionConverterImpl.java
jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/BeanReferenceMapConverterImpl.java
jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/DefaultCollectionConverterImpl.java
jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/NTCollectionConverterImpl.java
jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/impl/ObjectContentManagerImpl.java
jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/objectconverter/impl/ObjectConverterImpl.java
jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/objectconverter/impl/SimpleFieldsHelper.java
jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NamespaceHelper.java
jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImpl.java
jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/version/Version.java
jackrabbit/commons/ocm/trunk/src/test/java/org/apache/jackrabbit/ocm/AbstractTestBase.java
Modified: jackrabbit/commons/ocm/trunk/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/pom.xml?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/pom.xml (original)
+++ jackrabbit/commons/ocm/trunk/pom.xml Thu Sep 30 12:55:39 2010
@@ -26,12 +26,12 @@
<parent>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>parent</artifactId>
- <version>3</version>
+ <version>5</version>
</parent>
<artifactId>jackrabbit-ocm</artifactId>
- <version>1.6-SNAPSHOT</version>
- <name>Jackrabbit Object Content Mapping</name>
+ <version>2.0-SNAPSHOT</version>
+ <name>Jackrabbit Object Content Mapping 2.x</name>
<description>
This Jackrabbit subproject is an object/JCR persistence and
query service. This tools lets you to persist java objects into
@@ -50,10 +50,12 @@
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <target>1.5</target>
- <source>1.5</source>
+ <target>1.6</target>
+ <source>1.6</source>
+ <showDeprecation>true</showDeprecation>
</configuration>
</plugin>
+<!--
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
@@ -111,7 +113,8 @@
<version>1.5.3-1</version>
</dependency>
</dependencies>
- </plugin>
+ </plugin>
+-->
</plugins>
</build>
@@ -122,7 +125,7 @@
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
- <version>1.0</version>
+ <version>2.0</version>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
@@ -149,7 +152,7 @@
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
- <version>2.1_3</version>
+ <version>2.2</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
@@ -160,15 +163,15 @@
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-core</artifactId>
- <version>1.5.5</version>
+ <version>2.1.1</version>
<optional>true</optional>
</dependency>
<!-- Test -->
<dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jta_1.0.1B_spec</artifactId>
- <version>1.0.1</version>
+ <groupId>geronimo-spec</groupId>
+ <artifactId>geronimo-spec-jta</artifactId>
+ <version>1.0-M1</version>
<scope>test</scope>
</dependency>
<dependency>
@@ -183,6 +186,12 @@
<version>1.5.3</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ <version>2.9.1</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<scm>
Modified: jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/BinaryTypeConverterImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/BinaryTypeConverterImpl.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/BinaryTypeConverterImpl.java (original)
+++ jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/BinaryTypeConverterImpl.java Thu Sep 30 12:55:39 2010
@@ -18,6 +18,7 @@
package org.apache.jackrabbit.ocm.manager.atomictypeconverter.impl;
import java.io.InputStream;
+import javax.jcr.Binary;
import javax.jcr.RepositoryException;
import javax.jcr.Value;
@@ -45,7 +46,18 @@ public class BinaryTypeConverterImpl imp
{
return null;
}
- return valueFactory.createValue((InputStream) propValue);
+
+ Binary binaryvalue = null;
+ try {
+ binaryvalue = valueFactory.createBinary((InputStream) propValue);
+ } catch (RepositoryException ex) {
+ throw new IncorrectAtomicTypeException("Impossible to create binary value from stream!", ex);
+ }
+ if (binaryvalue == null) {
+ return null;
+ }
+
+ return valueFactory.createValue(binaryvalue);
}
/**
@@ -56,7 +68,7 @@ public class BinaryTypeConverterImpl imp
{
try
{
- return value.getStream();
+ return value.getBinary().getStream();
}
catch (RepositoryException e)
{
Modified: jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/ByteArrayTypeConverterImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/ByteArrayTypeConverterImpl.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/ByteArrayTypeConverterImpl.java (original)
+++ jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/ByteArrayTypeConverterImpl.java Thu Sep 30 12:55:39 2010
@@ -49,7 +49,7 @@ public class ByteArrayTypeConverterImpl
return null;
}
InputStream ins = new ByteArrayInputStream((byte[]) propValue);
- return valueFactory.createValue(ins);
+ return new BinaryTypeConverterImpl().getValue(valueFactory, ins);
}
@@ -61,7 +61,7 @@ public class ByteArrayTypeConverterImpl
{
try
{
- return inputStreamToBytes(value.getStream());
+ return inputStreamToBytes(value.getBinary().getStream());
}
catch (Exception e)
{
Modified: jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/UndefinedTypeConverterImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/UndefinedTypeConverterImpl.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/UndefinedTypeConverterImpl.java (original)
+++ jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/atomictypeconverter/impl/UndefinedTypeConverterImpl.java Thu Sep 30 12:55:39 2010
@@ -61,7 +61,7 @@ public class UndefinedTypeConverterImpl
if (propValue instanceof InputStream)
{
- return valueFactory.createValue((InputStream) propValue);
+ return new BinaryTypeConverterImpl().getValue(valueFactory, propValue);
}
if ((propValue instanceof Long || propValue instanceof Integer))
@@ -123,7 +123,7 @@ public class UndefinedTypeConverterImpl
if (value.getType() == PropertyType.BINARY)
{
- return value.getStream();
+ return value.getBinary().getStream();
}
if (value.getType() == PropertyType.DOUBLE)
@@ -151,7 +151,7 @@ public class UndefinedTypeConverterImpl
return value.getString();
}
- if (value.getType() == PropertyType.REFERENCE)
+ if (value.getType() == PropertyType.REFERENCE || value.getType() == PropertyType.WEAKREFERENCE)
{
return value.getString();
}
Modified: jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/beanconverter/impl/ReferenceBeanConverterImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/beanconverter/impl/ReferenceBeanConverterImpl.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/beanconverter/impl/ReferenceBeanConverterImpl.java (original)
+++ jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/beanconverter/impl/ReferenceBeanConverterImpl.java Thu Sep 30 12:55:39 2010
@@ -70,7 +70,7 @@ public class ReferenceBeanConverterImpl
{
try {
String uuid = parentNode.getProperty(beanDescriptor.getJcrName()).getString();
- String path = session.getNodeByUUID(uuid).getPath();
+ String path = session.getNodeByIdentifier(uuid).getPath();
return objectConverter.getObject(session, path);
} catch (Exception e) {
Modified: jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/BeanReferenceCollectionConverterImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/BeanReferenceCollectionConverterImpl.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/BeanReferenceCollectionConverterImpl.java (original)
+++ jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/BeanReferenceCollectionConverterImpl.java Thu Sep 30 12:55:39 2010
@@ -132,7 +132,7 @@ public class BeanReferenceCollectionConv
for (int i = 0; i < values.length; i++) {
String uuid = values[i].getString();
- String path = session.getNodeByUUID(uuid).getPath();
+ String path = session.getNodeByIdentifier(uuid).getPath();
Object object = objectConverter.getObject(session, path);
((ManageableCollection) objects).addObject(object);
}
Modified: jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/BeanReferenceMapConverterImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/BeanReferenceMapConverterImpl.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/BeanReferenceMapConverterImpl.java (original)
+++ jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/BeanReferenceMapConverterImpl.java Thu Sep 30 12:55:39 2010
@@ -146,7 +146,7 @@ public class BeanReferenceMapConverterIm
String uuid = MapReferenceValueEncoder.decodeReference(encoded);
- String path = session.getNodeByUUID(uuid).getPath();
+ String path = session.getNodeByIdentifier(uuid).getPath();
Object object = objectConverter.getObject(session, path);
((ManageableMap) objects).addObject(key, object);
}
Modified: jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/DefaultCollectionConverterImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/DefaultCollectionConverterImpl.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/DefaultCollectionConverterImpl.java (original)
+++ jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/DefaultCollectionConverterImpl.java Thu Sep 30 12:55:39 2010
@@ -228,7 +228,7 @@ public class DefaultCollectionConverterI
if (currentItemUuid != null){
//The Node already exists so we need to update the existing node
//rather than to replace it.
- Node nodeToUpdate = collectionNode.getSession().getNodeByUUID(currentItemUuid);
+ Node nodeToUpdate = collectionNode.getSession().getNodeByIdentifier(currentItemUuid);
objectConverter.update(session, currentItemUuid, item);
validUuidsForTheNode.add(currentItemUuid);
}
@@ -269,7 +269,7 @@ public class DefaultCollectionConverterI
List<Node> removeNodes = new ArrayList<Node>();
while (nodeIterator.hasNext()) {
Node currentNode = nodeIterator.nextNode();
- if (!validUuidsForTheNode.contains(currentNode.getUUID())) {
+ if (!validUuidsForTheNode.contains(currentNode.getIdentifier())) {
removeNodes.add(currentNode);
}
}
Modified: jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/NTCollectionConverterImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/NTCollectionConverterImpl.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/NTCollectionConverterImpl.java (original)
+++ jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/NTCollectionConverterImpl.java Thu Sep 30 12:55:39 2010
@@ -302,6 +302,8 @@ public class NTCollectionConverterImpl e
{
jcrExpression = "SELECT * FROM " + jcrNodeType + " WHERE jcr:path LIKE '" + parentNode.getPath()
+ "/%' AND NOT jcr:path LIKE '" + parentNode.getPath() + "/%/%'";
+ //FIXME: for doIsNull(..) only need to know if there are attributes or childnodes, queryResult.getNodes().getSize() delivers -1
+ jcrExpression += " order by jcr:path";
}
else
{
Modified: jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/impl/ObjectContentManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/impl/ObjectContentManagerImpl.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/impl/ObjectContentManagerImpl.java (original)
+++ jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/impl/ObjectContentManagerImpl.java Thu Sep 30 12:55:39 2010
@@ -25,6 +25,7 @@ import java.util.Map;
import javax.jcr.InvalidItemStateException;
import javax.jcr.Item;
+import javax.jcr.ItemNotFoundException;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
import javax.jcr.PathNotFoundException;
@@ -33,10 +34,12 @@ import javax.jcr.Session;
import javax.jcr.UnsupportedRepositoryOperationException;
import javax.jcr.Workspace;
import javax.jcr.lock.LockException;
+import javax.jcr.lock.LockManager;
import javax.jcr.nodetype.NoSuchNodeTypeException;
import javax.jcr.query.InvalidQueryException;
import javax.jcr.query.QueryResult;
import javax.jcr.version.VersionHistory;
+import javax.jcr.version.VersionManager;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -281,7 +284,7 @@ public class ObjectContentManagerImpl im
public Object getObjectByUuid(String uuid) {
try {
- Node node = session.getNodeByUUID(uuid);
+ Node node = session.getNodeByIdentifier(uuid);
Object object = objectConverter.getObject(session, node.getPath());
requestObjectCache.clear();
return object;
@@ -669,10 +672,10 @@ public class ObjectContentManagerImpl im
if (!node.isNodeType("mix:versionable")) {
throw new VersionException("The object " + path + "is not versionable");
}
- javax.jcr.version.Version newVersion = node.checkin();
+ javax.jcr.version.Version newVersion = getVersionManager().checkin(path);
if (versionLabels != null) {
- VersionHistory versionHistory = node.getVersionHistory();
+ VersionHistory versionHistory = getVersionManager().getVersionHistory(path);
for (int i = 0; i < versionLabels.length; i++) {
versionHistory.addVersionLabel(newVersion.getName(), versionLabels[i], false);
}
@@ -707,7 +710,7 @@ public class ObjectContentManagerImpl im
throw new VersionException("The object " + path + "is not versionable");
}
- node.checkout();
+ getVersionManager().checkout(path);
} catch (ClassCastException cce) {
throw new ObjectContentManagerException("Cannot retrieve an object from a property path " + path);
} catch (PathNotFoundException pnfe) {
@@ -735,7 +738,7 @@ public class ObjectContentManagerImpl im
throw new VersionException("The object " + path + "is not versionable");
}
- VersionHistory history = node.getVersionHistory();
+ VersionHistory history = getVersionManager().getVersionHistory(path);
history.addVersionLabel(versionName, versionLabel, false);
} catch (ClassCastException cce) {
throw new ObjectContentManagerException("Cannot retrieve an object from a property path " + path);
@@ -762,7 +765,7 @@ public class ObjectContentManagerImpl im
throw new VersionException("The object " + path + "is not versionable");
}
- VersionHistory history = node.getVersionHistory();
+ VersionHistory history = getVersionManager().getVersionHistory(path);
return new Version(history.getVersion(versionName));
} catch (ClassCastException cce) {
@@ -790,7 +793,7 @@ public class ObjectContentManagerImpl im
throw new VersionException("The object " + path + "is not versionable");
}
- VersionHistory history = node.getVersionHistory();
+ VersionHistory history = getVersionManager().getVersionHistory(path);
javax.jcr.version.Version version = history.getVersion(versionName);
return history.getVersionLabels(version);
@@ -817,7 +820,7 @@ public class ObjectContentManagerImpl im
throw new VersionException("The object " + path + "is not versionable");
}
- VersionHistory history = node.getVersionHistory();
+ VersionHistory history = getVersionManager().getVersionHistory(path);
return history.getVersionLabels();
} catch (ClassCastException cce) {
@@ -842,7 +845,7 @@ public class ObjectContentManagerImpl im
throw new VersionException("The object " + path + "is not versionable");
}
- VersionHistory history = node.getVersionHistory();
+ VersionHistory history = getVersionManager().getVersionHistory(path);
return new VersionIterator(history.getAllVersions());
} catch (ClassCastException cce) {
@@ -867,7 +870,7 @@ public class ObjectContentManagerImpl im
throw new VersionException("The object " + path + "is not versionable");
}
- VersionHistory history = node.getVersionHistory();
+ VersionHistory history = getVersionManager().getVersionHistory(path);
return new Version(history.getRootVersion());
} catch (ClassCastException cce) {
@@ -892,7 +895,7 @@ public class ObjectContentManagerImpl im
throw new VersionException("The object " + path + "is not versionable");
}
- return new Version(node.getBaseVersion());
+ return new Version(getVersionManager().getBaseVersion(path));
} catch (ClassCastException cce) {
throw new ObjectContentManagerException("Cannot retrieve an object from a property path " + path);
} catch (PathNotFoundException pnfe) {
@@ -917,7 +920,7 @@ public class ObjectContentManagerImpl im
checkIfNodeLocked(absPath);
Node node = getNode(absPath);
- javax.jcr.lock.Lock lock = node.lock(isDeep, isSessionScoped);
+ javax.jcr.lock.Lock lock = getLockManager().lock(absPath, isDeep, isSessionScoped, 0L, session.getUserID());
return new Lock(lock);
} catch (LockException e) {
@@ -937,7 +940,7 @@ public class ObjectContentManagerImpl im
public void unlock(final String absPath, final String lockToken) throws IllegalUnlockException {
String lockOwner = null;
try {
- maybeAddLockToken(lockToken);
+ maybeAddLockToken(lockToken, absPath);
Node node = getNode(absPath);
if (node.isLocked() == false) {
@@ -945,10 +948,10 @@ public class ObjectContentManagerImpl im
return;
}
- javax.jcr.lock.Lock lock = node.getLock();
+ javax.jcr.lock.Lock lock = getLockManager().getLock(absPath);
lockOwner = lock.getLockOwner();
- node.unlock();
+ getLockManager().unlock(absPath);
} catch (LockException e) {
// LockException if this node does not currently hold a lock (see
// upper code)
@@ -1000,7 +1003,7 @@ public class ObjectContentManagerImpl im
// Node can hold nock or can be locked with precedencor
if (node.isLocked()) {
- javax.jcr.lock.Lock lock = node.getLock();
+ javax.jcr.lock.Lock lock = getLockManager().getLock(absPath);
String lockOwner = lock.getLockOwner();
if (!session.getUserID().equals(lockOwner)) {
@@ -1010,11 +1013,18 @@ public class ObjectContentManagerImpl im
}
}
- protected void maybeAddLockToken(final String lockToken) {
+ protected void maybeAddLockToken(final String lockToken, final String path) {
if (lockToken != null) {
// This user (this instance of PM) potentionally placed lock so
// session already has lock token
- final String[] lockTokens = getSession().getLockTokens();
+ String[] lockTokens = null;
+ try {
+ lockTokens = getLockManager().getLockTokens();
+ } catch (UnsupportedRepositoryOperationException ex) {
+ throw new LockedException(session.getUserID(), path);
+ } catch (RepositoryException ex) {
+ throw new org.apache.jackrabbit.ocm.exception.RepositoryException(ex.getMessage(), ex);
+ }
if (lockTokens != null) {
for (int i = 0; i < lockTokens.length; i++) {
if (lockTokens[i].equals(lockToken)) {
@@ -1023,7 +1033,13 @@ public class ObjectContentManagerImpl im
}
}
} else {
- getSession().addLockToken(lockToken);
+ try {
+ getLockManager().addLockToken(lockToken);
+ } catch (UnsupportedRepositoryOperationException ex) {
+ throw new LockedException(session.getUserID(), path);
+ } catch (RepositoryException ex) {
+ throw new org.apache.jackrabbit.ocm.exception.RepositoryException(ex.getMessage(), ex);
+ }
}
}
}
@@ -1164,4 +1180,13 @@ public class ObjectContentManagerImpl im
throw new ObjectContentManagerException("Cannot copy the node from " + srcPath + " to " + destPath + ".", re);
}
}
+
+ private LockManager getLockManager() throws UnsupportedRepositoryOperationException, RepositoryException {
+ return session.getWorkspace().getLockManager();
+ }
+
+ private VersionManager getVersionManager() throws UnsupportedRepositoryOperationException, RepositoryException {
+ return session.getWorkspace().getVersionManager();
+ }
+
}
Modified: jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/objectconverter/impl/ObjectConverterImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/objectconverter/impl/ObjectConverterImpl.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/objectconverter/impl/ObjectConverterImpl.java (original)
+++ jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/objectconverter/impl/ObjectConverterImpl.java Thu Sep 30 12:55:39 2010
@@ -276,7 +276,7 @@ public class ObjectConverterImpl impleme
public void update(Session session, String uuId, Object object) {
try {
ClassDescriptor classDescriptor = mapper.getClassDescriptorByClass(ReflectionUtils.getBeanClass(object));
- Node objectNode = session.getNodeByUUID(uuId);
+ Node objectNode = session.getNodeByIdentifier(uuId);
update(session, objectNode, object);
} catch (PathNotFoundException pnfe) {
throw new ObjectContentManagerException("Impossible to update the object with UUID: " + uuId , pnfe);
@@ -341,7 +341,7 @@ public class ObjectConverterImpl impleme
if (currentItemUuid != null){
//The Node already exists so we need to update the existing node
//rather than to replace it.
- return parentNode.getSession().getNodeByUUID(currentItemUuid);
+ return parentNode.getSession().getNodeByIdentifier(currentItemUuid);
}
else{
throw new NullPointerException("Cannot locate the node to update since there is no UUID provided even though, " + classDescriptor.getClassName() + " has been mapped with a UUID field , " + uuidFieldName );
@@ -953,9 +953,9 @@ public class ObjectConverterImpl impleme
if (type.getName().equals("nt:versionedChild")) {
String uuid = node.getProperty("jcr:childVersionHistory").getValue().getString();
- Node actualNode = session.getNodeByUUID(uuid);
+ Node actualNode = session.getNodeByIdentifier(uuid);
String name = actualNode.getName();
- actualNode = session.getNodeByUUID(name);
+ actualNode = session.getNodeByIdentifier(name);
return actualNode;
}
Modified: jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/objectconverter/impl/SimpleFieldsHelper.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/objectconverter/impl/SimpleFieldsHelper.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/objectconverter/impl/SimpleFieldsHelper.java (original)
+++ jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/manager/objectconverter/impl/SimpleFieldsHelper.java Thu Sep 30 12:55:39 2010
@@ -111,7 +111,7 @@ public class SimpleFieldsHelper
initializedBean = ReflectionUtils.newInstance(classDescriptor.getClassName());
}
- ReflectionUtils.setNestedProperty(initializedBean, fieldName, node.getUUID());
+ ReflectionUtils.setNestedProperty(initializedBean, fieldName, node.getIdentifier());
} else {
initializedBean = retrieveSimpleField(classDescriptor, node, initializedBean, fieldDescriptor, fieldName, propertyName);
@@ -148,7 +148,7 @@ public class SimpleFieldsHelper
FieldDescriptor uuidField = classDescriptor.getUuidFieldDescriptor();
if (uuidField != null)
{
- ReflectionUtils.setNestedProperty(initializedBean, uuidField.getFieldName(), node.getUUID());
+ ReflectionUtils.setNestedProperty(initializedBean, uuidField.getFieldName(), node.getIdentifier());
}
} catch (ValueFormatException vfe) {
Modified: jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NamespaceHelper.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NamespaceHelper.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NamespaceHelper.java (original)
+++ jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NamespaceHelper.java Thu Sep 30 12:55:39 2010
@@ -18,7 +18,6 @@ package org.apache.jackrabbit.ocm.nodema
import javax.jcr.NamespaceRegistry;
-import org.apache.jackrabbit.core.nodetype.ItemDef;
import org.apache.jackrabbit.ocm.nodemanagement.impl.BaseNamespaceHelper;
import org.apache.jackrabbit.spi.Name;
@@ -54,7 +53,8 @@ public class NamespaceHelper extends Bas
{
if (itemName.equals("*"))
{
- name = ItemDef.ANY_NAME;
+ //name = ItemDef.ANY_NAME;
+ NameFactoryImpl.getInstance().create(DEFAULT_NAMESPACE_URI, "*");
}
else
{
Modified: jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImpl.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImpl.java (original)
+++ jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImpl.java Thu Sep 30 12:55:39 2010
@@ -18,6 +18,7 @@ package org.apache.jackrabbit.ocm.nodema
import java.io.InputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
@@ -25,18 +26,14 @@ import javax.jcr.PropertyType;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.Workspace;
+import javax.jcr.nodetype.NodeTypeDefinition;
import javax.jcr.nodetype.PropertyDefinition;
import javax.jcr.version.OnParentVersionAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.jackrabbit.core.nodetype.InvalidNodeTypeDefException;
-import org.apache.jackrabbit.core.nodetype.NodeDef;
-import org.apache.jackrabbit.core.nodetype.NodeDefImpl;
-import org.apache.jackrabbit.core.nodetype.NodeTypeDef;
import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
-import org.apache.jackrabbit.core.nodetype.PropDef;
-import org.apache.jackrabbit.core.nodetype.PropDefImpl;
import org.apache.jackrabbit.core.nodetype.xml.NodeTypeReader;
import org.apache.jackrabbit.ocm.mapper.model.BeanDescriptor;
import org.apache.jackrabbit.ocm.mapper.model.ChildNodeDefDescriptor;
@@ -51,6 +48,14 @@ import org.apache.jackrabbit.ocm.nodeman
import org.apache.jackrabbit.ocm.nodemanagement.exception.NodeTypeRemovalException;
import org.apache.jackrabbit.ocm.nodemanagement.exception.OperationNotSupportedException;
import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.QNodeDefinition;
+import org.apache.jackrabbit.spi.QNodeTypeDefinition;
+import org.apache.jackrabbit.spi.QPropertyDefinition;
+import org.apache.jackrabbit.spi.QValue;
+import org.apache.jackrabbit.spi.QValueConstraint;
+import org.apache.jackrabbit.spi.commons.nodetype.QNodeDefinitionBuilder;
+import org.apache.jackrabbit.spi.commons.nodetype.QNodeTypeDefinitionBuilder;
+import org.apache.jackrabbit.spi.commons.nodetype.QPropertyDefinitionBuilder;
/** This is the NodeTypeManager implementation for Apache Jackrabbit.
*
@@ -62,6 +67,7 @@ public class NodeTypeManagerImpl impleme
* Logging.
*/
private static Log log = LogFactory.getLog(NodeTypeManagerImpl.class);
+ private static final boolean debug = false;
/** Namespace helper class for Jackrabbit.
*/
@@ -160,12 +166,11 @@ public class NodeTypeManagerImpl impleme
if (checkSuperTypes(session.getWorkspace().getNodeTypeManager(),
classDescriptor.getJcrSuperTypes()))
{
- NodeTypeDef nodeTypeDef = getNodeTypeDef(classDescriptor.getJcrType(),
- classDescriptor.getJcrSuperTypes(),
- classDescriptor.getClassName());
+ Name nodeTypeName = getNodeTypeName(classDescriptor.getJcrType(),
+ classDescriptor.getClassName());
- List propDefs = new ArrayList();
- List nodeDefs = new ArrayList();
+ List<QPropertyDefinition> propDefs = new ArrayList<QPropertyDefinition>();
+ List<QNodeDefinition> nodeDefs = new ArrayList<QNodeDefinition>();
if (classDescriptor.getFieldDescriptors() != null)
{
Iterator fieldIterator = classDescriptor.getFieldDescriptors().iterator();
@@ -173,7 +178,7 @@ public class NodeTypeManagerImpl impleme
{
FieldDescriptor field = (FieldDescriptor) fieldIterator.next();
if (!field.isPath()) {
- propDefs.add(getPropertyDefinition(field.getFieldName(), field, nodeTypeDef.getName()));
+ propDefs.add(getPropertyDefinition(field.getFieldName(), field, nodeTypeName));
}
}
}
@@ -183,9 +188,9 @@ public class NodeTypeManagerImpl impleme
while (beanIterator.hasNext()) {
BeanDescriptor field = (BeanDescriptor) beanIterator.next();
if (this.isPropertyType(field.getJcrType())) {
- propDefs.add(getPropertyDefinition(field.getFieldName(), field, nodeTypeDef.getName()));
+ propDefs.add(getPropertyDefinition(field.getFieldName(), field, nodeTypeName));
} else {
- nodeDefs.add(getNodeDefinition(field.getFieldName(), field, nodeTypeDef.getName()));
+ nodeDefs.add(getNodeDefinition(field.getFieldName(), field, nodeTypeName));
}
}
}
@@ -195,15 +200,24 @@ public class NodeTypeManagerImpl impleme
while (collectionIterator.hasNext()) {
CollectionDescriptor field = (CollectionDescriptor) collectionIterator.next();
if (this.isPropertyType(field.getJcrType())) {
- propDefs.add(getPropertyDefinition(field.getFieldName(), field, nodeTypeDef.getName()));
+ propDefs.add(getPropertyDefinition(field.getFieldName(), field, nodeTypeName));
} else {
- nodeDefs.add(getNodeDefinition(field.getFieldName(), field, nodeTypeDef.getName()));
+ nodeDefs.add(getNodeDefinition(field.getFieldName(), field, nodeTypeName));
}
}
}
- nodeTypeDef.setPropertyDefs((PropDef[]) propDefs.toArray(new PropDef[propDefs.size()]));
- nodeTypeDef.setChildNodeDefs((NodeDef[]) nodeDefs.toArray(new NodeDef[nodeDefs.size()]));
+ QNodeTypeDefinition nodeTypeDef = getNodeTypeDef(
+ classDescriptor.getJcrType(),
+ classDescriptor.getJcrSuperTypes(),
+ classDescriptor.getClassName(),
+ nodeTypeName,
+ propDefs,
+ nodeDefs,
+ classDescriptor.getJcrMixinTypes(),
+ classDescriptor.isAbstract(),
+ //TODO:is this correkt, how to decide whether mixin or not?
+ classDescriptor.isInterface());
list.add(nodeTypeDef);
createNodeTypesFromList(session, list);
@@ -255,30 +269,43 @@ public class NodeTypeManagerImpl impleme
return exists;
}
+ private Name getNodeTypeName(String jcrNodeType,String className) {
+ Name name = null;
+
+ if (jcrNodeType != null && (!jcrNodeType.equals(""))) {
+ name = getNamespaceHelper().getName(jcrNodeType);
+
+ } else {
+ name = getNamespaceHelper().getName(className);
+
+ }
+ return name;
+ }
+
/** Creates a NodeTypeDef object.
*
* @param jcrNodeType Name of JCR node type
* @param jcrSuperTypes JCR node super types
* @return type
*/
- public NodeTypeDef getNodeTypeDef(String jcrNodeType, String jcrSuperTypes,
- String className)
- {
- NodeTypeDef type = new NodeTypeDef();
- type.setMixin(false);
-
- if (jcrNodeType != null && (! jcrNodeType.equals("")))
- {
- type.setName(getNamespaceHelper().getName(jcrNodeType));
- }
- else
- {
- type.setName(getNamespaceHelper().getName(className));
- }
+ public QNodeTypeDefinition getNodeTypeDef(String jcrNodeType, String jcrSuperTypes, String className,
+ Name jcrNodeTypeName, List<QPropertyDefinition> propDefs, List<QNodeDefinition> nodeDefs,
+ String[] jcrMixinTypes, boolean isAbstract, boolean isMixin)
+ {
+ QNodeTypeDefinitionBuilder ntdb = new QNodeTypeDefinitionBuilder();
+ ntdb.setAbstract(isAbstract);
+ ntdb.setChildNodeDefs(nodeDefs.toArray(QNodeDefinition.EMPTY_ARRAY));
+ //ntdb.setMixin(classDescriptor.isAbstract());
+ ntdb.setMixin(isMixin);
+ ntdb.setName(jcrNodeTypeName);
+ ntdb.setOrderableChildNodes(false);
+ //ntdb.setPrimaryItemName(primaryItemName);
+ ntdb.setPropertyDefs(propDefs.toArray(QPropertyDefinition.EMPTY_ARRAY));
+ ntdb.setQueryable(true);
+ ntdb.setSupertypes( getJcrSuperTypes(jcrSuperTypes) );
+ ntdb.setSupportedMixinTypes( getJcrMixinTypes(jcrMixinTypes) );
- type.setSupertypes(getJcrSuperTypes(jcrSuperTypes));
- type.setPrimaryItemName(getNamespaceHelper().getName(jcrNodeType));
- return type;
+ return ntdb.build();
}
/** Creates a PropDefImpl object.
@@ -288,45 +315,57 @@ public class NodeTypeManagerImpl impleme
* @param declaringNodeType Node Type QName where the property belongs to
* @return property
*/
- public PropDefImpl getPropertyDefinition(String fieldName,
+ public QPropertyDefinition getPropertyDefinition(String fieldName,
PropertyDefDescriptor field, Name declaringNodeType)
{
- PropDefImpl property = new PropDefImpl();
+ Name name = null;
if (field.getJcrName() != null)
{
- property.setName(getNamespaceHelper().getName(field.getJcrName()));
-
+ name = getNamespaceHelper().getName(field.getJcrName());
}
else
{
- property.setName(getNamespaceHelper().getName(fieldName));
+ name = getNamespaceHelper().getName(fieldName);
}
+ int requiredType = PropertyType.UNDEFINED;
+
if (field.getJcrType() != null)
{
- property.setRequiredType(PropertyType.valueFromName(field.getJcrType()));
+ requiredType = PropertyType.valueFromName(field.getJcrType());
}
else
{
- log.info("No property type set for " + property.getName() +
+ log.info("No property type set for " + name.getLocalName() +
". Setting 'String' type.");
- property.setRequiredType(PropertyType.valueFromName("String"));
+ requiredType = PropertyType.STRING;
}
- property.setDeclaringNodeType(declaringNodeType);
- property.setAutoCreated(field.isJcrAutoCreated());
- property.setMandatory(field.isJcrMandatory());
- property.setMultiple(field.isJcrMultiple());
+ int onParentVersion = OnParentVersionAction.IGNORE;
if (field.getJcrOnParentVersion() != null &&
field.getJcrOnParentVersion().length() > 0)
{
- property.setOnParentVersion(OnParentVersionAction.valueFromName(field.getJcrOnParentVersion()));
+ onParentVersion = OnParentVersionAction.valueFromName(field.getJcrOnParentVersion());
}
- property.setProtected(field.isJcrProtected());
- return property;
+ QPropertyDefinitionBuilder pdb = new QPropertyDefinitionBuilder();
+ pdb.setAutoCreated(field.isJcrAutoCreated());
+ pdb.setAvailableQueryOperators(new String[0]);
+ pdb.setDeclaringNodeType(declaringNodeType);
+ pdb.setDefaultValues(QValue.EMPTY_ARRAY);
+ pdb.setFullTextSearchable(false);
+ pdb.setMandatory(field.isJcrMandatory());
+ pdb.setMultiple(field.isJcrMultiple());
+ pdb.setName(name);
+ pdb.setOnParentVersion(onParentVersion);
+ pdb.setProtected(field.isJcrProtected());
+ pdb.setQueryOrderable(false);
+ pdb.setRequiredType(requiredType);
+ pdb.setValueConstraints(QValueConstraint.EMPTY_ARRAY);
+
+ return pdb.build();
}
/** Creates a NodeDefImpl object.
@@ -336,34 +375,36 @@ public class NodeTypeManagerImpl impleme
* @param declaringNodeType Node Type QName where the chid node belongs to
* @return child node definition
*/
- private NodeDefImpl getNodeDefinition(String fieldName,
+ private QNodeDefinition getNodeDefinition(String fieldName,
ChildNodeDefDescriptor field, Name declaringNodeType) {
- NodeDefImpl node = new NodeDefImpl();
+ Name name = null;
if (field.getJcrName() != null) {
- node.setName(getNamespaceHelper().getName(field.getJcrName()));
+ name = getNamespaceHelper().getName(field.getJcrName());
} else {
- node.setName(getNamespaceHelper().getName("*"));
- }
-
- if (field.getJcrType() != null) {
- node.setRequiredPrimaryTypes(getJcrSuperTypes(field.getJcrType()));
+ name = getNamespaceHelper().getName("*");
}
- node.setDeclaringNodeType(declaringNodeType);
- node.setAutoCreated(field.isJcrAutoCreated());
- node.setMandatory(field.isJcrMandatory());
- node.setAllowsSameNameSiblings(field.isJcrSameNameSiblings());
- node.setDefaultPrimaryType( getNamespaceHelper().getName( field.getDefaultPrimaryType() ) );
+ int onParentVersion = OnParentVersionAction.IGNORE;
if (field.getJcrOnParentVersion() != null
&& field.getJcrOnParentVersion().length() > 0) {
- node.setOnParentVersion(OnParentVersionAction.valueFromName(field.getJcrOnParentVersion()));
+ onParentVersion = OnParentVersionAction.valueFromName(field.getJcrOnParentVersion());
}
- node.setProtected(field.isJcrProtected());
- return node;
+ QNodeDefinitionBuilder ndb = new QNodeDefinitionBuilder();
+ ndb.setAllowsSameNameSiblings(field.isJcrSameNameSiblings());
+ ndb.setAutoCreated(field.isJcrAutoCreated());
+ ndb.setDeclaringNodeType(declaringNodeType);
+ ndb.setDefaultPrimaryType(getNamespaceHelper().getName(field.getDefaultPrimaryType()));
+ ndb.setMandatory(field.isJcrMandatory());
+ ndb.setName(name);
+ ndb.setOnParentVersion(onParentVersion);
+ ndb.setProtected(field.isJcrProtected());
+ ndb.setRequiredPrimaryTypes(getJcrSuperTypes(field.getJcrType()));
+
+ return ndb.build();
}
/**
@@ -390,21 +431,32 @@ public class NodeTypeManagerImpl impleme
*/
public Name[] getJcrSuperTypes(String superTypes)
{
- Name[] nameSuperTypes = null;
- if (superTypes != null && superTypes.length() > 0)
+ return getNames(superTypes.split(","), "super type");
+ }
+
+
+ public Name[] getJcrMixinTypes(String[] jcrMixinTypes)
+ {
+ return getNames(jcrMixinTypes, "mixin type");
+ }
+
+
+ private Name[] getNames(String[] jcrTypeNames, String logTypeKind)
+ {
+ Name[] names = null;
+ if (jcrTypeNames != null && jcrTypeNames.length > 0)
{
- String[] superTypesArray = superTypes.split(",");
- log.debug("JCR super types found: " + superTypesArray.length);
- nameSuperTypes = new Name[superTypesArray.length];
- for (int i = 0; i < superTypesArray.length; i++)
+ log.debug("JCR " + logTypeKind + "'s types found: " + jcrTypeNames.length);
+ names = new Name[jcrTypeNames.length];
+ for (int i = 0; i < jcrTypeNames.length; i++)
{
- String superTypeName = superTypesArray[i].trim();
- nameSuperTypes[i] = getNamespaceHelper().getName(superTypeName);
- log.debug("Setting JCR super type: " + superTypeName);
+ String superTypeName = jcrTypeNames[i].trim();
+ names[i] = getNamespaceHelper().getName(superTypeName);
+ log.debug("Setting JCR " + logTypeKind + ": " + superTypeName);
}
}
- return nameSuperTypes;
+ return names;
}
/**
@@ -434,7 +486,7 @@ public class NodeTypeManagerImpl impleme
{
try
{
- NodeTypeDef[] types = NodeTypeReader.read(jcrRepositoryConfigurationFile);
+ QNodeTypeDefinition[] types = NodeTypeReader.read(jcrRepositoryConfigurationFile);
ArrayList list = new ArrayList();
for (int i = 0; i < types.length; i++)
@@ -473,13 +525,10 @@ public class NodeTypeManagerImpl impleme
{
try
{
- NodeTypeDef[] types = NodeTypeReader.read(jcrRepositoryConfigurationFile);
+ QNodeTypeDefinition[] types = NodeTypeReader.read(jcrRepositoryConfigurationFile);
ArrayList list = new ArrayList();
- for (int i = 0; i < types.length; i++)
- {
- list.add(types[i]);
- }
+ list.addAll(Arrays.asList(types));
removeNodeTypesFromList(session, list);
log.info("Registered " + list.size() + " nodetypes from xml configuration file.");
@@ -496,11 +545,11 @@ public class NodeTypeManagerImpl impleme
{
for (Iterator nodeTypeIterator = nodeTypes.iterator(); nodeTypeIterator.hasNext();)
{
- NodeTypeDef nodeTypeDef = (NodeTypeDef) nodeTypeIterator.next();
+ NodeTypeDefinition nodeTypeDef = (NodeTypeDefinition) nodeTypeIterator.next();
this.removeSingleNodeType(session, nodeTypeDef.getName());
-
+
}
-
+
}
/**
@@ -600,6 +649,9 @@ public class NodeTypeManagerImpl impleme
type.equals(PropertyType.TYPENAME_NAME) ||
type.equals(PropertyType.TYPENAME_PATH) ||
type.equals(PropertyType.TYPENAME_REFERENCE) ||
- type.equals(PropertyType.TYPENAME_STRING));
+ type.equals(PropertyType.TYPENAME_WEAKREFERENCE) ||
+ type.equals(PropertyType.TYPENAME_DECIMAL) ||
+ type.equals(PropertyType.TYPENAME_URI) ||
+ type.equals(PropertyType.TYPENAME_STRING));
}
}
Modified: jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/version/Version.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/version/Version.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/version/Version.java (original)
+++ jackrabbit/commons/ocm/trunk/src/main/java/org/apache/jackrabbit/ocm/version/Version.java Thu Sep 30 12:55:39 2010
@@ -55,7 +55,7 @@ public class Version
{
try
{
- return version.getUUID();
+ return version.getIdentifier();
}
catch (RepositoryException e)
{
Modified: jackrabbit/commons/ocm/trunk/src/test/java/org/apache/jackrabbit/ocm/AbstractTestBase.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/ocm/trunk/src/test/java/org/apache/jackrabbit/ocm/AbstractTestBase.java?rev=1003049&r1=1003048&r2=1003049&view=diff
==============================================================================
--- jackrabbit/commons/ocm/trunk/src/test/java/org/apache/jackrabbit/ocm/AbstractTestBase.java (original)
+++ jackrabbit/commons/ocm/trunk/src/test/java/org/apache/jackrabbit/ocm/AbstractTestBase.java Thu Sep 30 12:55:39 2010
@@ -33,6 +33,7 @@ import javax.jcr.Session;
import javax.jcr.UnsupportedRepositoryOperationException;
import javax.jcr.Workspace;
import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.nodetype.NodeTypeDefinition;
import javax.jcr.nodetype.NodeTypeManager;
import junit.framework.TestCase;
@@ -40,7 +41,6 @@ import junit.framework.TestCase;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.jackrabbit.core.nodetype.InvalidNodeTypeDefException;
-import org.apache.jackrabbit.core.nodetype.NodeTypeDef;
import org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl;
import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
import org.apache.jackrabbit.core.nodetype.xml.NodeTypeReader;
@@ -50,6 +50,7 @@ import org.apache.jackrabbit.ocm.mapper.
import org.apache.jackrabbit.ocm.query.QueryManager;
import org.apache.jackrabbit.ocm.reflection.ReflectionUtils;
import org.apache.jackrabbit.ocm.repository.RepositoryUtil;
+import org.apache.jackrabbit.spi.QNodeTypeDefinition;
import org.xml.sax.ContentHandler;
/**
@@ -151,14 +152,14 @@ public abstract class AbstractTestBase e
"./src/test/test-config/nodetypes/custom_nodetypes.xml");
// HINT: throws InvalidNodeTypeDefException, IOException
- NodeTypeDef[] types = NodeTypeReader.read(xml);
+ QNodeTypeDefinition[] types = NodeTypeReader.read(xml);
Workspace workspace = session.getWorkspace();
NodeTypeManager ntMgr = workspace.getNodeTypeManager();
NodeTypeRegistry ntReg = ((NodeTypeManagerImpl) ntMgr).getNodeTypeRegistry();
for (int j = 0; j < types.length; j++) {
- NodeTypeDef def = types[j];
+ QNodeTypeDefinition def = types[j];
try {
ntReg.getNodeTypeDef(def.getName());