Author: fguillaume
Date: Tue Dec 22 23:57:45 2009
New Revision: 893355
URL: http://svn.apache.org/viewvc?rev=893355&view=rev
Log:
Implement API.getFolder in AtomPub and Simple
Modified:
incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPConnection.java
incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleConnection.java
incubator/chemistry/trunk/chemistry/chemistry-tests/src/main/java/org/apache/chemistry/test/BasicTestCase.java
incubator/chemistry/trunk/chemistry/chemistry-tests/src/test/java/org/apache/chemistry/test/TestAtomPubClientServer.java
Modified:
incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPConnection.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPConnection.java?rev=893355&r1=893354&r2=893355&view=diff
==============================================================================
---
incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPConnection.java
(original)
+++
incubator/chemistry/trunk/chemistry/chemistry-atompub-client/src/main/java/org/apache/chemistry/atompub/client/APPConnection.java
Tue Dec 22 23:57:45 2009
@@ -63,7 +63,9 @@
import org.apache.chemistry.atompub.client.stax.ReadContext;
import org.apache.chemistry.atompub.client.stax.XmlProperty;
import org.apache.chemistry.impl.simple.SimpleContentStream;
+import org.apache.chemistry.impl.simple.SimpleFolder;
import org.apache.chemistry.impl.simple.SimpleListPage;
+import org.apache.chemistry.impl.simple.SimpleObjectEntry;
import org.apache.chemistry.impl.simple.SimpleObjectId;
/**
@@ -408,8 +410,15 @@
}
public Folder getFolder(String path) {
- // TODO Auto-generated method stub
- throw new UnsupportedOperationException();
+ APPObjectEntry entry = (APPObjectEntry) getObjectByPath(path, null);
+ if (entry == null) {
+ return null;
+ }
+ if (entry.getBaseType() != BaseType.FOLDER) {
+ throw new IllegalArgumentException("Not a folder: " + path);
+ }
+ Type type = getRepository().getType(entry.getTypeId());
+ return new APPFolder(entry, type);
}
public List<Rendition> getRenditions(ObjectId object, Inclusion inclusion,
Modified:
incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleConnection.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleConnection.java?rev=893355&r1=893354&r2=893355&view=diff
==============================================================================
---
incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleConnection.java
(original)
+++
incubator/chemistry/trunk/chemistry/chemistry-commons/src/main/java/org/apache/chemistry/impl/simple/SimpleConnection.java
Tue Dec 22 23:57:45 2009
@@ -521,8 +521,15 @@
}
public Folder getFolder(String path) {
- // TODO Auto-generated method stub
- throw new UnsupportedOperationException();
+ SimpleObjectEntry entry = (SimpleObjectEntry) getObjectByPath(path,
+ null);
+ if (entry == null) {
+ return null;
+ }
+ if (entry.getBaseType() != BaseType.FOLDER) {
+ throw new IllegalArgumentException("Not a folder: " + path);
+ }
+ return new SimpleFolder(entry);
}
public CMISObject getObject(ObjectId object) {
@@ -570,8 +577,8 @@
return new SimpleContentStream(bytes, mimeType, filename);
}
- public ObjectId setContentStream(ObjectId document, ContentStream
contentStream,
- boolean overwrite) {
+ public ObjectId setContentStream(ObjectId document,
+ ContentStream contentStream, boolean overwrite) {
SimpleData data = repository.datas.get(document.getId());
if (contentStream == null) {
data.remove(SimpleProperty.CONTENT_BYTES_KEY);
Modified:
incubator/chemistry/trunk/chemistry/chemistry-tests/src/main/java/org/apache/chemistry/test/BasicTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tests/src/main/java/org/apache/chemistry/test/BasicTestCase.java?rev=893355&r1=893354&r2=893355&view=diff
==============================================================================
---
incubator/chemistry/trunk/chemistry/chemistry-tests/src/main/java/org/apache/chemistry/test/BasicTestCase.java
(original)
+++
incubator/chemistry/trunk/chemistry/chemistry-tests/src/main/java/org/apache/chemistry/test/BasicTestCase.java
Tue Dec 22 23:57:45 2009
@@ -241,6 +241,17 @@
assertNotNull(spi.getObjectByPath("/folder 1/folder 2/doc 2", null));
assertNotNull(spi.getObjectByPath("/folder 1/folder 2/doc 3", null));
assertNull(spi.getObjectByPath("/notsuchname", null));
+
+ assertNotNull(conn.getFolder("/"));
+ assertNotNull(conn.getFolder("/folder 1"));
+ assertNotNull(conn.getFolder("/folder 1/folder 2"));
+ try {
+ conn.getFolder("/folder 1/doc 1");
+ fail();
+ } catch (IllegalArgumentException e) {
+ // ok
+ }
+ assertNull(conn.getFolder("/notsuchname"));
}
public void testGetChildren() {
Modified:
incubator/chemistry/trunk/chemistry/chemistry-tests/src/test/java/org/apache/chemistry/test/TestAtomPubClientServer.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tests/src/test/java/org/apache/chemistry/test/TestAtomPubClientServer.java?rev=893355&r1=893354&r2=893355&view=diff
==============================================================================
---
incubator/chemistry/trunk/chemistry/chemistry-tests/src/test/java/org/apache/chemistry/test/TestAtomPubClientServer.java
(original)
+++
incubator/chemistry/trunk/chemistry/chemistry-tests/src/test/java/org/apache/chemistry/test/TestAtomPubClientServer.java
Tue Dec 22 23:57:45 2009
@@ -35,7 +35,7 @@
*/
public class TestAtomPubClientServer extends BasicTestCase {
- private static final Log log = LogFactory.getLog(MainServlet.class);
+ private static final Log log =
LogFactory.getLog(TestAtomPubClientServer.class);
public static final String HOST = "0.0.0.0";