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/23 14:55:19 UTC

svn commit: r915349 - in /incubator/chemistry/trunk/opencmis: opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/ opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/ openc...

Author: sklevenz
Date: Tue Feb 23 13:55:18 2010
New Revision: 915349

URL: http://svn.apache.org/viewvc?rev=915349&view=rev
Log:
Continuous Runtime Implementation and Unit Tests
- runtime implementation
- make unit test suite parameterizable by system properties and properties files
https://issues.apache.org/jira/browse/CMIS-124

Added:
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AclPermissionImpl.java   (with props)
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionMappingImpl.java   (with props)
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryAclCapabilitiesImpl.java   (with props)
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/GenericTestSuite.java   (with props)
Modified:
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/RepositoryInfoImpl.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/Fixture.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/otx/OtxInMemoryCmisTestSuite.java
    incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/enums/BindingType.java

Added: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AclPermissionImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AclPermissionImpl.java?rev=915349&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AclPermissionImpl.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AclPermissionImpl.java Tue Feb 23 13:55:18 2010
@@ -0,0 +1,46 @@
+/*
+ * 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 org.apache.opencmis.client.api.AclPermission;
+
+public class AclPermissionImpl implements AclPermission, Serializable {
+
+	/**
+	 * serialization
+	 */
+	private static final long serialVersionUID = -3820947135577677874L;
+
+	private String description = null;
+
+	public AclPermissionImpl(String descr) {
+		this.description = descr;
+	}
+
+	public String getDescription() {
+		return this.description;
+	}
+
+	public String getName() {
+		return this.description;
+	}
+
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AclPermissionImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 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=915349&r1=915348&r2=915349&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java Tue Feb 23 13:55:18 2010
@@ -44,9 +44,13 @@
 
 public class PersistentFolderImpl implements Folder {
 
-	public PersistentFolderImpl(PersistentSessionImpl persistentSessionImpl,
-			ObjectData od) {
-		throw new CmisRuntimeException("not implemented");
+	private PersistentSessionImpl session;
+	private ObjectData objectData;
+
+	public PersistentFolderImpl(PersistentSessionImpl session, ObjectData od) {
+
+		this.session = session;
+		this.objectData = od;
 	}
 
 	public Document createDocument(String name) {
@@ -167,7 +171,7 @@
 	}
 
 	public String getId() {
-		throw new CmisRuntimeException("not implemented");
+		return this.objectData.getId();
 	}
 
 	public GregorianCalendar getLastModificationDate() {

Modified: 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=915349&r1=915348&r2=915349&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java Tue Feb 23 13:55:18 2010
@@ -353,13 +353,13 @@
 
 		switch (bt) {
 		case ATOM:
-			this.provider = this.creaetAtomPubProvider(this.parameters);
+			this.provider = this.createAtomPubProvider(this.parameters);
 			break;
-		case SOAP:
-			this.provider = this.creaetWebServiceProvider(this.parameters);
+		case WEBSERVICE:
+			this.provider = this.createWebServiceProvider(this.parameters);
 			break;
 		case UNSPECIFIC:
-			this.provider = this.creaetUnspecificProvider(this.parameters);
+			this.provider = this.createUnspecificProvider(this.parameters);
 			break;
 		default:
 			throw new CmisRuntimeException("Ambiguous session parameter: "
@@ -367,13 +367,13 @@
 		}
 	}
 
-	private CmisProvider creaetUnspecificProvider(Map<String, String> parameters) {
+	private CmisProvider createUnspecificProvider(Map<String, String> parameters) {
 		CmisProviderFactory factory = CmisProviderFactory.newInstance();
 		CmisProvider provider = factory.createCmisProvider(parameters);
 		return provider;
 	}
 
-	private CmisProvider creaetWebServiceProvider(Map<String, String> parameters) {
+	private CmisProvider createWebServiceProvider(Map<String, String> parameters) {
 		CmisProviderFactory factory = CmisProviderFactory.newInstance();
 		CmisProvider provider = factory
 				.createCmisWebServicesProvider(parameters);
@@ -381,10 +381,10 @@
 		return provider;
 	}
 
-	private CmisProvider creaetAtomPubProvider(Map<String, String> parameters) {
+	private CmisProvider createAtomPubProvider(Map<String, String> parameters) {
 		CmisProviderFactory factory = CmisProviderFactory.newInstance();
 		CmisProvider provider = factory.createCmisAtomPubProvider(parameters);
-
+		
 		return provider;
 	}
 

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/RepositoryInfoImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/RepositoryInfoImpl.java?rev=915349&r1=915348&r2=915349&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/RepositoryInfoImpl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/RepositoryInfoImpl.java Tue Feb 23 13:55:18 2010
@@ -6,6 +6,7 @@
 import org.apache.opencmis.client.api.repository.RepositoryAclCapabilities;
 import org.apache.opencmis.client.api.repository.RepositoryCapabilities;
 import org.apache.opencmis.client.api.repository.RepositoryInfo;
+import org.apache.opencmis.client.runtime.repository.RepositoryAclCapabilitiesImpl;
 import org.apache.opencmis.commons.enums.BaseObjectTypeIds;
 import org.apache.opencmis.commons.exceptions.CmisRuntimeException;
 import org.apache.opencmis.commons.provider.RepositoryInfoData;
@@ -27,6 +28,11 @@
 	 */
 	private PersistentSessionImpl session;
 
+	/*
+	 * acl capabilities (serializable)
+	 */
+	private RepositoryAclCapabilities aclCapabilites = null;
+
 	public RepositoryInfoImpl(PersistentSessionImpl session,
 			RepositoryInfoData riData) {
 		this.riData = riData;
@@ -38,7 +44,11 @@
 	}
 
 	public RepositoryAclCapabilities getAclCapabilities() {
-		throw new CmisRuntimeException("not implemented");
+		if (this.aclCapabilites == null) {
+			this.aclCapabilites = new RepositoryAclCapabilitiesImpl(this.riData
+					.getAclCapabilities());
+		}
+		return this.aclCapabilites;
 	}
 
 	public RepositoryCapabilities getCapabilities() {

Added: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionMappingImpl.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/AclPermissionMappingImpl.java?rev=915349&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionMappingImpl.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionMappingImpl.java Tue Feb 23 13:55:18 2010
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.client.runtime.repository;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.opencmis.client.api.AclPermission;
+import org.apache.opencmis.client.api.repository.AclPermissionMapping;
+import org.apache.opencmis.client.runtime.AclPermissionImpl;
+import org.apache.opencmis.commons.provider.PermissionMappingData;
+
+public class AclPermissionMappingImpl implements AclPermissionMapping,
+		Serializable {
+
+	/**
+	 * serialization
+	 */
+	private static final long serialVersionUID = -8682418497088386853L;
+
+	/*
+	 * permission mapping data (serializable)
+	 */
+	private PermissionMappingData pmd = null;
+
+	/*
+	 * permission list (serializable)
+	 */
+	private List<AclPermission> permissionList = null;
+
+	public AclPermissionMappingImpl(PermissionMappingData pmd) {
+		this.pmd = pmd;
+	}
+
+	public String getKey() {
+		return this.pmd.getKey();
+	}
+
+	public List<AclPermission> getPermissions() {
+		if (this.permissionList == null) {
+			this.permissionList = new ArrayList<AclPermission>();
+
+			for (String descr : this.pmd.getPermissions()) {
+				AclPermission acl = new AclPermissionImpl(descr);
+				this.permissionList.add(acl);
+			}
+		}
+		return permissionList;
+	}
+
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionMappingImpl.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/RepositoryAclCapabilitiesImpl.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/RepositoryAclCapabilitiesImpl.java?rev=915349&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryAclCapabilitiesImpl.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryAclCapabilitiesImpl.java Tue Feb 23 13:55:18 2010
@@ -0,0 +1,237 @@
+/*
+ * 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.io.Serializable;
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.opencmis.client.api.AclPermission;
+import org.apache.opencmis.client.api.repository.AclPermissionMapping;
+import org.apache.opencmis.client.api.repository.RepositoryAclCapabilities;
+import org.apache.opencmis.commons.enums.AclPropagation;
+import org.apache.opencmis.commons.exceptions.CmisRuntimeException;
+import org.apache.opencmis.commons.provider.AclCapabilitiesData;
+import org.apache.opencmis.commons.provider.PermissionMappingData;
+
+public class RepositoryAclCapabilitiesImpl implements
+		RepositoryAclCapabilities, Serializable {
+
+	/*
+	 * serialization
+	 */
+	private static final long serialVersionUID = 2824818352611088504L;
+
+	/*
+	 * provider data (serializable)
+	 */
+	private AclCapabilitiesData aclCapabilities;
+
+	/*
+	 * permission mapping (serializable)
+	 */
+	private Map<String, AclPermissionMapping> aclPermissionMapping = null;
+
+	/*
+	 * permissions (serializable)
+	 */
+	List<AclPermission> aclPermissions = null;
+
+	public RepositoryAclCapabilitiesImpl(AclCapabilitiesData aclCapabilities) {
+		this.aclCapabilities = aclCapabilities;
+	}
+
+	public AclPropagation getAclPropagation() {
+		return this.aclCapabilities.getAclPropagation();
+	}
+
+	public AclPermissionMapping getAddPolicyObjectPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getAddPolicyPolicyPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getAddToFolderFolderPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getAddToFolderObjectPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getApplyAclObjectPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getCancelCheckoutDocumentPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getCheckinDocumentPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getCheckoutDocumentPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getCreateDocumentFolderPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getCreateDocumentTypePermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getCreateFolderFolderPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getCreateFolderTypePermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getCreatePolicyTypePermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getCreateRelationshipSourcePermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getCreateRelationshipTargetPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getCreateRelationshipTypePermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getDeleteContentDocumentPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getDeleteObjectPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getDeleteTreeFolderPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getGetAclObjectPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getGetAllVersionsVersionSeriesPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getGetAppliedPoliciesObjectPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getGetChildrenFolderPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getGetDescendentsFolderPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getGetFolderParentObjectPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getGetObjectRelationshipsObjectPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getGetParentsFolderPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getGetPropertiesObjectPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getMoveObjectPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getMoveSourcePermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getMoveTargetPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public Map<String, AclPermissionMapping> getPermissionMapping() {
+		if (this.aclPermissionMapping == null) {
+			this.aclPermissionMapping = new Hashtable<String, AclPermissionMapping>();
+			AclPermissionMapping apm = null;
+			for (PermissionMappingData pmd : this.aclCapabilities
+					.getPermissionMappingData()) {
+				apm = new AclPermissionMappingImpl(pmd);
+				this.aclPermissionMapping.put(pmd.getKey(), apm);
+			}
+		}
+		return this.aclPermissionMapping;
+	}
+
+	public List<AclPermission> getPermissions() {
+		if (this.aclPermissions == null) {
+			this.aclPermissions = new ArrayList<AclPermission>();
+		}
+		return this.aclPermissions;
+	}
+
+	public AclPermissionMapping getRemoveFromFolderFolderPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getRemoveFromFolderObjectPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getRemovePolicyObjectPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getRemovePolicyPolicyPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getSetContentDocumentPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getUpdatePropertiesObjectPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+
+	public AclPermissionMapping getViewContentObjectPermissions() {
+		throw new CmisRuntimeException("not implemented");
+	}
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryAclCapabilitiesImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/Fixture.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/Fixture.java?rev=915349&r1=915348&r2=915349&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/Fixture.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/Fixture.java Tue Feb 23 13:55:18 2010
@@ -49,6 +49,7 @@
 	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
 	 */
@@ -73,7 +74,7 @@
 	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_VALUE_HTML = "<html><body>html value</body></html>";
 	public static String PROPERTY_NAME_DATETIME = "DateTimeProperty";
 	public static Calendar PROPERTY_VALUE_DATETIME = GregorianCalendar
 			.getInstance();
@@ -81,6 +82,12 @@
 	public static URI PROPERTY_VALUE_URI = URI.create("http://foo.com");
 	public static final String PROPERTY_NAME_STRING_MULTI_VALUED = "MultiValuedStringProperty";
 
+	/*
+	 * session parameter
+	 */
+	private static final String X_FOLDER_TYPE_ID = "org.apache.opencmis.fixture.folder.type.id";
+	private static final String X_DOCUMENT_TYPE_ID = "org.apache.opencmis.fixture.document.type.id";
+
 	static {
 		Fixture.TEST_ROOT_FOLDER_NAME = "test_" + UUID.randomUUID().toString();
 	}
@@ -99,7 +106,18 @@
 	 */
 	public static void setParamter(Map<String, String> paramter) {
 		Fixture.paramter = paramter;
-	}
+
+		/* overload fixture values */
+		String value;
+
+		value = Fixture.paramter.get(Fixture.X_DOCUMENT_TYPE_ID);
+		Fixture.DOCUMENT_TYPE_ID = (value != null ? value
+				: Fixture.DOCUMENT_TYPE_ID);
+
+		value = Fixture.paramter.get(Fixture.X_FOLDER_TYPE_ID);
+		Fixture.FOLDER_TYPE_ID = (value != null ? value
+				: Fixture.FOLDER_TYPE_ID);
+}
 
 	/**
 	 * session parameter.

Added: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/GenericTestSuite.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/GenericTestSuite.java?rev=915349&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/GenericTestSuite.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/GenericTestSuite.java Tue Feb 23 13:55:18 2010
@@ -0,0 +1,130 @@
+/*
+ * 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.suite;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Map.Entry;
+
+import org.apache.opencmis.client.api.SessionFactory;
+import org.apache.opencmis.client.runtime.Fixture;
+import org.apache.opencmis.client.runtime.ReadOnlyAclCapabilityTest;
+import org.apache.opencmis.client.runtime.ReadOnlyContentStreamTest;
+import org.apache.opencmis.client.runtime.ReadOnlyCreateSessionTest;
+import org.apache.opencmis.client.runtime.ReadOnlyDiscoverTest;
+import org.apache.opencmis.client.runtime.ReadOnlyNavigationTest;
+import org.apache.opencmis.client.runtime.ReadOnlyObjectTest;
+import org.apache.opencmis.client.runtime.ReadOnlyRepositoryInfoTest;
+import org.apache.opencmis.client.runtime.ReadOnlySessionTest;
+import org.apache.opencmis.client.runtime.ReadOnlyTypeTest;
+import org.apache.opencmis.client.runtime.SessionFactoryImpl;
+import org.apache.opencmis.client.runtime.misc.CacheTest;
+import org.apache.opencmis.commons.exceptions.CmisRuntimeException;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite.SuiteClasses;
+import org.junit.runners.model.InitializationError;
+import org.junit.runners.model.RunnerBuilder;
+
+/**
+ * All session parameters have to be configured as environment variables.
+ */
+/**
+ * SessionParameter are build from environment variables. If a config file
+ * parameter is specified then session parameters are read from this file else
+ * the whole environment variable map is used for session parameter. All entries
+ * have to follow the {@code org.apache.opencmis...} convention as defined in
+ * class {@code SessionParameter0
+ */
+@RunWith(GenericTestSuite.class)
+@SuiteClasses( { CacheTest.class, ReadOnlyCreateSessionTest.class,
+		ReadOnlySessionTest.class, ReadOnlyRepositoryInfoTest.class,
+		ReadOnlyAclCapabilityTest.class, ReadOnlyObjectTest.class,
+		ReadOnlyTypeTest.class, ReadOnlyNavigationTest.class,
+		ReadOnlyContentStreamTest.class, ReadOnlyDiscoverTest.class })
+public class GenericTestSuite extends AbstractCmisTestSuite {
+
+	private static final String CONFIG_PATH = "org.apache.opencmis.client.runtime.suite.config.path";
+	private static final String SESSION_FACTORY = "org.apache.opencmis.client.runtime.suite.session.factory";
+
+	public GenericTestSuite(Class<?> klass, RunnerBuilder r)
+			throws InitializationError {
+		super(klass, r);
+	}
+
+	@Override
+	protected void initializeFixture() {
+		/* get optional path from system properties */
+		String pathname = System.getProperty(GenericTestSuite.CONFIG_PATH)
+				.trim();
+		Properties properties = null;
+		Map<String, String> sessionParameter = null;
+		SessionFactory factory = null;
+		String factoryClassName = null;
+		try {
+			if (pathname != null && !"".equalsIgnoreCase(pathname)) {
+				// read from file
+				properties = new Properties();
+				FileInputStream in = new FileInputStream(new File(pathname));
+				properties.load(in);
+			} else {
+				// take all system properties
+				properties = System.getProperties();
+			}
+
+			/* convert to map, filter empty values */
+			sessionParameter = new Hashtable<String, String>();
+			for (Entry<Object, Object> se : properties.entrySet()) {
+				String key = (String) se.getKey();
+				String value = ((String) se.getValue()).trim();
+				if (value != null && !"".equalsIgnoreCase(value)) {
+					sessionParameter.put(key, value);
+				}
+			}
+
+			/* load factory class */
+			factoryClassName = sessionParameter
+					.get(GenericTestSuite.SESSION_FACTORY);
+			if (factoryClassName != null
+					&& !"".equalsIgnoreCase(factoryClassName)) {
+				Class<?> clazz = Class.forName(factoryClassName);
+				factory = (SessionFactory) clazz.newInstance();
+			} else {
+				/* default */
+				factory = SessionFactoryImpl.newInstance();
+			}
+
+			/* activate fixture and done */
+			Fixture.setParamter(sessionParameter);
+			Fixture.setSessionFactory(factory);
+
+		} catch (InstantiationException e) {
+			throw new CmisRuntimeException(factoryClassName, e);
+		} catch (IllegalAccessException e) {
+			throw new CmisRuntimeException(factoryClassName, e);
+		} catch (ClassNotFoundException e) {
+			throw new CmisRuntimeException(factoryClassName, e);
+		} catch (IOException e) {
+			throw new CmisRuntimeException(pathname, e);
+		}
+	}
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/GenericTestSuite.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/otx/OtxInMemoryCmisTestSuite.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/otx/OtxInMemoryCmisTestSuite.java?rev=915349&r1=915348&r2=915349&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/otx/OtxInMemoryCmisTestSuite.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/otx/OtxInMemoryCmisTestSuite.java Tue Feb 23 13:55:18 2010
@@ -19,41 +19,63 @@
 package org.apache.opencmis.client.runtime.suite.otx;
 
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.Map;
 
 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.client.provider.factory.CmisProviderFactory;
 import org.apache.opencmis.client.runtime.Fixture;
 import org.apache.opencmis.client.runtime.ReadOnlyAclCapabilityTest;
 import org.apache.opencmis.client.runtime.ReadOnlyCreateSessionTest;
-import org.apache.opencmis.client.runtime.ReadOnlyObjectTest;
 import org.apache.opencmis.client.runtime.ReadOnlyRepositoryInfoTest;
+import org.apache.opencmis.client.runtime.ReadOnlySessionTest;
+import org.apache.opencmis.client.runtime.SessionFactoryImpl;
+import org.apache.opencmis.client.runtime.misc.CacheTest;
 import org.apache.opencmis.client.runtime.suite.AbstractCmisTestSuite;
+import org.apache.opencmis.commons.SessionParameter;
+import org.apache.opencmis.commons.enums.BindingType;
+import org.apache.opencmis.commons.enums.SessionType;
 
 /**
  * Test suite to run InMemory binding.
  */
 @RunWith(OtxInMemoryCmisTestSuite.class)
-@SuiteClasses( { ReadOnlyCreateSessionTest.class, ReadOnlyRepositoryInfoTest.class,
-    ReadOnlyAclCapabilityTest.class, ReadOnlyObjectTest.class })
+@SuiteClasses( { CacheTest.class, ReadOnlyCreateSessionTest.class, ReadOnlySessionTest.class,
+		ReadOnlyRepositoryInfoTest.class,
+		ReadOnlyAclCapabilityTest.class, })
 public class OtxInMemoryCmisTestSuite extends AbstractCmisTestSuite {
 
-  public OtxInMemoryCmisTestSuite(Class<?> klass, RunnerBuilder r) throws InitializationError {
-    super(klass, r);
-  }
-
-  @Override
-  protected void initializeFixture() {
-    Map<String, String> parameter = new HashMap<String, String>();
-    // parameter.put(Session.USER, "test");
-    // parameter.put(Session.BINDING, "inmemory");
-    // parameter.put(Session.PROVIDER, "otx");
-    // parameter.put(Session.REPOSITORY_ID, "InMemory");
-
-    Fixture.setParamter(parameter);
-    Fixture.setSessionFactory(null);
-  }
+	public OtxInMemoryCmisTestSuite(Class<?> klass, RunnerBuilder r)
+			throws InitializationError {
+		super(klass, r);
+	}
+
+	@Override
+	protected void initializeFixture() {
+		Map<String, String> parameter = new HashMap<String, String>();
+
+		parameter.put(SessionParameter.USER, "test");
+		parameter.put(SessionParameter.PASSWORD, "test");
+		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.BINDING_TYPE, BindingType.UNSPECIFIC
+				.value());
+		parameter.put(SessionParameter.REPOSITORY_ID, "InMemory");
+		parameter.put(SessionParameter.BINDING_SPI_CLASS,
+				CmisProviderFactory.BINDING_SPI_INMEMORY);
+
+		Fixture.DOCUMENT_TYPE_ID = "cmis:document";
+		Fixture.FOLDER_TYPE_ID = "cmis:folder";
+
+		Fixture.setParamter(parameter);
+		Fixture.setSessionFactory(SessionFactoryImpl.newInstance());
+	}
 
 }

Modified: incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/enums/BindingType.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/enums/BindingType.java?rev=915349&r1=915348&r2=915349&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/enums/BindingType.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/enums/BindingType.java Tue Feb 23 13:55:18 2010
@@ -25,7 +25,7 @@
  */
 public enum BindingType {
 
-  SOAP("soap"), ATOM("atom"), UNSPECIFIC("unspecific");
+  WEBSERVICE("webservice"), ATOM("atom"), UNSPECIFIC("unspecific");
   private final String value;
 
   BindingType(String v) {