From 1119fdacde4f0c0224d47d7b8da03c8d65b99357 Mon Sep 17 00:00:00 2001 From: Aron Roberts Date: Wed, 4 Apr 2012 17:11:02 -0700 Subject: [PATCH] CSPACE-4817: ImportsResource now extends AbstractCollectionSpaceResourceImpl, rather than ResourceBase, in part to help avoid potentially indeterminate scenarios where ResourceBase.create() entirely handles requests to the Imports service, rather than ImportsResource.create(). --- .../CollectionSpaceJaxRsApplication.java | 3 ++- .../services/imports/ImportsResource.java | 25 +++++++++++++------ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/services/JaxRsServiceProvider/src/main/java/org/collectionspace/services/jaxrs/CollectionSpaceJaxRsApplication.java b/services/JaxRsServiceProvider/src/main/java/org/collectionspace/services/jaxrs/CollectionSpaceJaxRsApplication.java index 75c9713bb..2d90eceaa 100644 --- a/services/JaxRsServiceProvider/src/main/java/org/collectionspace/services/jaxrs/CollectionSpaceJaxRsApplication.java +++ b/services/JaxRsServiceProvider/src/main/java/org/collectionspace/services/jaxrs/CollectionSpaceJaxRsApplication.java @@ -100,6 +100,8 @@ public class CollectionSpaceJaxRsApplication extends Application singletons.add(new RoleResource()); singletons.add(new PermissionResource()); singletons.add(new ServiceGroupResource()); + singletons.add(new ImportsResource()); + addResourceToMapAndSingletons(new VocabularyResource()); addResourceToMapAndSingletons(new PersonAuthorityResource()); @@ -119,7 +121,6 @@ public class CollectionSpaceJaxRsApplication extends Application addResourceToMapAndSingletons(new LoanoutResource()); addResourceToMapAndSingletons(new ObjectExitResource()); addResourceToMapAndSingletons(new BatchResource()); - addResourceToMapAndSingletons(new ImportsResource()); addResourceToMapAndSingletons(new MediaResource()); addResourceToMapAndSingletons(new BlobResource()); addResourceToMapAndSingletons(new MovementResource()); diff --git a/services/imports/service/src/main/java/org/collectionspace/services/imports/ImportsResource.java b/services/imports/service/src/main/java/org/collectionspace/services/imports/ImportsResource.java index 6fc0db06c..094ad136b 100644 --- a/services/imports/service/src/main/java/org/collectionspace/services/imports/ImportsResource.java +++ b/services/imports/service/src/main/java/org/collectionspace/services/imports/ImportsResource.java @@ -23,21 +23,26 @@ */ package org.collectionspace.services.imports; +import org.collectionspace.authentication.AuthN; +import org.collectionspace.services.client.PoxPayloadIn; +import org.collectionspace.services.client.PoxPayloadOut; +import org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl; import org.collectionspace.services.common.ConfigurationException; import org.collectionspace.services.common.FileUtils; -import org.collectionspace.services.common.ResourceBase; import org.collectionspace.services.common.ServiceMain; import org.collectionspace.services.common.ServiceMessages; import org.collectionspace.services.common.api.FileTools; import org.collectionspace.services.common.api.Tools; import org.collectionspace.services.common.api.ZipTools; import org.collectionspace.services.common.config.TenantBindingConfigReaderImpl; +import org.collectionspace.services.common.context.MultipartServiceContextFactory; +import org.collectionspace.services.common.context.ServiceContextFactory; import org.collectionspace.services.common.tenant.RepositoryDomainType; import org.collectionspace.services.common.tenant.TenantBindingType; -import org.collectionspace.authentication.AuthN; - +import org.collectionspace.services.imports.ImportsCommon; import org.collectionspace.services.imports.nuxeo.ImportCommand; import org.collectionspace.services.nuxeo.util.NuxeoUtils; + import org.jboss.resteasy.plugins.providers.multipart.InputPart; import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput; import org.xml.sax.InputSource; @@ -50,6 +55,7 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; @@ -60,7 +66,7 @@ import java.io.FileNotFoundException; import java.io.InputStream; import java.util.List; import java.util.Map; -import javax.ws.rs.core.MediaType; +import org.collectionspace.services.common.ResourceBase; // The modified Nuxeo ImportCommand from nuxeo's shell: @@ -70,10 +76,10 @@ import javax.ws.rs.core.MediaType; @Path(ImportsResource.SERVICE_PATH) @Produces({"application/xml"}) @Consumes({"application/xml"}) -public class ImportsResource extends ResourceBase { +public class ImportsResource extends AbstractCollectionSpaceResourceImpl { - public static final String SERVICE_PATH = "imports"; public static final String SERVICE_NAME = "imports"; + public static final String SERVICE_PATH = "/" + SERVICE_NAME; /* * ASSUMPTION: All Nuxeo services of a given tenancy store their stuff in the same repository domain under @@ -111,7 +117,12 @@ public class ImportsResource extends ResourceBase { @Override public Class getCommonPartClass() { - return ImportsCommon.class; + return ImportsCommon.class; + } + + @Override + public ServiceContextFactory getServiceContextFactory() { + return MultipartServiceContextFactory.get(); } private static String _templateDir = null; -- 2.47.3