You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by dc...@apache.org on 2010/04/22 18:28:00 UTC
svn commit: r936938 [16/29] - in
/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server:
chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/
chemistry-opencmis-server-bindings/src/main/java/org/apache/chem...
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryService.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryService.java?rev=936938&r1=936937&r2=936938&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryService.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryService.java Thu Apr 22 16:27:57 2010
@@ -69,463 +69,489 @@ import org.apache.chemistry.opencmis.uti
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-public class InMemoryService extends AbstractCmisService {
+public class InMemoryService extends AbstractCmisService {
- private static final Log LOG = LogFactory.getLog(InMemoryService.class.getName());
+ private static final Log LOG = LogFactory.getLog(InMemoryService.class.getName());
- private StoreManager storeManager; // singleton root of everything
- private CallContext context;
+ private StoreManager storeManager; // singleton root of everything
+ private CallContext context;
- private InMemoryRepositoryServiceImpl fRepSvc;
- private InMemoryObjectServiceImpl fObjSvc;
- private InMemoryNavigationServiceImpl fNavSvc;
- private InMemoryVersioningServiceImpl fVerSvc;
- private InMemoryDiscoveryServiceImpl fDisSvc;
- private InMemoryMultiFilingServiceImpl fMultiSvc;
-
- public StoreManager getStoreManager() {
- return storeManager;
- }
-
- public InMemoryService(Map<String, String> parameters) {
-
- // initialize in-memory management
- String repositoryClassName = (String) parameters.get(ConfigConstants.REPOSITORY_CLASS);
- if (null == repositoryClassName)
- repositoryClassName = StoreManagerImpl.class.getName();
-
- if (null == storeManager)
- storeManager = StoreManagerFactory.createInstance(repositoryClassName);
-
- String repositoryId = parameters.get(ConfigConstants.REPOSITORY_ID);
-
- List<String> allAvailableRepositories = storeManager.getAllRepositoryIds();
-
- // init existing repositories
- for (String existingRepId : allAvailableRepositories)
- storeManager.initRepository(existingRepId);
-
- // create repository if configured as a startup parameter
- if (null != repositoryId) {
- if (allAvailableRepositories.contains(repositoryId))
- LOG.warn("Repostory " + repositoryId + " already exists and will not be created.");
- else {
- String typeCreatorClassName = parameters.get(ConfigConstants.TYPE_CREATOR_CLASS);
- storeManager.createAndInitRepository(repositoryId, typeCreatorClassName);
- }
- }
-
- // With some special configuration settings fill the repository with
- // some documents and folders
- // if is empty
- if (!allAvailableRepositories.contains(repositoryId))
- fillRepositoryIfConfigured(parameters, repositoryId);
-
-
- fRepSvc = new InMemoryRepositoryServiceImpl(storeManager);
- fNavSvc = new InMemoryNavigationServiceImpl(storeManager);
- fObjSvc = new InMemoryObjectServiceImpl(storeManager);
- fVerSvc = new InMemoryVersioningServiceImpl(storeManager, fObjSvc);
- fDisSvc = new InMemoryDiscoveryServiceImpl(storeManager, fRepSvc, fNavSvc);
- fMultiSvc = new InMemoryMultiFilingServiceImpl(storeManager);
-
- }
-
- public CallContext getCallContext() {
- return context;
- }
-
- public void setCallContext(CallContext context) {
- this.context = context;
- }
-
- // --- repository service ---
-
- @Override
- public List<RepositoryInfo> getRepositoryInfos(ExtensionsData extension) {
- return fRepSvc.getRepositoryInfos(getCallContext(), extension);
- }
-
- public RepositoryInfo getRepositoryInfo(String repositoryId, ExtensionsData extension) {
- return fRepSvc.getRepositoryInfo(getCallContext(), repositoryId, extension);
- }
-
- public TypeDefinitionList getTypeChildren(String repositoryId, String typeId, Boolean includePropertyDefinitions,
- BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
- return fRepSvc.getTypeChildren(getCallContext(), repositoryId, typeId, includePropertyDefinitions, maxItems, skipCount, extension);
- }
-
- public TypeDefinition getTypeDefinition(String repositoryId, String typeId, ExtensionsData extension) {
- return fRepSvc.getTypeDefinition(getCallContext(), repositoryId, typeId, extension);
- }
-
- public List<TypeDefinitionContainer> getTypeDescendants(String repositoryId, String typeId, BigInteger depth,
- Boolean includePropertyDefinitions, ExtensionsData extension) {
- return fRepSvc.getTypeDescendants(getCallContext(), repositoryId, typeId, depth, includePropertyDefinitions, extension);
- }
-
- // --- navigation service ---
-
- public ObjectList getCheckedOutDocs(String repositoryId, String folderId, String filter, String orderBy,
- Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
- BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
- return fNavSvc.getCheckedOutDocs(getCallContext(), repositoryId, folderId, filter, orderBy, includeAllowableActions, includeRelationships, renditionFilter, maxItems, skipCount, extension, null);
- }
-
- public ObjectInFolderList getChildren(String repositoryId, String folderId, String filter, String orderBy,
- Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
- Boolean includePathSegment, BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
- return fNavSvc.getChildren(getCallContext(), repositoryId, folderId, filter, orderBy, includeAllowableActions, includeRelationships, renditionFilter, includePathSegment, maxItems, skipCount, extension, null);
- }
-
- public List<ObjectInFolderContainer> getDescendants(String repositoryId, String folderId, BigInteger depth,
- String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
- String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
- return fNavSvc.getDescendants(getCallContext(), repositoryId, folderId, depth, filter, includeAllowableActions, includeRelationships, renditionFilter, includePathSegment, extension, null);
- }
-
- public ObjectData getFolderParent(String repositoryId, String folderId, String filter, ExtensionsData extension) {
- return fNavSvc.getFolderParent(getCallContext(), repositoryId, folderId, filter, extension, null);
- }
-
- public List<ObjectInFolderContainer> getFolderTree(String repositoryId, String folderId, BigInteger depth,
- String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
- String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
- return fNavSvc.getFolderTree(getCallContext(), repositoryId, folderId, depth, filter, includeAllowableActions, includeRelationships, renditionFilter, includePathSegment, extension, null);
- }
-
- public List<ObjectParentData> getObjectParents(String repositoryId, String objectId, String filter,
- Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
- Boolean includeRelativePathSegment, ExtensionsData extension) {
- return fNavSvc.getObjectParents(getCallContext(), repositoryId, objectId, filter, includeAllowableActions, includeRelationships, renditionFilter, includeRelativePathSegment, extension, null);
- }
-
- // --- object service ---
-
- public String create(String repositoryId, Properties properties, String folderId, ContentStream contentStream,
- VersioningState versioningState, List<String> policies, ExtensionsData extension) {
- ObjectData od = fObjSvc.create(getCallContext(), repositoryId, properties, folderId, contentStream, versioningState, policies, extension, null);
- return od.getId();
-
- }
-
- public String createDocument(String repositoryId, Properties properties, String folderId,
- ContentStream contentStream, VersioningState versioningState, List<String> policies, Acl addAces,
- Acl removeAces, ExtensionsData extension) {
- return fObjSvc.createDocument(getCallContext(), repositoryId, properties, folderId, contentStream, versioningState, policies, addAces, removeAces, extension);
- }
-
- public String createDocumentFromSource(String repositoryId, String sourceId, Properties properties,
- String folderId, VersioningState versioningState, List<String> policies, Acl addAces, Acl removeAces,
- ExtensionsData extension) {
- return fObjSvc.createDocumentFromSource(getCallContext(), repositoryId, sourceId, properties, folderId, versioningState, policies, addAces, removeAces, extension);
- }
-
- public String createFolder(String repositoryId, Properties properties, String folderId, List<String> policies,
- Acl addAces, Acl removeAces, ExtensionsData extension) {
- return fObjSvc.createFolder(getCallContext(), repositoryId, properties, folderId, policies, addAces, removeAces, extension);
- }
-
- public String createPolicy(String repositoryId, Properties properties, String folderId, List<String> policies,
- Acl addAces, Acl removeAces, ExtensionsData extension) {
- return fObjSvc.createPolicy(getCallContext(), repositoryId, properties, folderId, policies, addAces, removeAces, extension);
- }
-
- public String createRelationship(String repositoryId, Properties properties, List<String> policies, Acl addAces,
- Acl removeAces, ExtensionsData extension) {
- return fObjSvc.createRelationship(getCallContext(), repositoryId, properties, policies, addAces, removeAces, extension);
- }
-
- public void deleteContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
- ExtensionsData extension) {
- fObjSvc.deleteContentStream(getCallContext(), repositoryId, objectId, changeToken, extension);
- }
-
- public void deleteObject(String repositoryId, String objectId, Boolean allVersions, ExtensionsData extension) {
- fObjSvc.deleteObjectOrCancelCheckOut(getCallContext(), repositoryId, objectId, allVersions, extension);
- }
-
- public void deleteObjectOrCancelCheckOut(String repositoryId, String objectId, Boolean allVersions,
- ExtensionsData extension) {
- fObjSvc.deleteObjectOrCancelCheckOut(getCallContext(), repositoryId, objectId, allVersions, extension);
- }
-
- public FailedToDeleteData deleteTree(String repositoryId, String folderId, Boolean allVersions,
- UnfileObject unfileObjects, Boolean continueOnFailure, ExtensionsData extension) {
- return fObjSvc.deleteTree(getCallContext(), repositoryId, folderId, allVersions, unfileObjects, continueOnFailure, extension);
- }
-
- public AllowableActions getAllowableActions(String repositoryId, String objectId, ExtensionsData extension) {
- return fObjSvc.getAllowableActions(getCallContext(), repositoryId, objectId, extension);
- }
-
- public ContentStream getContentStream(String repositoryId, String objectId, String streamId, BigInteger offset,
- BigInteger length, ExtensionsData extension) {
- return fObjSvc.getContentStream(getCallContext(), repositoryId, objectId, streamId, offset, length, extension);
- }
-
- public ObjectData getObject(String repositoryId, String objectId, String filter, Boolean includeAllowableActions,
- IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
- Boolean includeAcl, ExtensionsData extension) {
- return fObjSvc.getObject(getCallContext(), repositoryId, objectId, filter, includeAllowableActions, includeRelationships, renditionFilter, includePolicyIds, includeAcl, extension, null);
- }
-
- public ObjectData getObjectByPath(String repositoryId, String path, String filter, Boolean includeAllowableActions,
- IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
- Boolean includeAcl, ExtensionsData extension) {
- return fObjSvc.getObjectByPath(getCallContext(), repositoryId, path, filter, includeAllowableActions, includeRelationships, renditionFilter, includePolicyIds, includeAcl, extension, null);
- }
-
- public Properties getProperties(String repositoryId, String objectId, String filter, ExtensionsData extension) {
- return fObjSvc.getProperties(getCallContext(), repositoryId, objectId, filter, extension);
- }
-
- public List<RenditionData> getRenditions(String repositoryId, String objectId, String renditionFilter,
- BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
- return fObjSvc.getRenditions(getCallContext(), repositoryId, objectId, renditionFilter, maxItems, skipCount, extension);
- }
-
- public void moveObject(String repositoryId, Holder<String> objectId, String targetFolderId, String sourceFolderId,
- ExtensionsData extension) {
- fObjSvc.moveObject(getCallContext(), repositoryId, objectId, targetFolderId, sourceFolderId, extension, null);
- }
-
- public void setContentStream(String repositoryId, Holder<String> objectId, Boolean overwriteFlag,
- Holder<String> changeToken, ContentStream contentStream, ExtensionsData extension) {
- fObjSvc.setContentStream(getCallContext(), repositoryId, objectId, overwriteFlag, changeToken, contentStream, extension);
- }
-
- public void updateProperties(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
- Properties properties, ExtensionsData extension) {
- fObjSvc.updateProperties(getCallContext(), repositoryId, objectId, changeToken, properties, null, extension, null);
- }
-
- // --- versioning service ---
-
- public void cancelCheckOut(String repositoryId, String objectId, ExtensionsData extension) {
- fVerSvc.cancelCheckOut(getCallContext(), repositoryId, objectId, extension);
- }
-
- public void checkIn(String repositoryId, Holder<String> objectId, Boolean major, Properties properties,
- ContentStream contentStream, String checkinComment, List<String> policies, Acl addAces, Acl removeAces,
- ExtensionsData extension) {
- fVerSvc.checkIn(getCallContext(), repositoryId, objectId, major, properties, contentStream, checkinComment, policies, addAces, removeAces, extension, null);
- }
-
- public void checkOut(String repositoryId, Holder<String> objectId, ExtensionsData extension,
- Holder<Boolean> contentCopied) {
- fVerSvc.checkOut(getCallContext(), repositoryId, objectId, extension, contentCopied, null);
- }
-
- public ObjectData getObjectOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
- Boolean major, String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
- String renditionFilter, Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension) {
- return fVerSvc.getObjectOfLatestVersion(getCallContext(), repositoryId, versionSeriesId, major, filter, includeAllowableActions, includeRelationships, renditionFilter, includePolicyIds, includeAcl, extension, null);
- }
-
- public Properties getPropertiesOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
- Boolean major, String filter, ExtensionsData extension) {
- return fVerSvc.getPropertiesOfLatestVersion(getCallContext(), repositoryId, versionSeriesId, major, filter, extension);
- }
-
- public List<ObjectData> getAllVersions(String repositoryId, String objectId, String versionSeriesId, String filter,
- Boolean includeAllowableActions, ExtensionsData extension) {
- return fVerSvc.getAllVersions(getCallContext(), repositoryId, versionSeriesId, filter, includeAllowableActions, extension, null);
- }
-
- // --- discovery service ---
-
- public ObjectList getContentChanges(String repositoryId, Holder<String> changeLogToken, Boolean includeProperties,
- String filter, Boolean includePolicyIds, Boolean includeAcl, BigInteger maxItems, ExtensionsData extension) {
- return super.getContentChanges(repositoryId, changeLogToken, includeProperties, filter, includePolicyIds, includeAcl, maxItems, extension);
- }
-
- public ObjectList query(String repositoryId, String statement, Boolean searchAllVersions,
- Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
- BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
- return super.query(repositoryId, statement, searchAllVersions, includeAllowableActions, includeRelationships, renditionFilter, maxItems, skipCount, extension);
- }
-
- // --- multi filing service ---
-
- public void addObjectToFolder(String repositoryId, String objectId, String folderId, Boolean allVersions,
- ExtensionsData extension) {
- fMultiSvc.addObjectToFolder(getCallContext(), repositoryId, objectId, folderId, allVersions, extension, null);
- }
-
- public void removeObjectFromFolder(String repositoryId, String objectId, String folderId, ExtensionsData extension) {
- fMultiSvc.removeObjectFromFolder(getCallContext(), repositoryId, objectId, folderId, extension, null);
- }
-
- // --- relationship service ---
-
- public ObjectList getObjectRelationships(String repositoryId, String objectId, Boolean includeSubRelationshipTypes,
- RelationshipDirection relationshipDirection, String typeId, String filter, Boolean includeAllowableActions,
- BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
- return super.getObjectRelationships(repositoryId, objectId, includeSubRelationshipTypes, relationshipDirection, typeId, filter, includeAllowableActions, maxItems, skipCount, extension);
- }
-
- // --- ACL service ---
-
- public Acl applyAcl(String repositoryId, String objectId, Acl aces, AclPropagation aclPropagation) {
- return super.applyAcl(repositoryId, objectId, aces, aclPropagation);
- }
-
- public Acl applyAcl(String repositoryId, String objectId, Acl addAces, Acl removeAces,
- AclPropagation aclPropagation, ExtensionsData extension) {
- return super.applyAcl(repositoryId, objectId, addAces, removeAces, aclPropagation, extension);
- }
-
- public Acl getAcl(String repositoryId, String objectId, Boolean onlyBasicPermissions, ExtensionsData extension) {
- return super.getAcl(repositoryId, objectId, onlyBasicPermissions, extension);
- }
-
- // --- policy service ---
-
- public void applyPolicy(String repositoryId, String policyId, String objectId, ExtensionsData extension) {
- super.applyPolicy(repositoryId, policyId, objectId, extension);
- }
-
- public List<ObjectData> getAppliedPolicies(String repositoryId, String objectId, String filter,
- ExtensionsData extension) {
- return super.getAppliedPolicies(repositoryId, objectId, filter, extension);
- }
-
- public void removePolicy(String repositoryId, String policyId, String objectId, ExtensionsData extension) {
- super.removePolicy(repositoryId, policyId, objectId, extension);
- }
+ private InMemoryRepositoryServiceImpl fRepSvc;
+ private InMemoryObjectServiceImpl fObjSvc;
+ private InMemoryNavigationServiceImpl fNavSvc;
+ private InMemoryVersioningServiceImpl fVerSvc;
+ private InMemoryDiscoveryServiceImpl fDisSvc;
+ private InMemoryMultiFilingServiceImpl fMultiSvc;
+
+ public StoreManager getStoreManager() {
+ return storeManager;
+ }
+
+ public InMemoryService(Map<String, String> parameters) {
+
+ // initialize in-memory management
+ String repositoryClassName = (String) parameters.get(ConfigConstants.REPOSITORY_CLASS);
+ if (null == repositoryClassName)
+ repositoryClassName = StoreManagerImpl.class.getName();
+
+ if (null == storeManager)
+ storeManager = StoreManagerFactory.createInstance(repositoryClassName);
+
+ String repositoryId = parameters.get(ConfigConstants.REPOSITORY_ID);
+
+ List<String> allAvailableRepositories = storeManager.getAllRepositoryIds();
+
+ // init existing repositories
+ for (String existingRepId : allAvailableRepositories)
+ storeManager.initRepository(existingRepId);
+
+ // create repository if configured as a startup parameter
+ if (null != repositoryId) {
+ if (allAvailableRepositories.contains(repositoryId))
+ LOG.warn("Repostory " + repositoryId + " already exists and will not be created.");
+ else {
+ String typeCreatorClassName = parameters.get(ConfigConstants.TYPE_CREATOR_CLASS);
+ storeManager.createAndInitRepository(repositoryId, typeCreatorClassName);
+ }
+ }
+
+ // With some special configuration settings fill the repository with
+ // some documents and folders
+ // if is empty
+ if (!allAvailableRepositories.contains(repositoryId))
+ fillRepositoryIfConfigured(parameters, repositoryId);
+
+ fRepSvc = new InMemoryRepositoryServiceImpl(storeManager);
+ fNavSvc = new InMemoryNavigationServiceImpl(storeManager);
+ fObjSvc = new InMemoryObjectServiceImpl(storeManager);
+ fVerSvc = new InMemoryVersioningServiceImpl(storeManager, fObjSvc);
+ fDisSvc = new InMemoryDiscoveryServiceImpl(storeManager, fRepSvc, fNavSvc);
+ fMultiSvc = new InMemoryMultiFilingServiceImpl(storeManager);
+
+ }
+
+ public CallContext getCallContext() {
+ return context;
+ }
+
+ public void setCallContext(CallContext context) {
+ this.context = context;
+ }
+
+ // --- repository service ---
+
+ @Override
+ public List<RepositoryInfo> getRepositoryInfos(ExtensionsData extension) {
+ return fRepSvc.getRepositoryInfos(getCallContext(), extension);
+ }
+
+ public RepositoryInfo getRepositoryInfo(String repositoryId, ExtensionsData extension) {
+ return fRepSvc.getRepositoryInfo(getCallContext(), repositoryId, extension);
+ }
+
+ public TypeDefinitionList getTypeChildren(String repositoryId, String typeId, Boolean includePropertyDefinitions,
+ BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
+ return fRepSvc.getTypeChildren(getCallContext(), repositoryId, typeId, includePropertyDefinitions, maxItems,
+ skipCount, extension);
+ }
+
+ public TypeDefinition getTypeDefinition(String repositoryId, String typeId, ExtensionsData extension) {
+ return fRepSvc.getTypeDefinition(getCallContext(), repositoryId, typeId, extension);
+ }
+
+ public List<TypeDefinitionContainer> getTypeDescendants(String repositoryId, String typeId, BigInteger depth,
+ Boolean includePropertyDefinitions, ExtensionsData extension) {
+ return fRepSvc.getTypeDescendants(getCallContext(), repositoryId, typeId, depth, includePropertyDefinitions,
+ extension);
+ }
+
+ // --- navigation service ---
+
+ public ObjectList getCheckedOutDocs(String repositoryId, String folderId, String filter, String orderBy,
+ Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
+ BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
+ return fNavSvc.getCheckedOutDocs(getCallContext(), repositoryId, folderId, filter, orderBy,
+ includeAllowableActions, includeRelationships, renditionFilter, maxItems, skipCount, extension, null);
+ }
+
+ public ObjectInFolderList getChildren(String repositoryId, String folderId, String filter, String orderBy,
+ Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
+ Boolean includePathSegment, BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
+ return fNavSvc.getChildren(getCallContext(), repositoryId, folderId, filter, orderBy, includeAllowableActions,
+ includeRelationships, renditionFilter, includePathSegment, maxItems, skipCount, extension, null);
+ }
+
+ public List<ObjectInFolderContainer> getDescendants(String repositoryId, String folderId, BigInteger depth,
+ String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
+ String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
+ return fNavSvc.getDescendants(getCallContext(), repositoryId, folderId, depth, filter, includeAllowableActions,
+ includeRelationships, renditionFilter, includePathSegment, extension, null);
+ }
+
+ public ObjectData getFolderParent(String repositoryId, String folderId, String filter, ExtensionsData extension) {
+ return fNavSvc.getFolderParent(getCallContext(), repositoryId, folderId, filter, extension, null);
+ }
+
+ public List<ObjectInFolderContainer> getFolderTree(String repositoryId, String folderId, BigInteger depth,
+ String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
+ String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
+ return fNavSvc.getFolderTree(getCallContext(), repositoryId, folderId, depth, filter, includeAllowableActions,
+ includeRelationships, renditionFilter, includePathSegment, extension, null);
+ }
+
+ public List<ObjectParentData> getObjectParents(String repositoryId, String objectId, String filter,
+ Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
+ Boolean includeRelativePathSegment, ExtensionsData extension) {
+ return fNavSvc.getObjectParents(getCallContext(), repositoryId, objectId, filter, includeAllowableActions,
+ includeRelationships, renditionFilter, includeRelativePathSegment, extension, null);
+ }
+
+ // --- object service ---
+
+ public String create(String repositoryId, Properties properties, String folderId, ContentStream contentStream,
+ VersioningState versioningState, List<String> policies, ExtensionsData extension) {
+ ObjectData od = fObjSvc.create(getCallContext(), repositoryId, properties, folderId, contentStream,
+ versioningState, policies, extension, null);
+ return od.getId();
+
+ }
+
+ public String createDocument(String repositoryId, Properties properties, String folderId,
+ ContentStream contentStream, VersioningState versioningState, List<String> policies, Acl addAces,
+ Acl removeAces, ExtensionsData extension) {
+ return fObjSvc.createDocument(getCallContext(), repositoryId, properties, folderId, contentStream,
+ versioningState, policies, addAces, removeAces, extension);
+ }
+
+ public String createDocumentFromSource(String repositoryId, String sourceId, Properties properties,
+ String folderId, VersioningState versioningState, List<String> policies, Acl addAces, Acl removeAces,
+ ExtensionsData extension) {
+ return fObjSvc.createDocumentFromSource(getCallContext(), repositoryId, sourceId, properties, folderId,
+ versioningState, policies, addAces, removeAces, extension);
+ }
+
+ public String createFolder(String repositoryId, Properties properties, String folderId, List<String> policies,
+ Acl addAces, Acl removeAces, ExtensionsData extension) {
+ return fObjSvc.createFolder(getCallContext(), repositoryId, properties, folderId, policies, addAces,
+ removeAces, extension);
+ }
+
+ public String createPolicy(String repositoryId, Properties properties, String folderId, List<String> policies,
+ Acl addAces, Acl removeAces, ExtensionsData extension) {
+ return fObjSvc.createPolicy(getCallContext(), repositoryId, properties, folderId, policies, addAces,
+ removeAces, extension);
+ }
+
+ public String createRelationship(String repositoryId, Properties properties, List<String> policies, Acl addAces,
+ Acl removeAces, ExtensionsData extension) {
+ return fObjSvc.createRelationship(getCallContext(), repositoryId, properties, policies, addAces, removeAces,
+ extension);
+ }
+
+ public void deleteContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
+ ExtensionsData extension) {
+ fObjSvc.deleteContentStream(getCallContext(), repositoryId, objectId, changeToken, extension);
+ }
+
+ public void deleteObject(String repositoryId, String objectId, Boolean allVersions, ExtensionsData extension) {
+ fObjSvc.deleteObjectOrCancelCheckOut(getCallContext(), repositoryId, objectId, allVersions, extension);
+ }
+
+ public void deleteObjectOrCancelCheckOut(String repositoryId, String objectId, Boolean allVersions,
+ ExtensionsData extension) {
+ fObjSvc.deleteObjectOrCancelCheckOut(getCallContext(), repositoryId, objectId, allVersions, extension);
+ }
+
+ public FailedToDeleteData deleteTree(String repositoryId, String folderId, Boolean allVersions,
+ UnfileObject unfileObjects, Boolean continueOnFailure, ExtensionsData extension) {
+ return fObjSvc.deleteTree(getCallContext(), repositoryId, folderId, allVersions, unfileObjects,
+ continueOnFailure, extension);
+ }
+
+ public AllowableActions getAllowableActions(String repositoryId, String objectId, ExtensionsData extension) {
+ return fObjSvc.getAllowableActions(getCallContext(), repositoryId, objectId, extension);
+ }
+
+ public ContentStream getContentStream(String repositoryId, String objectId, String streamId, BigInteger offset,
+ BigInteger length, ExtensionsData extension) {
+ return fObjSvc.getContentStream(getCallContext(), repositoryId, objectId, streamId, offset, length, extension);
+ }
+
+ public ObjectData getObject(String repositoryId, String objectId, String filter, Boolean includeAllowableActions,
+ IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
+ Boolean includeAcl, ExtensionsData extension) {
+ return fObjSvc.getObject(getCallContext(), repositoryId, objectId, filter, includeAllowableActions,
+ includeRelationships, renditionFilter, includePolicyIds, includeAcl, extension, null);
+ }
+
+ public ObjectData getObjectByPath(String repositoryId, String path, String filter, Boolean includeAllowableActions,
+ IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
+ Boolean includeAcl, ExtensionsData extension) {
+ return fObjSvc.getObjectByPath(getCallContext(), repositoryId, path, filter, includeAllowableActions,
+ includeRelationships, renditionFilter, includePolicyIds, includeAcl, extension, null);
+ }
+
+ public Properties getProperties(String repositoryId, String objectId, String filter, ExtensionsData extension) {
+ return fObjSvc.getProperties(getCallContext(), repositoryId, objectId, filter, extension);
+ }
+
+ public List<RenditionData> getRenditions(String repositoryId, String objectId, String renditionFilter,
+ BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
+ return fObjSvc.getRenditions(getCallContext(), repositoryId, objectId, renditionFilter, maxItems, skipCount,
+ extension);
+ }
+
+ public void moveObject(String repositoryId, Holder<String> objectId, String targetFolderId, String sourceFolderId,
+ ExtensionsData extension) {
+ fObjSvc.moveObject(getCallContext(), repositoryId, objectId, targetFolderId, sourceFolderId, extension, null);
+ }
+
+ public void setContentStream(String repositoryId, Holder<String> objectId, Boolean overwriteFlag,
+ Holder<String> changeToken, ContentStream contentStream, ExtensionsData extension) {
+ fObjSvc.setContentStream(getCallContext(), repositoryId, objectId, overwriteFlag, changeToken, contentStream,
+ extension);
+ }
+
+ public void updateProperties(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
+ Properties properties, ExtensionsData extension) {
+ fObjSvc.updateProperties(getCallContext(), repositoryId, objectId, changeToken, properties, null, extension,
+ null);
+ }
+
+ // --- versioning service ---
+
+ public void cancelCheckOut(String repositoryId, String objectId, ExtensionsData extension) {
+ fVerSvc.cancelCheckOut(getCallContext(), repositoryId, objectId, extension);
+ }
+
+ public void checkIn(String repositoryId, Holder<String> objectId, Boolean major, Properties properties,
+ ContentStream contentStream, String checkinComment, List<String> policies, Acl addAces, Acl removeAces,
+ ExtensionsData extension) {
+ fVerSvc.checkIn(getCallContext(), repositoryId, objectId, major, properties, contentStream, checkinComment,
+ policies, addAces, removeAces, extension, null);
+ }
+
+ public void checkOut(String repositoryId, Holder<String> objectId, ExtensionsData extension,
+ Holder<Boolean> contentCopied) {
+ fVerSvc.checkOut(getCallContext(), repositoryId, objectId, extension, contentCopied, null);
+ }
+
+ public ObjectData getObjectOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
+ Boolean major, String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
+ String renditionFilter, Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension) {
+ return fVerSvc.getObjectOfLatestVersion(getCallContext(), repositoryId, versionSeriesId, major, filter,
+ includeAllowableActions, includeRelationships, renditionFilter, includePolicyIds, includeAcl,
+ extension, null);
+ }
+
+ public Properties getPropertiesOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
+ Boolean major, String filter, ExtensionsData extension) {
+ return fVerSvc.getPropertiesOfLatestVersion(getCallContext(), repositoryId, versionSeriesId, major, filter,
+ extension);
+ }
+
+ public List<ObjectData> getAllVersions(String repositoryId, String objectId, String versionSeriesId, String filter,
+ Boolean includeAllowableActions, ExtensionsData extension) {
+ return fVerSvc.getAllVersions(getCallContext(), repositoryId, versionSeriesId, filter, includeAllowableActions,
+ extension, null);
+ }
+
+ // --- discovery service ---
+
+ public ObjectList getContentChanges(String repositoryId, Holder<String> changeLogToken, Boolean includeProperties,
+ String filter, Boolean includePolicyIds, Boolean includeAcl, BigInteger maxItems, ExtensionsData extension) {
+ return super.getContentChanges(repositoryId, changeLogToken, includeProperties, filter, includePolicyIds,
+ includeAcl, maxItems, extension);
+ }
+
+ public ObjectList query(String repositoryId, String statement, Boolean searchAllVersions,
+ Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
+ BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
+ return super.query(repositoryId, statement, searchAllVersions, includeAllowableActions, includeRelationships,
+ renditionFilter, maxItems, skipCount, extension);
+ }
+
+ // --- multi filing service ---
+
+ public void addObjectToFolder(String repositoryId, String objectId, String folderId, Boolean allVersions,
+ ExtensionsData extension) {
+ fMultiSvc.addObjectToFolder(getCallContext(), repositoryId, objectId, folderId, allVersions, extension, null);
+ }
+
+ public void removeObjectFromFolder(String repositoryId, String objectId, String folderId, ExtensionsData extension) {
+ fMultiSvc.removeObjectFromFolder(getCallContext(), repositoryId, objectId, folderId, extension, null);
+ }
+
+ // --- relationship service ---
+
+ public ObjectList getObjectRelationships(String repositoryId, String objectId, Boolean includeSubRelationshipTypes,
+ RelationshipDirection relationshipDirection, String typeId, String filter, Boolean includeAllowableActions,
+ BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
+ return super.getObjectRelationships(repositoryId, objectId, includeSubRelationshipTypes, relationshipDirection,
+ typeId, filter, includeAllowableActions, maxItems, skipCount, extension);
+ }
+
+ // --- ACL service ---
+
+ public Acl applyAcl(String repositoryId, String objectId, Acl aces, AclPropagation aclPropagation) {
+ return super.applyAcl(repositoryId, objectId, aces, aclPropagation);
+ }
+
+ public Acl applyAcl(String repositoryId, String objectId, Acl addAces, Acl removeAces,
+ AclPropagation aclPropagation, ExtensionsData extension) {
+ return super.applyAcl(repositoryId, objectId, addAces, removeAces, aclPropagation, extension);
+ }
+
+ public Acl getAcl(String repositoryId, String objectId, Boolean onlyBasicPermissions, ExtensionsData extension) {
+ return super.getAcl(repositoryId, objectId, onlyBasicPermissions, extension);
+ }
+
+ // --- policy service ---
+
+ public void applyPolicy(String repositoryId, String policyId, String objectId, ExtensionsData extension) {
+ super.applyPolicy(repositoryId, policyId, objectId, extension);
+ }
+
+ public List<ObjectData> getAppliedPolicies(String repositoryId, String objectId, String filter,
+ ExtensionsData extension) {
+ return super.getAppliedPolicies(repositoryId, objectId, filter, extension);
+ }
+
+ public void removePolicy(String repositoryId, String policyId, String objectId, ExtensionsData extension) {
+ super.removePolicy(repositoryId, policyId, objectId, extension);
+ }
- ////////////////
+ // //////////////
//
- private void fillRepositoryIfConfigured(Map<String, String> parameters, String repositoryId) {
- class DummyCallContext implements CallContext {
+ private void fillRepositoryIfConfigured(Map<String, String> parameters, String repositoryId) {
+ class DummyCallContext implements CallContext {
- public String get(String key) {
- return null;
- }
-
- public String getBinding() {
- return null;
- }
-
- public boolean isObjectInfoRequired() {
- return false;
- }
-
- public String getRepositoryId() {
- return null;
- }
-
- public String getLocale() {
- return null;
- }
-
- public String getPassword() {
- return null;
- }
-
- public String getUsername() {
- return null;
- }
- }
-
- String doFillRepositoryStr = parameters.get(ConfigConstants.USE_REPOSITORY_FILER);
- boolean doFillRepository = doFillRepositoryStr == null ? false : Boolean.parseBoolean(doFillRepositoryStr);
-
- if (!doFillRepository)
- return;
-
- BindingsObjectFactory objectFactory = new BindingsObjectFactoryImpl();
- NavigationService navSvc = new NavigationServiceImpl(fNavSvc);
- ObjectService objSvc = new ObjectServiceImpl(fObjSvc);
- RepositoryService repSvc = new RepositoryServiceImpl(fRepSvc);
-
- String levelsStr = parameters.get(ConfigConstants.FILLER_DEPTH);
- int levels = 1;
- if (null != levelsStr)
- levels = Integer.parseInt(levelsStr);
-
- String docsPerLevelStr = parameters.get(ConfigConstants.FILLER_DOCS_PER_FOLDER);
- int docsPerLevel = 1;
- if (null != docsPerLevelStr)
- docsPerLevel = Integer.parseInt(docsPerLevelStr);
-
- String childrenPerLevelStr = parameters.get(ConfigConstants.FILLER_FOLDERS_PER_FOLDER);
- int childrenPerLevel = 2;
- if (null != childrenPerLevelStr)
- childrenPerLevel = Integer.parseInt(childrenPerLevelStr);
-
- String documentTypeId = parameters.get(ConfigConstants.FILLER_DOCUMENT_TYPE_ID);
- if (null == documentTypeId)
- documentTypeId = BaseTypeId.CMIS_DOCUMENT.value();
-
- String folderTypeId = parameters.get(ConfigConstants.FILLER_FOLDER_TYPE_ID);
- if (null == folderTypeId)
- folderTypeId = BaseTypeId.CMIS_FOLDER.value();
-
- int contentSizeKB = 0;
- String contentSizeKBStr = parameters.get(ConfigConstants.FILLER_CONTENT_SIZE);
- if (null != contentSizeKBStr)
- contentSizeKB = Integer.parseInt(contentSizeKBStr);
-
- // Create a hierarchy of folders and fill it with some documents
- ObjectGenerator gen = new ObjectGenerator(objectFactory, navSvc, objSvc, repositoryId);
-
- gen.setNumberOfDocumentsToCreatePerFolder(docsPerLevel);
-
- // Set the type id for all created documents:
- gen.setDocumentTypeId(documentTypeId);
-
- // Set the type id for all created folders:
- gen.setFolderTypeId(folderTypeId);
-
- // Set contentSize
- gen.setContentSizeInKB(contentSizeKB);
-
- // set properties that need to be filled
- // set the properties the generator should fill with values for
- // documents:
- // Note: must be valid properties in configured document and folder type
-
- List<String> propsToSet = readPropertiesToSetFromConfig(parameters, ConfigConstants.FILLER_DOCUMENT_PROPERTY);
- if (null != propsToSet)
- gen.setDocumentPropertiesToGenerate(propsToSet);
-
- propsToSet = readPropertiesToSetFromConfig(parameters, ConfigConstants.FILLER_FOLDER_PROPERTY);
- if (null != propsToSet)
- gen.setFolderPropertiesToGenerate(propsToSet);
-
- // Simulate a runtime context with configuration parameters
- // Attach the CallContext to a thread local context that can be accessed
- // from everywhere
-// RuntimeContext.attachCfg(new DummyCallContext());
-
- // Build the tree
- RepositoryInfo rep = repSvc.getRepositoryInfo(repositoryId, null);
- String rootFolderId = rep.getRootFolderId();
-
- try {
- gen.createFolderHierachy(levels, childrenPerLevel, rootFolderId);
- // Dump the tree
- gen.dumpFolder(rootFolderId, "*");
- } catch (Exception e) {
- LOG.error("Could not create folder hierarchy with documents. " + e);
- e.printStackTrace();
- }
-
- }
-
- private List<String> readPropertiesToSetFromConfig(Map<String, String> parameters, String keyPrefix) {
- List<String> propsToSet = new ArrayList<String>();
- for (int i = 0;; ++i) {
- String propertyKey = keyPrefix + Integer.toString(i);
- String propertyToAdd = parameters.get(propertyKey);
- if (null == propertyToAdd)
- break;
- else
- propsToSet.add(propertyToAdd);
- }
- return propsToSet;
- }
+ public String get(String key) {
+ return null;
+ }
+
+ public String getBinding() {
+ return null;
+ }
+
+ public boolean isObjectInfoRequired() {
+ return false;
+ }
+
+ public String getRepositoryId() {
+ return null;
+ }
+
+ public String getLocale() {
+ return null;
+ }
+
+ public String getPassword() {
+ return null;
+ }
+
+ public String getUsername() {
+ return null;
+ }
+ }
+
+ String doFillRepositoryStr = parameters.get(ConfigConstants.USE_REPOSITORY_FILER);
+ boolean doFillRepository = doFillRepositoryStr == null ? false : Boolean.parseBoolean(doFillRepositoryStr);
+
+ if (!doFillRepository)
+ return;
+
+ BindingsObjectFactory objectFactory = new BindingsObjectFactoryImpl();
+ NavigationService navSvc = new NavigationServiceImpl(fNavSvc);
+ ObjectService objSvc = new ObjectServiceImpl(fObjSvc);
+ RepositoryService repSvc = new RepositoryServiceImpl(fRepSvc);
+
+ String levelsStr = parameters.get(ConfigConstants.FILLER_DEPTH);
+ int levels = 1;
+ if (null != levelsStr)
+ levels = Integer.parseInt(levelsStr);
+
+ String docsPerLevelStr = parameters.get(ConfigConstants.FILLER_DOCS_PER_FOLDER);
+ int docsPerLevel = 1;
+ if (null != docsPerLevelStr)
+ docsPerLevel = Integer.parseInt(docsPerLevelStr);
+
+ String childrenPerLevelStr = parameters.get(ConfigConstants.FILLER_FOLDERS_PER_FOLDER);
+ int childrenPerLevel = 2;
+ if (null != childrenPerLevelStr)
+ childrenPerLevel = Integer.parseInt(childrenPerLevelStr);
+
+ String documentTypeId = parameters.get(ConfigConstants.FILLER_DOCUMENT_TYPE_ID);
+ if (null == documentTypeId)
+ documentTypeId = BaseTypeId.CMIS_DOCUMENT.value();
+
+ String folderTypeId = parameters.get(ConfigConstants.FILLER_FOLDER_TYPE_ID);
+ if (null == folderTypeId)
+ folderTypeId = BaseTypeId.CMIS_FOLDER.value();
+
+ int contentSizeKB = 0;
+ String contentSizeKBStr = parameters.get(ConfigConstants.FILLER_CONTENT_SIZE);
+ if (null != contentSizeKBStr)
+ contentSizeKB = Integer.parseInt(contentSizeKBStr);
+
+ // Create a hierarchy of folders and fill it with some documents
+ ObjectGenerator gen = new ObjectGenerator(objectFactory, navSvc, objSvc, repositoryId);
+
+ gen.setNumberOfDocumentsToCreatePerFolder(docsPerLevel);
+
+ // Set the type id for all created documents:
+ gen.setDocumentTypeId(documentTypeId);
+
+ // Set the type id for all created folders:
+ gen.setFolderTypeId(folderTypeId);
+
+ // Set contentSize
+ gen.setContentSizeInKB(contentSizeKB);
+
+ // set properties that need to be filled
+ // set the properties the generator should fill with values for
+ // documents:
+ // Note: must be valid properties in configured document and folder type
+
+ List<String> propsToSet = readPropertiesToSetFromConfig(parameters, ConfigConstants.FILLER_DOCUMENT_PROPERTY);
+ if (null != propsToSet)
+ gen.setDocumentPropertiesToGenerate(propsToSet);
+
+ propsToSet = readPropertiesToSetFromConfig(parameters, ConfigConstants.FILLER_FOLDER_PROPERTY);
+ if (null != propsToSet)
+ gen.setFolderPropertiesToGenerate(propsToSet);
+
+ // Simulate a runtime context with configuration parameters
+ // Attach the CallContext to a thread local context that can be accessed
+ // from everywhere
+ // RuntimeContext.attachCfg(new DummyCallContext());
+
+ // Build the tree
+ RepositoryInfo rep = repSvc.getRepositoryInfo(repositoryId, null);
+ String rootFolderId = rep.getRootFolderId();
+
+ try {
+ gen.createFolderHierachy(levels, childrenPerLevel, rootFolderId);
+ // Dump the tree
+ gen.dumpFolder(rootFolderId, "*");
+ } catch (Exception e) {
+ LOG.error("Could not create folder hierarchy with documents. " + e);
+ e.printStackTrace();
+ }
+
+ }
+
+ private List<String> readPropertiesToSetFromConfig(Map<String, String> parameters, String keyPrefix) {
+ List<String> propsToSet = new ArrayList<String>();
+ for (int i = 0;; ++i) {
+ String propertyKey = keyPrefix + Integer.toString(i);
+ String propertyToAdd = parameters.get(propertyKey);
+ if (null == propertyToAdd)
+ break;
+ else
+ propsToSet.add(propertyToAdd);
+ }
+ return propsToSet;
+ }
}
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryServiceFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryServiceFactoryImpl.java?rev=936938&r1=936937&r2=936938&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryServiceFactoryImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryServiceFactoryImpl.java Thu Apr 22 16:27:57 2010
@@ -31,67 +31,68 @@ import org.apache.commons.logging.LogFac
public class InMemoryServiceFactoryImpl extends AbstractServiceFactory {
- private static final Log LOG = LogFactory.getLog(InMemoryServiceFactoryImpl.class.getName());
- private static final BigInteger DEFAULT_MAX_ITEMS_OBJECTS = BigInteger.valueOf(1000);
- private static final BigInteger DEFAULT_MAX_ITEMS_TYPES = BigInteger.valueOf(100);
- private static final BigInteger DEFAULT_DEPTH_OBJECTS = BigInteger.valueOf(2);
- private static final BigInteger DEFAULT_DEPTH_TYPES = BigInteger.valueOf(-1);
- private static CallContext OVERRIDE_CTX;
-
- private InMemoryService inMemoryService;
-// private CmisServiceWrapper<InMemoryService> wrapperService;
- private ThreadLocal<CmisServiceWrapper<InMemoryService>> threadLocalService = new ThreadLocal<CmisServiceWrapper<InMemoryService>>();
- private boolean fUseOverrideCtx = false;
-
- @Override
- public void init(Map<String, String> parameters) {
- LOG.info("Initializing in-memory repository...");
-
-
- inMemoryService = new InMemoryService(parameters);
-// wrapperService = new CmisServiceWrapper<InMemoryService>(inMemoryService, DEFAULT_MAX_ITEMS_TYPES, DEFAULT_DEPTH_TYPES,
-// DEFAULT_MAX_ITEMS_OBJECTS, DEFAULT_DEPTH_OBJECTS);
- String overrideCtx = parameters.get(ConfigConstants.OVERRIDE_CALL_CONTEXT);
- if (null != overrideCtx)
- fUseOverrideCtx = true;
-
- LOG.info("...initialized in-memory repository.");
- }
-
- public static void setOverrideCallContext(CallContext ctx) {
- OVERRIDE_CTX = ctx;
- }
-
- @Override
- public CmisService getService(CallContext context) {
- LOG.debug("start getService()");
-
- // Attach the CallContext to a thread local context that can be
- // accessed from everywhere
- // Some unit tests set their own context. So if we find one then we use
- // this one and ignore the provided one. Otherwise we set a new context.
- if (fUseOverrideCtx && null != OVERRIDE_CTX) {
- context = OVERRIDE_CTX;
- }
-
- CmisServiceWrapper<InMemoryService> wrapperService = threadLocalService.get();
- if (wrapperService == null) {
- wrapperService = new CmisServiceWrapper<InMemoryService>(inMemoryService, DEFAULT_MAX_ITEMS_TYPES, DEFAULT_DEPTH_TYPES,
- DEFAULT_MAX_ITEMS_OBJECTS, DEFAULT_DEPTH_OBJECTS);
- threadLocalService.set(wrapperService);
- }
-
- wrapperService.getWrappedService().setCallContext(context);
-
- LOG.debug("stop getService()");
- return inMemoryService; //wrapperService;
-
- }
-
- @Override
- public void destroy() {
- threadLocalService = null;
-// RuntimeContext.remove();
- }
-
+ private static final Log LOG = LogFactory.getLog(InMemoryServiceFactoryImpl.class.getName());
+ private static final BigInteger DEFAULT_MAX_ITEMS_OBJECTS = BigInteger.valueOf(1000);
+ private static final BigInteger DEFAULT_MAX_ITEMS_TYPES = BigInteger.valueOf(100);
+ private static final BigInteger DEFAULT_DEPTH_OBJECTS = BigInteger.valueOf(2);
+ private static final BigInteger DEFAULT_DEPTH_TYPES = BigInteger.valueOf(-1);
+ private static CallContext OVERRIDE_CTX;
+
+ private InMemoryService inMemoryService;
+ // private CmisServiceWrapper<InMemoryService> wrapperService;
+ private ThreadLocal<CmisServiceWrapper<InMemoryService>> threadLocalService = new ThreadLocal<CmisServiceWrapper<InMemoryService>>();
+ private boolean fUseOverrideCtx = false;
+
+ @Override
+ public void init(Map<String, String> parameters) {
+ LOG.info("Initializing in-memory repository...");
+
+ inMemoryService = new InMemoryService(parameters);
+ // wrapperService = new
+ // CmisServiceWrapper<InMemoryService>(inMemoryService,
+ // DEFAULT_MAX_ITEMS_TYPES, DEFAULT_DEPTH_TYPES,
+ // DEFAULT_MAX_ITEMS_OBJECTS, DEFAULT_DEPTH_OBJECTS);
+ String overrideCtx = parameters.get(ConfigConstants.OVERRIDE_CALL_CONTEXT);
+ if (null != overrideCtx)
+ fUseOverrideCtx = true;
+
+ LOG.info("...initialized in-memory repository.");
+ }
+
+ public static void setOverrideCallContext(CallContext ctx) {
+ OVERRIDE_CTX = ctx;
+ }
+
+ @Override
+ public CmisService getService(CallContext context) {
+ LOG.debug("start getService()");
+
+ // Attach the CallContext to a thread local context that can be
+ // accessed from everywhere
+ // Some unit tests set their own context. So if we find one then we use
+ // this one and ignore the provided one. Otherwise we set a new context.
+ if (fUseOverrideCtx && null != OVERRIDE_CTX) {
+ context = OVERRIDE_CTX;
+ }
+
+ CmisServiceWrapper<InMemoryService> wrapperService = threadLocalService.get();
+ if (wrapperService == null) {
+ wrapperService = new CmisServiceWrapper<InMemoryService>(inMemoryService, DEFAULT_MAX_ITEMS_TYPES,
+ DEFAULT_DEPTH_TYPES, DEFAULT_MAX_ITEMS_OBJECTS, DEFAULT_DEPTH_OBJECTS);
+ threadLocalService.set(wrapperService);
+ }
+
+ wrapperService.getWrappedService().setCallContext(context);
+
+ LOG.debug("stop getService()");
+ return inMemoryService; // wrapperService;
+
+ }
+
+ @Override
+ public void destroy() {
+ threadLocalService = null;
+ // RuntimeContext.remove();
+ }
+
}
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java?rev=936938&r1=936937&r2=936938&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java Thu Apr 22 16:27:57 2010
@@ -48,170 +48,170 @@ import org.apache.commons.logging.LogFac
public class InMemoryVersioningServiceImpl extends InMemoryAbstractServiceImpl implements CmisVersioningService {
- private static final Log LOG = LogFactory.getLog(InMemoryVersioningServiceImpl.class.getName());
+ private static final Log LOG = LogFactory.getLog(InMemoryVersioningServiceImpl.class.getName());
- InMemoryObjectServiceImpl fObjectService; // real implementation of the
- // service
- AtomLinkInfoProvider fAtomLinkProvider;
+ InMemoryObjectServiceImpl fObjectService; // real implementation of the
+ // service
+ AtomLinkInfoProvider fAtomLinkProvider;
- public InMemoryVersioningServiceImpl(StoreManager storeManager, InMemoryObjectServiceImpl objectService) {
- super(storeManager);
- fObjectService = objectService;
- fAtomLinkProvider = new AtomLinkInfoProvider(fStoreManager);
- }
+ public InMemoryVersioningServiceImpl(StoreManager storeManager, InMemoryObjectServiceImpl objectService) {
+ super(storeManager);
+ fObjectService = objectService;
+ fAtomLinkProvider = new AtomLinkInfoProvider(fStoreManager);
+ }
- public void cancelCheckOut(CallContext context, String repositoryId, String objectId, ExtensionsData extension) {
+ public void cancelCheckOut(CallContext context, String repositoryId, String objectId, ExtensionsData extension) {
- StoredObject so = checkStandardParameters(repositoryId, objectId);
- String user = context.getUsername();
- VersionedDocument verDoc = testHasProperCheckedOutStatus(so, user);
+ StoredObject so = checkStandardParameters(repositoryId, objectId);
+ String user = context.getUsername();
+ VersionedDocument verDoc = testHasProperCheckedOutStatus(so, user);
- verDoc.cancelCheckOut(user);
- }
+ verDoc.cancelCheckOut(user);
+ }
- public ObjectData checkIn(CallContext context, String repositoryId, Holder<String> objectId, Boolean major,
- Properties properties, ContentStream contentStream, String checkinComment, List<String> policies,
- Acl addAces, Acl removeAces, ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ public ObjectData checkIn(CallContext context, String repositoryId, Holder<String> objectId, Boolean major,
+ Properties properties, ContentStream contentStream, String checkinComment, List<String> policies,
+ Acl addAces, Acl removeAces, ExtensionsData extension, ObjectInfoHolder objectInfos) {
- StoredObject so = checkStandardParameters(repositoryId, objectId.getValue());
- String user = context.getUsername();
- VersionedDocument verDoc = testHasProperCheckedOutStatus(so, user);
+ StoredObject so = checkStandardParameters(repositoryId, objectId.getValue());
+ String user = context.getUsername();
+ VersionedDocument verDoc = testHasProperCheckedOutStatus(so, user);
- DocumentVersion pwc = verDoc.getPwc();
+ DocumentVersion pwc = verDoc.getPwc();
- if (null != contentStream)
- pwc.setContent(contentStream, false);
+ if (null != contentStream)
+ pwc.setContent(contentStream, false);
- if (null != properties && null != properties.getProperties())
- pwc.setCustomProperties(properties.getProperties());
+ if (null != properties && null != properties.getProperties())
+ pwc.setCustomProperties(properties.getProperties());
- verDoc.checkIn(major, checkinComment, user);
+ verDoc.checkIn(major, checkinComment, user);
- // To be able to provide all Atom links in the response we need
- // additional information:
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ // To be able to provide all Atom links in the response we need
+ // additional information:
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
- ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
- IncludeRelationships.NONE, null, false, false, extension);
+ ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
+ IncludeRelationships.NONE, null, false, false, extension);
- return od;
- }
+ return od;
+ }
- public ObjectData checkOut(CallContext context, String repositoryId, Holder<String> objectId,
- ExtensionsData extension, Holder<Boolean> contentCopied, ObjectInfoHolder objectInfos) {
+ public ObjectData checkOut(CallContext context, String repositoryId, Holder<String> objectId,
+ ExtensionsData extension, Holder<Boolean> contentCopied, ObjectInfoHolder objectInfos) {
- StoredObject so = checkStandardParameters(repositoryId, objectId.getValue());
- TypeDefinition typeDef = getTypeDefinition(repositoryId, so);
- if (!typeDef.getBaseTypeId().equals(BaseTypeId.CMIS_DOCUMENT))
- throw new CmisNotSupportedException("Only documents can be checked-out.");
- else if (!((DocumentTypeDefinition) typeDef).isVersionable())
- throw new CmisNotSupportedException("Object can't be checked-out, type is not versionable.");
+ StoredObject so = checkStandardParameters(repositoryId, objectId.getValue());
+ TypeDefinition typeDef = getTypeDefinition(repositoryId, so);
+ if (!typeDef.getBaseTypeId().equals(BaseTypeId.CMIS_DOCUMENT))
+ throw new CmisNotSupportedException("Only documents can be checked-out.");
+ else if (!((DocumentTypeDefinition) typeDef).isVersionable())
+ throw new CmisNotSupportedException("Object can't be checked-out, type is not versionable.");
- checkIsVersionableObject(so);
+ checkIsVersionableObject(so);
- VersionedDocument verDoc = getVersionedDocumentOfObjectId(so);
+ VersionedDocument verDoc = getVersionedDocumentOfObjectId(so);
- ContentStream content = null;
+ ContentStream content = null;
- if (so instanceof DocumentVersion) {
- // get document the version is contained in to c
- content = ((DocumentVersion) so).getContent(0, -1);
- } else {
- content = ((VersionedDocument) so).getLatestVersion(false).getContent(0, -1);
- }
+ if (so instanceof DocumentVersion) {
+ // get document the version is contained in to c
+ content = ((DocumentVersion) so).getContent(0, -1);
+ } else {
+ content = ((VersionedDocument) so).getLatestVersion(false).getContent(0, -1);
+ }
- if (verDoc.isCheckedOut())
- throw new CmisUpdateConflictException("Document " + objectId.getValue() + " is already checked out.");
+ if (verDoc.isCheckedOut())
+ throw new CmisUpdateConflictException("Document " + objectId.getValue() + " is already checked out.");
- String user = context.getUsername();
- checkHasUser(user);
+ String user = context.getUsername();
+ checkHasUser(user);
- DocumentVersion pwc = verDoc.checkOut(content, user);
- objectId.setValue(pwc.getId()); // return the id of the created pwc
+ DocumentVersion pwc = verDoc.checkOut(content, user);
+ objectId.setValue(pwc.getId()); // return the id of the created pwc
- // To be able to provide all Atom links in the response we need
- // additional information:
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ // To be able to provide all Atom links in the response we need
+ // additional information:
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
- ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
- IncludeRelationships.NONE, null, false, false, extension);
+ ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
+ IncludeRelationships.NONE, null, false, false, extension);
- return od;
- }
+ return od;
+ }
- public List<ObjectData> getAllVersions(CallContext context, String repositoryId, String versionSeriesId,
- String filter, Boolean includeAllowableActions, ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ public List<ObjectData> getAllVersions(CallContext context, String repositoryId, String versionSeriesId,
+ String filter, Boolean includeAllowableActions, ExtensionsData extension, ObjectInfoHolder objectInfos) {
- StoredObject so = checkStandardParameters(repositoryId, versionSeriesId);
+ StoredObject so = checkStandardParameters(repositoryId, versionSeriesId);
- if (!(so instanceof VersionedDocument))
- throw new RuntimeException("Object is not instance of a VersionedDocument (version series)");
+ if (!(so instanceof VersionedDocument))
+ throw new RuntimeException("Object is not instance of a VersionedDocument (version series)");
- VersionedDocument verDoc = (VersionedDocument) so;
- List<ObjectData> res = new ArrayList<ObjectData>();
- List<DocumentVersion> versions = verDoc.getAllVersions();
- for (DocumentVersion version : versions) {
- ObjectData objData = getObject(context, repositoryId, version.getId(), filter, includeAllowableActions,
- extension, objectInfos);
- res.add(objData);
- }
+ VersionedDocument verDoc = (VersionedDocument) so;
+ List<ObjectData> res = new ArrayList<ObjectData>();
+ List<DocumentVersion> versions = verDoc.getAllVersions();
+ for (DocumentVersion version : versions) {
+ ObjectData objData = getObject(context, repositoryId, version.getId(), filter, includeAllowableActions,
+ extension, objectInfos);
+ res.add(objData);
+ }
- // provide information for Atom links for version series:
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ // provide information for Atom links for version series:
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
- return res;
- }
+ return res;
+ }
- public ObjectData getObjectOfLatestVersion(CallContext context, String repositoryId, String versionSeriesId,
- Boolean major, String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
- String renditionFilter, Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension,
- ObjectInfoHolder objectInfos) {
+ public ObjectData getObjectOfLatestVersion(CallContext context, String repositoryId, String versionSeriesId,
+ Boolean major, String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
+ String renditionFilter, Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension,
+ ObjectInfoHolder objectInfos) {
- StoredObject so = checkStandardParameters(repositoryId, versionSeriesId);
- ObjectData objData = null;
+ StoredObject so = checkStandardParameters(repositoryId, versionSeriesId);
+ ObjectData objData = null;
- if (so instanceof VersionedDocument) {
- VersionedDocument verDoc = (VersionedDocument) so;
- DocumentVersion latestVersion = verDoc.getLatestVersion(major);
- objData = getObject(context, repositoryId, latestVersion.getId(), filter, includeAllowableActions,
- extension, objectInfos);
- } else if (so instanceof Document) {
- objData = getObject(context, repositoryId, so.getId(), filter, includeAllowableActions, extension,
- objectInfos);
- } else
- throw new RuntimeException("Object is not instance of a document (version series)");
+ if (so instanceof VersionedDocument) {
+ VersionedDocument verDoc = (VersionedDocument) so;
+ DocumentVersion latestVersion = verDoc.getLatestVersion(major);
+ objData = getObject(context, repositoryId, latestVersion.getId(), filter, includeAllowableActions,
+ extension, objectInfos);
+ } else if (so instanceof Document) {
+ objData = getObject(context, repositoryId, so.getId(), filter, includeAllowableActions, extension,
+ objectInfos);
+ } else
+ throw new RuntimeException("Object is not instance of a document (version series)");
- // provide information for Atom links for version series:
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ // provide information for Atom links for version series:
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
- return objData;
- }
+ return objData;
+ }
- public Properties getPropertiesOfLatestVersion(CallContext context, String repositoryId, String versionSeriesId,
- Boolean major, String filter, ExtensionsData extension) {
+ public Properties getPropertiesOfLatestVersion(CallContext context, String repositoryId, String versionSeriesId,
+ Boolean major, String filter, ExtensionsData extension) {
- StoredObject so = checkStandardParameters(repositoryId, versionSeriesId);
- StoredObject latestVersionObject = null;
+ StoredObject so = checkStandardParameters(repositoryId, versionSeriesId);
+ StoredObject latestVersionObject = null;
- if (so instanceof VersionedDocument) {
- VersionedDocument verDoc = (VersionedDocument) so;
- latestVersionObject = verDoc.getLatestVersion(major);
- } else if (so instanceof Document) {
- latestVersionObject = so;
- } else
- throw new RuntimeException("Object is not instance of a document (version series)");
+ if (so instanceof VersionedDocument) {
+ VersionedDocument verDoc = (VersionedDocument) so;
+ latestVersionObject = verDoc.getLatestVersion(major);
+ } else if (so instanceof Document) {
+ latestVersionObject = so;
+ } else
+ throw new RuntimeException("Object is not instance of a document (version series)");
- List<String> requestedIds = FilterParser.getRequestedIdsFromFilter(filter);
- Properties props = PropertyCreationHelper.getPropertiesFromObject(repositoryId, latestVersionObject,
- fStoreManager, requestedIds);
+ List<String> requestedIds = FilterParser.getRequestedIdsFromFilter(filter);
+ Properties props = PropertyCreationHelper.getPropertiesFromObject(repositoryId, latestVersionObject,
+ fStoreManager, requestedIds);
- return props;
- }
+ return props;
+ }
- private ObjectData getObject(CallContext context, String repositoryId, String objectId, String filter,
- Boolean includeAllowableActions, ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ private ObjectData getObject(CallContext context, String repositoryId, String objectId, String filter,
+ Boolean includeAllowableActions, ExtensionsData extension, ObjectInfoHolder objectInfos) {
- return fObjectService.getObject(context, repositoryId, objectId, filter, includeAllowableActions,
- IncludeRelationships.NONE, null, false, includeAllowableActions, extension, objectInfos);
- }
+ return fObjectService.getObject(context, repositoryId, objectId, filter, includeAllowableActions,
+ IncludeRelationships.NONE, null, false, includeAllowableActions, extension, objectInfos);
+ }
}