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