You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by sk...@apache.org on 2010/02/22 11:26:20 UTC
svn commit: r912529 [1/2] - in /incubator/chemistry/trunk/opencmis: ./
opencmis-client/opencmis-client-api/
opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/
opencmis-client/opencmis-client-api/src/main/java/org/apache/o...
Author: sklevenz
Date: Mon Feb 22 10:26:19 2010
New Revision: 912529
URL: http://svn.apache.org/viewvc?rev=912529&view=rev
Log:
Synchronize latest code changes from BerliOS
https://issues.apache.org/jira/browse/CMIS-121
Adding missing licens headers
https://issues.apache.org/jira/browse/CMIS-116
Added:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/PersistentSession.java (with props)
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/util/Testable.java (with props)
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java (with props)
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java (with props)
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/SessionFactoryImpl.java (with props)
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/cache/
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/cache/Cache.java (with props)
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/cache/CacheImpl.java (with props)
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/objecttype/
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/PropertyFactoryImpl.java (with props)
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/util/
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/pom.xml
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/SessionFactory.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/TransientSession.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/package.html
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/pom.xml
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/test/Fixture.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/test/suite/otx/OtxAtomPubCmisTestSuite.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-provider-impl/pom.xml
incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/pom.xml
incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/SessionParameter.java
incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-impl/pom.xml
incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-fileshare/pom.xml
incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-impl/pom.xml
incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-inmemory/pom.xml
incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-spi/pom.xml
incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-browser/pom.xml
incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-tck/pom.xml
incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-tools/pom.xml
incubator/chemistry/trunk/opencmis/opencmis-test/opencmis-test-util/pom.xml
incubator/chemistry/trunk/opencmis/pom.xml
incubator/chemistry/trunk/opencmis/src/site/site.xml
Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/pom.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/pom.xml?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/pom.xml (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/pom.xml Mon Feb 22 10:26:19 2010
@@ -1,5 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed 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.
+ -->
+
<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
Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java Mon Feb 22 10:26:19 2010
@@ -27,6 +27,7 @@
import org.apache.opencmis.commons.enums.AclPropagation;
import org.apache.opencmis.commons.enums.BaseObjectTypeIds;
import org.apache.opencmis.commons.enums.RelationshipDirection;
+import org.apache.opencmis.commons.enums.UnfileObjects;
/**
* Base CMIS object.
@@ -139,7 +140,7 @@
CmisObject move(Folder targetfolder);
- void delete();
+ void delete(boolean allVersions);
void updateProperties(List<Property<?>> properties);
Added: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/PersistentSession.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/PersistentSession.java?rev=912529&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/PersistentSession.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/PersistentSession.java Mon Feb 22 10:26:19 2010
@@ -0,0 +1,25 @@
+/*
+ * 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.client.api;
+
+/**
+ * All write operations of a persistent session will be forwarded to the back end system immediately.
+ */
+public interface PersistentSession extends Session {
+}
Propchange: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/PersistentSession.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java Mon Feb 22 10:26:19 2010
@@ -26,148 +26,163 @@
import org.apache.opencmis.client.api.repository.RepositoryInfo;
import org.apache.opencmis.client.api.util.PagingList;
+/**
+ * A session is associated with a specific connection to a CMIS repository. A
+ * session belongs to one authenticated user and
+ */
public interface Session {
- /**
- * Clear all cached data. This implies that all data will be reloaded from the repository
- * (depending on the implementation, reloading might be done immediately or be deferred).
- */
- void clear();
-
- // session context
-
- /**
- * Get the current session parameters for filtering and paging.
- */
- SessionContext getContext();
-
- /**
- * Set the current session parameters for filtering and paging.
- *
- * @param context
- * the <code>SessionContext</code> to be used for the session; if <code>null</code>, a
- * default context is used
- * @return the old <code>SessionContext</code> used before <code>setContext</code> was called
- */
- SessionContext setContext(SessionContext context);
-
- // localization
-
- /**
- * Get the current locale to be used for this sesion.
- */
- Locale getLocale();
-
- // extensions
-
- // TODO : clarify extension handling
-
- /*
- * basic idea is: Application does something like startup: session.setExtensionHandler('action',
- * handler); performing an action: session.set('action'); ... do some operations on the session
- * ... --> handler.handleExtension('action') is called by runtime
- */
-
- /**
- * Get an ID representing an 'extension context' (an action or something)?
- */
- String getExtensionContext();
-
- /**
- * Set an ID representing an 'extension context' (an action or something)? (null = default/no
- * context)
- *
- * @param context
- * @return
- */
- String setExtensionContext(String context);
-
- /**
- * Get the <code>ExtensionHandler</code> for a given 'extension context'. (null = default)
- *
- * @param context
- * @return
- */
- ExtensionHandler getExtensionHandler(String context);
-
- /**
- * Set the <code>ExtensionHandler</code> for a given 'extension context'. (null = default)
- *
- * @param context
- * @param extensionHandler
- * @return
- */
- ExtensionHandler setExtensionHandler(String context, ExtensionHandler extensionHandler);
-
- // services
-
- /**
- * Repository service <code>getRepositoryInfo()</code>.
- */
- RepositoryInfo getRepositoryInfo();
-
- /**
- * Access to the object services <code>create</code><i>...</i>, plus factory methods to create
- * <code>Acl</code>s, <code>Ace</code>s, and <code>ContentStream</code>.
- */
- ObjectFactory getObjectFactory();
-
- /**
- * Get the factory for <code>Property</code> objects.
- */
- PropertyFactory getPropertyFactory();
-
- ObjectType getTypeDefinition(String typeId);
-
- PagingList<ObjectType> getTypeChildren(ObjectType t, boolean includePropertyDefinitions, int itemsPerPage);
-
- PagingList<ObjectType> getTypeDescendants(ObjectType t, int depth, boolean includePropertyDefinitions, int itemsPerPage);
-
- // navigation
-
- /**
- * Get the root folder for the repository.
- */
- Folder getRootFolder();
-
- /**
- * Navigation service <code>getCheckedOutDocs</code>.
- *
- * @param folder
- * @param orderby
- * @return @
- */
- PagingList<Document> getCheckedOutDocs(Folder folder, String orderby, int itemsPerPage);
-
- /**
- * Object service <code>getObject</code>.
- *
- * @param objectid
- * @return @
- */
- CmisObject getObject(String objectid);
-
- /**
- * Object service <code>getObjectByPath</code>.
- *
- * @param path
- * @return @
- */
- CmisObject getObjectByPath(String path);
-
- // discovery
-
- /**
- * Discovery service <code>query</code>.
- */
- PagingList<CmisObject> query(String statement, boolean searchAllVersions, int itemsPerPage);
-
- /**
- * Discovery service <code>getContentChanges</code>.
- *
- * @return
- */
- PagingList<ChangeEvent> getContentChanges(String changeLogToken, int itemsPerPage);
-
+ /**
+ * Clear all cached data. This implies that all data will be reloaded from
+ * the repository (depending on the implementation, reloading might be done
+ * immediately or be deferred).
+ */
+ void clear();
+
+ // session context
+
+ /**
+ * Get the current session parameters for filtering and paging.
+ */
+ SessionContext getContext();
+
+ /**
+ * Set the current session parameters for filtering and paging.
+ *
+ * @param context
+ * the <code>SessionContext</code> to be used for the session; if
+ * <code>null</code>, a default context is used
+ * @return the old <code>SessionContext</code> used before
+ * <code>setContext</code> was called
+ */
+ SessionContext setContext(SessionContext context);
+
+ // localization
+
+ /**
+ * Get the current locale to be used for this session.
+ */
+ Locale getLocale();
+
+ // extensions
+
+ // TODO : clarify extension handling
+
+ /*
+ * basic idea is: Application does something like startup:
+ * session.setExtensionHandler('action', handler); performing an action:
+ * session.set('action'); ... do some operations on the session ... -->
+ * handler.handleExtension('action') is called by runtime
+ */
+
+ /**
+ * Get an ID representing an 'extension context' (an action or something)?
+ */
+ String getExtensionContext();
+
+ /**
+ * Set an ID representing an 'extension context' (an action or something)?
+ * (null = default/no context)
+ *
+ * @param context
+ * @return
+ */
+ String setExtensionContext(String context);
+
+ /**
+ * Get the <code>ExtensionHandler</code> for a given 'extension context'.
+ * (null = default)
+ *
+ * @param context
+ * @return
+ */
+ ExtensionHandler getExtensionHandler(String context);
+
+ /**
+ * Set the <code>ExtensionHandler</code> for a given 'extension context'.
+ * (null = default)
+ *
+ * @param context
+ * @param extensionHandler
+ * @return
+ */
+ ExtensionHandler setExtensionHandler(String context,
+ ExtensionHandler extensionHandler);
+
+ // services
+
+ /**
+ * Repository service <code>getRepositoryInfo()</code>.
+ */
+ RepositoryInfo getRepositoryInfo();
+
+ /**
+ * Access to the object services <code>create</code><i>...</i>, plus factory
+ * methods to create <code>Acl</code>s, <code>Ace</code>s, and
+ * <code>ContentStream</code>.
+ */
+ ObjectFactory getObjectFactory();
+
+ /**
+ * Get the factory for <code>Property</code> objects.
+ */
+ PropertyFactory getPropertyFactory();
+
+ ObjectType getTypeDefinition(String typeId);
+
+ PagingList<ObjectType> getTypeChildren(ObjectType t,
+ boolean includePropertyDefinitions, int itemsPerPage);
+
+ PagingList<ObjectType> getTypeDescendants(ObjectType t, int depth,
+ boolean includePropertyDefinitions, int itemsPerPage);
+
+ // navigation
+
+ /**
+ * Get the root folder for the repository.
+ */
+ Folder getRootFolder();
+
+ /**
+ * Navigation service <code>getCheckedOutDocs</code>.
+ *
+ * @param folder
+ * @param orderby
+ * @return @
+ */
+ PagingList<Document> getCheckedOutDocs(Folder folder, String orderby,
+ int itemsPerPage);
+
+ /**
+ * Object service <code>getObject</code>.
+ *
+ * @param objectid
+ * @return @
+ */
+ CmisObject getObject(String objectid);
+
+ /**
+ * Object service <code>getObjectByPath</code>.
+ *
+ * @param path
+ * @return @
+ */
+ CmisObject getObjectByPath(String path);
+
+ // discovery
+
+ /**
+ * Discovery service <code>query</code>.
+ */
+ PagingList<CmisObject> query(String statement, boolean searchAllVersions,
+ int itemsPerPage);
+
+ /**
+ * Discovery service <code>getContentChanges</code>.
+ *
+ * @return
+ */
+ PagingList<ChangeEvent> getContentChanges(String changeLogToken,
+ int itemsPerPage);
}
Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/SessionFactory.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/SessionFactory.java?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/SessionFactory.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/SessionFactory.java Mon Feb 22 10:26:19 2010
@@ -47,24 +47,24 @@
* <br>parameters.put(SessionParameter.SESSION_TYPE, SessionType.TRANSIENT.value());
* <br> ...
* <br>
- * <br>TrasnientSession s = factory.createSession(parameters);
+ * <br>TransientSession s = factory.createSession(parameters);
* </code>
*<p>
* If the <code>SessionType</code> parameter is not specified then the default
- * session is returned.
+ * persistent session is returned.
*
*/
public interface SessionFactory {
/**
- * Obtain a new session.
+ * Obtain a new session using parameter configuration.
*
+ * @param T A from the {@code Session} interface derived sub type
* @param parameters
* a {@code Map} of name/value pairs with parameters for the
- * session.
+ * session. See class {@code SessionParameter}.
* @return a {@code session} to the CMIS repository specified by the {@code
- * parameters}.
+ * parameters}.
*/
<T extends Session> T createSession(Map<String, String> parameters);
-
}
Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/TransientSession.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/TransientSession.java?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/TransientSession.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/TransientSession.java Mon Feb 22 10:26:19 2010
@@ -18,6 +18,9 @@
*/
package org.apache.opencmis.client.api;
+/**
+ * A transient session buffers all write operations in memory until the save operation is called.
+ */
public interface TransientSession extends Session {
/**
* Save all pending actions for this session. Corresponds to a <code>commit</code> if the CMIS
Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/package.html
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/package.html?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/package.html (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/package.html Mon Feb 22 10:26:19 2010
@@ -1,19 +1,22 @@
-<!--
-
- Copyright 2009 Alfresco Software Ltd / Open Text Corporation / SAP AG
+<!--
+
+ 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
- Licensed 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
- 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.
- 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.
-
-->
<html>
<head>
Added: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/util/Testable.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/util/Testable.java?rev=912529&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/util/Testable.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/util/Testable.java Mon Feb 22 10:26:19 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.client.api.util;
+
+import java.util.Map;
+
+/**
+ * Implemented by Session class and used by JUnit or other test applications to generate
+ * test data.
+ */
+public interface Testable {
+
+ static String ROOT_FOLDER_ID_PARAMETER = "org.apache.opencmis.root.id";
+ static String DOCUMENT_TYPE_ID_PARAMETER = "org.apache.opencmis.document.type.id";
+ static String FOLDER_TYPE_ID_PARAMETER = "org.apache.opencmis.folder.type.id";
+
+ /**
+ * Trigger a repository to generate test data
+ * @param parameter reserved parameter map
+ */
+ void generateTestData(Map<String, String> parameter);
+
+ /**
+ * Clean up generated data
+ */
+ void cleanUpTestData();
+}
Propchange: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/util/Testable.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/pom.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/pom.xml?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/pom.xml (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/pom.xml Mon Feb 22 10:26:19 2010
@@ -1,5 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed 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.
+ -->
+
<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
@@ -39,6 +53,13 @@
<version>2.5.2</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.opencmis</groupId>
+ <artifactId>opencmis-test-util</artifactId>
+ <version>0.1-SNAPSHOT</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
</dependencies>
</project>
Added: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java?rev=912529&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java Mon Feb 22 10:26:19 2010
@@ -0,0 +1,287 @@
+/*
+ * 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.client.runtime;
+
+import java.util.GregorianCalendar;
+import java.util.List;
+import java.util.TreeMap;
+
+import org.apache.opencmis.client.api.Ace;
+import org.apache.opencmis.client.api.CmisObject;
+import org.apache.opencmis.client.api.ContentStream;
+import org.apache.opencmis.client.api.Document;
+import org.apache.opencmis.client.api.Folder;
+import org.apache.opencmis.client.api.Policy;
+import org.apache.opencmis.client.api.Property;
+import org.apache.opencmis.client.api.Relationship;
+import org.apache.opencmis.client.api.objecttype.ObjectType;
+import org.apache.opencmis.client.api.repository.AllowableActions;
+import org.apache.opencmis.client.api.util.AceList;
+import org.apache.opencmis.client.api.util.PagingList;
+import org.apache.opencmis.commons.enums.AclPropagation;
+import org.apache.opencmis.commons.enums.BaseObjectTypeIds;
+import org.apache.opencmis.commons.enums.RelationshipDirection;
+import org.apache.opencmis.commons.enums.UnfileObjects;
+import org.apache.opencmis.commons.enums.VersioningState;
+import org.apache.opencmis.commons.exceptions.CmisRuntimeException;
+import org.apache.opencmis.commons.provider.ObjectData;
+
+public class PersistentFolderImpl implements Folder {
+
+ public PersistentFolderImpl(PersistentSessionImpl persistentSessionImpl,
+ ObjectData od) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public Document createDocument(String name) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public Document createDocument(String name, String typeId) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public Document createDocument(List<Property<?>> properties,
+ ContentStream contentstream, VersioningState versioningState,
+ List<Policy> policies, List<Ace> addACEs, List<Ace> removeACEs) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public Document createDocumentFromSource(Document source,
+ List<Property<?>> properties, VersioningState versioningState,
+ List<Policy> policies, List<Ace> addACEs, List<Ace> removeACEs) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public Folder createFolder(List<Property<?>> properties,
+ List<Policy> policies, List<Ace> addACEs, List<Ace> removeACEs) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public Policy createPolicy(List<Property<?>> properties,
+ List<Policy> policies, List<Ace> addACEs, List<Ace> removeACEs) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public List<String> deleteTree(boolean allversions, UnfileObjects unfile,
+ boolean continueOnFailure) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public List<ObjectType> getAllowedChildObjectTypes() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public PagingList<Document> getCheckedOutDocs(String orderby,
+ int itemsPerPage) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public PagingList<CmisObject> getChildren(String orderby, int itemsPerPage) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public TreeMap<String, CmisObject> getDescendants(int depth) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public Folder getFolderParent() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public TreeMap<String, CmisObject> getFolderTree(int depth) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void addAcl(List<Ace> addAces, AclPropagation aclPropagation) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void addToFolder(Folder folder, boolean allVersions) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public AceList applyAcl(List<Ace> addAces, List<Ace> removeAces,
+ AclPropagation aclPropagation) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void applyPolicy(Policy policy) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void applyPolicy(String policyId) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void delete(boolean allVersions) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public List<Ace> getAcl() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public AceList getAcl(boolean onlyBasicPermissions) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public AllowableActions getAllowableActions() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public ObjectType getBaseType() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public BaseObjectTypeIds getBaseTypeId() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public String getChangeToken() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public String getCreatedBy() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public GregorianCalendar getCreationDate() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public String getId() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public GregorianCalendar getLastModificationDate() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public String getLastModifiedBy() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public String getName() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public List<Folder> getParents() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public String getPath() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public String getPathSegment() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public List<Policy> getPolicies() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public List<Property<?>> getProperties() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public List<Property<?>> getProperties(String filter) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public <T> Property<T> getProperty(String id) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public <T> List<T> getPropertyMultivalue(String id) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public <T> T getPropertyValue(String id) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public List<Relationship> getRelationships() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public List<Relationship> getRelationships(
+ boolean includeSubRelationshipTypes,
+ RelationshipDirection relationshipDirection, ObjectType type) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public ObjectType getType() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public boolean isChanged() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public boolean isExactAcl() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public CmisObject move(Folder targetfolder) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void removeAcl(List<Ace> addAces, AclPropagation aclPropagation) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void removeFromFolder(Folder folder) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void removePolicy(Policy policy) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void removePolicy(String policyId) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void setName(String name) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public <T> void setProperty(String id, T value) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public <T> void setPropertyMultivalue(String id, List<T> value) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void setType(ObjectType type) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void setTypeId(String typeId) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void updateProperties(List<Property<?>> properties) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+}
Propchange: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java?rev=912529&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java Mon Feb 22 10:26:19 2010
@@ -0,0 +1,370 @@
+/*
+ * 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.client.runtime;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.UUID;
+
+import org.apache.opencmis.client.api.ChangeEvent;
+import org.apache.opencmis.client.api.CmisObject;
+import org.apache.opencmis.client.api.Document;
+import org.apache.opencmis.client.api.ExtensionHandler;
+import org.apache.opencmis.client.api.Folder;
+import org.apache.opencmis.client.api.PersistentSession;
+import org.apache.opencmis.client.api.Property;
+import org.apache.opencmis.client.api.SessionContext;
+import org.apache.opencmis.client.api.objecttype.ObjectType;
+import org.apache.opencmis.client.api.repository.ObjectFactory;
+import org.apache.opencmis.client.api.repository.PropertyFactory;
+import org.apache.opencmis.client.api.repository.RepositoryInfo;
+import org.apache.opencmis.client.api.util.PagingList;
+import org.apache.opencmis.client.api.util.Testable;
+import org.apache.opencmis.client.provider.factory.CmisProviderFactory;
+import org.apache.opencmis.client.runtime.cache.Cache;
+import org.apache.opencmis.client.runtime.cache.CacheImpl;
+import org.apache.opencmis.client.runtime.repository.PropertyFactoryImpl;
+import org.apache.opencmis.commons.SessionParameter;
+import org.apache.opencmis.commons.enums.CmisProperties;
+import org.apache.opencmis.commons.enums.IncludeRelationships;
+import org.apache.opencmis.commons.enums.UnfileObjects;
+import org.apache.opencmis.commons.exceptions.CmisRuntimeException;
+import org.apache.opencmis.commons.provider.CmisProvider;
+import org.apache.opencmis.commons.provider.ObjectData;
+import org.apache.opencmis.util.repository.ObjectGenerator;
+
+public class PersistentSessionImpl implements PersistentSession, Testable,
+ Serializable {
+
+ /*
+ * root folder containing generated test data
+ * (not serializable)
+ */
+ private transient Folder testRootFolder = null;
+
+ /*
+ * session parameter
+ * (serializable)
+ */
+ private Map<String, String> parameters = null;
+
+ /*
+ * CMIS provider
+ * (not serializable)
+ */
+ private transient CmisProvider provider = null;
+
+ /*
+ * Session Locale, determined from session parameter
+ * (serializable)
+ */
+ private Locale locale = null;
+
+ /*
+ * If not set explicitly then the repository id is returned by the repository
+ * (serializable)
+ */
+ private String repositoryId;
+
+ /*
+ * helper factory
+ * (non serializable)
+ */
+ private transient PropertyFactory propertyFactory = new PropertyFactoryImpl();
+
+ /*
+ * Object cache
+ */
+ private Cache cache = new CacheImpl();
+
+ /**
+ * required for serialization
+ */
+ private static final long serialVersionUID = -4287481628831198383L;
+
+ public PersistentSessionImpl(Map<String, String> parameters) {
+ this.parameters = parameters;
+ this.locale = this.determineLocale(parameters);
+ this.repositoryId = this.determineRepositoryId(parameters);
+ }
+
+ private String determineRepositoryId(Map<String, String> parameters) {
+ String repositoryId = parameters.get(SessionParameter.REPOSITORY_ID);
+ // if null then the provider will return a repository id (lazy)
+ return repositoryId;
+ }
+
+ private Locale determineLocale(Map<String, String> parameters) {
+ Locale locale = null;
+
+ String language = parameters
+ .get(SessionParameter.LOCALE_ISO639_LANGUAGE);
+ String country = parameters
+ .get(SessionParameter.LOCALE_ISO3166_COUNTRY);
+ String variant = parameters.get(SessionParameter.LOCALE_VARIANT);
+
+ if (variant != null) {
+ // all 3 parameter must not be null and valid
+ locale = new Locale(language, country, variant);
+ }else {
+ if (country != null) {
+ // 2 parameter must not be null and valid
+ locale = new Locale(language, country);
+ }else {
+ if (language != null) {
+ // 1 parameter must not be null and valid
+ locale = new Locale(language);
+ } else {
+ locale = Locale.getDefault();
+ }
+ }
+ }
+
+ return locale;
+ }
+
+ public void clear() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public PagingList<Document> getCheckedOutDocs(Folder folder,
+ String orderby, int itemsPerPage) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public PagingList<ChangeEvent> getContentChanges(String changeLogToken,
+ int itemsPerPage) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public SessionContext getContext() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public String getExtensionContext() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public ExtensionHandler getExtensionHandler(String context) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public Locale getLocale() {
+ return this.locale;
+ }
+
+ public CmisObject getObject(String objectid) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public CmisObject getObjectByPath(String path) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public ObjectFactory getObjectFactory() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public PropertyFactory getPropertyFactory() {
+ return this.propertyFactory;
+ }
+
+ public RepositoryInfo getRepositoryInfo() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public Folder getRootFolder() {
+ Folder rootFolder = null;
+
+ if (this.cache.containsPath("/")) {
+ rootFolder = (Folder) this.cache.getByPath("/");
+ } else {
+ String rootFolderId = this.getRepositoryInfo().getRootFolderId();
+ ObjectData od = this.provider.getObjectService().getObject(this.repositoryId, rootFolderId, "", false, IncludeRelationships.NONE, "", false, false, null);
+ rootFolder = new PersistentFolderImpl(this, od);
+ this.cache.put(rootFolder);
+ }
+
+ return rootFolder;
+ }
+
+ public PagingList<ObjectType> getTypeChildren(ObjectType t,
+ boolean includePropertyDefinitions, int itemsPerPage) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public ObjectType getTypeDefinition(String typeId) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public PagingList<ObjectType> getTypeDescendants(ObjectType t, int depth,
+ boolean includePropertyDefinitions, int itemsPerPage) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public PagingList<CmisObject> query(String statement,
+ boolean searchAllVersions, int itemsPerPage) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public SessionContext setContext(SessionContext context) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public String setExtensionContext(String context) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public ExtensionHandler setExtensionHandler(String context,
+ ExtensionHandler extensionHandler) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void generateTestData(Map<String, String> parameter) {
+ ObjectGenerator og = new ObjectGenerator(this.provider.getObjectFactory(), this.provider.getNavigationService(), this.provider.getObjectService(), this.repositoryId);
+ Folder rootFolder = null;
+ String documentTypeId = null;
+ String folderTypeId = null;
+
+ // check preconditions (mandatory parameter)
+ if (!parameter.containsKey(Testable.DOCUMENT_TYPE_ID_PARAMETER)) {
+ throw new CmisRuntimeException(
+ "Can't genereate test data! Paramter missing: "
+ + Testable.DOCUMENT_TYPE_ID_PARAMETER);
+ } else {
+ documentTypeId = parameter.get(Testable.DOCUMENT_TYPE_ID_PARAMETER);
+ }
+ if (!parameter.containsKey(Testable.FOLDER_TYPE_ID_PARAMETER)) {
+ throw new CmisRuntimeException(
+ "Can't genereate test data! Paramter missing: "
+ + Testable.FOLDER_TYPE_ID_PARAMETER);
+ } else {
+ folderTypeId = parameter.get(Testable.FOLDER_TYPE_ID_PARAMETER);
+ }
+
+ // optional test root folder:
+ if (parameter.containsKey(Testable.ROOT_FOLDER_ID_PARAMETER)) {
+ // test root folder
+ String testRootId = parameter
+ .get(Testable.ROOT_FOLDER_ID_PARAMETER);
+ rootFolder = (Folder) this.getObject(testRootId);
+ } else {
+ // repository root
+ rootFolder = this.getRootFolder();
+ }
+
+ // create test root folder
+ List<Property<?>> properties = new ArrayList<Property<?>>();
+ Property<String> nameProperty = this.getPropertyFactory()
+ .createCmisProperty(CmisProperties.NAME,
+ UUID.randomUUID().toString());
+ properties.add(nameProperty);
+ this.testRootFolder = rootFolder.createFolder(properties, null, null,
+ null);
+
+ og.setContentSizeInKB(10);
+ og.setDocumentTypeId(documentTypeId);
+ og.setFolderTypeId(folderTypeId);
+ og.setNumberOfDocumentsToCreatePerFolder(2);
+ og.setDocumentPropertiesToGenerate(null);
+ og.setFolderPropertiesToGenerate(null);
+
+ og.createFolderHierachy(2, 2, this.testRootFolder.getId());
+ }
+
+ public void cleanUpTestData() {
+ if (this.testRootFolder != null) {
+ this.testRootFolder.deleteTree(true, UnfileObjects.DELETE, true);
+ this.testRootFolder = null;
+ }
+ }
+
+ /**
+ * Connect session object to the provider. This is the very first call after
+ * a session is created.
+ * <p>
+ * In dependency of the parameter set an {@code AtomPub}, a {@code
+ * WebService} or an {@code InMemory} provider is selected.
+ */
+ public void connect() {
+ if (this.parameters == null || this.parameters.isEmpty()) {
+ throw new CmisRuntimeException("Session parameter not set!");
+ }
+ // Is the AtomPub URL set?
+ boolean isAtomPub = this.parameters
+ .containsKey(SessionParameter.ATOMPUB_URL) ? true : false;
+ // Are the WebService Prefix or all service URLS are set?
+ boolean isWebService = this.parameters
+ .containsKey(SessionParameter.WEBSERVICE_URL_PREFIX)
+ || (this.parameters
+ .containsKey(SessionParameter.WEBSERVICES_ACL_SERVICE)
+ && this.parameters
+ .containsKey(SessionParameter.WEBSERVICES_DISCOVERY_SERVICE)
+ && this.parameters
+ .containsKey(SessionParameter.WEBSERVICES_MULTIFILING_SERVICE)
+ && this.parameters
+ .containsKey(SessionParameter.WEBSERVICES_NAVIGATION_SERVICE)
+ && this.parameters
+ .containsKey(SessionParameter.WEBSERVICES_OBJECT_SERVICE)
+ && this.parameters
+ .containsKey(SessionParameter.WEBSERVICES_POLICY_SERVICE)
+ && this.parameters
+ .containsKey(SessionParameter.WEBSERVICES_RELATIONSHIP_SERVICE)
+ && this.parameters
+ .containsKey(SessionParameter.WEBSERVICES_REPOSITORY_SERVICE) && this.parameters
+ .containsKey(SessionParameter.WEBSERVICES_VERSIONING_SERVICE)) ? true
+ : false;
+
+ if (!(isAtomPub ^ isWebService)) {
+ // Illegal parameter combination
+ throw new CmisRuntimeException("Ambiguous session parameter: "
+ + this.parameters);
+ }
+
+ if (isAtomPub) {
+ this.provider = this.creaetAtomPubProvider(this.parameters);
+ } else if (isWebService) {
+ this.provider = this.creaetWebServiceProvider(this.parameters);
+ } else {
+ // Illegal parameter combination
+ throw new CmisRuntimeException("Ambiguous session parameter: "
+ + this.parameters);
+ }
+
+ }
+
+ private CmisProvider creaetWebServiceProvider(Map<String, String> parameters) {
+ CmisProviderFactory factory = CmisProviderFactory.newInstance();
+ CmisProvider provider = factory
+ .createCmisWebServicesProvider(parameters);
+
+ return provider;
+ }
+
+ private CmisProvider creaetAtomPubProvider(Map<String, String> parameters) {
+ CmisProviderFactory factory = CmisProviderFactory.newInstance();
+ CmisProvider provider = factory.createCmisAtomPubProvider(parameters);
+
+ return provider;
+ }
+
+}
Propchange: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/SessionFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/SessionFactoryImpl.java?rev=912529&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/SessionFactoryImpl.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/SessionFactoryImpl.java Mon Feb 22 10:26:19 2010
@@ -0,0 +1,79 @@
+/*
+ * 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.client.runtime;
+
+import java.util.Map;
+
+import org.apache.opencmis.client.api.Session;
+import org.apache.opencmis.client.api.SessionFactory;
+import org.apache.opencmis.commons.SessionParameter;
+import org.apache.opencmis.commons.enums.SessionType;
+import org.apache.opencmis.commons.exceptions.CmisNotSupportedException;
+import org.apache.opencmis.commons.exceptions.CmisRuntimeException;
+
+/**
+ * Default implementation of a session factory. Used by unit tests or
+ * applications that depend directly on runtime implementation.
+ * <p>
+ * <code>
+ * SessionFactory sf = new SessionFactoryImpl();<br>
+ * Session s = sf.create(...);
+ * </code>
+ * <p>
+ * Alternative factory lookup methods:
+ * <p>
+ * <p>
+ * <code>
+ * Context ctx = new DefaultContext();<br>
+ * SessionFactory = ctx.lookup(jndi_key);
+ * </code>
+ */
+public class SessionFactoryImpl implements SessionFactory {
+
+ @SuppressWarnings("unchecked")
+ public <T extends Session> T createSession(Map<String, String> parameters) {
+ Session s = null;
+ SessionType t = null;
+
+ // determine session type
+ if (parameters.containsKey(SessionParameter.SESSION_TYPE)) {
+ t = SessionType.fromValue(parameters
+ .get(SessionParameter.SESSION_TYPE));
+ } else {
+ // default session type if type is not set
+ t = SessionType.PERSISTENT;
+ }
+
+ switch (t) {
+ case PERSISTENT:
+ PersistentSessionImpl ps = new PersistentSessionImpl(parameters);
+ ps.connect(); // connect session with provider
+ s = ps;
+ break;
+ case TRANSIENT:
+ throw new CmisNotSupportedException("SessionType " + t
+ + "not implemented!");
+ default:
+ throw new CmisRuntimeException("SessionType " + t + "not known!");
+ }
+
+ return (T) s;
+ }
+
+}
Propchange: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/SessionFactoryImpl.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/cache/Cache.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/cache/Cache.java?rev=912529&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/cache/Cache.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/cache/Cache.java Mon Feb 22 10:26:19 2010
@@ -0,0 +1,47 @@
+/*
+ * 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.client.runtime.cache;
+
+import java.util.List;
+
+import org.apache.opencmis.client.api.CmisObject;
+
+/**
+ * Implements a session cache providing following capabilities:
+ * <p>
+ * <lu>
+ * <li>access CmisObject by object id</li>
+ * <li>access CmisObject by object path</li>
+ * <li>access CmisObjects by paging parameter</li>
+ * </lu>
+ */
+public interface Cache {
+
+ boolean containsId(String objectId);
+ boolean containsPath(String path);
+
+ void put(CmisObject object);
+ // public void put(List<CmisObject> pageRange, int pageNumber);
+
+ CmisObject get(String objectId);
+ CmisObject getByPath(String path);
+ // public List<CmisObject> get(int pageNumber);
+
+ void clear();
+}
Propchange: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/cache/Cache.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/cache/CacheImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/cache/CacheImpl.java?rev=912529&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/cache/CacheImpl.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/cache/CacheImpl.java Mon Feb 22 10:26:19 2010
@@ -0,0 +1,57 @@
+/*
+ * 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.client.runtime.cache;
+
+import java.io.Serializable;
+
+import org.apache.opencmis.client.api.CmisObject;
+import org.apache.opencmis.commons.exceptions.CmisRuntimeException;
+
+public class CacheImpl implements Cache, Serializable {
+
+ /**
+ * serialization
+ */
+ private static final long serialVersionUID = 1978445442452564094L;
+
+ public boolean containsId(String objectId){
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void clear() {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public boolean containsPath(String path) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public CmisObject get(String objectId) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public CmisObject getByPath(String path) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public void put(CmisObject object) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+}
Propchange: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/cache/CacheImpl.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/PropertyFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/PropertyFactoryImpl.java?rev=912529&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/PropertyFactoryImpl.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/PropertyFactoryImpl.java Mon Feb 22 10:26:19 2010
@@ -0,0 +1,44 @@
+/*
+ * 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.client.runtime.repository;
+
+import java.util.List;
+
+import org.apache.opencmis.client.api.Property;
+import org.apache.opencmis.client.api.repository.PropertyFactory;
+import org.apache.opencmis.commons.enums.CmisProperties;
+import org.apache.opencmis.commons.enums.PropertyType;
+import org.apache.opencmis.commons.exceptions.CmisRuntimeException;
+
+public class PropertyFactoryImpl implements PropertyFactory {
+
+ public <T> Property<T> createCmisProperty(CmisProperties p, T value) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public <T> Property<T> createProperty(String id, PropertyType type, T value) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+ public <T> Property<T> createPropertyMultivalue(String id,
+ PropertyType type, List<T> value) {
+ throw new CmisRuntimeException("not implemented");
+ }
+
+}
Propchange: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/PropertyFactoryImpl.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/test/Fixture.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/test/Fixture.java?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/test/Fixture.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/test/Fixture.java Mon Feb 22 10:26:19 2010
@@ -22,124 +22,137 @@
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.apache.opencmis.client.api.Session;
import org.apache.opencmis.client.api.SessionFactory;
+import org.apache.opencmis.client.api.util.Testable;
import org.apache.opencmis.commons.SessionParameter;
import org.apache.opencmis.test.mock.MockSessionFactory;
/**
- * Definition of unit environment for running test cases. Default implementation supports InMemory
- * binding of OpenCMIS which can be used for stand alone test cases. Within test unit suite it is
- * possible to overwrite the fixture.
+ * Definition of unit environment for running test cases. Default implementation
+ * supports InMemory binding of OpenCMIS which can be used for stand alone test
+ * cases. Within test unit suite it is possible to overwrite the fixture.
*
*/
public class Fixture {
- public static String PROPERTY_FILTER = "*";
- /*
- * general
- */
- public static String TEST_ROOT_FOLDER_NAME = null;
- public static String FOLDER_TYPE_ID = "test.folder";
- public static String DOCUMENT_TYPE_ID = "test.file";
- public static String QUERY = "SELECT * FROM cmis:document";
- /*
- * cmis objects
- */
- public static String FOLDER1_NAME = "folder.1";
- public static String FOLDER2_NAME = "folder.2";
- public static String DOCUMENT1_NAME = "document.1.txt";
- public static String DOCUMENT2_NAME = "document.2.txt";
-
- /*
- * properties
- */
- public static String PROPERTY_NAME_STRING = "StringProperty";
- public static String PROPERTY_VALUE_STRING = "abc";
- public static String PROPERTY_NAME_INTEGER = "IntegerProperty";
- public static Integer PROPERTY_VALUE_INTEGER = new Integer(4711);
- public static String PROPERTY_NAME_BOOLEAN = "BooleanProperty";
- public static Boolean PROPERTY_VALUE_BOOLEAN = new Boolean(true);
- public static String PROPERTY_NAME_DOUBLE = "DoubleProperty";
- public static Double PROPERTY_VALUE_DOUBLE = new Double(1.0);
- public static String PROPERTY_NAME_FLOAT = "FloatProperty";
- public static Float PROPERTY_VALUE_FLOAT = new Float(1.0);
- public static String PROPERTY_NAME_ID = "DoubleProperty";
- public static String PROPERTY_VALUE_ID = "xyz";
- public static String PROPERTY_NAME_HTML = "HtmlProperty";
- public static String PROPERTY_VALUE_HTML = "<body>";
- public static String PROPERTY_NAME_DATETIME = "DateTimeProperty";
- public static Calendar PROPERTY_VALUE_DATETIME = GregorianCalendar.getInstance();
- public static String PROPERTY_NAME_URI = "UriProperty";
- public static URI PROPERTY_VALUE_URI = URI.create("http://foo.com");
- public static final String PROPERTY_NAME_STRING_MULTI_VALUED = "MultiValuedStringProperty";
-
- static {
- Fixture.TEST_ROOT_FOLDER_NAME = "test_" + UUID.randomUUID().toString();
- }
-
- /**
- * @return session parameter
- */
- public static Map<String, String> getParamter() {
- return paramter;
- }
-
- /**
- * Overwriting default session parameter.
- *
- * @param paramter
- */
- public static void setParamter(Map<String, String> paramter) {
- Fixture.paramter = paramter;
- }
-
- /**
- * session parameter.
- */
- private static Map<String, String> paramter = null;
-
- /**
- * Overwriting default session factory.
- *
- * @param factory
- */
- public static void setSessionFactory(SessionFactory factory) {
- Fixture.factory = factory;
- }
-
- /**
- * @return factory
- */
- public static SessionFactory getSessionFactory() {
- return Fixture.factory;
- }
-
- /**
- * factory
- */
- private static SessionFactory factory = null;
-
- static {
- // Mock as default
- Map<String, String> parameter = new HashMap<String, String>();
-
- parameter.put(SessionParameter.USER, "Mr. Mock");
- parameter.put(SessionParameter.PASSWORD, "*mock#");
- parameter.put(SessionParameter.LOCALE_ISO639_LANGUAGE, "EN");
-
- Fixture.paramter = parameter;
- Fixture.factory = new MockSessionFactory();
- }
-
- public static void setUpTestData(Session session) {
-
- }
-
- public static void teardownTestData(Session session) {
-
- }
+ public static String PROPERTY_FILTER = "*";
+ /*
+ * general
+ */
+ public static String TEST_ROOT_FOLDER_NAME = null;
+ public static String FOLDER_TYPE_ID = "test.folder";
+ public static String DOCUMENT_TYPE_ID = "test.file";
+ public static String QUERY = "SELECT * FROM cmis:document";
+ /*
+ * cmis objects
+ */
+ public static String FOLDER1_NAME = "folder.1";
+ public static String FOLDER2_NAME = "folder.2";
+ public static String DOCUMENT1_NAME = "document.1.txt";
+ public static String DOCUMENT2_NAME = "document.2.txt";
+
+ /*
+ * properties
+ */
+ public static String PROPERTY_NAME_STRING = "StringProperty";
+ public static String PROPERTY_VALUE_STRING = "abc";
+ public static String PROPERTY_NAME_INTEGER = "IntegerProperty";
+ public static Integer PROPERTY_VALUE_INTEGER = new Integer(4711);
+ public static String PROPERTY_NAME_BOOLEAN = "BooleanProperty";
+ public static Boolean PROPERTY_VALUE_BOOLEAN = new Boolean(true);
+ public static String PROPERTY_NAME_DOUBLE = "DoubleProperty";
+ public static Double PROPERTY_VALUE_DOUBLE = new Double(1.0);
+ public static String PROPERTY_NAME_FLOAT = "FloatProperty";
+ public static Float PROPERTY_VALUE_FLOAT = new Float(1.0);
+ public static String PROPERTY_NAME_ID = "DoubleProperty";
+ public static String PROPERTY_VALUE_ID = "xyz";
+ public static String PROPERTY_NAME_HTML = "HtmlProperty";
+ public static String PROPERTY_VALUE_HTML = "<body>";
+ public static String PROPERTY_NAME_DATETIME = "DateTimeProperty";
+ public static Calendar PROPERTY_VALUE_DATETIME = GregorianCalendar
+ .getInstance();
+ public static String PROPERTY_NAME_URI = "UriProperty";
+ public static URI PROPERTY_VALUE_URI = URI.create("http://foo.com");
+ public static final String PROPERTY_NAME_STRING_MULTI_VALUED = "MultiValuedStringProperty";
+
+ static {
+ Fixture.TEST_ROOT_FOLDER_NAME = "test_" + UUID.randomUUID().toString();
+ }
+
+ /**
+ * @return session parameter
+ */
+ public static Map<String, String> getParamter() {
+ return paramter;
+ }
+
+ /**
+ * Overwriting default session parameter.
+ *
+ * @param paramter
+ */
+ public static void setParamter(Map<String, String> paramter) {
+ Fixture.paramter = paramter;
+ }
+
+ /**
+ * session parameter.
+ */
+ private static Map<String, String> paramter = null;
+
+ /**
+ * Overwriting default session factory.
+ *
+ * @param factory
+ */
+ public static void setSessionFactory(SessionFactory factory) {
+ Fixture.factory = factory;
+ }
+
+ /**
+ * @return factory
+ */
+ public static SessionFactory getSessionFactory() {
+ return Fixture.factory;
+ }
+
+ /**
+ * factory
+ */
+ private static SessionFactory factory = null;
+
+ static {
+ // Mock as default
+ Map<String, String> parameter = new HashMap<String, String>();
+
+ parameter.put(SessionParameter.USER, "Mr. Mock");
+ parameter.put(SessionParameter.PASSWORD, "*mock#");
+ parameter.put(SessionParameter.LOCALE_ISO639_LANGUAGE, "EN");
+
+ Fixture.paramter = parameter;
+ Fixture.factory = new MockSessionFactory();
+ }
+
+ public static void setUpTestData(Session session) {
+ if (session instanceof Testable) {
+ Map<String, String> p = new Hashtable<String, String>();
+ p.put(Testable.FOLDER_TYPE_ID_PARAMETER, Fixture.FOLDER_TYPE_ID);
+ p
+ .put(Testable.DOCUMENT_TYPE_ID_PARAMETER,
+ Fixture.DOCUMENT_TYPE_ID);
+ ((Testable) session).generateTestData(p);
+ }
+ }
+
+ public static void teardownTestData(Session session) {
+ if (session instanceof Testable) {
+ ((Testable) session).cleanUpTestData();
+ }
+ }
}
Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/test/suite/otx/OtxAtomPubCmisTestSuite.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/test/suite/otx/OtxAtomPubCmisTestSuite.java?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/test/suite/otx/OtxAtomPubCmisTestSuite.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/test/suite/otx/OtxAtomPubCmisTestSuite.java Mon Feb 22 10:26:19 2010
@@ -19,25 +19,26 @@
package org.apache.opencmis.test.suite.otx;
import java.util.HashMap;
+import java.util.Locale;
import java.util.Map;
+import org.apache.opencmis.client.runtime.SessionFactoryImpl;
+import org.apache.opencmis.commons.SessionParameter;
+import org.apache.opencmis.commons.enums.SessionType;
+import org.apache.opencmis.test.Fixture;
+import org.apache.opencmis.test.ReadOnlyCreateSessionTest;
+import org.apache.opencmis.test.ReadOnlySessionTest;
+import org.apache.opencmis.test.suite.AbstractCmisTestSuite;
import org.junit.runner.RunWith;
import org.junit.runners.Suite.SuiteClasses;
import org.junit.runners.model.InitializationError;
import org.junit.runners.model.RunnerBuilder;
-import org.apache.opencmis.test.Fixture;
-import org.apache.opencmis.test.ReadOnlyAclCapabilityTest;
-import org.apache.opencmis.test.ReadOnlyCreateSessionTest;
-import org.apache.opencmis.test.ReadOnlyObjectTest;
-import org.apache.opencmis.test.ReadOnlyRepositoryInfoTest;
-import org.apache.opencmis.test.suite.AbstractCmisTestSuite;
/**
* Test suite to run OTX AtomPub binding.
*/
@RunWith(OtxAtomPubCmisTestSuite.class)
-@SuiteClasses( { ReadOnlyCreateSessionTest.class, ReadOnlyRepositoryInfoTest.class,
- ReadOnlyObjectTest.class, ReadOnlyAclCapabilityTest.class })
+@SuiteClasses( { ReadOnlyCreateSessionTest.class, ReadOnlySessionTest.class })
public class OtxAtomPubCmisTestSuite extends AbstractCmisTestSuite {
public OtxAtomPubCmisTestSuite(Class<?> klass, RunnerBuilder r) throws InitializationError {
@@ -47,15 +48,30 @@
@Override
protected void initializeFixture() {
Map<String, String> parameter = new HashMap<String, String>();
- // parameter.put(Session.URL, "http://pwdf6227:8080/cmis/atom");
- // parameter.put(Session.USER, "test");
- // parameter.put(Session.PASSWORD, "test");
- // parameter.put(Session.BINDING, "atompub");
- // parameter.put(Session.PROVIDER, "otx");
- // parameter.put(Session.REPOSITORY_ID, "myRepository");
+ parameter.put(SessionParameter.USER, "admin");
+ parameter.put(SessionParameter.PASSWORD, "livelink");
+ parameter.put(SessionParameter.SESSION_TYPE, SessionType.PERSISTENT.value());
+ parameter.put(SessionParameter.LOCALE_ISO3166_COUNTRY, Locale.GERMANY.getISO3Country());
+ parameter.put(SessionParameter.LOCALE_ISO639_LANGUAGE, Locale.GERMANY.getISO3Language());
+ parameter.put(SessionParameter.ATOMPUB_URL, "http://pwdf6227:8080/cmis/atom");
+// parameter.put(SessionParameter.WEBSERVICE_URL_PREFIX, "http://pwdf6227:8080/cmis/services");
+
+ Fixture.DOCUMENT_TYPE_ID = "sap.doc";
+ Fixture.FOLDER_TYPE_ID = "sap.folder";
+
+// -Dopencmis.test=true
+// -Dopencmis.test.username=admin
+// -Dopencmis.test.password=livelink
+// -Dopencmis.test.repository=testApp
+// -Dopencmis.test.testfolder=default/F34485
+// -Dopencmis.test.documenttype=sap.doc
+// -Dopencmis.test.foldertype=sap.folder
+// -Dopencmis.test.webservices.url=http://pwdf6227:8080/cmis/services/
+// -Dopencmis.test.atompub.url=http://pwdf6227:8080/cmis/atom
+
Fixture.setParamter(parameter);
- Fixture.setSessionFactory(null);
+ Fixture.setSessionFactory(new SessionFactoryImpl());
}
}
Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-provider-impl/pom.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-provider-impl/pom.xml?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-provider-impl/pom.xml (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-provider-impl/pom.xml Mon Feb 22 10:26:19 2010
@@ -1,5 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed 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.
+ -->
+
<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
Modified: incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/pom.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/pom.xml?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/pom.xml (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/pom.xml Mon Feb 22 10:26:19 2010
@@ -1,5 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed 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.
+ -->
+
<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
Modified: incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/SessionParameter.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/SessionParameter.java?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/SessionParameter.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/SessionParameter.java Mon Feb 22 10:26:19 2010
@@ -26,50 +26,56 @@
*/
public final class SessionParameter {
- private SessionParameter() {
- }
+ private SessionParameter() {
+ }
- // ---- general parameter ----
- public static final String USER = "org.apache.opencmis.user";
- public static final String PASSWORD = "org.apache.opencmis.password";
-
- // ---- provider parameter ----
- /** Class name of the binding class. */
- public static final String BINDING_SPI_CLASS = "org.apache.opencmis.provider.binding.classname";
-
- /** URL of the AtomPub service document. */
- public static final String ATOMPUB_URL = "org.apache.opencmis.provider.atompub.url";
-
- public static final String WEBSERVICES_REPOSITORY_SERVICE = "org.apache.opencmis.provider.webservices.RepositoryService";
- public static final String WEBSERVICES_NAVIGATION_SERVICE = "org.apache.opencmis.provider.webservices.NavigationService";
- public static final String WEBSERVICES_OBJECT_SERVICE = "org.apache.opencmis.provider.webservices.ObjectService";
- public static final String WEBSERVICES_VERSIONING_SERVICE = "org.apache.opencmis.provider.webservices.VersioningService";
- public static final String WEBSERVICES_DISCOVERY_SERVICE = "org.apache.opencmis.provider.webservices.DiscoveryService";
- public static final String WEBSERVICES_RELATIONSHIP_SERVICE = "org.apache.opencmis.provider.webservices.RelationshipService";
- public static final String WEBSERVICES_MULTIFILING_SERVICE = "org.apache.opencmis.provider.webservices.MultiFilingService";
- public static final String WEBSERVICES_POLICY_SERVICE = "org.apache.opencmis.provider.webservices.PolicyService";
- public static final String WEBSERVICES_ACL_SERVICE = "org.apache.opencmis.provider.webservices.ACLService";
-
- /** Class name of the authentication provider. */
- public static final String AUTHENTICATION_PROVIDER_CLASS = "org.apache.opencmis.provider.auth.classname";
-
- /** Toggle for HTTP basic authentication. Evaluated by the standard authentication provider. */
- public static final String AUTH_HTTP_BASIC = "org.apache.opencmis.provider.auth.http.basic";
- /**
- * Toggle for WS-Security UsernameToken authentication. Evaluated by the standard authentication
- * provider.
- */
- public static final String AUTH_SOAP_USERNAMETOKEN = "org.apache.opencmis.provider.auth.soap.usernametoken";
-
- public static final String CACHE_SIZE_REPOSITORIES = "org.apache.opencmis.provider.cache.repositories.size";
- public static final String CACHE_SIZE_TYPES = "org.apache.opencmis.provider.cache.types.size";
- public static final String CACHE_SIZE_OBJECTS = "org.apache.opencmis.provider.cache.objects.size";
-
- // --- session control ---
-
- public static final String LOCALE_ISO639_LANGUAGE = "org.apache.opencmis.locale.iso639";
- public static final String LOCALE_ISO3166_COUNTRY = "org.apache.opencmis.locale.iso3166";
- public static final String LOCALE_VARIANT = "org.apache.opencmis.locale.variant";
+ // ---- general parameter ----
+ public static final String USER = "org.apache.opencmis.user";
+ public static final String PASSWORD = "org.apache.opencmis.password";
+
+ // ---- provider parameter ----
+ /** Class name of the binding class. */
+ public static final String BINDING_SPI_CLASS = "org.apache.opencmis.provider.binding.classname";
+
+ /** URL of the AtomPub service document. */
+ public static final String ATOMPUB_URL = "org.apache.opencmis.provider.atompub.url";
+
+ public static final String WEBSERVICE_URL_PREFIX = "org.apache.opencmis.provider.webservices.url";
+
+ public static final String WEBSERVICES_REPOSITORY_SERVICE = "org.apache.opencmis.provider.webservices.RepositoryService";
+ public static final String WEBSERVICES_NAVIGATION_SERVICE = "org.apache.opencmis.provider.webservices.NavigationService";
+ public static final String WEBSERVICES_OBJECT_SERVICE = "org.apache.opencmis.provider.webservices.ObjectService";
+ public static final String WEBSERVICES_VERSIONING_SERVICE = "org.apache.opencmis.provider.webservices.VersioningService";
+ public static final String WEBSERVICES_DISCOVERY_SERVICE = "org.apache.opencmis.provider.webservices.DiscoveryService";
+ public static final String WEBSERVICES_RELATIONSHIP_SERVICE = "org.apache.opencmis.provider.webservices.RelationshipService";
+ public static final String WEBSERVICES_MULTIFILING_SERVICE = "org.apache.opencmis.provider.webservices.MultiFilingService";
+ public static final String WEBSERVICES_POLICY_SERVICE = "org.apache.opencmis.provider.webservices.PolicyService";
+ public static final String WEBSERVICES_ACL_SERVICE = "org.apache.opencmis.provider.webservices.ACLService";
+
+ /** Class name of the authentication provider. */
+ public static final String AUTHENTICATION_PROVIDER_CLASS = "org.apache.opencmis.provider.auth.classname";
+
+ /**
+ * Toggle for HTTP basic authentication. Evaluated by the standard
+ * authentication provider.
+ */
+ public static final String AUTH_HTTP_BASIC = "org.apache.opencmis.provider.auth.http.basic";
+ /**
+ * Toggle for WS-Security UsernameToken authentication. Evaluated by the
+ * standard authentication provider.
+ */
+ public static final String AUTH_SOAP_USERNAMETOKEN = "org.apache.opencmis.provider.auth.soap.usernametoken";
+
+ public static final String CACHE_SIZE_REPOSITORIES = "org.apache.opencmis.provider.cache.repositories.size";
+ public static final String CACHE_SIZE_TYPES = "org.apache.opencmis.provider.cache.types.size";
+ public static final String CACHE_SIZE_OBJECTS = "org.apache.opencmis.provider.cache.objects.size";
+
+ // --- session control ---
+
+ public static final String LOCALE_ISO639_LANGUAGE = "org.apache.opencmis.locale.iso639";
+ public static final String LOCALE_ISO3166_COUNTRY = "org.apache.opencmis.locale.iso3166";
+ public static final String LOCALE_VARIANT = "org.apache.opencmis.locale.variant";
- public static final String SESSION_TYPE = "org.apache.opencmis.session.type";
+ public static final String SESSION_TYPE = "org.apache.opencmis.session.type";
+ public static final Object REPOSITORY_ID = "org.apache.opencmis.session.repository.id";
}
Modified: incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-impl/pom.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-impl/pom.xml?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-impl/pom.xml (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-impl/pom.xml Mon Feb 22 10:26:19 2010
@@ -1,5 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed 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.
+ -->
+
<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
Modified: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-fileshare/pom.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-fileshare/pom.xml?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-fileshare/pom.xml (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-fileshare/pom.xml Mon Feb 22 10:26:19 2010
@@ -1,5 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed 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.
+ -->
+
<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
Modified: incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-impl/pom.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-impl/pom.xml?rev=912529&r1=912528&r2=912529&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-impl/pom.xml (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-server/opencmis-server-impl/pom.xml Mon Feb 22 10:26:19 2010
@@ -1,5 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed 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.
+ -->
+
<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