chemistry-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dcaru...@apache.org
Subject svn commit: r910572 [34/36] - in /incubator/chemistry/trunk/opencmis: ./ _dev/ opencmis-client/ opencmis-client/opencmis-client-api/ opencmis-client/opencmis-client-api/src/ opencmis-client/opencmis-client-api/src/main/ opencmis-client/opencmis-client-...
Date Tue, 16 Feb 2010 16:04:07 GMT
Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CallContext.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CallContext.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CallContext.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CallContext.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+/**
+ * An object implementing this interface holds context data of the current call.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public interface CallContext {
+
+  String BINDING_ATOMPUB = "atompub";
+  String BINDING_WEBSERVICES = "webservices";
+
+  String USERNAME = "useranme";
+  String PASSWORD = "password";
+  String LOCALE = "locale";
+  String OFFSET = "offset";
+  String LENGTH = "length";
+
+  /**
+   * Returns the binding. Usually it returns {@link BINDING_ATOMPUB} or {@link BINDING_WEBSERVICES}.
+   */
+  String getBinding();
+
+  /**
+   * Returns context data by key.
+   * 
+   * @param key
+   *          the key
+   * @return the data if the key is valid, <code>null</code> otherwise
+   */
+  String get(String key);
+
+  /**
+   * Returns the user name.
+   */
+  String getUsername();
+
+  /**
+   * Returns the password.
+   */
+  String getPassword();
+
+  /**
+   * Returns the locale.
+   */
+  String getLocale();
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CallContext.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisAclService.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisAclService.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisAclService.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisAclService.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+import org.apache.opencmis.commons.api.ExtensionsData;
+import org.apache.opencmis.commons.enums.AclPropagation;
+import org.apache.opencmis.commons.provider.AccessControlList;
+
+/**
+ * CMIS ACL Service interface.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public interface CmisAclService {
+
+  /**
+   * Bindings: AtomPub, Web Services
+   */
+  AccessControlList getAcl(CallContext context, String repositoryId, String objectId,
+      Boolean onlyBasicPermissions, ExtensionsData extension);
+
+  /**
+   * Bindings: Web Services
+   */
+  AccessControlList applyAcl(CallContext context, String repositoryId, String objectId,
+      AccessControlList addAces, AccessControlList removeAces, AclPropagation aclPropagation,
+      ExtensionsData extension);
+
+  /**
+   * Bindings: AtomPub
+   */
+  AccessControlList applyAcl(CallContext context, String repositoryId, String objectId,
+      AccessControlList aces, AclPropagation aclPropagation);
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisAclService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisDiscoveryService.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisDiscoveryService.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisDiscoveryService.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisDiscoveryService.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+import java.math.BigInteger;
+
+import org.apache.opencmis.commons.api.ExtensionsData;
+import org.apache.opencmis.commons.enums.IncludeRelationships;
+import org.apache.opencmis.commons.provider.Holder;
+import org.apache.opencmis.commons.provider.ObjectList;
+
+/**
+ * CMIS Discovery Service interface.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public interface CmisDiscoveryService {
+
+  public ObjectList query(CallContext context, String repositoryId, String statement,
+      Boolean searchAllVersions, Boolean includeAllowableActions,
+      IncludeRelationships includeRelationships, String renditionFilter, BigInteger maxItems,
+      BigInteger skipCount, ExtensionsData extension);
+
+  public ObjectList getContentChanges(CallContext context, String repositoryId,
+      Holder<String> changeLogToken, Boolean includeProperties, String filter,
+      Boolean includePolicyIds, Boolean includeAcl, BigInteger maxItems, ExtensionsData extension,
+      ObjectInfoHolder objectInfos);
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisDiscoveryService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisMultiFilingService.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisMultiFilingService.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisMultiFilingService.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisMultiFilingService.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+import org.apache.opencmis.commons.api.ExtensionsData;
+import org.apache.opencmis.commons.provider.ObjectData;
+
+/**
+ * CMIS MultiFiling Service interface.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public interface CmisMultiFilingService {
+
+  ObjectData addObjectToFolder(CallContext context, String repositoryId, String objectId,
+      String folderId, Boolean allVersions, ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+  ObjectData removeObjectFromFolder(CallContext context, String repositoryId, String objectId,
+      String folderId, ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisMultiFilingService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisNavigationService.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisNavigationService.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisNavigationService.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisNavigationService.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+import java.math.BigInteger;
+import java.util.List;
+
+import org.apache.opencmis.commons.api.ExtensionsData;
+import org.apache.opencmis.commons.enums.IncludeRelationships;
+import org.apache.opencmis.commons.provider.ObjectData;
+import org.apache.opencmis.commons.provider.ObjectInFolderContainer;
+import org.apache.opencmis.commons.provider.ObjectInFolderList;
+import org.apache.opencmis.commons.provider.ObjectList;
+import org.apache.opencmis.commons.provider.ObjectParentData;
+
+/**
+ * CMIS Navigation Service interface.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public interface CmisNavigationService {
+
+  List<ObjectInFolderContainer> getDescendants(CallContext context, String repositoryId,
+      String folderId, BigInteger depth, String filter, Boolean includeAllowableActions,
+      IncludeRelationships includeRelationships, String renditionFilter,
+      Boolean includePathSegment, ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+  ObjectInFolderList getChildren(CallContext context, String repositoryId, String folderId,
+      String filter, String orderBy, Boolean includeAllowableActions,
+      IncludeRelationships includeRelationships, String renditionFilter,
+      Boolean includePathSegment, BigInteger maxItems, BigInteger skipCount,
+      ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+  ObjectData getFolderParent(CallContext context, String repositoryId, String folderId,
+      String filter, ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+  List<ObjectInFolderContainer> getFolderTree(CallContext context, String repositoryId,
+      String folderId, BigInteger depth, String filter, Boolean includeAllowableActions,
+      IncludeRelationships includeRelationships, String renditionFilter,
+      Boolean includePathSegment, ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+  List<ObjectParentData> getObjectParents(CallContext context, String repositoryId,
+      String objectId, String filter, Boolean includeAllowableActions,
+      IncludeRelationships includeRelationships, String renditionFilter,
+      Boolean includeRelativePathSegment, ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+  ObjectList getCheckedOutDocs(CallContext context, String repositoryId, String folderId,
+      String filter, String orderBy, Boolean includeAllowableActions,
+      IncludeRelationships includeRelationships, String renditionFilter, BigInteger maxItems,
+      BigInteger skipCount, ExtensionsData extension, ObjectInfoHolder objectInfos);
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisNavigationService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisObjectService.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisObjectService.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisObjectService.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisObjectService.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,170 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+import java.math.BigInteger;
+import java.util.List;
+
+import org.apache.opencmis.commons.api.ExtensionsData;
+import org.apache.opencmis.commons.enums.IncludeRelationships;
+import org.apache.opencmis.commons.enums.UnfileObjects;
+import org.apache.opencmis.commons.enums.VersioningState;
+import org.apache.opencmis.commons.provider.AccessControlList;
+import org.apache.opencmis.commons.provider.AllowableActionsData;
+import org.apache.opencmis.commons.provider.ContentStreamData;
+import org.apache.opencmis.commons.provider.FailedToDeleteData;
+import org.apache.opencmis.commons.provider.Holder;
+import org.apache.opencmis.commons.provider.ObjectData;
+import org.apache.opencmis.commons.provider.PropertiesData;
+import org.apache.opencmis.commons.provider.RenditionData;
+
+/**
+ * CMIS Object Service interface.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public interface CmisObjectService {
+
+  /**
+   * createDocument.
+   * 
+   * <p>
+   * Bindings: Web Services
+   * </p>
+   */
+  String createDocument(CallContext context, String repositoryId, PropertiesData properties,
+      String folderId, ContentStreamData contentStream, VersioningState versioningState,
+      List<String> policies, AccessControlList addAces, AccessControlList removeAces,
+      ExtensionsData extension);
+
+  /**
+   * createDocumentFromSource.
+   * 
+   * <p>
+   * Bindings: Web Services
+   * </p>
+   */
+  String createDocumentFromSource(CallContext context, String repositoryId, String sourceId,
+      PropertiesData properties, String folderId, VersioningState versioningState,
+      List<String> policies, AccessControlList addAces, AccessControlList removeAces,
+      ExtensionsData extension);
+
+  /**
+   * createFolder.
+   * 
+   * <p>
+   * Bindings: Web Services
+   * </p>
+   */
+  String createFolder(CallContext context, String repositoryId, PropertiesData properties,
+      String folderId, List<String> policies, AccessControlList addAces,
+      AccessControlList removeAces, ExtensionsData extension);
+
+  /**
+   * createRelationship.
+   * 
+   * <p>
+   * Bindings: AtomPub, Web Services
+   * </p>
+   */
+  String createRelationship(CallContext context, String repositoryId, PropertiesData properties,
+      List<String> policies, AccessControlList addAces, AccessControlList removeAces,
+      ExtensionsData extension);
+
+  /**
+   * createPolicy.
+   * 
+   * <p>
+   * Bindings: Web Services
+   * </p>
+   */
+  String createPolicy(CallContext context, String repositoryId, PropertiesData properties,
+      String folderId, List<String> policies, AccessControlList addAces,
+      AccessControlList removeAces, ExtensionsData extension);
+
+  /**
+   * create.
+   * 
+   * <p>
+   * Bindings: AtomPub
+   * </p>
+   */
+  ObjectData create(CallContext context, String repositoryId, PropertiesData properties,
+      String folderId, ContentStreamData contentStream, VersioningState versioningState,
+      List<String> policies, ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+  AllowableActionsData getAllowableActions(CallContext context, String repositoryId,
+      String objectId, ExtensionsData extension);
+
+  /**
+   * getObject.
+   * 
+   * <p>
+   * Bindings: AtomPub, Web Services
+   * </p>
+   */
+  ObjectData getObject(CallContext context, String repositoryId, String objectId, String filter,
+      Boolean includeAllowableActions, IncludeRelationships includeRelationships,
+      String renditionFilter, Boolean includePolicyIds, Boolean includeAcl,
+      ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+  /**
+   * getProperties.
+   * 
+   * <p>
+   * Bindings: Web Services
+   * </p>
+   */
+  PropertiesData getProperties(CallContext context, String repositoryId, String objectId,
+      String filter, ExtensionsData extension);
+
+  List<RenditionData> getRenditions(CallContext context, String repositoryId, String objectId,
+      String renditionFilter, BigInteger maxItems, BigInteger skipCount, ExtensionsData extension);
+
+  ObjectData getObjectByPath(CallContext context, String repositoryId, String path, String filter,
+      Boolean includeAllowableActions, IncludeRelationships includeRelationships,
+      String renditionFilter, Boolean includePolicyIds, Boolean includeAcl,
+      ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+  ContentStreamData getContentStream(CallContext context, String repositoryId, String objectId,
+      String streamId, BigInteger offset, BigInteger length, ExtensionsData extension);
+
+  ObjectData updateProperties(CallContext context, String repositoryId, Holder<String> objectId,
+      Holder<String> changeToken, PropertiesData properties, AccessControlList acl,
+      ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+  ObjectData moveObject(CallContext context, String repositoryId, Holder<String> objectId,
+      String targetFolderId, String sourceFolderId, ExtensionsData extension,
+      ObjectInfoHolder objectInfos);
+
+  void deleteObjectOrCancelCheckOut(CallContext context, String repositoryId, String objectId,
+      Boolean allVersions, ExtensionsData extension);
+
+  FailedToDeleteData deleteTree(CallContext context, String repositoryId, String folderId,
+      Boolean allVersions, UnfileObjects unfileObjects, Boolean continueOnFailure,
+      ExtensionsData extension);
+
+  void setContentStream(CallContext context, String repositoryId, Holder<String> objectId,
+      Boolean overwriteFlag, Holder<String> changeToken, ContentStreamData contentStream,
+      ExtensionsData extension);
+
+  void deleteContentStream(CallContext context, String repositoryId, Holder<String> objectId,
+      Holder<String> changeToken, ExtensionsData extension);
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisObjectService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisPolicyService.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisPolicyService.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisPolicyService.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisPolicyService.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+import java.util.List;
+
+import org.apache.opencmis.commons.api.ExtensionsData;
+import org.apache.opencmis.commons.provider.ObjectData;
+
+/**
+ * CMIS Policy Service interface.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public interface CmisPolicyService {
+
+  public ObjectData applyPolicy(CallContext context, String repositoryId, String policyId,
+      String objectId, ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+  public void removePolicy(CallContext context, String repositoryId, String policyId,
+      String objectId, ExtensionsData extension);
+
+  public List<ObjectData> getAppliedPolicies(CallContext context, String repositoryId,
+      String objectId, String filter, ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisPolicyService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisRelationshipService.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisRelationshipService.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisRelationshipService.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisRelationshipService.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+import java.math.BigInteger;
+
+import org.apache.opencmis.commons.api.ExtensionsData;
+import org.apache.opencmis.commons.enums.RelationshipDirection;
+import org.apache.opencmis.commons.provider.ObjectList;
+
+/**
+ * CMIS Relationship Service interface.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public interface CmisRelationshipService {
+
+  public ObjectList getObjectRelationships(CallContext context, String repositoryId,
+      String objectId, Boolean includeSubRelationshipTypes,
+      RelationshipDirection relationshipDirection, String typeId, String filter,
+      Boolean includeAllowableActions, BigInteger maxItems, BigInteger skipCount,
+      ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisRelationshipService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisRepositoryService.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisRepositoryService.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisRepositoryService.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisRepositoryService.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+import java.math.BigInteger;
+import java.util.List;
+
+import org.apache.opencmis.commons.api.ExtensionsData;
+import org.apache.opencmis.commons.api.TypeDefinition;
+import org.apache.opencmis.commons.api.TypeDefinitionContainer;
+import org.apache.opencmis.commons.api.TypeDefinitionList;
+import org.apache.opencmis.commons.provider.RepositoryInfoData;
+
+/**
+ * CMIS Repository Service interface.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public interface CmisRepositoryService {
+
+  List<RepositoryInfoData> getRepositoryInfos(CallContext context, ExtensionsData extension);
+
+  RepositoryInfoData getRepositoryInfo(CallContext context, String repositoryId,
+      ExtensionsData extension);
+
+  TypeDefinitionList getTypeChildren(CallContext context, String repositoryId, String typeId,
+      Boolean includePropertyDefinitions, BigInteger maxItems, BigInteger skipCount,
+      ExtensionsData extension);
+
+  List<TypeDefinitionContainer> getTypeDescendants(CallContext context, String repositoryId,
+      String typeId, BigInteger depth, Boolean includePropertyDefinitions, ExtensionsData extension);
+
+  /**
+   * getTypeDefinition.
+   * 
+   * Must return a valid type or throw an exception.
+   * 
+   * <p>
+   * Bindings: AtomPub, Web Services
+   * </p>
+   */
+  TypeDefinition getTypeDefinition(CallContext context, String repositoryId, String typeId,
+      ExtensionsData extension);
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisRepositoryService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisVersioningService.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisVersioningService.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisVersioningService.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisVersioningService.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+import java.util.List;
+
+import org.apache.opencmis.commons.api.ExtensionsData;
+import org.apache.opencmis.commons.enums.IncludeRelationships;
+import org.apache.opencmis.commons.provider.AccessControlList;
+import org.apache.opencmis.commons.provider.ContentStreamData;
+import org.apache.opencmis.commons.provider.Holder;
+import org.apache.opencmis.commons.provider.ObjectData;
+import org.apache.opencmis.commons.provider.PropertiesData;
+
+public interface CmisVersioningService {
+
+  public ObjectData checkOut(CallContext context, String repositoryId, Holder<String> objectId,
+      ExtensionsData extension, Holder<Boolean> contentCopied, ObjectInfoHolder objectInfos);
+
+  public void cancelCheckOut(CallContext context, String repositoryId, String objectId,
+      ExtensionsData extension);
+
+  public ObjectData checkIn(CallContext context, String repositoryId, Holder<String> objectId,
+      Boolean major, PropertiesData properties, ContentStreamData contentStream,
+      String checkinComment, List<String> policies, AccessControlList addAces,
+      AccessControlList removeAces, ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+  /**
+   * getObjectOfLatestVersion.
+   * 
+   * <p>Bindings: AtomPub, Web Services</p>
+   */
+  public ObjectData getObjectOfLatestVersion(CallContext context, String repositoryId,
+      String versionSeriesId, Boolean major, String filter, Boolean includeAllowableActions,
+      IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
+      Boolean includeAcl, ExtensionsData extension, ObjectInfoHolder objectInfos);
+
+  /**
+   * getPropertiesOfLatestVersion.
+   * 
+   * <p>Bindings: Web Services</p>
+   */
+  public PropertiesData getPropertiesOfLatestVersion(CallContext context, String repositoryId,
+      String versionSeriesId, Boolean major, String filter, ExtensionsData extension);
+
+  public List<ObjectData> getAllVersions(CallContext context, String repositoryId,
+      String versionSeriesId, String filter, Boolean includeAllowableActions,
+      ExtensionsData extension, ObjectInfoHolder objectInfos);
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/CmisVersioningService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfo.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfo.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfo.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfo.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+import java.util.GregorianCalendar;
+import java.util.List;
+
+import org.apache.opencmis.commons.enums.BaseObjectTypeIds;
+
+/**
+ * This class contains information about an object. This data is used to generate the appropriate
+ * links in AtomPub entries and feeds.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public interface ObjectInfo {
+
+  String getId();
+
+  String getName();
+
+  String getCreatedBy();
+
+  GregorianCalendar getCreationDate();
+
+  GregorianCalendar getLastModificationDate();
+
+  String getTypeId();
+
+  BaseObjectTypeIds getBaseType();
+
+  boolean isCurrentVersion();
+
+  boolean hasVersionHistory();
+
+  String getWorkingCopyId();
+
+  String getWorkingCopyOriginalId();
+
+  boolean hasContent();
+
+  String getContentType();
+
+  String getFileName();
+
+  List<RenditionInfo> getRenditionInfos();
+
+  boolean supportsRelationships();
+
+  boolean supportsPolicies();
+
+  boolean hasAcl();
+
+  boolean hasParent();
+
+  boolean supportsDescendants();
+
+  boolean supportsFolderTree();
+
+  List<String> getRelationshipSourceIds();
+
+  List<String> getRelationshipTargetIds();
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfoHolder.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfoHolder.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfoHolder.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfoHolder.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+/**
+ * This class contains information about an object. This data is used to generate the appropriate
+ * links in AtomPub entries and feeds.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public interface ObjectInfoHolder {
+
+  /**
+   * Adds an object info.
+   */
+  void addObjectInfo(ObjectInfo info);
+
+  /**
+   * Retrieves an object info.
+   */
+  ObjectInfo getObjectInfo(String id);
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfoHolder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfoImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfoImpl.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfoImpl.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfoImpl.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,249 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+import java.util.GregorianCalendar;
+import java.util.List;
+
+import org.apache.opencmis.commons.enums.BaseObjectTypeIds;
+
+/**
+ * Implementation of the {@link ObjectInfo} interface.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public class ObjectInfoImpl implements ObjectInfo {
+
+  private String fId;
+  private String fName;
+  private String fCreatedBy;
+  private GregorianCalendar fCreationDate;
+  private GregorianCalendar fLastModificationDate;
+  private String fTypeId;
+  private BaseObjectTypeIds fBaseObjectTypeId;
+  private boolean fIsCurrentVersion = true;
+  private boolean fHasVersionHistory = false;
+  private String fWorkingCopyId = null;
+  private String fWorkingCopyOriginalId = null;
+  private boolean fHasContent = true;
+  private String fContentType = null;
+  private String fFileName = null;
+  private List<RenditionInfo> fRenditionInfos = null;
+  private boolean fSupportsRelationships = false;
+  private boolean fSupportsPolicies = false;
+  private boolean fHasAcl = false;
+  private boolean fHasParent = true;
+  private boolean fSupportsDescendants = false;
+  private boolean fSupportsFolderTree = false;
+  private List<String> fRelationshipSourceIds = null;
+  private List<String> fRelationshipTargetIds = null;
+
+  public ObjectInfoImpl() {
+  }
+
+  public ObjectInfoImpl(String id, BaseObjectTypeIds baseObjectTypeId) {
+    fId = id;
+    fBaseObjectTypeId = baseObjectTypeId;
+  }
+
+  public String getId() {
+    return fId;
+  }
+
+  public void setId(String id) {
+    fId = id;
+  }
+
+  public String getName() {
+    return fName;
+  }
+
+  public void setName(String name) {
+    fName = name;
+  }
+
+  public String getCreatedBy() {
+    return fCreatedBy;
+  }
+
+  public void setCreatedBy(String createdBy) {
+    fCreatedBy = createdBy;
+  }
+
+  public GregorianCalendar getCreationDate() {
+    return fCreationDate;
+  }
+
+  public void setCreationDate(GregorianCalendar creationDate) {
+    fCreationDate = creationDate;
+  }
+
+  public GregorianCalendar getLastModificationDate() {
+    return fLastModificationDate;
+  }
+
+  public void setLastModificationDate(GregorianCalendar lastModificationDate) {
+    fLastModificationDate = lastModificationDate;
+  }
+
+  public String getTypeId() {
+    return fTypeId;
+  }
+
+  public void setTypeId(String typeId) {
+    fTypeId = typeId;
+  }
+
+  public BaseObjectTypeIds getBaseType() {
+    return fBaseObjectTypeId;
+  }
+
+  public void setBaseType(BaseObjectTypeIds baseObjectTypeId) {
+    fBaseObjectTypeId = baseObjectTypeId;
+  }
+
+  public boolean isCurrentVersion() {
+    return fIsCurrentVersion;
+  }
+
+  public void setIsCurrentVersion(boolean currentVersion) {
+    fIsCurrentVersion = currentVersion;
+  }
+
+  public boolean hasVersionHistory() {
+    return fHasVersionHistory;
+  }
+
+  public void setHasVersionHistory(boolean hasVersionHistory) {
+    fHasVersionHistory = hasVersionHistory;
+  }
+
+  public String getWorkingCopyId() {
+    return fWorkingCopyId;
+  }
+
+  public void setWorkingCopyId(String workingCopyId) {
+    fWorkingCopyId = workingCopyId;
+  }
+
+  public String getWorkingCopyOriginalId() {
+    return fWorkingCopyOriginalId;
+  }
+
+  public void setWorkingCopyOriginalId(String workingCopyOriginalId) {
+    fWorkingCopyOriginalId = workingCopyOriginalId;
+  }
+
+  public boolean hasContent() {
+    return fHasContent;
+  }
+
+  public void setHasContent(boolean hasContent) {
+    fHasContent = hasContent;
+  }
+
+  public String getContentType() {
+    return fContentType;
+  }
+
+  public void setContentType(String contentType) {
+    fContentType = contentType;
+  }
+
+  public String getFileName() {
+    return fFileName;
+  }
+
+  public void setFileName(String fileName) {
+    fFileName = fileName;
+  }
+
+  public List<RenditionInfo> getRenditionInfos() {
+    return fRenditionInfos;
+  }
+
+  public void setRenditionInfos(List<RenditionInfo> renditions) {
+    fRenditionInfos = renditions;
+  }
+
+  public boolean supportsRelationships() {
+    return fSupportsRelationships;
+  }
+
+  public void setSupportsRelationships(boolean supportsRelationships) {
+    fSupportsRelationships = supportsRelationships;
+  }
+
+  public boolean supportsPolicies() {
+    return fSupportsPolicies;
+  }
+
+  public void setSupportsPolicies(boolean supportsPolicies) {
+    fSupportsPolicies = supportsPolicies;
+  }
+
+  public boolean hasAcl() {
+    return fHasAcl;
+  }
+
+  public void setHasAcl(boolean hasAcl) {
+    fHasAcl = hasAcl;
+  }
+
+  public boolean hasParent() {
+    return fHasParent;
+  }
+
+  public void setHasParent(boolean hasParent) {
+    fHasParent = hasParent;
+  }
+
+  public boolean supportsDescendants() {
+    return fSupportsDescendants;
+  }
+
+  public void setSupportsDescendants(boolean supportsDescendants) {
+    fSupportsDescendants = supportsDescendants;
+  }
+
+  public boolean supportsFolderTree() {
+    return fSupportsFolderTree;
+  }
+
+  public void setSupportsFolderTree(boolean supportsFolderTree) {
+    fSupportsFolderTree = supportsFolderTree;
+  }
+
+  public List<String> getRelationshipSourceIds() {
+    return fRelationshipSourceIds;
+  }
+
+  public void setRelationshipSourceIds(List<String> relationshipSourceIds) {
+    fRelationshipSourceIds = relationshipSourceIds;
+  }
+
+  public List<String> getRelationshipTargetIds() {
+    return fRelationshipTargetIds;
+  }
+
+  public void setRelationshipTargetIds(List<String> relationshipTargetIds) {
+    fRelationshipTargetIds = relationshipTargetIds;
+  }
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/ObjectInfoImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/RenditionInfo.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/RenditionInfo.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/RenditionInfo.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/RenditionInfo.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+import java.math.BigInteger;
+
+/**
+ * This class contains information about a rendition of an object. This data is used to generate the
+ * appropriate links in AtomPub entries and feeds.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public interface RenditionInfo {
+
+  String getId();
+
+  String getContenType();
+
+  String getKind();
+
+  String getTitle();
+
+  BigInteger getLength();
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/RenditionInfo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/RenditionInfosImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/RenditionInfosImpl.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/RenditionInfosImpl.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/RenditionInfosImpl.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.server.spi;
+
+import java.math.BigInteger;
+
+/**
+ * Implementation of the {@link RenditionInfo} interface.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public class RenditionInfosImpl implements RenditionInfo {
+
+  private String fId;
+  private String fContentType;
+  private String fKind;
+  private String fTitle;
+  private BigInteger fLength;
+
+  public String getId() {
+    return fId;
+  }
+
+  public void setId(String id) {
+    fId = id;
+  }
+
+  public String getContenType() {
+    return fContentType;
+  }
+
+  public void setContentType(String contentType) {
+    fContentType = contentType;
+  }
+
+  public String getKind() {
+    return fKind;
+  }
+
+  public void setKind(String kind) {
+    fKind = kind;
+  }
+
+  public String getTitle() {
+    return fTitle;
+  }
+
+  public void setTitle(String title) {
+    fTitle = title;
+  }
+
+  public BigInteger getLength() {
+    return fLength;
+  }
+
+  public void setLength(BigInteger length) {
+    fLength = length;
+  }
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/src/main/java/org/apache/opencmis/server/spi/RenditionInfosImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Feb 16 16:03:38 2010
@@ -0,0 +1,6 @@
+bin
+target
+*.iws
+*.ipr
+*.iml
+.*

Added: incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/pom.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/pom.xml?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/pom.xml (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/pom.xml Tue Feb 16 16:03:38 2010
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                             http://maven.apache.org/maven-v4_0_0.xsd">
+                             
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.opencmis</groupId>
+    <artifactId>opencmis</artifactId>
+    <version>0.1-SNAPSHOT</version>
+	<relativePath>../../pom.xml</relativePath>
+  </parent>
+  
+  <artifactId>opencmis-test-browser</artifactId>
+  <name>OpenCMIS Browser</name>
+  <packaging>war</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>javax.servlet</groupId>
+      <artifactId>servlet-api</artifactId>
+      <version>2.4</version>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+  
+</project>
\ No newline at end of file

Propchange: incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/java/org/apache/opencmis/browser/BrowseServlet.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/java/org/apache/opencmis/browser/BrowseServlet.java?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/java/org/apache/opencmis/browser/BrowseServlet.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/java/org/apache/opencmis/browser/BrowseServlet.java Tue Feb 16 16:03:38 2010
@@ -0,0 +1,385 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.browser;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.w3c.dom.Document;
+
+/**
+ * CMIS Browser Servlet.
+ * 
+ * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
+ * 
+ */
+public class BrowseServlet extends HttpServlet {
+
+  private static final long serialVersionUID = 1L;
+
+  private static Log log = LogFactory.getLog(BrowseServlet.class);
+
+  private static final String CONTEXT_PREFIX = "{ctx}";
+  private static final String PARAM_URL = "url";
+  private static final String INIT_PARAM_AUXROOT = "auxroot";
+  private static final String INIT_PARAM_ALLOW = "allow";
+  private static final String INIT_PARAM_STYLESHEET = "stylesheet:";
+
+  private static final int BUFFER_SIZE = 64 * 1024;
+
+  private String fAuxRoot = "";
+  private String fAllow = ".*";
+  private Map<String, Source> fStyleSheets;
+
+  /**
+   * Initializes the browser servlet.
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void init(ServletConfig config) throws ServletException {
+    fStyleSheets = new HashMap<String, Source>();
+
+    DocumentBuilder builder = null;
+    try {
+      DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
+      builderFactory.setNamespaceAware(true);
+      builder = builderFactory.newDocumentBuilder();
+    }
+    catch (Exception e) {
+      e.printStackTrace();
+      return;
+    }
+
+    Enumeration<String> initParams = config.getInitParameterNames();
+    while (initParams.hasMoreElements()) {
+      String param = initParams.nextElement();
+      if (param.startsWith(INIT_PARAM_STYLESHEET)) {
+        String contentType = param.substring(INIT_PARAM_STYLESHEET.length());
+        String stylesheetFileName = config.getInitParameter(param);
+
+        InputStream stream = config.getServletContext().getResourceAsStream(stylesheetFileName);
+        if (stream != null) {
+          try {
+            Document xslDoc = builder.parse(stream);
+            addStylesheet(contentType, new DOMSource(xslDoc));
+
+            log.info("Stylesheet: '" + contentType + "' -> '" + stylesheetFileName + "'");
+          }
+          catch (Exception e) {
+            e.printStackTrace();
+          }
+        }
+      }
+    }
+
+    String initAuxRoot = config.getInitParameter(INIT_PARAM_AUXROOT);
+    if (initAuxRoot != null) {
+      fAuxRoot = initAuxRoot;
+      log.info("Auxiliary root: " + fAuxRoot);
+    }
+
+    String initAllow = config.getInitParameter(INIT_PARAM_ALLOW);
+    if (initAllow != null) {
+      fAllow = initAllow;
+      log.info("Allow pattern: " + fAllow);
+    }
+  }
+
+  /**
+   * Handles GET requests.
+   */
+  @Override
+  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
+      IOException {
+    if (req.getParameter(PARAM_URL) == null) {
+      printInput(req, resp);
+      return;
+    }
+
+    doBrowse(req, resp);
+  }
+
+  /**
+   * Main method of the browser.
+   */
+  protected void doBrowse(HttpServletRequest req, HttpServletResponse resp)
+      throws ServletException, IOException {
+    String browseUrl = req.getParameter(PARAM_URL);
+
+    // check URL
+    if (!browseUrl.matches(fAllow)) {
+      printError(req, resp, "Prohibited URL!", null);
+      return;
+    }
+
+    try {
+      // get content
+      URL url = new URL(browseUrl);
+      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+      conn.setDoInput(true);
+      conn.setDoOutput(false);
+      conn.setRequestMethod("GET");
+      String authHeader = req.getHeader("Authorization");
+      if (authHeader != null) {
+        conn.setRequestProperty("Authorization", authHeader);
+      }
+      conn.connect();
+
+      // ask for login
+      if (conn.getResponseCode() == HttpURLConnection.HTTP_UNAUTHORIZED) {
+        resp.setHeader("WWW-Authenticate", conn.getHeaderField("WWW-Authenticate"));
+        resp.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Authorization Required");
+        return;
+      }
+
+      // debug messages
+      if (log.isDebugEnabled()) {
+        log.debug("'" + browseUrl + "' -> '" + conn.getContentType() + "'");
+      }
+
+      // find stylesheet
+      Source stylesheet = getStylesheet(conn.getContentType());
+
+      OutputStream out = null;
+      InputStream in = new BufferedInputStream(conn.getInputStream(), BUFFER_SIZE);
+
+      if (stylesheet == null) {
+        // no stylesheet found -> conduct content
+        resp.setContentType(conn.getContentType());
+        out = new BufferedOutputStream(resp.getOutputStream(), BUFFER_SIZE);
+
+        byte[] buffer = new byte[BUFFER_SIZE];
+        int b;
+        while ((b = in.read(buffer)) > -1) {
+          out.write(buffer, 0, b);
+        }
+      }
+      else {
+        // apply stylesheet
+        TransformerFactory f = TransformerFactory.newInstance();
+        Transformer t = f.newTransformer(stylesheet);
+        t.setParameter("browseUrl", getServletUrl(req) + "?url=");
+        t.setParameter("auxRoot", getAuxRoot(req, fAuxRoot));
+
+        resp.setContentType("text/html");
+        out = new BufferedOutputStream(resp.getOutputStream(), BUFFER_SIZE);
+
+        Source s = new StreamSource(in);
+        Result r = new StreamResult(out);
+        t.transform(s, r);
+      }
+
+      try {
+        out.flush();
+        out.close();
+      }
+      catch (Exception e) {
+      }
+
+      try {
+        in.close();
+      }
+      catch (Exception e) {
+      }
+    }
+    catch (Exception e) {
+      printError(req, resp, e.getMessage(), e);
+      return;
+    }
+  }
+
+  // ---- utilities ----
+
+  /**
+   * Assigns a stylesheet to a content type.
+   */
+  private void addStylesheet(String contentType, Source source) {
+    if ((contentType == null) || (source == null)) {
+      return;
+    }
+
+    fStyleSheets.put(contentType.trim().toLowerCase(), source);
+  }
+
+  /**
+   * Returns the stylesheet for the given content type or <code>null</code> if no stylesheet is
+   * assigned to content type.
+   */
+  private Source getStylesheet(String contentType) {
+    if (contentType == null) {
+      return null;
+    }
+
+    String[] ctp = contentType.trim().toLowerCase().split(";");
+    Source source = null;
+
+    StringBuilder match = new StringBuilder();
+    int i = 0;
+    while (source == null && i < ctp.length) {
+      if (i > 0) {
+        match.append(";");
+      }
+      match.append(ctp[i]);
+      source = fStyleSheets.get(match.toString());
+      i++;
+    }
+
+    return source;
+  }
+
+  /**
+   * Returns the context URL of this servlet.
+   */
+  private String getContextUrl(HttpServletRequest request) {
+    String scheme = request.getScheme();
+    int port = request.getServerPort();
+
+    if ("http".equals(scheme) && (port == 80)) {
+      port = -1;
+    }
+    if ("https".equals(scheme) && (port == 443)) {
+      port = -1;
+    }
+
+    return scheme + "://" + request.getServerName() + (port > 0 ? ":" + port : "")
+        + request.getContextPath();
+  }
+
+  /**
+   * Returns the URL of this servlet.
+   */
+  private String getServletUrl(HttpServletRequest request) {
+    return getContextUrl(request) + request.getServletPath();
+  }
+
+  /**
+   * Returns the root URL of auxiliary files.
+   */
+  private String getAuxRoot(HttpServletRequest request, String auxRoot) {
+    if (auxRoot == null) {
+      return getContextUrl(request);
+    }
+    else if (auxRoot.startsWith(CONTEXT_PREFIX)) {
+      return getContextUrl(request) + auxRoot.substring(CONTEXT_PREFIX.length());
+    }
+    else {
+      return auxRoot;
+    }
+  }
+
+  // --- HTML methods ----
+
+  /**
+   * Prints a HTML header with styles.
+   */
+  private void printHeader(PrintWriter pw, String title) {
+    pw.print("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"");
+    pw.println("\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
+    pw.println("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
+    pw.println("<head>");
+    pw.println("<title>" + title + "</title>");
+    pw.println("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" />");
+    pw.println("<style type=\"text/css\">");
+    pw.println("body { font-family: arial,sans-serif; font-size: 10pt; }");
+    pw.println("div.box { background-color: #f6f1de; margin-top: 10px;"
+        + " margin-bottom: 10px; margin-left: 0px; margin-right: 0px;"
+        + " padding: 5px; border-style: solid; border-width: 1px; border-color: #888a85; }");
+    pw.println("</style>");
+    pw.println("</head>");
+    pw.println("<body>");
+  }
+
+  /**
+   * Prints a HTML footer.
+   */
+  private void printFooter(PrintWriter pw) {
+    pw.println("</body>");
+    pw.println("</html>");
+  }
+
+  /**
+   * Prints a HTML error message.
+   */
+  private void printError(HttpServletRequest req, HttpServletResponse resp, String message,
+      Exception e) throws ServletException, IOException {
+    resp.setContentType("text/html;charset=utf-8");
+    PrintWriter pw = resp.getWriter();
+
+    printHeader(pw, "Error");
+    pw.println("<div class=\"box\">");
+    pw.println("<h3>" + message + "</h3>");
+
+    if (e != null) {
+      pw.print("<pre>");
+      e.printStackTrace(pw);
+      pw.println("</pre>");
+    }
+
+    pw.println("</div>");
+    printFooter(pw);
+  }
+
+  /**
+   * Prints an HTML input box.
+   */
+  private void printInput(HttpServletRequest req, HttpServletResponse resp)
+      throws ServletException, IOException {
+    resp.setContentType("text/html;charset=utf-8");
+    PrintWriter pw = resp.getWriter();
+
+    printHeader(pw, "OpenCMIS Browser");
+    pw.println("<img src=\"" + getAuxRoot(req, fAuxRoot) + "cmis.png\" "
+        + "style=\"float: right;\" />");
+    pw.println("<h1 style=\"font-family: Georgia;\">OpenCMIS Browser</h1>");
+    pw.println("<div class=\"box\">");
+    pw.println("<form action=\"\" method=\"GET\">");
+    pw.println("CMIS AtomPub URL: ");
+    pw.println("<input name=\"url\" type=\"text\" size=\"100\" value=\"\"/>");
+    pw.println("<input type=\"submit\" value=\" GO \"/>");
+    pw.println("</form>");
+    pw.println("</div>");
+    printFooter(pw);
+  }
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/java/org/apache/opencmis/browser/BrowseServlet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/acl.xsl
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/acl.xsl?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/acl.xsl (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/acl.xsl Tue Feb 16 16:03:38 2010
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:app="http://www.w3.org/2007/app"
+	xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
+	xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/">
+
+	<xsl:output method="html" />
+
+	<xsl:param name="browseUrl"/>
+	<xsl:param name="auxRoot"/>
+
+	<xsl:template match="/">
+		<html>
+			<head>
+				<title>ACL</title>
+				<link rel="stylesheet" type="text/css" href="{$auxRoot}browser.css" />
+			</head>
+			<body>
+				<h1>ACL</h1>
+				<table class="entrytable">
+				<tr>
+					<th>Principal Id</th>
+					<th>Permissions</th>
+					<th>Direct</th>
+				</tr>
+				<xsl:for-each select="cmis:acl/cmis:permission">
+					<tr>
+						<td><xsl:value-of select="cmis:principal/cmis:principalId" /></td>
+						<td><xsl:for-each select="cmis:permission"><xsl:value-of select="current()" /><br/></xsl:for-each></td>
+						<td><xsl:value-of select="cmis:direct" /></td>
+					</tr>
+				</xsl:for-each>
+				</table>
+			</body>
+		</html>
+	</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Propchange: incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/acl.xsl
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/actions.xsl
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/actions.xsl?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/actions.xsl (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/actions.xsl Tue Feb 16 16:03:38 2010
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:app="http://www.w3.org/2007/app"
+	xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
+	xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/">
+
+	<xsl:output method="html" />
+
+	<xsl:param name="browseUrl"/>
+	<xsl:param name="auxRoot"/>
+
+	<xsl:template match="/">
+		<html>
+			<head>
+				<title>Allowable Actions</title>
+				<link rel="stylesheet" type="text/css" href="{$auxRoot}browser.css" />
+			</head>
+			<body>
+				<h1>Allowable Actions</h1>
+				<table class="entrytable">
+				<xsl:for-each select="cmis:allowableActions/*[not(*)]">
+					<tr>
+						<td><xsl:value-of select="local-name()" /></td>
+						<td><xsl:value-of select="current()" /></td>
+					</tr>
+				</xsl:for-each>
+				</table>
+			</body>
+		</html>
+	</xsl:template>
+	
+</xsl:stylesheet>
\ No newline at end of file

Propchange: incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/actions.xsl
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/entry.xsl
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/entry.xsl?rev=910572&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/entry.xsl (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/entry.xsl Tue Feb 16 16:03:38 2010
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:app="http://www.w3.org/2007/app"
+	xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
+	xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/">
+
+	<xsl:output method="html" />
+
+	<xsl:param name="browseUrl"/>
+	<xsl:param name="auxRoot"/>
+
+	<xsl:template match="/">
+		<html>
+			<head>
+				<title><xsl:value-of select="atom:entry/atom:title" /></title>
+				<link rel="stylesheet" type="text/css" href="{$auxRoot}browser.css" />
+			</head>
+			<body>
+				<img src="{$auxRoot}cmis.png" style="float: right;" />
+				<h1>
+				<xsl:choose>
+					<xsl:when test="contains(atom:entry/cmisra:object/cmis:properties/cmis:propertyId[@propertyDefinitionId='cmis:baseTypeId'],'cmis:document')">
+						<img src="{$auxRoot}document.png" style="vertical-align:middle; padding-right: 10px;" />
+					</xsl:when>
+					<xsl:when test="contains(atom:entry/cmisra:object/cmis:properties/cmis:propertyId[@propertyDefinitionId='cmis:baseTypeId'],'cmis:folder')">
+						<img src="{$auxRoot}folder.png" style="vertical-align:middle; padding-right: 10px;" />
+					</xsl:when>
+					<xsl:when test="contains(atom:entry/cmisra:object/cmis:properties/cmis:propertyId[@propertyDefinitionId='cmis:baseTypeId'],'cmis:relationship')">
+						<img src="{$auxRoot}relationship.png" style="vertical-align:middle; padding-right: 10px;" />
+					</xsl:when>
+					<xsl:when test="contains(atom:entry/cmisra:object/cmis:properties/cmis:propertyId[@propertyDefinitionId='cmis:baseTypeId'],'cmis:policy')">
+						<img src="{$auxRoot}policy.png" style="vertical-align:middle; padding-right: 10px;" />
+					</xsl:when>
+					<xsl:when test="atom:entry/cmisra:type">
+						<img src="{$auxRoot}type.png" style="vertical-align:middle; padding-right: 10px;" />
+					</xsl:when>
+					<xsl:otherwise>
+						<img src="{$auxRoot}unknown.png" style="vertical-align:middle; padding-right: 10px;" />
+					</xsl:otherwise>
+				</xsl:choose>
+				<xsl:value-of select="atom:entry/atom:title" /></h1>
+				
+				<div class="navigationbox">
+					<xsl:if test="atom:entry/atom:link[@rel='service']">
+						<a href="{$browseUrl}{atom:entry/atom:link[@rel='service']/@href}">Service</a> -
+					</xsl:if>
+					<xsl:if test="atom:entry/atom:link[@rel='up']">
+						<a href="{$browseUrl}{atom:entry/atom:link[@rel='up']/@href}">Up</a> -
+					</xsl:if>
+					<xsl:if test="atom:entry/atom:link[@rel='down']">
+						<xsl:for-each select="atom:entry/atom:link[@rel='down']">
+							<a href="{$browseUrl}{@href}">Down (<xsl:value-of select="@type" />)</a> -
+						</xsl:for-each>
+					</xsl:if>
+					<xsl:if test="atom:entry/atom:link[@rel='http://docs.oasis-open.org/ns/cmis/link/200908/foldertree']">
+						<a href="{$browseUrl}{atom:entry/atom:link[@rel='http://docs.oasis-open.org/ns/cmis/link/200908/foldertree']/@href}">Folder Tree</a> -
+					</xsl:if>
+					<xsl:if test="atom:entry/atom:content">
+						<a href="{atom:entry/atom:content/@src}">Download</a> -
+					</xsl:if>
+					<xsl:if test="atom:entry/atom:link[@rel='version-history']">
+						<a href="{$browseUrl}{atom:entry/atom:link[@rel='version-history']/@href}">All Versions</a> -
+					</xsl:if>
+					<xsl:if test="atom:entry/atom:link[@rel='alternate']">
+						<xsl:for-each select="atom:entry/atom:link[@rel='alternate']">
+							<a href="{@href}">Rendition (<xsl:value-of select="@cmisra:renditionType"></xsl:value-of>)</a> -
+						</xsl:for-each>
+					</xsl:if>
+					<xsl:if test="atom:entry/atom:link[@rel='http://docs.oasis-open.org/ns/cmis/link/200908/relationships']">
+						<a href="{$browseUrl}{atom:entry/atom:link[@rel='http://docs.oasis-open.org/ns/cmis/link/200908/relationships']/@href}">Relationships</a> -
+					</xsl:if>					
+					<xsl:if test="atom:entry/atom:link[@rel='http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions']">
+						<a href="{$browseUrl}{atom:entry/atom:link[@rel='http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions']/@href}">Allowable Actions</a> -
+					</xsl:if>
+					<xsl:if test="atom:entry/atom:link[@rel='http://docs.oasis-open.org/ns/cmis/link/200908/acl']">
+						<a href="{$browseUrl}{atom:entry/atom:link[@rel='http://docs.oasis-open.org/ns/cmis/link/200908/acl']/@href}">ACL</a> -
+					</xsl:if>
+					<xsl:if test="atom:entry/atom:link[@rel='http://docs.oasis-open.org/ns/cmis/link/200908/policies']">
+						<a href="{$browseUrl}{atom:entry/atom:link[@rel='http://docs.oasis-open.org/ns/cmis/link/200908/policies']/@href}">Policies</a> -
+					</xsl:if>
+					<xsl:if test="atom:entry/atom:link[@rel='describedby']">
+						<a href="{$browseUrl}{atom:entry/atom:link[@rel='describedby']/@href}">Type</a>
+					</xsl:if>
+				</div>
+				
+				<xsl:if test="atom:entry/atom:summary">
+				<h2>Summary</h2>
+				<div class="entrysummary">
+					<xsl:value-of select="atom:entry/atom:summary" disable-output-escaping="yes"/>
+				</div>
+				</xsl:if>
+				
+				<h2>Properties</h2>
+				<table class="entrytable">
+				<xsl:for-each select="atom:entry/cmisra:object/cmis:properties/*">
+					<tr>
+						<td style="font-weight: bold;"><xsl:value-of select="@propertyDefinitionId" /></td>
+						<td>
+						<xsl:for-each select="cmis:value">
+							<xsl:value-of select="current()" /><br/>
+						</xsl:for-each>
+						</td>
+					</tr>
+				</xsl:for-each>
+				<xsl:for-each select="atom:entry/cmisra:type/*[not(*)]">
+					<tr>
+						<td style="font-weight: bold;"><xsl:value-of select="local-name()" /></td>
+						<td><xsl:value-of select="current()" /></td>
+					</tr>
+				</xsl:for-each>
+				<xsl:if test="atom:entry/cmisra:pathSegment">
+					<tr>
+						<td style="font-weight: bold; font-style:italic;">Path Segment</td>
+						<td style="font-style:italic;"><xsl:value-of select="atom:entry/cmisra:pathSegment" /></td>
+					</tr>
+				</xsl:if>
+				</table>
+				
+				<xsl:if test="atom:entry/cmisra:type">
+					<h2>Property Definitions</h2>
+					<xsl:for-each select="atom:entry/cmisra:type/*[*]">
+						<h3><xsl:value-of select="cmis:id"/></h3>
+						<table class="entrytable">
+						<xsl:for-each select="*">
+							<tr>
+								<td><xsl:value-of select="local-name()" /></td>
+								<td><xsl:value-of select="current()" /></td>
+							</tr>
+						</xsl:for-each>
+						</table>
+					</xsl:for-each>
+				</xsl:if>
+			</body>
+		</html>
+	</xsl:template>
+	
+</xsl:stylesheet>
\ No newline at end of file

Propchange: incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/src/main/webapp/WEB-INF/stylesheets/entry.xsl
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message