You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fg...@apache.org on 2010/07/29 19:13:30 UTC

svn commit: r980513 [3/15] - in /incubator/chemistry/opencmis/trunk/chemistry-opencmis-server: chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/dummy/ chemistry-opencmis-server-bindings/src/main/java/org/apache...

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/ExtensionSample.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/ExtensionSample.java?rev=980513&r1=980512&r2=980513&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/ExtensionSample.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/ExtensionSample.java Thu Jul 29 17:13:28 2010
@@ -1,48 +1,48 @@
-/*
- * 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.chemistry.opencmis.inmemory.server;
-
-import javax.xml.bind.annotation.XmlType;
-
-@XmlType(name = "cmisExtensionType", propOrder = {
-    "s", "i", "f"
-})
-public class ExtensionSample {
-    private String s;
-    private int i;
-    private double f;
-    
-    public ExtensionSample() {
-        s = "This is an example for a CMIS extension.";
-        i = 42;
-        f = Math.PI;            
-    }
-    
-    public String getString() {
-        return s;
-    }
-    
-    public int getInt() {
-        return i;
-    }
-
-    public double getDouble() {
-        return f;
-    }
-}
+/*
+ * 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.chemistry.opencmis.inmemory.server;
+
+import javax.xml.bind.annotation.XmlType;
+
+@XmlType(name = "cmisExtensionType", propOrder = {
+    "s", "i", "f"
+})
+public class ExtensionSample {
+    private String s;
+    private int i;
+    private double f;
+    
+    public ExtensionSample() {
+        s = "This is an example for a CMIS extension.";
+        i = 42;
+        f = Math.PI;            
+    }
+    
+    public String getString() {
+        return s;
+    }
+    
+    public int getInt() {
+        return i;
+    }
+
+    public double getDouble() {
+        return f;
+    }
+}

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

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryAbstractServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryAbstractServiceImpl.java?rev=980513&r1=980512&r2=980513&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryAbstractServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryAbstractServiceImpl.java Thu Jul 29 17:13:28 2010
@@ -1,172 +1,172 @@
-/*
- * 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.chemistry.opencmis.inmemory.server;
-
-import org.apache.chemistry.opencmis.commons.PropertyIds;
-import org.apache.chemistry.opencmis.commons.data.Properties;
-import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
-import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
-import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
-import org.apache.chemistry.opencmis.commons.exceptions.CmisPermissionDeniedException;
-import org.apache.chemistry.opencmis.commons.exceptions.CmisUpdateConflictException;
-import org.apache.chemistry.opencmis.inmemory.storedobj.api.DocumentVersion;
-import org.apache.chemistry.opencmis.inmemory.storedobj.api.ObjectStore;
-import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
-import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoredObject;
-import org.apache.chemistry.opencmis.inmemory.storedobj.api.VersionedDocument;
-
-/**
- * Common functionality for all service implementations
- * 
- * @author Jens
- * 
- */
-public class InMemoryAbstractServiceImpl {
-
-    protected StoreManager fStoreManager;
-
-    protected InMemoryAbstractServiceImpl(StoreManager storeManager) {
-        fStoreManager = storeManager;
-    }
-
-    /**
-     * check if repository is known and that object exists. To avoid later calls
-     * to again retrieve the object from the id return the retrieved object for
-     * later use.
-     * 
-     * @param repositoryId
-     *            repository id
-     * @param objectId
-     *            object id
-     * @return object for objectId
-     */
-    protected StoredObject checkStandardParameters(String repositoryId, String objectId) {
-
-        ObjectStore objStore = fStoreManager.getObjectStore(repositoryId);
-
-        if (objStore == null)
-            throw new CmisObjectNotFoundException("Unknown repository id: " + repositoryId);
-
-        StoredObject so = objStore.getObjectById(objectId);
-
-        if (so == null)
-            throw new CmisObjectNotFoundException("Unknown object id: " + objectId);
-
-        return so;
-    }
-
-    protected StoredObject checkExistingObjectId(ObjectStore objStore, String objectId) {
-
-        StoredObject so = objStore.getObjectById(objectId);
-
-        if (so == null)
-            throw new CmisObjectNotFoundException("Unknown object id: " + objectId);
-
-        return so;
-    }
-
-    protected void checkRepositoryId(String repositoryId) {
-        ObjectStore objStore = fStoreManager.getObjectStore(repositoryId);
-
-        if (objStore == null)
-            throw new CmisObjectNotFoundException("Unknown repository id: " + repositoryId);
-    }
-
-    protected TypeDefinition getTypeDefinition(String repositoryId, Properties properties) {
-        String typeId = (String) properties.getProperties().get(PropertyIds.OBJECT_TYPE_ID).getFirstValue();
-        TypeDefinitionContainer typeDefC = fStoreManager.getTypeById(repositoryId, typeId);
-        if (typeDefC == null)
-            throw new RuntimeException("Cannot create object, a type with id " + typeId + " is unknown");
-
-        return typeDefC.getTypeDefinition();
-    }
-
-    protected TypeDefinition getTypeDefinition(String repositoryId, StoredObject obj) {
-
-        TypeDefinitionContainer typeDefC = fStoreManager.getTypeById(repositoryId, obj.getTypeId());
-        return typeDefC.getTypeDefinition();
-    }
-
-    /**
-     * We allow checkin, cancel, checkout operations on a single version as well
-     * as on a version series This method returns the versioned document
-     * (version series) in each case
-     * 
-     * @param value
-     *            version or version series id of a document
-     * @return version series id
-     */
-    protected VersionedDocument getVersionedDocumentOfObjectId(StoredObject so) {
-
-        VersionedDocument verDoc;
-        if (so instanceof DocumentVersion) {
-            // get document the version is contained in to c
-            verDoc = ((DocumentVersion) so).getParentDocument();
-        } else {
-            verDoc = (VersionedDocument) so;
-        }
-
-        return verDoc;
-    }
-
-    protected VersionedDocument testIsNotCheckedOutBySomeoneElse(StoredObject so, String user) {
-        checkIsVersionableObject(so);
-        VersionedDocument verDoc = getVersionedDocumentOfObjectId(so);
-        if (verDoc.isCheckedOut())
-            testCheckedOutByCurrentUser(user, verDoc);
-
-        return verDoc;
-    }
-
-    protected VersionedDocument testHasProperCheckedOutStatus(StoredObject so, String user) {
-
-        checkIsVersionableObject(so);
-        VersionedDocument verDoc = getVersionedDocumentOfObjectId(so);
-
-        checkHasUser(user);
-
-        testIsCheckedOut(verDoc);
-        testCheckedOutByCurrentUser(user, verDoc);
-
-        return verDoc;
-    }
-
-    protected void checkIsVersionableObject(StoredObject so) {
-        if (!(so instanceof VersionedDocument || so instanceof DocumentVersion))
-            throw new RuntimeException(
-                    "Object is of a versionable type but not instance of VersionedDocument or DocumentVersion.");
-    }
-
-    protected void checkHasUser(String user) {
-        if (null == user || user.length() == 0)
-            throw new CmisPermissionDeniedException("Object can't be checked-in, no user is given.");
-    }
-
-    protected void testCheckedOutByCurrentUser(String user, VersionedDocument verDoc) {
-        if (!user.equals(verDoc.getCheckedOutBy()))
-            throw new CmisUpdateConflictException("Object can't be checked-in, user " + verDoc.getCheckedOutBy()
-                    + " has checked out the document.");
-    }
-
-    protected void testIsCheckedOut(VersionedDocument verDoc) {
-        if (!verDoc.isCheckedOut())
-            throw new CmisUpdateConflictException("Canot check-in: Document " + verDoc.getId() + " is not checked out.");
-    }
-
-}
+/*
+ * 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.chemistry.opencmis.inmemory.server;
+
+import org.apache.chemistry.opencmis.commons.PropertyIds;
+import org.apache.chemistry.opencmis.commons.data.Properties;
+import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisPermissionDeniedException;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisUpdateConflictException;
+import org.apache.chemistry.opencmis.inmemory.storedobj.api.DocumentVersion;
+import org.apache.chemistry.opencmis.inmemory.storedobj.api.ObjectStore;
+import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
+import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoredObject;
+import org.apache.chemistry.opencmis.inmemory.storedobj.api.VersionedDocument;
+
+/**
+ * Common functionality for all service implementations
+ * 
+ * @author Jens
+ * 
+ */
+public class InMemoryAbstractServiceImpl {
+
+    protected StoreManager fStoreManager;
+
+    protected InMemoryAbstractServiceImpl(StoreManager storeManager) {
+        fStoreManager = storeManager;
+    }
+
+    /**
+     * check if repository is known and that object exists. To avoid later calls
+     * to again retrieve the object from the id return the retrieved object for
+     * later use.
+     * 
+     * @param repositoryId
+     *            repository id
+     * @param objectId
+     *            object id
+     * @return object for objectId
+     */
+    protected StoredObject checkStandardParameters(String repositoryId, String objectId) {
+
+        ObjectStore objStore = fStoreManager.getObjectStore(repositoryId);
+
+        if (objStore == null)
+            throw new CmisObjectNotFoundException("Unknown repository id: " + repositoryId);
+
+        StoredObject so = objStore.getObjectById(objectId);
+
+        if (so == null)
+            throw new CmisObjectNotFoundException("Unknown object id: " + objectId);
+
+        return so;
+    }
+
+    protected StoredObject checkExistingObjectId(ObjectStore objStore, String objectId) {
+
+        StoredObject so = objStore.getObjectById(objectId);
+
+        if (so == null)
+            throw new CmisObjectNotFoundException("Unknown object id: " + objectId);
+
+        return so;
+    }
+
+    protected void checkRepositoryId(String repositoryId) {
+        ObjectStore objStore = fStoreManager.getObjectStore(repositoryId);
+
+        if (objStore == null)
+            throw new CmisObjectNotFoundException("Unknown repository id: " + repositoryId);
+    }
+
+    protected TypeDefinition getTypeDefinition(String repositoryId, Properties properties) {
+        String typeId = (String) properties.getProperties().get(PropertyIds.OBJECT_TYPE_ID).getFirstValue();
+        TypeDefinitionContainer typeDefC = fStoreManager.getTypeById(repositoryId, typeId);
+        if (typeDefC == null)
+            throw new RuntimeException("Cannot create object, a type with id " + typeId + " is unknown");
+
+        return typeDefC.getTypeDefinition();
+    }
+
+    protected TypeDefinition getTypeDefinition(String repositoryId, StoredObject obj) {
+
+        TypeDefinitionContainer typeDefC = fStoreManager.getTypeById(repositoryId, obj.getTypeId());
+        return typeDefC.getTypeDefinition();
+    }
+
+    /**
+     * We allow checkin, cancel, checkout operations on a single version as well
+     * as on a version series This method returns the versioned document
+     * (version series) in each case
+     * 
+     * @param value
+     *            version or version series id of a document
+     * @return version series id
+     */
+    protected VersionedDocument getVersionedDocumentOfObjectId(StoredObject so) {
+
+        VersionedDocument verDoc;
+        if (so instanceof DocumentVersion) {
+            // get document the version is contained in to c
+            verDoc = ((DocumentVersion) so).getParentDocument();
+        } else {
+            verDoc = (VersionedDocument) so;
+        }
+
+        return verDoc;
+    }
+
+    protected VersionedDocument testIsNotCheckedOutBySomeoneElse(StoredObject so, String user) {
+        checkIsVersionableObject(so);
+        VersionedDocument verDoc = getVersionedDocumentOfObjectId(so);
+        if (verDoc.isCheckedOut())
+            testCheckedOutByCurrentUser(user, verDoc);
+
+        return verDoc;
+    }
+
+    protected VersionedDocument testHasProperCheckedOutStatus(StoredObject so, String user) {
+
+        checkIsVersionableObject(so);
+        VersionedDocument verDoc = getVersionedDocumentOfObjectId(so);
+
+        checkHasUser(user);
+
+        testIsCheckedOut(verDoc);
+        testCheckedOutByCurrentUser(user, verDoc);
+
+        return verDoc;
+    }
+
+    protected void checkIsVersionableObject(StoredObject so) {
+        if (!(so instanceof VersionedDocument || so instanceof DocumentVersion))
+            throw new RuntimeException(
+                    "Object is of a versionable type but not instance of VersionedDocument or DocumentVersion.");
+    }
+
+    protected void checkHasUser(String user) {
+        if (null == user || user.length() == 0)
+            throw new CmisPermissionDeniedException("Object can't be checked-in, no user is given.");
+    }
+
+    protected void testCheckedOutByCurrentUser(String user, VersionedDocument verDoc) {
+        if (!user.equals(verDoc.getCheckedOutBy()))
+            throw new CmisUpdateConflictException("Object can't be checked-in, user " + verDoc.getCheckedOutBy()
+                    + " has checked out the document.");
+    }
+
+    protected void testIsCheckedOut(VersionedDocument verDoc) {
+        if (!verDoc.isCheckedOut())
+            throw new CmisUpdateConflictException("Canot check-in: Document " + verDoc.getId() + " is not checked out.");
+    }
+
+}

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

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryDiscoveryServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryDiscoveryServiceImpl.java?rev=980513&r1=980512&r2=980513&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryDiscoveryServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryDiscoveryServiceImpl.java Thu Jul 29 17:13:28 2010
@@ -1,117 +1,117 @@
-/*
- * 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.chemistry.opencmis.inmemory.server;
-
-import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.GregorianCalendar;
-import java.util.List;
-
-import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
-import org.apache.chemistry.opencmis.commons.data.ObjectData;
-import org.apache.chemistry.opencmis.commons.data.ObjectInFolderContainer;
-import org.apache.chemistry.opencmis.commons.data.ObjectList;
-import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
-import org.apache.chemistry.opencmis.commons.enums.ChangeType;
-import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.ChangeEventInfoDataImpl;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectDataImpl;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectListImpl;
-import org.apache.chemistry.opencmis.commons.server.CallContext;
-import org.apache.chemistry.opencmis.commons.server.ObjectInfoHandler;
-import org.apache.chemistry.opencmis.commons.spi.Holder;
-import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-public class InMemoryDiscoveryServiceImpl extends InMemoryAbstractServiceImpl{
-    
-    private static Log LOG = LogFactory.getLog(InMemoryDiscoveryServiceImpl.class);
-
-    AtomLinkInfoProvider fAtomLinkProvider;
-    InMemoryNavigationServiceImpl fNavigationService; // real implementation of
-    // the service
-    InMemoryRepositoryServiceImpl fRepositoryService;
-
-    public InMemoryDiscoveryServiceImpl(StoreManager storeManager, InMemoryRepositoryServiceImpl repSvc,
-            InMemoryNavigationServiceImpl navSvc) {
-        super(storeManager);
-        fAtomLinkProvider = new AtomLinkInfoProvider(fStoreManager);
-        fNavigationService = navSvc;
-        fRepositoryService = repSvc;
-    }
-
-    public ObjectList getContentChanges(CallContext context, String repositoryId, Holder<String> changeLogToken,
-            Boolean includeProperties, String filter, Boolean includePolicyIds, Boolean includeAcl,
-            BigInteger maxItems, ExtensionsData extension, ObjectInfoHandler objectInfos) {
-        // dummy implementation using hard coded values
-
-        RepositoryInfo rep = fRepositoryService.getRepositoryInfo(context, repositoryId, null);
-        String rootFolderId = rep.getRootFolderId();
-
-        ObjectListImpl objList = new ObjectListImpl();
-        List<ObjectInFolderContainer> tempRes = fNavigationService.getDescendants(context, repositoryId, rootFolderId,
-                BigInteger.valueOf(3), filter, false, IncludeRelationships.NONE, null, false, extension, null);
-
-        // convert ObjectInFolderContainerList to objectList
-        List<ObjectData> lod = new ArrayList<ObjectData>();
-        for (ObjectInFolderContainer obj : tempRes) {
-            convertList(lod, obj);
-        }
-        objList.setObjects(lod);
-        objList.setNumItems(BigInteger.valueOf(lod.size()));
-
-        // To be able to provide all Atom links in the response we need
-        // additional information:
-        fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, null, objectInfos, objList);
-        return objList;
-    }
-
-    private void convertList(List<ObjectData> lod, ObjectInFolderContainer obj) {
-        lod.add(obj.getObject().getObject());
-        // add dummy event info
-        ObjectData oif = obj.getObject().getObject();
-        ObjectDataImpl oifImpl = (ObjectDataImpl) oif;
-        ChangeEventInfoDataImpl changeEventInfo = new ChangeEventInfoDataImpl();
-        changeEventInfo.setChangeType(ChangeType.UPDATED);
-        changeEventInfo.setChangeTime(new GregorianCalendar());
-        oifImpl.setChangeEventInfo(changeEventInfo);
-        if (null != obj.getChildren()) {
-            for (ObjectInFolderContainer oifc : obj.getChildren()) {
-                convertList(lod, oifc);
-            }
-        }
-    }
-
-     public ObjectList query(CallContext context, String repositoryId, String statement, Boolean searchAllVersions,
-            Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
-            BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
-
-        LOG.debug("start query()");
-        checkRepositoryId(repositoryId);
-        String user = context.getUsername();
-        ObjectList res;
-        
-        res = fStoreManager.query(user, repositoryId, statement, searchAllVersions, includeAllowableActions,
-                includeRelationships, renditionFilter, maxItems, skipCount);
-        LOG.debug("stop query()");
-        return res;
-    }
-
-}
+/*
+ * 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.chemistry.opencmis.inmemory.server;
+
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.GregorianCalendar;
+import java.util.List;
+
+import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
+import org.apache.chemistry.opencmis.commons.data.ObjectData;
+import org.apache.chemistry.opencmis.commons.data.ObjectInFolderContainer;
+import org.apache.chemistry.opencmis.commons.data.ObjectList;
+import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
+import org.apache.chemistry.opencmis.commons.enums.ChangeType;
+import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.ChangeEventInfoDataImpl;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectDataImpl;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectListImpl;
+import org.apache.chemistry.opencmis.commons.server.CallContext;
+import org.apache.chemistry.opencmis.commons.server.ObjectInfoHandler;
+import org.apache.chemistry.opencmis.commons.spi.Holder;
+import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class InMemoryDiscoveryServiceImpl extends InMemoryAbstractServiceImpl{
+    
+    private static Log LOG = LogFactory.getLog(InMemoryDiscoveryServiceImpl.class);
+
+    AtomLinkInfoProvider fAtomLinkProvider;
+    InMemoryNavigationServiceImpl fNavigationService; // real implementation of
+    // the service
+    InMemoryRepositoryServiceImpl fRepositoryService;
+
+    public InMemoryDiscoveryServiceImpl(StoreManager storeManager, InMemoryRepositoryServiceImpl repSvc,
+            InMemoryNavigationServiceImpl navSvc) {
+        super(storeManager);
+        fAtomLinkProvider = new AtomLinkInfoProvider(fStoreManager);
+        fNavigationService = navSvc;
+        fRepositoryService = repSvc;
+    }
+
+    public ObjectList getContentChanges(CallContext context, String repositoryId, Holder<String> changeLogToken,
+            Boolean includeProperties, String filter, Boolean includePolicyIds, Boolean includeAcl,
+            BigInteger maxItems, ExtensionsData extension, ObjectInfoHandler objectInfos) {
+        // dummy implementation using hard coded values
+
+        RepositoryInfo rep = fRepositoryService.getRepositoryInfo(context, repositoryId, null);
+        String rootFolderId = rep.getRootFolderId();
+
+        ObjectListImpl objList = new ObjectListImpl();
+        List<ObjectInFolderContainer> tempRes = fNavigationService.getDescendants(context, repositoryId, rootFolderId,
+                BigInteger.valueOf(3), filter, false, IncludeRelationships.NONE, null, false, extension, null);
+
+        // convert ObjectInFolderContainerList to objectList
+        List<ObjectData> lod = new ArrayList<ObjectData>();
+        for (ObjectInFolderContainer obj : tempRes) {
+            convertList(lod, obj);
+        }
+        objList.setObjects(lod);
+        objList.setNumItems(BigInteger.valueOf(lod.size()));
+
+        // To be able to provide all Atom links in the response we need
+        // additional information:
+        fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, null, objectInfos, objList);
+        return objList;
+    }
+
+    private void convertList(List<ObjectData> lod, ObjectInFolderContainer obj) {
+        lod.add(obj.getObject().getObject());
+        // add dummy event info
+        ObjectData oif = obj.getObject().getObject();
+        ObjectDataImpl oifImpl = (ObjectDataImpl) oif;
+        ChangeEventInfoDataImpl changeEventInfo = new ChangeEventInfoDataImpl();
+        changeEventInfo.setChangeType(ChangeType.UPDATED);
+        changeEventInfo.setChangeTime(new GregorianCalendar());
+        oifImpl.setChangeEventInfo(changeEventInfo);
+        if (null != obj.getChildren()) {
+            for (ObjectInFolderContainer oifc : obj.getChildren()) {
+                convertList(lod, oifc);
+            }
+        }
+    }
+
+     public ObjectList query(CallContext context, String repositoryId, String statement, Boolean searchAllVersions,
+            Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
+            BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
+
+        LOG.debug("start query()");
+        checkRepositoryId(repositoryId);
+        String user = context.getUsername();
+        ObjectList res;
+        
+        res = fStoreManager.query(user, repositoryId, statement, searchAllVersions, includeAllowableActions,
+                includeRelationships, renditionFilter, maxItems, skipCount);
+        LOG.debug("stop query()");
+        return res;
+    }
+
+}

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

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java?rev=980513&r1=980512&r2=980513&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java Thu Jul 29 17:13:28 2010
@@ -1,125 +1,125 @@
-/*
- * 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.chemistry.opencmis.inmemory.server;
-
-import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
-import org.apache.chemistry.opencmis.commons.data.ObjectData;
-import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
-import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
-import org.apache.chemistry.opencmis.commons.exceptions.CmisConstraintException;
-import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
-import org.apache.chemistry.opencmis.commons.impl.server.ObjectInfoImpl;
-import org.apache.chemistry.opencmis.commons.server.CallContext;
-import org.apache.chemistry.opencmis.commons.server.ObjectInfoHandler;
-import org.apache.chemistry.opencmis.inmemory.storedobj.api.Folder;
-import org.apache.chemistry.opencmis.inmemory.storedobj.api.MultiFiling;
-import org.apache.chemistry.opencmis.inmemory.storedobj.api.ObjectStore;
-import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
-import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoredObject;
-import org.apache.chemistry.opencmis.inmemory.types.PropertyCreationHelper;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-public class InMemoryMultiFilingServiceImpl extends InMemoryAbstractServiceImpl {
-
-    private static final Log LOG = LogFactory.getLog(InMemoryMultiFilingServiceImpl.class.getName());
-
-    AtomLinkInfoProvider fAtomLinkProvider;
-
-    public InMemoryMultiFilingServiceImpl(StoreManager storeMgr) {
-        super(storeMgr);
-        fAtomLinkProvider = new AtomLinkInfoProvider(storeMgr);
-    }
-
-    public void addObjectToFolder(CallContext context, String repositoryId, String objectId, String folderId,
-            Boolean allVersions, ExtensionsData extension, ObjectInfoHandler objectInfos) {
-
-        LOG.debug("Begin addObjectToFolder()");
-
-        StoredObject[] so2 = checkParams(repositoryId, objectId, folderId);
-        if (allVersions != null && allVersions.booleanValue() == false)
-            throw new CmisNotSupportedException(
-                    "Cannot add object to folder, version specific filing is not supported.");
-        StoredObject so = so2[0];
-        StoredObject folder = so2[1];
-        checkObjects(so, folder);
-
-        Folder newParent = (Folder) folder;
-        MultiFiling obj = (MultiFiling) so;
-        obj.addParent(newParent);
-
-        if (context.isObjectInfoRequired()) {
-            ObjectInfoImpl objectInfo = new ObjectInfoImpl();
-            fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
-            fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, folder, objectInfo);
-            objectInfos.addObjectInfo(objectInfo);
-        }
-
-        LOG.debug("End addObjectToFolder()");
-    }
-
-    public void removeObjectFromFolder(CallContext context, String repositoryId, String objectId,
-            String folderId, ExtensionsData extension, ObjectInfoHandler objectInfos) {
-
-        LOG.debug("Begin removeObjectFromFolder()");
-
-        StoredObject so = checkStandardParameters(repositoryId, objectId);
-        ObjectStore objectStore = fStoreManager.getObjectStore(repositoryId);
-        StoredObject folder = checkExistingObjectId(objectStore, folderId);
-
-        checkObjects(so, folder);
-        Folder parent = (Folder) folder;
-        MultiFiling obj = (MultiFiling) so;
-        obj.removeParent(parent);
-
-        // To be able to provide all Atom links in the response we need
-        // additional information:
-        if (context.isObjectInfoRequired()) {
-            ObjectInfoImpl objectInfo = new ObjectInfoImpl();
-            fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
-            fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, folder, objectInfo);
-            objectInfos.addObjectInfo(objectInfo);
-        }
-
-        LOG.debug("End removeObjectFromFolder()");
-    }
-
-    private StoredObject[] checkParams(String repositoryId, String objectId, String folderId) {
-        StoredObject[] so = new StoredObject[2];
-        so[0] = checkStandardParameters(repositoryId, objectId);
-        ObjectStore objectStore = fStoreManager.getObjectStore(repositoryId);
-        so[1] = checkExistingObjectId(objectStore, folderId);
-        return so;
-    }
-
-    private void checkObjects(StoredObject so, StoredObject folder) {
-        if (!(so instanceof MultiFiling))
-            throw new CmisConstraintException("Cannot add object to folder, object id " + so.getId()
-                    + " is not a multi-filed object.");
-
-        if ((so instanceof Folder))
-            throw new CmisConstraintException("Cannot add object to folder, object id " + folder.getId()
-                    + " is a folder and folders are not multi-filed.");
-
-        if (!(folder instanceof Folder))
-            throw new CmisConstraintException("Cannot add object to folder, folder id " + folder.getId()
-                    + " does not refer to a folder.");
-    }
-
-}
+/*
+ * 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.chemistry.opencmis.inmemory.server;
+
+import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
+import org.apache.chemistry.opencmis.commons.data.ObjectData;
+import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
+import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisConstraintException;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
+import org.apache.chemistry.opencmis.commons.impl.server.ObjectInfoImpl;
+import org.apache.chemistry.opencmis.commons.server.CallContext;
+import org.apache.chemistry.opencmis.commons.server.ObjectInfoHandler;
+import org.apache.chemistry.opencmis.inmemory.storedobj.api.Folder;
+import org.apache.chemistry.opencmis.inmemory.storedobj.api.MultiFiling;
+import org.apache.chemistry.opencmis.inmemory.storedobj.api.ObjectStore;
+import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
+import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoredObject;
+import org.apache.chemistry.opencmis.inmemory.types.PropertyCreationHelper;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class InMemoryMultiFilingServiceImpl extends InMemoryAbstractServiceImpl {
+
+    private static final Log LOG = LogFactory.getLog(InMemoryMultiFilingServiceImpl.class.getName());
+
+    AtomLinkInfoProvider fAtomLinkProvider;
+
+    public InMemoryMultiFilingServiceImpl(StoreManager storeMgr) {
+        super(storeMgr);
+        fAtomLinkProvider = new AtomLinkInfoProvider(storeMgr);
+    }
+
+    public void addObjectToFolder(CallContext context, String repositoryId, String objectId, String folderId,
+            Boolean allVersions, ExtensionsData extension, ObjectInfoHandler objectInfos) {
+
+        LOG.debug("Begin addObjectToFolder()");
+
+        StoredObject[] so2 = checkParams(repositoryId, objectId, folderId);
+        if (allVersions != null && allVersions.booleanValue() == false)
+            throw new CmisNotSupportedException(
+                    "Cannot add object to folder, version specific filing is not supported.");
+        StoredObject so = so2[0];
+        StoredObject folder = so2[1];
+        checkObjects(so, folder);
+
+        Folder newParent = (Folder) folder;
+        MultiFiling obj = (MultiFiling) so;
+        obj.addParent(newParent);
+
+        if (context.isObjectInfoRequired()) {
+            ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+            fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
+            fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, folder, objectInfo);
+            objectInfos.addObjectInfo(objectInfo);
+        }
+
+        LOG.debug("End addObjectToFolder()");
+    }
+
+    public void removeObjectFromFolder(CallContext context, String repositoryId, String objectId,
+            String folderId, ExtensionsData extension, ObjectInfoHandler objectInfos) {
+
+        LOG.debug("Begin removeObjectFromFolder()");
+
+        StoredObject so = checkStandardParameters(repositoryId, objectId);
+        ObjectStore objectStore = fStoreManager.getObjectStore(repositoryId);
+        StoredObject folder = checkExistingObjectId(objectStore, folderId);
+
+        checkObjects(so, folder);
+        Folder parent = (Folder) folder;
+        MultiFiling obj = (MultiFiling) so;
+        obj.removeParent(parent);
+
+        // To be able to provide all Atom links in the response we need
+        // additional information:
+        if (context.isObjectInfoRequired()) {
+            ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+            fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
+            fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, folder, objectInfo);
+            objectInfos.addObjectInfo(objectInfo);
+        }
+
+        LOG.debug("End removeObjectFromFolder()");
+    }
+
+    private StoredObject[] checkParams(String repositoryId, String objectId, String folderId) {
+        StoredObject[] so = new StoredObject[2];
+        so[0] = checkStandardParameters(repositoryId, objectId);
+        ObjectStore objectStore = fStoreManager.getObjectStore(repositoryId);
+        so[1] = checkExistingObjectId(objectStore, folderId);
+        return so;
+    }
+
+    private void checkObjects(StoredObject so, StoredObject folder) {
+        if (!(so instanceof MultiFiling))
+            throw new CmisConstraintException("Cannot add object to folder, object id " + so.getId()
+                    + " is not a multi-filed object.");
+
+        if ((so instanceof Folder))
+            throw new CmisConstraintException("Cannot add object to folder, object id " + folder.getId()
+                    + " is a folder and folders are not multi-filed.");
+
+        if (!(folder instanceof Folder))
+            throw new CmisConstraintException("Cannot add object to folder, folder id " + folder.getId()
+                    + " does not refer to a folder.");
+    }
+
+}

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