Author: cihan
Date: Mon May 9 13:06:25 2011
New Revision: 1101008
URL: http://svn.apache.org/viewvc?rev=1101008&view=rev
Log:
STANBOL-188 Added OfflineAccessor that will be used by REST services. Using
this accessor processors do not have to take specific action to handle offline
updates.
Added:
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/OfflineAccess.java
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/CMSObjectBuilder.java
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/NamingHelper.java
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/ObjectTypeBuilder.java
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/PropertyBuilder.java
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/PropertyDefinitionBuilder.java
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/repository/
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/repository/OfflineAccessTest.java
Modified:
incubator/stanbol/trunk/cmsadapter/core/pom.xml
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/RepositoryAccessManagerImpl.java
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/DobjectFactoryImpTest.java
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/MockOnlineAccess.java
incubator/stanbol/trunk/cmsadapter/parent/pom.xml
incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/repository/RepositoryAccessException.java
Modified: incubator/stanbol/trunk/cmsadapter/core/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/pom.xml?rev=1101008&r1=1101007&r2=1101008&view=diff
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/core/pom.xml (original)
+++ incubator/stanbol/trunk/cmsadapter/core/pom.xml Mon May 9 13:06:25 2011
@@ -83,6 +83,10 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </dependency>
</dependencies>
</project>
Added:
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/OfflineAccess.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/OfflineAccess.java?rev=1101008&view=auto
==============================================================================
---
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/OfflineAccess.java
(added)
+++
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/OfflineAccess.java
Mon May 9 13:06:25 2011
@@ -0,0 +1,321 @@
+package org.apache.stanbol.cmsadapter.core.repository;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.collections.map.MultiValueMap;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.CMSObject;
+import
org.apache.stanbol.cmsadapter.servicesapi.model.web.ChildObjectDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ConnectionInfo;
+import
org.apache.stanbol.cmsadapter.servicesapi.model.web.ObjectTypeDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.Property;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.PropertyDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccess;
+import
org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccessException;
+
+public class OfflineAccess implements RepositoryAccess {
+
+ MultiValueMap nameMap = new MultiValueMap();
+ Map<String,CMSObject> cmsObjectMap = new HashMap<String,CMSObject>();
+ Map<String,PropertyDefinition> propDefinitionMap = new
HashMap<String,PropertyDefinition>();
+ Map<String,ObjectTypeDefinition> typeDefinitionMap = new
HashMap<String,ObjectTypeDefinition>();
+ // TODO find a more suitable solution
+ Map<Property,CMSObject> propertyMap = new HashMap<Property,CMSObject>();
+
+ public OfflineAccess(List<Object> repository) {
+ for (Object cmsObject : repository) {
+ if (cmsObject instanceof CMSObject) {
+ processCMSOBject((CMSObject) cmsObject);
+ } else if (cmsObject instanceof ObjectTypeDefinition) {
+ processObjectTypeDefinition((ObjectTypeDefinition) cmsObject);
+ } else if (cmsObject instanceof PropertyDefinition) {
+ processPropertyDefinition((PropertyDefinition) cmsObject);
+ } else {
+ throw new IllegalArgumentException("Offline accessor can not
handle type "
+ +
cmsObject.getClass().getName());
+ }
+ }
+ }
+
+ private void processPropertyDefinition(PropertyDefinition propDef) {
+ propDefinitionMap.put(propDef.getUniqueRef(), propDef);
+ }
+
+ private void processObjectTypeDefinition(ObjectTypeDefinition typeDef) {
+ typeDefinitionMap.put(typeDef.getUniqueRef(), typeDef);
+ for (PropertyDefinition propDef : typeDef.getPropertyDefinition()) {
+ propDefinitionMap.put(propDef.getUniqueRef(), propDef);
+ }
+ }
+
+ private void processCMSOBject(CMSObject cmsObject) {
+ cmsObjectMap.put(cmsObject.getUniqueRef(), cmsObject);
+ if(!nameMap.containsValue(cmsObject.getLocalname(), cmsObject)){
+ nameMap.put(cmsObject.getLocalname(), cmsObject);
+ }
+
+ for (Property prop : cmsObject.getProperty()) {
+ propertyMap.put(prop, cmsObject);
+ propDefinitionMap.put(prop.getPropertyDefinition().getUniqueRef(),
prop.getPropertyDefinition());
+ }
+
+ for (CMSObject child : cmsObject.getChildren()) {
+ processCMSOBject(child);
+ }
+ }
+
+ @Override
+ public Object getSession(ConnectionInfo connectionInfo) throws
RepositoryAccessException {
+ throw new UnsupportedOperationException("Offline Repository Access
does not handle connections");
+ }
+
+ @Override
+ public List<CMSObject> getNodeByPath(String path, Object session) throws
RepositoryAccessException {
+ checkNullArgument(session);
+ return getNodeByPath(path);
+
+ }
+
+ @Override
+ public List<CMSObject> getNodeByPath(String path, ConnectionInfo
connectionInfo) throws RepositoryAccessException {
+ checkNullArgument(connectionInfo);
+ return getNodeByPath(path);
+ }
+
+ private List<CMSObject> getNodeByPath(String path) {
+ List<CMSObject> nodes = new ArrayList<CMSObject>();
+ for (CMSObject cmsObject : cmsObjectMap.values()) {
+ if (matches(path, cmsObject.getPath())) {
+ nodes.add(cmsObject);
+ }
+ }
+
+ return nodes;
+ }
+
+ @Override
+ public List<CMSObject> getNodeById(String id, ConnectionInfo
connectionInfo) throws RepositoryAccessException {
+ checkNullArgument(connectionInfo);
+ return getNodeById(id);
+ }
+
+ @Override
+ public List<CMSObject> getNodeById(String id, Object session) throws
RepositoryAccessException {
+ checkNullArgument(session);
+ return getNodeById(id);
+ }
+
+ private List<CMSObject> getNodeById(String id) throws
RepositoryAccessException {
+ CMSObject cmsObject = cmsObjectMap.get(id);
+ if (cmsObject == null) {
+ throw new RepositoryAccessException("No object with id=" + id);
+ } else {
+ return Arrays.asList(new CMSObject[] {cmsObject});
+ }
+ }
+
+ @Override
+ public List<CMSObject> getNodeByName(String name, Object session) throws
RepositoryAccessException {
+ checkNullArgument(session);
+ return getNodeByName(name);
+ }
+
+ @Override
+ public List<CMSObject> getNodeByName(String name, ConnectionInfo
connectionInfo) throws RepositoryAccessException {
+ checkNullArgument(connectionInfo);
+ return getNodeByName(name);
+ }
+
+ private List<CMSObject> getNodeByName(String name) {
+ List<CMSObject> nodes = (List<CMSObject>) nameMap.get(name);
+ if (nodes == null) {
+ nodes = Collections.emptyList();
+ }
+ return nodes;
+ }
+
+ @Override
+ public CMSObject getFirstNodeByPath(String path, ConnectionInfo
connectionInfo) throws RepositoryAccessException {
+ checkNullArgument(connectionInfo);
+ return getFirstNodeByPath(path);
+ }
+
+ @Override
+ public CMSObject getFirstNodeByPath(String path, Object session) throws
RepositoryAccessException {
+ checkNullArgument(session);
+ return getFirstNodeByPath(path);
+ }
+
+ private CMSObject getFirstNodeByPath(String path) {
+ for (CMSObject cmsObject : cmsObjectMap.values()) {
+ if (matches(path, cmsObject.getPath())) {
+ return cmsObject;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public CMSObject getFirstNodeById(String id, ConnectionInfo
connectionInfo) throws RepositoryAccessException {
+ checkNullArgument(connectionInfo);
+ return getFirstNodeById(id);
+ }
+
+ @Override
+ public CMSObject getFirstNodeById(String id, Object session) throws
RepositoryAccessException {
+ checkNullArgument(session);
+ return getFirstNodeById(id);
+ }
+
+ private CMSObject getFirstNodeById(String id) throws
RepositoryAccessException {
+ return getNodeById(id).get(0);
+ }
+
+ @Override
+ public CMSObject getFirstNodeByName(String name, Object session) throws
RepositoryAccessException {
+ checkNullArgument(session);
+ return getFirstNodeByName(name);
+ }
+
+ @Override
+ public CMSObject getFirstNodeByName(String name, ConnectionInfo
connectionInfo) throws RepositoryAccessException {
+ checkNullArgument(connectionInfo);
+ return getFirstNodeByName(name);
+ }
+
+ private CMSObject getFirstNodeByName(String name) {
+ List<CMSObject> nodes = (List<CMSObject>) nameMap.get(name);
+ if (nodes == null || nodes.size() < 1) {
+ return null;
+ } else {
+ return nodes.get(0);
+ }
+ }
+
+ @Override
+ public List<CMSObject> getChildren(CMSObject node, Object session) throws
RepositoryAccessException {
+ checkNullArgument(session);
+ return node.getChildren();
+ }
+
+ @Override
+ public ObjectTypeDefinition getObjectTypeDefinition(String typeRef, Object
session) throws RepositoryAccessException {
+ checkNullArgument(session);
+ if (typeDefinitionMap.containsKey(typeRef)) {
+ return typeDefinitionMap.get(typeRef);
+ } else {
+ throw new RepositoryAccessException("No object type definition
with id " + typeRef);
+ }
+ }
+
+ @Override
+ public List<Property> getProperties(CMSObject node, Object session) throws
RepositoryAccessException {
+ checkNullArgument(session);
+ return node.getProperty();
+ }
+
+ @Override
+ public List<PropertyDefinition>
getPropertyDefinitions(ObjectTypeDefinition instance, Object session) throws
RepositoryAccessException {
+ checkNullArgument(session);
+ return instance.getPropertyDefinition();
+ }
+
+ @Override
+ public List<ObjectTypeDefinition>
getParentTypeDefinitions(ObjectTypeDefinition instance, Object session) throws
RepositoryAccessException {
+ // TODO Check if this interpreted correctly
+ checkNullArgument(session);
+ List<ObjectTypeDefinition> parentTypeDefinitions = new
ArrayList<ObjectTypeDefinition>();
+ for (String parentRef : instance.getParentRef()) {
+ if (cmsObjectMap.containsKey(parentRef)) {
+ String parentTypeRef =
cmsObjectMap.get(parentRef).getObjectTypeRef();
+ if (typeDefinitionMap.containsKey(parentTypeRef)) {
+
parentTypeDefinitions.add(typeDefinitionMap.get(parentTypeRef));
+ }
+ }
+ }
+
+ return parentTypeDefinitions;
+ }
+
+ @Override
+ public List<ChildObjectDefinition>
getChildObjectTypeDefinitions(ObjectTypeDefinition instance,
+ Object
session) throws RepositoryAccessException {
+ checkNullArgument(session);
+ return instance.getChildObjectDefinition();
+ }
+
+ @Override
+ public ObjectTypeDefinition getAllowableTypeDef(ChildObjectDefinition
instance, Object session) throws RepositoryAccessException {
+ checkNullArgument(session);
+ String typeDefRef = instance.getAllowedObjectTypeDefRef();
+ if (typeDefinitionMap.containsKey(typeDefRef)) {
+ return typeDefinitionMap.get(typeDefRef);
+ } else {
+ throw new RepositoryAccessException("No type definition with id "
+ typeDefRef);
+ }
+
+ }
+
+ @Override
+ public CMSObject getContainerObject(Property instance, Object session)
throws RepositoryAccessException {
+ checkNullArgument(session);
+ if (propertyMap.containsKey(instance)) {
+ return propertyMap.get(instance);
+ } else {
+ throw new RepositoryAccessException("Container object for property
not found");
+ }
+ }
+
+ @Override
+ public PropertyDefinition getPropertyDefinition(Property instance, Object
session) throws RepositoryAccessException {
+ return instance.getPropertyDefinition();
+ }
+
+ @Override
+ public String getNamespaceURI(String prefix, Object session) throws
RepositoryAccessException {
+ // TODO find a good solution here.
+ throw new UnsupportedOperationException(
+ "Offline Repository Access does not handle connections, thus
prefixes can not be accessible");
+ }
+
+ @Override
+ public boolean canRetrieve(ConnectionInfo connectionInfo) {
+ throw new UnsupportedOperationException("Offline Repository Access
does not handle connections");
+ }
+
+ @Override
+ public boolean canRetrieve(Object session) {
+ throw new UnsupportedOperationException("Offline Repository Access
does not handle connections");
+ }
+
+ @Override
+ public CMSObject getParentByNode(CMSObject instance, Object session)
throws RepositoryAccessException {
+ checkNullArgument(session);
+ String parentRef = instance.getParentRef();
+ if (cmsObjectMap.containsKey(parentRef)) {
+ return cmsObjectMap.get(parentRef);
+ } else {
+ throw new RepositoryAccessException("No object with id=" +
parentRef);
+ }
+ }
+
+ private void checkNullArgument(Object argument) {
+ if (argument != null) {
+ throw new IllegalArgumentException(
+ "Offline accessor can not handle non-null Session or
Connection Info");
+ }
+ }
+
+ private boolean matches(String pathExpr, String realPath) {
+ // TODO implement
+ if (pathExpr.endsWith("%")) {
+ return realPath.contains(pathExpr.substring(0, pathExpr.length() -
1));
+ } else {
+ return pathExpr.contentEquals(realPath);
+ }
+ }
+}
Modified:
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/RepositoryAccessManagerImpl.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/RepositoryAccessManagerImpl.java?rev=1101008&r1=1101007&r2=1101008&view=diff
==============================================================================
---
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/RepositoryAccessManagerImpl.java
(original)
+++
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/RepositoryAccessManagerImpl.java
Mon May 9 13:06:25 2011
@@ -57,6 +57,16 @@ public class RepositoryAccessManagerImpl
}
}
+ if (session instanceof List<?>) {
+ try {
+ return new OfflineAccess((List<Object>) session);
+ } catch (IllegalArgumentException e) {
+ logger.debug(e.getMessage());
+ }
+ logger.debug("Using offline accessor");
+
+ }
+
logger.warn("No suitable repository access implementation for session
{} ", session);
return null;
}
Added:
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/CMSObjectBuilder.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/CMSObjectBuilder.java?rev=1101008&view=auto
==============================================================================
---
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/CMSObjectBuilder.java
(added)
+++
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/CMSObjectBuilder.java
Mon May 9 13:06:25 2011
@@ -0,0 +1,51 @@
+package org.apache.stanbol.cmsadapter.core.decorated;
+
+import static
org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.LOCAL_NAME;
+import static
org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.NAMESPACE;
+import static org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.PATH;
+import static
org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.UNIQUE_REF;
+
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.CMSObject;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ObjectFactory;
+
+// Unnecessarily, eagerly builds objects but OK for tests.
+public class CMSObjectBuilder {
+
+ private static ObjectFactory of = new ObjectFactory();
+ private CMSObject instance = of.createCMSObject();
+ private String prefix;
+
+ public CMSObjectBuilder(String prefix) {
+ this.prefix = prefix;
+ instance.setUniqueRef(prefix + UNIQUE_REF);
+ instance.setLocalname(prefix + LOCAL_NAME);
+ instance.setPath(prefix + PATH);
+ }
+
+ public CMSObjectBuilder(String prefix, String id, String name, String
path) {
+ this.prefix = prefix;
+ instance.setUniqueRef(prefix + id);
+ instance.setLocalname(prefix + name);
+ instance.setPath(prefix + path);
+ }
+
+ public CMSObjectBuilder namespace() {
+ instance.setNamespace(prefix + NAMESPACE);
+ return this;
+ }
+
+ public CMSObjectBuilder namespace(String namespace) {
+ instance.setNamespace(prefix + namespace);
+ return this;
+ }
+
+ public CMSObjectBuilder child(CMSObject child) {
+ instance.getChildren().add(child);
+ return this;
+ }
+
+ public CMSObject build() {
+ return instance;
+ }
+
+}
\ No newline at end of file
Modified:
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/DobjectFactoryImpTest.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/DobjectFactoryImpTest.java?rev=1101008&r1=1101007&r2=1101008&view=diff
==============================================================================
---
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/DobjectFactoryImpTest.java
(original)
+++
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/DobjectFactoryImpTest.java
Mon May 9 13:06:25 2011
@@ -1,12 +1,15 @@
package org.apache.stanbol.cmsadapter.core.decorated;
+import static
org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.LOCAL_NAME;
+import static
org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.NAMESPACE;
+import static org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.PATH;
+import static
org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.UNIQUE_REF;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import java.util.List;
import org.apache.stanbol.cmsadapter.servicesapi.model.web.CMSObject;
-import org.apache.stanbol.cmsadapter.servicesapi.model.web.ObjectFactory;
import
org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.AdapterMode;
import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObject;
import
org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObjectAdapter;
@@ -20,11 +23,6 @@ import org.junit.rules.ExpectedException
public class DobjectFactoryImpTest {
- public static final String LOCAL_NAME = "localname";
- public static final String PATH = "path";
- public static final String UNIQUE_REF = "unique_ref";
- public static final String ROOT_PARENT_REF = null;
- public static final String NAMESPACE = "namespace";
public static final String PREFIX_ROOT = "root_";
public static final String PREFIX_CHILD_1 = "child_1_";
public static final String PREFIX_CHILD_2 = "child_2_";
@@ -48,47 +46,6 @@ public class DobjectFactoryImpTest {
@AfterClass
public static void tearDownAfterClass() throws Exception {}
- // Unnecessarily, eagerly builds objects but OK for tests.
- public static class CMSObjectBuilder {
- private static ObjectFactory of = new ObjectFactory();
- private CMSObject instance = of.createCMSObject();
- private String prefix;
-
- public CMSObjectBuilder(String prefix) {
- this.prefix = prefix;
- instance.setUniqueRef(prefix + UNIQUE_REF);
- instance.setLocalname(prefix + LOCAL_NAME);
- instance.setPath(prefix + PATH);
- }
-
- public CMSObjectBuilder(String prefix, String id, String name, String
path) {
- this.prefix = prefix;
- instance.setUniqueRef(prefix + id);
- instance.setLocalname(prefix + name);
- instance.setPath(prefix + path);
- }
-
- public CMSObjectBuilder namespace() {
- instance.setNamespace(prefix + NAMESPACE);
- return this;
- }
-
- public CMSObjectBuilder namespace(String namespace) {
- instance.setNamespace(prefix + namespace);
- return this;
- }
-
- public CMSObjectBuilder child(CMSObject child) {
- instance.getChildren().add(child);
- return this;
- }
-
- public CMSObject build() {
- return instance;
- }
-
- }
-
@Before
public void setUp() {
rootStripped = new CMSObjectBuilder(PREFIX_ROOT).namespace().build();
@@ -128,43 +85,43 @@ public class DobjectFactoryImpTest {
DObject root = sOfflineAdapter.wrapAsDObject(rootStripped);
assertNull(root.getParent());
}
-
+
@Test
- public void testDObjectChildsOnline() throws RepositoryAccessException{
+ public void testDObjectChildsOnline() throws RepositoryAccessException {
DObject root = onlineAdapter.wrapAsDObject(rootStripped);
List<DObject> children = root.getChildren();
assertEquals(2, children.size());
}
-
+
@Test
- public void testDObjectChildsOffline() throws RepositoryAccessException{
+ public void testDObjectChildsOffline() throws RepositoryAccessException {
DObject rootd = sOfflineAdapter.wrapAsDObject(root);
List<DObject> children = rootd.getChildren();
assertEquals(2, children.size());
}
-
+
@Test
- public void testDObjectChildsOfflineStripped() throws
RepositoryAccessException{
+ public void testDObjectChildsOfflineStripped() throws
RepositoryAccessException {
DObject rootd = sOfflineAdapter.wrapAsDObject(rootStripped);
List<DObject> children = rootd.getChildren();
assertEquals(0, children.size());
}
-
+
@Test
- public void testDObjectChildsTOfflineStripped() throws
RepositoryAccessException{
+ public void testDObjectChildsTOfflineStripped() throws
RepositoryAccessException {
DObject rootd = tOfflineAdapter.wrapAsDObject(root);
List<DObject> children = rootd.getChildren();
assertEquals(2, children.size());
}
-
- @Test
- public void testDObjectTypeSOffline() throws RepositoryAccessException{
+
+ @Test
+ public void testDObjectTypeSOffline() throws RepositoryAccessException {
DObject rootd = sOfflineAdapter.wrapAsDObject(root);
assertNull(rootd.getObjectType());
}
-
- @Test
- public void testDObjectTypeOnline() throws RepositoryAccessException{
+
+ @Test
+ public void testDObjectTypeOnline() throws RepositoryAccessException {
DObject rootd = onlineAdapter.wrapAsDObject(rootStripped);
expectedException.expect(RepositoryAccessException.class);
rootd.getObjectType();
Modified:
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/MockOnlineAccess.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/MockOnlineAccess.java?rev=1101008&r1=1101007&r2=1101008&view=diff
==============================================================================
---
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/MockOnlineAccess.java
(original)
+++
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/MockOnlineAccess.java
Mon May 9 13:06:25 2011
@@ -1,10 +1,10 @@
package org.apache.stanbol.cmsadapter.core.decorated;
+import static
org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.UNIQUE_REF;
+
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
-import
org.apache.stanbol.cmsadapter.core.decorated.DobjectFactoryImpTest.CMSObjectBuilder;
import org.apache.stanbol.cmsadapter.servicesapi.model.web.CMSObject;
import
org.apache.stanbol.cmsadapter.servicesapi.model.web.ChildObjectDefinition;
import org.apache.stanbol.cmsadapter.servicesapi.model.web.ConnectionInfo;
@@ -103,9 +103,7 @@ public class MockOnlineAccess implements
@Override
public List<CMSObject> getChildren(CMSObject node, Object session) throws
RepositoryAccessException {
- if (node == null
- || !node.getUniqueRef().equals(
- DobjectFactoryImpTest.PREFIX_ROOT +
DobjectFactoryImpTest.UNIQUE_REF)) {
+ if (node == null ||
!node.getUniqueRef().equals(DobjectFactoryImpTest.PREFIX_ROOT + UNIQUE_REF)) {
return null;
} else {
@@ -118,7 +116,7 @@ public class MockOnlineAccess implements
@Override
public ObjectTypeDefinition getObjectTypeDefinition(String typeRef, Object
session) throws RepositoryAccessException {
// TODO Auto-generated method stub
- if(typeRef == null){
+ if (typeRef == null) {
throw new RepositoryAccessException("Null typeRef", null);
}
return null;
Added:
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/NamingHelper.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/NamingHelper.java?rev=1101008&view=auto
==============================================================================
---
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/NamingHelper.java
(added)
+++
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/NamingHelper.java
Mon May 9 13:06:25 2011
@@ -0,0 +1,10 @@
+package org.apache.stanbol.cmsadapter.core.decorated;
+
+public class NamingHelper {
+
+ public static final String LOCAL_NAME = "localname";
+ public static final String PATH = "path";
+ public static final String UNIQUE_REF = "unique_ref";
+ public static final String ROOT_PARENT_REF = null;
+ public static final String NAMESPACE = "namespace";
+}
Added:
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/ObjectTypeBuilder.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/ObjectTypeBuilder.java?rev=1101008&view=auto
==============================================================================
---
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/ObjectTypeBuilder.java
(added)
+++
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/ObjectTypeBuilder.java
Mon May 9 13:06:25 2011
@@ -0,0 +1,41 @@
+package org.apache.stanbol.cmsadapter.core.decorated;
+
+import static
org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.LOCAL_NAME;
+import static
org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.NAMESPACE;
+import static
org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.UNIQUE_REF;
+
+import
org.apache.stanbol.cmsadapter.servicesapi.model.web.ChildObjectDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ObjectFactory;
+import
org.apache.stanbol.cmsadapter.servicesapi.model.web.ObjectTypeDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.PropertyDefinition;
+
+public class ObjectTypeBuilder {
+ private static ObjectFactory of = new ObjectFactory();
+ private ObjectTypeDefinition instance = of.createObjectTypeDefinition();
+
+ public ObjectTypeBuilder(String prefix) {
+ instance.setUniqueRef(prefix + UNIQUE_REF);
+ instance.setLocalname(prefix + LOCAL_NAME);
+ instance.setNamespace(prefix + NAMESPACE);
+ }
+
+ public ObjectTypeBuilder parentRef(String parentRef) {
+ instance.getParentRef().add(parentRef);
+ return this;
+ }
+
+ public ObjectTypeBuilder propertyDefinition(PropertyDefinition propDef) {
+ instance.getPropertyDefinition().add(propDef);
+ return this;
+ }
+
+ public ObjectTypeBuilder childObjectDefinition(ChildObjectDefinition
childDef) {
+ instance.getChildObjectDefinition().add(childDef);
+ return this;
+ }
+
+ public ObjectTypeDefinition build() {
+ return instance;
+ }
+
+}
Added:
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/PropertyBuilder.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/PropertyBuilder.java?rev=1101008&view=auto
==============================================================================
---
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/PropertyBuilder.java
(added)
+++
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/PropertyBuilder.java
Mon May 9 13:06:25 2011
@@ -0,0 +1,33 @@
+package org.apache.stanbol.cmsadapter.core.decorated;
+
+import static
org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.LOCAL_NAME;
+
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.CMSObject;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ObjectFactory;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.Property;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.PropertyDefinition;
+
+public class PropertyBuilder {
+ private static ObjectFactory of = new ObjectFactory();
+ private Property instance = of.createProperty();
+
+ public PropertyBuilder(String prefix) {
+ instance.setLocalname(prefix + LOCAL_NAME);
+ }
+
+ public PropertyBuilder propertyDefinition(PropertyDefinition propDef) {
+ instance.setPropertyDefinition(propDef);
+ return this;
+ }
+
+
+ public PropertyBuilder containerObjectRef(CMSObject obj){
+ instance.setContainerObjectRef(obj.getUniqueRef());
+ return this;
+ }
+
+ public Property build(){
+ return instance;
+ }
+
+}
Added:
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/PropertyDefinitionBuilder.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/PropertyDefinitionBuilder.java?rev=1101008&view=auto
==============================================================================
---
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/PropertyDefinitionBuilder.java
(added)
+++
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/decorated/PropertyDefinitionBuilder.java
Mon May 9 13:06:25 2011
@@ -0,0 +1,24 @@
+package org.apache.stanbol.cmsadapter.core.decorated;
+
+import static
org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.LOCAL_NAME;
+import static
org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.NAMESPACE;
+import static
org.apache.stanbol.cmsadapter.core.decorated.NamingHelper.UNIQUE_REF;
+
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ObjectFactory;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.PropertyDefinition;
+
+public class PropertyDefinitionBuilder {
+ private ObjectFactory of = new ObjectFactory();
+ private PropertyDefinition instance = of.createPropertyDefinition();
+
+ public PropertyDefinitionBuilder(String prefix) {
+ instance.setUniqueRef(prefix + UNIQUE_REF);
+ instance.setLocalname(prefix + LOCAL_NAME);
+ instance.setNamespace(prefix + NAMESPACE);
+ }
+
+ public PropertyDefinition build() {
+ return instance;
+ }
+
+}
Added:
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/repository/OfflineAccessTest.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/repository/OfflineAccessTest.java?rev=1101008&view=auto
==============================================================================
---
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/repository/OfflineAccessTest.java
(added)
+++
incubator/stanbol/trunk/cmsadapter/core/src/test/java/org/apache/stanbol/cmsadapter/core/repository/OfflineAccessTest.java
Mon May 9 13:06:25 2011
@@ -0,0 +1,282 @@
+package org.apache.stanbol.cmsadapter.core.repository;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.stanbol.cmsadapter.core.decorated.CMSObjectBuilder;
+import org.apache.stanbol.cmsadapter.core.decorated.ObjectTypeBuilder;
+import org.apache.stanbol.cmsadapter.core.decorated.PropertyBuilder;
+import org.apache.stanbol.cmsadapter.core.decorated.PropertyDefinitionBuilder;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.CMSObject;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ConnectionInfo;
+import
org.apache.stanbol.cmsadapter.servicesapi.model.web.ObjectTypeDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.Property;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.PropertyDefinition;
+import
org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccessException;
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+public class OfflineAccessTest {
+
+ private static final String PX_ROOT = "root";
+ private static final String PX_O_11 = "child11";
+ private static final String PX_O_12 = "child12";
+ private static final String PX_O_21 = "child21";
+ private static final String PX_O_13 = "child13";
+ private static final String PX_PD_1 = "propdef1";
+ private static final String PX_PD_2 = "propdef2";
+ private static final String PX_PD_3 = "propdef3";
+ private static final String PX_P_1 = "prop1";
+ private static final String PX_P_2 = "prop2";
+ // private static final String PX_P_3 = "prop3";
+ private static final String PX_OT_1 = "objectype1";
+ private static final String PX_OT_2 = "objectype2";
+ private static final String PX_OT_3 = "objectype3";
+ // Simulate an input repository(will be submitted through rest services)
+ private static List<Object> repository;
+ private static RepositoryAccessManagerImpl accessManager;
+ private static OfflineAccess offlineAccess;
+
+ @Rule
+ public ExpectedException expectedException = ExpectedException.none();
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ // initialize a dummy repository
+ repository = new ArrayList<Object>();
+ PropertyDefinition pd1 = new
PropertyDefinitionBuilder(PX_PD_1).build();
+ PropertyDefinition pd2 = new
PropertyDefinitionBuilder(PX_PD_2).build();
+ PropertyDefinition pd3 = new
PropertyDefinitionBuilder(PX_PD_3).build();
+ Property p1 = new
PropertyBuilder(PX_P_1).propertyDefinition(pd1).build();
+ Property p2 = new
PropertyBuilder(PX_P_2).propertyDefinition(pd2).build();
+ CMSObject root = new CMSObjectBuilder(PX_ROOT).build();
+ CMSObject child11 = new CMSObjectBuilder(PX_O_11).build();
+ CMSObject child12 = new CMSObjectBuilder(PX_O_12).build();
+ CMSObject child21 = new CMSObjectBuilder(PX_O_21).build();
+ CMSObject child13 = new CMSObjectBuilder(PX_O_13).build();
+
+ ObjectTypeDefinition type1 = new
ObjectTypeBuilder(PX_OT_1).propertyDefinition(pd1).build();
+ ObjectTypeDefinition type2 = new
ObjectTypeBuilder(PX_OT_2).propertyDefinition(pd2).build();
+ ObjectTypeDefinition type3 = new
ObjectTypeBuilder(PX_OT_3).propertyDefinition(pd3).build();
+
+ root.setObjectTypeRef(type1.getUniqueRef());
+ child11.setObjectTypeRef(type1.getUniqueRef());
+ child12.setObjectTypeRef(type2.getUniqueRef());
+ child13.setObjectTypeRef(type2.getUniqueRef());
+ child21.setObjectTypeRef(type3.getUniqueRef());
+
+ p1.setContainerObjectRef(root.getUniqueRef());
+ root.getProperty().add(p1);
+ root.getProperty().add(p2);
+
+ root.getChildren().add(child11);
+ child11.setParentRef(root.getUniqueRef());
+
+ root.getChildren().add(child12);
+ child12.setParentRef(root.getUniqueRef());
+
+ child11.getChildren().add(child21);
+ child21.setParentRef(child11.getUniqueRef());
+
+ // child13 has the same name as child11
+ root.getChildren().add(child13);
+ child13.setParentRef(root.getUniqueRef());
+ child13.setLocalname(child11.getLocalname());
+
+ processPaths(root);
+ repository.addAll(Arrays.asList(new Object[] {root, child11, child12,
child13, child21, type1, type2,
+ type3, pd1, pd2}));
+
+ }
+
+ @Test
+ public void testOfflineAccess() {
+ try {
+ offlineAccess = new OfflineAccess(repository);
+ } catch (Exception e) {
+ fail("Exception in constructor: " + e.getMessage());
+ }
+ }
+
+ @Test
+ public void testGetSession() throws RepositoryAccessException {
+ expectedException.expect(UnsupportedOperationException.class);
+ offlineAccess.getSession(new ConnectionInfo());
+ }
+
+ @Test
+ public void testGetNodeByPath() throws RepositoryAccessException {
+ List<CMSObject> real = offlineAccess.getNodeByPath("/", null);
+ // Check only the root is returned
+ assertEquals(1, real.size());
+ assertSame(repository.get(0), real.get(0));
+
+ List<CMSObject> all = offlineAccess.getNodeByPath("/%", null);
+ assertEquals(5, all.size());
+
+ expectedException.expect(IllegalArgumentException.class);
+ offlineAccess.getNodeByPath("/", new Object());
+ }
+
+ @Test
+ public void testGetNodeById() throws RepositoryAccessException {
+ CMSObject expected = (CMSObject) repository.get(0);
+ List<CMSObject> real =
offlineAccess.getNodeById(expected.getUniqueRef(), null);
+
+ assertEquals(1, real.size());
+ assertSame(expected, real.get(0));
+
+ expectedException.expect(RepositoryAccessException.class);
+ real = offlineAccess.getNodeById(UUID.randomUUID().toString(), null);
+ assertEquals(0, real.size());
+
+ }
+
+ @Test
+ public void testGetNodeByName() throws RepositoryAccessException {
+ CMSObject c11 = (CMSObject) repository.get(1);
+ CMSObject c13 = (CMSObject) repository.get(3);
+
+ List<CMSObject> real = offlineAccess.getNodeByName(c11.getLocalname(),
null);
+ assertEquals(2, real.size());
+ assertSame(c11, real.get(0));
+ assertSame(c13, real.get(1));
+
+ expectedException.expect(IllegalArgumentException.class);
+ offlineAccess.getNodeByName(UUID.randomUUID().toString(), new
Object());
+ }
+
+ @Test
+ public void testGetFirstNodeByPath() throws RepositoryAccessException {
+ CMSObject real = offlineAccess.getFirstNodeByPath("/", null);
+ // Check only the root is returned
+ assertSame(repository.get(0), real);
+
+ CMSObject all = offlineAccess.getFirstNodeByPath("/%", null);
+ assertNotNull(all);
+
+ expectedException.expect(IllegalArgumentException.class);
+ offlineAccess.getFirstNodeByPath("/", new Object());
+ }
+
+ @Test
+ public void testGetFirstNodeById() throws RepositoryAccessException {
+ CMSObject expected = (CMSObject) repository.get(0);
+ CMSObject real =
offlineAccess.getFirstNodeById(expected.getUniqueRef(), null);
+
+ assertSame(expected, real);
+
+ expectedException.expect(RepositoryAccessException.class);
+ real = offlineAccess.getFirstNodeById(UUID.randomUUID().toString(),
null);
+
+ }
+
+ @Test
+ public void testGetFirstNodeByName() throws RepositoryAccessException {
+ CMSObject c11 = (CMSObject) repository.get(1);
+ CMSObject c13 = (CMSObject) repository.get(3);
+
+ CMSObject real = offlineAccess.getFirstNodeByName(c11.getLocalname(),
null);
+ assertTrue(c11 == real || c13 == real);
+
+ expectedException.expect(IllegalArgumentException.class);
+ offlineAccess.getNodeByName(UUID.randomUUID().toString(), new
Object());
+ }
+
+ @Test
+ public void testGetObjectTypeDefinition() throws RepositoryAccessException
{
+ CMSObject root = (CMSObject) repository.get(0);
+ ObjectTypeDefinition expected = (ObjectTypeDefinition)
repository.get(5);
+ ObjectTypeDefinition typeDef =
offlineAccess.getObjectTypeDefinition(root.getObjectTypeRef(), null);
+ assertSame(expected, typeDef);
+
+ expectedException.expect(IllegalArgumentException.class);
+ offlineAccess.getObjectTypeDefinition(UUID.randomUUID().toString(),
new Object());
+
+ }
+
+ /*
+ * TODO Implement when the semantics gets clear*
+ *
+ * @Test public void testGetParentTypeDefinitions() {}
+ *
+ * @Test public void testGetChildObjectTypeDefinitions() {}
+ *
+ * @Test public void testGetAllowableTypeDef() {}
+ */
+ @Test
+ public void testGetContainerObject() throws RepositoryAccessException {
+ CMSObject root = (CMSObject) repository.get(0);
+ Property p = root.getProperty().get(0);
+ CMSObject real = offlineAccess.getContainerObject(p, null);
+ assertSame(root, real);
+
+ expectedException.expect(IllegalArgumentException.class);
+ offlineAccess.getContainerObject(p, new Object());
+ }
+
+ @Test
+ public void testGetPropertyDefinition() throws RepositoryAccessException {
+ CMSObject root = (CMSObject) repository.get(0);
+ PropertyDefinition expected = (PropertyDefinition) repository.get(8);
+ Property p = root.getProperty().get(0);
+ PropertyDefinition propDef = offlineAccess.getPropertyDefinition(p,
null);
+ assertSame(expected, propDef);
+
+ }
+
+ @Test
+ public void testGetNamespaceURI() throws RepositoryAccessException {
+ expectedException.expect(UnsupportedOperationException.class);
+ offlineAccess.getNamespaceURI(null, null);
+ }
+
+ @Test
+ public void testCanRetrieveConnectionInfo() {
+ expectedException.expect(UnsupportedOperationException.class);
+ offlineAccess.canRetrieve((ConnectionInfo)null);
+ }
+
+ @Test
+ public void testCanRetrieveObject() {
+ expectedException.expect(UnsupportedOperationException.class);
+ offlineAccess.canRetrieve(null);
+ }
+
+ @Test
+ public void testGetParentByNode() throws RepositoryAccessException {
+ CMSObject child11 = (CMSObject) repository.get(1);
+ CMSObject root = (CMSObject) repository.get(0);
+ CMSObject parent = offlineAccess.getParentByNode(child11, null);
+ assertSame(root, parent);
+
+ expectedException.expect(IllegalArgumentException.class);
+ offlineAccess.getParentByNode(child11, new Object());
+ }
+
+ // Helper for assigning CMSOBject paths
+ private static void processPaths(CMSObject root) {
+ String path = "/";
+ root.setPath(path);
+
+ processCMSObjectPath(root.getChildren(), path);
+ }
+
+ private static void processCMSObjectPath(List<CMSObject> cmsObjects,
String path) {
+ for (CMSObject cmsObject : cmsObjects) {
+ String newPath = path + cmsObject.getLocalname();
+ cmsObject.setPath(newPath);
+ processCMSObjectPath(cmsObject.getChildren(), newPath + "/");
+ }
+ }
+}
Modified: incubator/stanbol/trunk/cmsadapter/parent/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/parent/pom.xml?rev=1101008&r1=1101007&r2=1101008&view=diff
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/parent/pom.xml (original)
+++ incubator/stanbol/trunk/cmsadapter/parent/pom.xml Mon May 9 13:06:25 2011
@@ -375,7 +375,14 @@
<version>2.4</version>
<scope>provided</scope>
</dependency>
+
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
</dependencyManagement>
Modified:
incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/repository/RepositoryAccessException.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/repository/RepositoryAccessException.java?rev=1101008&r1=1101007&r2=1101008&view=diff
==============================================================================
---
incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/repository/RepositoryAccessException.java
(original)
+++
incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/repository/RepositoryAccessException.java
Mon May 9 13:06:25 2011
@@ -7,6 +7,11 @@ public class RepositoryAccessException e
*/
private static final long serialVersionUID = -3142627349833142549L;
+
+ public RepositoryAccessException(String message){
+ super(message);
+ }
+
public RepositoryAccessException(String message, Throwable throwable){
super(message, throwable);
}