diff --git a/pom.xml b/pom.xml index fad87381c9..8670e2d739 100644 --- a/pom.xml +++ b/pom.xml @@ -44,10 +44,15 @@ alfresco-opencmis-extension 1.0 - + + + org.apache.ws.xmlschema + xmlschema-core + 2.2.1 javax.xml diff --git a/source/java/org/alfresco/opencmis/CMISHttpServletRequest.java b/source/java/org/alfresco/opencmis/CMISHttpServletRequest.java index e0774ec758..68d80dfebd 100644 --- a/source/java/org/alfresco/opencmis/CMISHttpServletRequest.java +++ b/source/java/org/alfresco/opencmis/CMISHttpServletRequest.java @@ -484,12 +484,12 @@ public class CMISHttpServletRequest implements HttpServletRequest queryString.append("&repositoryId="); queryString.append(networkId); } + queryString.append("&cmisselector="); + queryString.append(Constants.SELECTOR_REPOSITORY_INFO); + return queryString.toString(); } - else - { - return reqQueryString; - } + return reqQueryString; } @Override diff --git a/source/java/org/alfresco/repo/web/scripts/BufferedRequest.java b/source/java/org/alfresco/repo/web/scripts/BufferedRequest.java index f5886e6139..5a8fd56eff 100644 --- a/source/java/org/alfresco/repo/web/scripts/BufferedRequest.java +++ b/source/java/org/alfresco/repo/web/scripts/BufferedRequest.java @@ -25,31 +25,31 @@ */ package org.alfresco.repo.web.scripts; -import java.io.BufferedReader; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; - -import org.apache.chemistry.opencmis.server.shared.ThresholdOutputStream; -import org.apache.chemistry.opencmis.server.shared.ThresholdOutputStreamFactory; -import org.springframework.extensions.surf.util.Content; -import org.springframework.extensions.webscripts.Description.FormatStyle; -import org.springframework.extensions.webscripts.Match; -import org.springframework.extensions.webscripts.Runtime; -import org.springframework.extensions.webscripts.WebScriptRequest; -import org.springframework.extensions.webscripts.WrappingWebScriptRequest; +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; + +import org.apache.chemistry.opencmis.commons.server.TempStoreOutputStream; +import org.apache.chemistry.opencmis.server.shared.TempStoreOutputStreamFactory; +import org.springframework.extensions.surf.util.Content; +import org.springframework.extensions.webscripts.Description.FormatStyle; +import org.springframework.extensions.webscripts.Match; +import org.springframework.extensions.webscripts.Runtime; +import org.springframework.extensions.webscripts.WebScriptRequest; +import org.springframework.extensions.webscripts.WrappingWebScriptRequest; import org.springframework.util.FileCopyUtils; public class BufferedRequest implements WrappingWebScriptRequest { - private ThresholdOutputStreamFactory streamFactory; + private TempStoreOutputStreamFactory streamFactory; private WebScriptRequest req; private File requestBody; private InputStream contentStream; private BufferedReader contentReader; - public BufferedRequest(WebScriptRequest req, ThresholdOutputStreamFactory streamFactory) + public BufferedRequest(WebScriptRequest req, TempStoreOutputStreamFactory streamFactory) { this.req = req; this.streamFactory = streamFactory; @@ -57,7 +57,7 @@ public class BufferedRequest implements WrappingWebScriptRequest private InputStream bufferInputStream() throws IOException { - ThresholdOutputStream bufferStream = streamFactory.newOutputStream(); + TempStoreOutputStream bufferStream = streamFactory.newOutputStream(); try { @@ -65,7 +65,7 @@ public class BufferedRequest implements WrappingWebScriptRequest } catch (IOException e) { - bufferStream.destroy(); // remove temp file + bufferStream.destroy(e); // remove temp file throw e; } diff --git a/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java b/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java index 33e5a4d3cc..776d49b848 100644 --- a/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java +++ b/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java @@ -25,51 +25,51 @@ */ package org.alfresco.repo.web.scripts; -import java.io.File; -import java.io.IOException; -import java.net.SocketException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletResponse; -import javax.transaction.Status; -import javax.transaction.UserTransaction; - -import org.alfresco.error.AlfrescoRuntimeException; -import org.alfresco.error.ExceptionStackUtil; -import org.alfresco.repo.model.Repository; -import org.alfresco.repo.security.authentication.AuthenticationUtil; -import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; -import org.alfresco.repo.transaction.AlfrescoTransactionSupport; -import org.alfresco.repo.transaction.AlfrescoTransactionSupport.TxnReadState; -import org.alfresco.repo.transaction.RetryingTransactionHelper; -import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; -import org.alfresco.repo.transaction.TooBusyException; -import org.alfresco.repo.web.scripts.bean.LoginPost; -import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.cmr.repository.TemplateService; -import org.alfresco.service.cmr.security.AuthorityService; -import org.alfresco.service.descriptor.DescriptorService; -import org.alfresco.service.transaction.TransactionService; -import org.alfresco.util.TempFileProvider; -import org.apache.chemistry.opencmis.server.shared.ThresholdOutputStreamFactory; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationEvent; -import org.springframework.context.event.ContextRefreshedEvent; -import org.springframework.extensions.webscripts.AbstractRuntimeContainer; -import org.springframework.extensions.webscripts.Authenticator; -import org.springframework.extensions.webscripts.Description; -import org.springframework.extensions.webscripts.Description.RequiredAuthentication; -import org.springframework.extensions.webscripts.Description.RequiredTransaction; -import org.springframework.extensions.webscripts.Description.RequiredTransactionParameters; -import org.springframework.extensions.webscripts.Description.TransactionCapability; -import org.springframework.extensions.webscripts.ServerModel; -import org.springframework.extensions.webscripts.WebScript; -import org.springframework.extensions.webscripts.WebScriptException; -import org.springframework.extensions.webscripts.WebScriptRequest; +import java.io.File; +import java.io.IOException; +import java.net.SocketException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletResponse; +import javax.transaction.Status; +import javax.transaction.UserTransaction; + +import org.alfresco.error.AlfrescoRuntimeException; +import org.alfresco.error.ExceptionStackUtil; +import org.alfresco.repo.model.Repository; +import org.alfresco.repo.security.authentication.AuthenticationUtil; +import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; +import org.alfresco.repo.transaction.AlfrescoTransactionSupport; +import org.alfresco.repo.transaction.AlfrescoTransactionSupport.TxnReadState; +import org.alfresco.repo.transaction.RetryingTransactionHelper; +import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; +import org.alfresco.repo.transaction.TooBusyException; +import org.alfresco.repo.web.scripts.bean.LoginPost; +import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.cmr.repository.TemplateService; +import org.alfresco.service.cmr.security.AuthorityService; +import org.alfresco.service.descriptor.DescriptorService; +import org.alfresco.service.transaction.TransactionService; +import org.alfresco.util.TempFileProvider; +import org.apache.chemistry.opencmis.server.shared.TempStoreOutputStreamFactory; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationEvent; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.extensions.webscripts.AbstractRuntimeContainer; +import org.springframework.extensions.webscripts.Authenticator; +import org.springframework.extensions.webscripts.Description; +import org.springframework.extensions.webscripts.Description.RequiredAuthentication; +import org.springframework.extensions.webscripts.Description.RequiredTransaction; +import org.springframework.extensions.webscripts.Description.RequiredTransactionParameters; +import org.springframework.extensions.webscripts.Description.TransactionCapability; +import org.springframework.extensions.webscripts.ServerModel; +import org.springframework.extensions.webscripts.WebScript; +import org.springframework.extensions.webscripts.WebScriptException; +import org.springframework.extensions.webscripts.WebScriptRequest; import org.springframework.extensions.webscripts.WebScriptResponse; @@ -96,7 +96,7 @@ public class RepositoryContainer extends AbstractRuntimeContainer private String tempDirectoryName = null; private int memoryThreshold = 4 * 1024 * 1024; // 4mb private long maxContentSize = (long) 4 * 1024 * 1024 * 1024; // 4gb - private ThresholdOutputStreamFactory streamFactory = null; + private TempStoreOutputStreamFactory streamFactory = null; private Class[] notPublicExceptions = new Class[] {}; private Class[] publicExceptions = new Class[] {}; @@ -107,7 +107,7 @@ public class RepositoryContainer extends AbstractRuntimeContainer public void setup() { File tempDirectory = TempFileProvider.getTempDir(tempDirectoryName); - this.streamFactory = ThresholdOutputStreamFactory.newInstance(tempDirectory, memoryThreshold, maxContentSize, encryptTempFiles); + this.streamFactory = TempStoreOutputStreamFactory.newInstance(tempDirectory, memoryThreshold, maxContentSize, encryptTempFiles); } public void setEncryptTempFiles(Boolean encryptTempFiles) diff --git a/source/java/org/alfresco/rest/framework/webscripts/ApiWebScript.java b/source/java/org/alfresco/rest/framework/webscripts/ApiWebScript.java index 52200a11ca..126056e3fe 100644 --- a/source/java/org/alfresco/rest/framework/webscripts/ApiWebScript.java +++ b/source/java/org/alfresco/rest/framework/webscripts/ApiWebScript.java @@ -32,29 +32,15 @@ import java.util.Map; import org.alfresco.repo.web.scripts.BufferedRequest; import org.alfresco.repo.web.scripts.BufferedResponse; import org.alfresco.rest.framework.Api; -import org.alfresco.rest.framework.core.exceptions.DefaultExceptionResolver; -import org.alfresco.rest.framework.core.exceptions.ErrorResponse; -import org.alfresco.rest.framework.core.exceptions.ExceptionResolver; -import org.alfresco.rest.framework.jacksonextensions.JacksonHelper; -import org.alfresco.rest.framework.jacksonextensions.JacksonHelper.Writer; -import org.alfresco.rest.framework.resource.content.ContentInfo; -import org.alfresco.rest.framework.resource.content.ContentInfoImpl; import org.alfresco.rest.framework.tools.ApiAssistant; import org.alfresco.service.transaction.TransactionService; -import org.alfresco.util.GUID; import org.alfresco.util.TempFileProvider; -import org.apache.chemistry.opencmis.server.shared.ThresholdOutputStreamFactory; +import org.apache.chemistry.opencmis.server.shared.TempStoreOutputStreamFactory; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.codehaus.jackson.JsonGenerationException; -import org.codehaus.jackson.JsonGenerator; -import org.codehaus.jackson.map.JsonMappingException; -import org.codehaus.jackson.map.ObjectMapper; -import org.json.simple.JSONObject; -import org.springframework.extensions.surf.util.I18NUtil; -import org.springframework.extensions.webscripts.*; -import org.springframework.extensions.webscripts.Description.RequiredCache; -import org.springframework.extensions.webscripts.servlet.WebScriptServletResponse; +import org.springframework.extensions.webscripts.AbstractWebScript; +import org.springframework.extensions.webscripts.WebScriptRequest; +import org.springframework.extensions.webscripts.WebScriptResponse; /** * Entry point for API webscript. Supports version/scope as well @@ -70,7 +56,7 @@ public abstract class ApiWebScript extends AbstractWebScript protected String tempDirectoryName = null; protected int memoryThreshold = 4 * 1024 * 1024; // 4mb protected long maxContentSize = (long) 4 * 1024 * 1024 * 1024; // 4gb - protected ThresholdOutputStreamFactory streamFactory = null; + protected TempStoreOutputStreamFactory streamFactory = null; protected TransactionService transactionService; public void setTransactionService(TransactionService transactionService) @@ -102,7 +88,7 @@ public abstract class ApiWebScript extends AbstractWebScript this.maxContentSize = maxContentSize; } - public void setStreamFactory(ThresholdOutputStreamFactory streamFactory) + public void setStreamFactory(TempStoreOutputStreamFactory streamFactory) { this.streamFactory = streamFactory; } @@ -110,7 +96,7 @@ public abstract class ApiWebScript extends AbstractWebScript public void init() { File tempDirectory = TempFileProvider.getTempDir(tempDirectoryName); - this.streamFactory = ThresholdOutputStreamFactory.newInstance(tempDirectory, memoryThreshold, maxContentSize, encryptTempFiles); + this.streamFactory = TempStoreOutputStreamFactory.newInstance(tempDirectory, memoryThreshold, maxContentSize, encryptTempFiles); } @Override