You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2010/06/30 17:22:49 UTC
svn commit: r959348 - in
/incubator/chemistry/opencmis-browser-binding/trunk/src/main:
java/org/apache/chemistry/opencmis/server/impl/browser/
java/org/apache/chemistry/opencmis/server/impl/browser/json/ webapp/
Author: fmui
Date: Wed Jun 30 15:22:48 2010
New Revision: 959348
URL: http://svn.apache.org/viewvc?rev=959348&view=rev
Log:
- added getChildren demo
Modified:
incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/CmisJaxbContextResolver.java
incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/CmisResource.java
incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/json/JSONConstants.java
incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/json/JSONConverter.java
incubator/chemistry/opencmis-browser-binding/trunk/src/main/webapp/demo.jsp
incubator/chemistry/opencmis-browser-binding/trunk/src/main/webapp/index.jsp
Modified: incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/CmisJaxbContextResolver.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/CmisJaxbContextResolver.java?rev=959348&r1=959347&r2=959348&view=diff
==============================================================================
--- incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/CmisJaxbContextResolver.java (original)
+++ incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/CmisJaxbContextResolver.java Wed Jun 30 15:22:48 2010
@@ -27,7 +27,6 @@ import javax.xml.bind.annotation.XmlRegi
import javax.xml.namespace.QName;
import org.apache.chemistry.opencmis.commons.impl.JaxBHelper.CMISExtraObjectFactory;
-import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisObjectInFolderListType;
import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisTypeDefinitionListType;
import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisTypeDefinitionType;
import org.apache.chemistry.opencmis.commons.impl.jaxb.ObjectFactory;
@@ -66,11 +65,5 @@ public class CmisJaxbContextResolver imp
return new JAXBElement<CmisTypeDefinitionListType>(new QName("typeDefintionList"),
CmisTypeDefinitionListType.class, value);
}
-
- @XmlElementDecl(name = "objectInFolderList")
- public JAXBElement<CmisObjectInFolderListType> createObjectInFolderList(CmisObjectInFolderListType value) {
- return new JAXBElement<CmisObjectInFolderListType>(new QName("objectInFolderList"),
- CmisObjectInFolderListType.class, value);
- }
}
}
Modified: incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/CmisResource.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/CmisResource.java?rev=959348&r1=959347&r2=959348&view=diff
==============================================================================
--- incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/CmisResource.java (original)
+++ incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/CmisResource.java Wed Jun 30 15:22:48 2010
@@ -40,7 +40,6 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
import org.apache.chemistry.opencmis.commons.impl.Converter;
-import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisObjectInFolderListType;
import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisTypeDefinitionListType;
import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisTypeDefinitionType;
import org.apache.chemistry.opencmis.commons.impl.server.AbstractServiceFactory;
@@ -196,8 +195,7 @@ public class CmisResource {
@GET
@Path("/folder/{repositoryId}")
@Produces(MediaType.APPLICATION_JSON)
- public JAXBElement<CmisObjectInFolderListType> getChildren(@PathParam("repositoryId") String repositoryId,
- @QueryParam("id") String folderId) {
+ public String getChildren(@PathParam("repositoryId") String repositoryId, @QueryParam("id") String folderId) {
CmisService service = null;
try {
@@ -206,8 +204,7 @@ public class CmisResource {
ObjectInFolderList children = service.getChildren(repositoryId, folderId, null, null, true,
IncludeRelationships.NONE, null, true, null, null, null);
- return CmisJaxbContextResolver.CMIS_JSON_OBJECT_FACTORY.createObjectInFolderList(Converter
- .convert(children));
+ return JSONConverter.convert(children).toJSONString();
} finally {
if (service != null) {
service.close();
Modified: incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/json/JSONConstants.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/json/JSONConstants.java?rev=959348&r1=959347&r2=959348&view=diff
==============================================================================
--- incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/json/JSONConstants.java (original)
+++ incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/json/JSONConstants.java Wed Jun 30 15:22:48 2010
@@ -18,7 +18,6 @@
*/
package org.apache.chemistry.opencmis.server.impl.browser.json;
-
public class JSONConstants {
public final static String JSON_REPINFO_ID = "repositoryId";
@@ -72,6 +71,7 @@ public class JSONConstants {
public final static String JSON_OBJECT_EXACT_ACL = "exactACL";
public final static String JSON_OBJECT_POLICY_IDS = "policyIds";
public final static String JSON_OBJECT_RENDITION = "rendition";
+ public final static String JSON_OBJECT_PATH_SEGMENT = "pathSegment";
public final static String JSON_PROPERTY_ID = "id";
public final static String JSON_PROPERTY_LOCAL_NAME = "localName";
@@ -97,4 +97,8 @@ public class JSONConstants {
public final static String JSON_RENDITION_HEIGHT = "height";
public final static String JSON_RENDITION_WIDTH = "width";
public final static String JSON_RENDITION_DOCUMENT_ID = "renditionDocumentId";
+
+ public final static String JSON_OBJECTINFOLDERLIST_OBJECTS = "objects";
+ public final static String JSON_OBJECTINFOLDERLIST_HAS_MORE_ITEMS = "hasMoreItems";
+ public final static String JSON_OBJECTINFOLDERLIST_NUM_ITEMS = "numItems";
}
Modified: incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/json/JSONConverter.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/json/JSONConverter.java?rev=959348&r1=959347&r2=959348&view=diff
==============================================================================
--- incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/json/JSONConverter.java (original)
+++ incubator/chemistry/opencmis-browser-binding/trunk/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/json/JSONConverter.java Wed Jun 30 15:22:48 2010
@@ -27,6 +27,8 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.data.AllowableActions;
import org.apache.chemistry.opencmis.commons.data.ChangeEventInfo;
import org.apache.chemistry.opencmis.commons.data.ObjectData;
+import org.apache.chemistry.opencmis.commons.data.ObjectInFolderData;
+import org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
import org.apache.chemistry.opencmis.commons.data.PermissionMapping;
import org.apache.chemistry.opencmis.commons.data.PropertyBoolean;
import org.apache.chemistry.opencmis.commons.data.PropertyData;
@@ -351,6 +353,48 @@ public class JSONConverter extends JSONC
return result;
}
+ /**
+ * Converts an object in a folder list.
+ */
+ @SuppressWarnings("unchecked")
+ public static JSONObject convert(ObjectInFolderData objectInFolder) {
+ if ((objectInFolder == null) || (objectInFolder.getObject() == null)) {
+ return null;
+ }
+
+ JSONObject result = convert(objectInFolder.getObject());
+ result.put(JSON_OBJECT_PATH_SEGMENT, objectInFolder.getPathSegment());
+
+ return result;
+ }
+
+ /**
+ * Converts a folder list.
+ */
+ @SuppressWarnings("unchecked")
+ public static JSONObject convert(ObjectInFolderList objectInFolderList) {
+ if (objectInFolderList == null) {
+ return null;
+ }
+
+ JSONObject result = new JSONObject();
+
+ if (objectInFolderList.getObjects() != null) {
+ JSONArray objects = new JSONArray();
+
+ for (ObjectInFolderData object : objectInFolderList.getObjects()) {
+ objects.add(convert(object));
+ }
+
+ result.put(JSON_OBJECTINFOLDERLIST_OBJECTS, objects);
+ }
+
+ result.put(JSON_OBJECTINFOLDERLIST_HAS_MORE_ITEMS, objectInFolderList.hasMoreItems());
+ result.put(JSON_OBJECTINFOLDERLIST_NUM_ITEMS, objectInFolderList.getNumItems());
+
+ return result;
+ }
+
// -----------------------------------------------------------------
public static String getJSONStringValue(Object obj) {
Modified: incubator/chemistry/opencmis-browser-binding/trunk/src/main/webapp/demo.jsp
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis-browser-binding/trunk/src/main/webapp/demo.jsp?rev=959348&r1=959347&r2=959348&view=diff
==============================================================================
--- incubator/chemistry/opencmis-browser-binding/trunk/src/main/webapp/demo.jsp (original)
+++ incubator/chemistry/opencmis-browser-binding/trunk/src/main/webapp/demo.jsp Wed Jun 30 15:22:48 2010
@@ -7,17 +7,22 @@
<style type="text/css">
body {
font-family:Arial,sans-serif;
+ font-size:11pt;
}
- .box {
+ .box {
border-width:1px;
- border-style:solid;
+ border-style:solid;
width:100%;
+ padding:3px;
+ }
+ td {
+ padding:5px;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
- $.getJSON('<%=request.getContextPath()%>/browser/repositories',
+ $.getJSON('<%=request.getContextPath()%>/browser/repositories',
function(riData) {
var ri = riData[0];
$('#repositoryInfo').html(
@@ -30,16 +35,16 @@ $(document).ready(function(){
'<tr><td>Root folder id:</td><td>' + ri.rootFolderId + '</td></tr>' +
'</table>');
- $.getJSON(encodeURI('<%=request.getContextPath()%>/browser/object/' + ri.repositoryId + '?id=' + ri.rootFolderId),
+ $.getJSON(encodeURI('<%=request.getContextPath()%>/browser/object/' + ri.repositoryId + '?id=' + ri.rootFolderId),
function(objData) {
var id = objData.properties["cmis:objectId"].values[0];
var name = objData.properties["cmis:name"].values[0];
-
+
var s = '<h2>Object "' + name + '" (' + id + ')</h2>';
s = s + '<h3>Properties</h3>';
s = s + '<table>';
-
+
var propertyId;
for(propertyId in objData.properties) {
var property = objData.properties[propertyId];
@@ -50,13 +55,13 @@ $(document).ready(function(){
if(property.type == 'datetime') {
value = new Date(value);
}
-
+
s = s + value + '<br/>';
}
-
+
s = s + '</td></tr>';
- }
-
+ }
+
s = s + '</table>';
s = s + '<h3>(Some) Allowable Actions</h3>';
@@ -65,11 +70,50 @@ $(document).ready(function(){
s = s + '<tr><td>Can get children:</td><td>' + objData.allowableActions.canGetChildren + '</td></tr>';
s = s + '<tr><td>Can get content stream:</td><td>' + objData.allowableActions.canGetContentStream + '</td></tr>';
s = s + '</table>';
-
- $('#objectInfo').html(s);
+
+ $('#objectInfo').html(s);
});
+
+ $.getJSON(encodeURI('<%=request.getContextPath()%>/browser/folder/' + ri.repositoryId + '?id=' + ri.rootFolderId),
+ function(children) {
+ var s = '<h2>Children</h2>';
+ s = s + '<table><tr><th>Name</th><th>Type</th><th>MIME Type</th><th>Size</th>' +
+ '<th>Created By</th><th>Created At</th><th>Id</th></tr>';
+
+ for(var i in children.objects) {
+ var object = children.objects[i];
+
+ var name = object.properties["cmis:name"].values[0];
+ var type = object.properties["cmis:objectTypeId"].values[0];
+ var mimetype = "";
+ var size = "";
+ var createdBy = object.properties["cmis:createdBy"].values[0];
+ var creationDate = new Date(object.properties["cmis:creationDate"].values[0]);
+ var id = object.properties["cmis:objectId"].values[0];
+ var link = "";
+
+ if(object.properties["cmis:baseTypeId"].values[0] == "cmis:document") {
+ size = object.properties["cmis:contentStreamLength"].values[0];
+ mimetype = object.properties["cmis:contentStreamMimeType"].values[0];
+ link = encodeURI('<%=request.getContextPath()%>/browser/content/' + ri.repositoryId + '?id=' + id);
+ }
+
+ s = s + '<tr><td>';
+ if(link != "") {
+ s = s + '<a href="' + link + '">' + name + '</a>';
+ }
+ else {
+ s = s + name;
+ }
+ s = s + '</td><td>' + type + '</td><td>' + mimetype + '</td><td style="rext-align:right">' + size +
+ '</td><td>' + createdBy + '</td><td>' + creationDate + '</td><td>' + id + '</td></tr>';
+ }
+
+ s = s + '</table>';
+ $('#folderInfo').html(s);
+ });
});
-});
+});
</script>
</head>
<body>
@@ -82,5 +126,9 @@ RepositoryInfo
<div id="objectInfo" class="box">
objectInfo
</div>
+<br/>
+<div id="folderInfo" class="box">
+folderInfo
+</div>
</body>
</html>
\ No newline at end of file
Modified: incubator/chemistry/opencmis-browser-binding/trunk/src/main/webapp/index.jsp
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis-browser-binding/trunk/src/main/webapp/index.jsp?rev=959348&r1=959347&r2=959348&view=diff
==============================================================================
--- incubator/chemistry/opencmis-browser-binding/trunk/src/main/webapp/index.jsp (original)
+++ incubator/chemistry/opencmis-browser-binding/trunk/src/main/webapp/index.jsp Wed Jun 30 15:22:48 2010
@@ -7,6 +7,7 @@
<style type="text/css">
body {
font-family:Arial,sans-serif;
+ font-size:11pt;
}
</style>
</head>