You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fg...@apache.org on 2010/03/03 11:02:59 UTC
svn commit: r918377 - in
/incubator/chemistry/trunk/chemistry/chemistry-soap-server: examples/
src/main/java/org/apache/chemistry/soap/server/
Author: fguillaume
Date: Wed Mar 3 10:02:58 2010
New Revision: 918377
URL: http://svn.apache.org/viewvc?rev=918377&view=rev
Log:
Classes for SOAP bindings, start work on implementation (bridge to SPI)
Added:
incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ACLServicePortImpl.java (with props)
incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/MultiFilingServicePortImpl.java (with props)
incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/NavigationServicePortImpl.java (with props)
incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ObjectServicePortImpl.java (with props)
incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/PolicyServicePortImpl.java (with props)
incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/RelationshipServicePortImpl.java (with props)
incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/VersioningServicePortImpl.java (with props)
Modified:
incubator/chemistry/trunk/chemistry/chemistry-soap-server/examples/sun-jaxws.xml
incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ChemistryHelper.java
incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/DiscoveryServicePortImpl.java
incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/RepositoryServicePortImpl.java
Modified: incubator/chemistry/trunk/chemistry/chemistry-soap-server/examples/sun-jaxws.xml
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-soap-server/examples/sun-jaxws.xml?rev=918377&r1=918376&r2=918377&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-soap-server/examples/sun-jaxws.xml (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-soap-server/examples/sun-jaxws.xml Wed Mar 3 10:02:58 2010
@@ -1,5 +1,82 @@
<?xml version="1.0"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
+ <endpoint name="ACLService"
+ implementation="org.apache.chemistry.soap.server.ACLServicePortImpl"
+ url-pattern="/webservices/cmis/ACLService">
+ <handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
+ <handler-chain>
+ <handler>
+ <handler-class>org.apache.chemistry.soap.server.AuthHandler</handler-class>
+ </handler>
+ </handler-chain>
+ </handler-chains>
+ </endpoint>
+ <endpoint name="DiscoveryService"
+ implementation="org.apache.chemistry.soap.server.DiscoveryServicePortImpl"
+ url-pattern="/webservices/cmis/DiscoveryService">
+ <handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
+ <handler-chain>
+ <handler>
+ <handler-class>org.apache.chemistry.soap.server.AuthHandler</handler-class>
+ </handler>
+ </handler-chain>
+ </handler-chains>
+ </endpoint>
+ <endpoint name="MultiFilingService"
+ implementation="org.apache.chemistry.soap.server.MultiFilingServicePortImpl"
+ url-pattern="/webservices/cmis/MultiFilingService">
+ <handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
+ <handler-chain>
+ <handler>
+ <handler-class>org.apache.chemistry.soap.server.AuthHandler</handler-class>
+ </handler>
+ </handler-chain>
+ </handler-chains>
+ </endpoint>
+ <endpoint name="NavigationService"
+ implementation="org.apache.chemistry.soap.server.NavigationServicePortImpl"
+ url-pattern="/webservices/cmis/NavigationService">
+ <handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
+ <handler-chain>
+ <handler>
+ <handler-class>org.apache.chemistry.soap.server.AuthHandler</handler-class>
+ </handler>
+ </handler-chain>
+ </handler-chains>
+ </endpoint>
+ <endpoint name="ObjectService"
+ implementation="org.apache.chemistry.soap.server.ObjectServicePortImpl"
+ url-pattern="/webservices/cmis/ObjectService">
+ <handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
+ <handler-chain>
+ <handler>
+ <handler-class>org.apache.chemistry.soap.server.AuthHandler</handler-class>
+ </handler>
+ </handler-chain>
+ </handler-chains>
+ </endpoint>
+ <endpoint name="PolicyService"
+ implementation="org.apache.chemistry.soap.server.PolicyServicePortImpl"
+ url-pattern="/webservices/cmis/PolicyService">
+ <handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
+ <handler-chain>
+ <handler>
+ <handler-class>org.apache.chemistry.soap.server.AuthHandler</handler-class>
+ </handler>
+ </handler-chain>
+ </handler-chains>
+ </endpoint>
+ <endpoint name="RelationshipService"
+ implementation="org.apache.chemistry.soap.server.RelationshipServicePortImpl"
+ url-pattern="/webservices/cmis/RelationshipService">
+ <handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
+ <handler-chain>
+ <handler>
+ <handler-class>org.apache.chemistry.soap.server.AuthHandler</handler-class>
+ </handler>
+ </handler-chain>
+ </handler-chains>
+ </endpoint>
<endpoint name="RepositoryService"
implementation="org.apache.chemistry.soap.server.RepositoryServicePortImpl"
url-pattern="/webservices/cmis/RepositoryService">
@@ -11,4 +88,15 @@
</handler-chain>
</handler-chains>
</endpoint>
+ <endpoint name="VersioningService"
+ implementation="org.apache.chemistry.soap.server.VersioningServicePortImpl"
+ url-pattern="/webservices/cmis/VersioningService">
+ <handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
+ <handler-chain>
+ <handler>
+ <handler-class>org.apache.chemistry.soap.server.AuthHandler</handler-class>
+ </handler>
+ </handler-chain>
+ </handler-chains>
+ </endpoint>
</endpoints>
Added: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ACLServicePortImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ACLServicePortImpl.java?rev=918377&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ACLServicePortImpl.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ACLServicePortImpl.java Wed Mar 3 10:02:58 2010
@@ -0,0 +1,59 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ * Florent Guillaume, Nuxeo
+ */
+package org.apache.chemistry.soap.server;
+
+import javax.annotation.Resource;
+import javax.jws.WebService;
+import javax.xml.ws.WebServiceContext;
+
+import org.apache.chemistry.ws.ACLServicePort;
+import org.apache.chemistry.ws.CmisACLType;
+import org.apache.chemistry.ws.CmisAccessControlListType;
+import org.apache.chemistry.ws.CmisException;
+import org.apache.chemistry.ws.CmisExtensionType;
+import org.apache.chemistry.ws.EnumACLPropagation;
+import org.apache.chemistry.ws.ObjectFactory;
+
+@WebService(name = "ACLServicePort", //
+targetNamespace = "http://docs.oasis-open.org/ns/cmis/ws/200908/", //
+serviceName = "ACLService", //
+portName = "ACLServicePort", //
+endpointInterface = "org.apache.chemistry.ws.ACLServicePort")
+public class ACLServicePortImpl implements ACLServicePort {
+
+ private static final ObjectFactory factory = new ObjectFactory();
+
+ @Resource
+ private WebServiceContext wscontext;
+
+ public CmisACLType applyACL(String repositoryId, String objectId,
+ CmisAccessControlListType addACEs,
+ CmisAccessControlListType removeACEs,
+ EnumACLPropagation aclPropagation, CmisExtensionType extension)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public CmisACLType getACL(String repositoryId, String objectId,
+ Boolean onlyBasicPermissions, CmisExtensionType extension)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+}
Propchange: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ACLServicePortImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ACLServicePortImpl.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ChemistryHelper.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ChemistryHelper.java?rev=918377&r1=918376&r2=918377&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ChemistryHelper.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ChemistryHelper.java Wed Mar 3 10:02:58 2010
@@ -20,8 +20,10 @@
import java.math.BigDecimal;
import java.math.BigInteger;
import java.net.URI;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
+import java.util.Collection;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Map.Entry;
@@ -30,35 +32,86 @@
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
+import org.apache.chemistry.BaseType;
import org.apache.chemistry.CapabilityJoin;
import org.apache.chemistry.CapabilityQuery;
+import org.apache.chemistry.ListPage;
import org.apache.chemistry.ObjectEntry;
import org.apache.chemistry.Property;
+import org.apache.chemistry.PropertyDefinition;
import org.apache.chemistry.PropertyType;
+import org.apache.chemistry.RepositoryCapabilities;
+import org.apache.chemistry.RepositoryInfo;
+import org.apache.chemistry.Type;
+import org.apache.chemistry.Updatability;
+import org.apache.chemistry.ws.CmisObjectListType;
import org.apache.chemistry.ws.CmisObjectType;
import org.apache.chemistry.ws.CmisPropertiesType;
import org.apache.chemistry.ws.CmisProperty;
import org.apache.chemistry.ws.CmisPropertyBoolean;
import org.apache.chemistry.ws.CmisPropertyDateTime;
import org.apache.chemistry.ws.CmisPropertyDecimal;
+import org.apache.chemistry.ws.CmisPropertyDefinitionType;
import org.apache.chemistry.ws.CmisPropertyHtml;
import org.apache.chemistry.ws.CmisPropertyId;
import org.apache.chemistry.ws.CmisPropertyInteger;
import org.apache.chemistry.ws.CmisPropertyString;
import org.apache.chemistry.ws.CmisPropertyUri;
+import org.apache.chemistry.ws.CmisRepositoryCapabilitiesType;
+import org.apache.chemistry.ws.CmisRepositoryInfoType;
+import org.apache.chemistry.ws.CmisTypeContainer;
+import org.apache.chemistry.ws.CmisTypeDefinitionListType;
+import org.apache.chemistry.ws.CmisTypeDefinitionType;
+import org.apache.chemistry.ws.EnumBaseObjectTypeIds;
import org.apache.chemistry.ws.EnumCapabilityJoin;
import org.apache.chemistry.ws.EnumCapabilityQuery;
+import org.apache.chemistry.ws.EnumCardinality;
+import org.apache.chemistry.ws.EnumPropertyType;
+import org.apache.chemistry.ws.EnumUpdatability;
+import org.apache.chemistry.ws.ObjectFactory;
+import org.apache.chemistry.ws.QueryResponse;
/**
* Helper for various Chemistry to JAXB conversions.
*/
public class ChemistryHelper {
+ private static final ObjectFactory factory = new ObjectFactory();
+
private ChemistryHelper() {
// utility class;
}
- public static EnumCapabilityQuery chemistryToJAXB(CapabilityQuery query) {
+ public static CmisRepositoryInfoType convert(RepositoryInfo cri) {
+ CmisRepositoryInfoType ri = factory.createCmisRepositoryInfoType();
+ ri.setRepositoryId(cri.getId());
+ ri.setRepositoryName(cri.getName());
+ ri.setRepositoryDescription(cri.getDescription());
+ ri.setVendorName(cri.getVendorName());
+ ri.setProductName(cri.getProductName());
+ ri.setProductVersion(cri.getProductVersion());
+ ri.setCmisVersionSupported(cri.getVersionSupported());
+ ri.setRootFolderId(cri.getRootFolderId().getId());
+
+ CmisRepositoryCapabilitiesType cap = factory.createCmisRepositoryCapabilitiesType();
+ RepositoryCapabilities ccap = cri.getCapabilities();
+ ri.setCapabilities(cap);
+ cap.setCapabilityMultifiling(ccap.hasMultifiling());
+ cap.setCapabilityUnfiling(ccap.hasUnfiling());
+ cap.setCapabilityVersionSpecificFiling(ccap.hasVersionSpecificFiling());
+ cap.setCapabilityPWCUpdatable(ccap.isPWCUpdatable());
+ cap.setCapabilityPWCSearchable(ccap.isPWCSearchable());
+ cap.setCapabilityAllVersionsSearchable(ccap.isAllVersionsSearchable());
+ cap.setCapabilityQuery(convert(ccap.getQueryCapability()));
+ cap.setCapabilityJoin(convert(ccap.getJoinCapability()));
+
+ return ri;
+ }
+
+ public static EnumCapabilityQuery convert(CapabilityQuery query) {
+ if (query == null) {
+ return null;
+ }
switch (query) {
case NONE:
return EnumCapabilityQuery.NONE;
@@ -71,11 +124,14 @@
case BOTH_SEPARATE:
return EnumCapabilityQuery.BOTHSEPARATE;
default:
- throw new RuntimeException();
+ throw new RuntimeException(query.name());
}
}
- public static EnumCapabilityJoin chemistryToJAXB(CapabilityJoin join) {
+ public static EnumCapabilityJoin convert(CapabilityJoin join) {
+ if (join == null) {
+ return null;
+ }
switch (join) {
case NONE:
return EnumCapabilityJoin.NONE;
@@ -84,18 +140,162 @@
case INNER_AND_OUTER:
return EnumCapabilityJoin.INNERANDOUTER;
default:
- throw new RuntimeException();
+ throw new RuntimeException(join.name());
+ }
+ }
+
+ public static EnumBaseObjectTypeIds convert(BaseType type) {
+ if (type == null) {
+ return null;
+ }
+ switch (type) {
+ case DOCUMENT:
+ return EnumBaseObjectTypeIds.CMIS_DOCUMENT;
+ case FOLDER:
+ return EnumBaseObjectTypeIds.CMIS_FOLDER;
+ case POLICY:
+ return EnumBaseObjectTypeIds.CMIS_POLICY;
+ case RELATIONSHIP:
+ return EnumBaseObjectTypeIds.CMIS_RELATIONSHIP;
+ default:
+ throw new RuntimeException(type.name());
}
}
- public static void chemistryToJAXB(ObjectEntry entry, CmisObjectType object) {
- CmisPropertiesType properties = new CmisPropertiesType();
+ public static EnumPropertyType convert(PropertyType type) {
+ if (type == null) {
+ return null;
+ }
+ switch (type.ordinal()) {
+ case PropertyType.STRING_ORD:
+ return EnumPropertyType.STRING;
+ case PropertyType.DECIMAL_ORD:
+ return EnumPropertyType.DECIMAL;
+ case PropertyType.INTEGER_ORD:
+ return EnumPropertyType.INTEGER;
+ case PropertyType.BOOLEAN_ORD:
+ return EnumPropertyType.BOOLEAN;
+ case PropertyType.DATETIME_ORD:
+ return EnumPropertyType.DATETIME;
+ case PropertyType.URI_ORD:
+ return EnumPropertyType.URI;
+ case PropertyType.ID_ORD:
+ return EnumPropertyType.ID;
+ case PropertyType.HTML_ORD:
+ return EnumPropertyType.HTML;
+ default:
+ throw new RuntimeException(type.name());
+ }
+ }
+
+ public static EnumCardinality convertMulti(boolean bool) {
+ return bool ? EnumCardinality.MULTI : EnumCardinality.SINGLE;
+ }
+
+ public static EnumUpdatability convert(Updatability up) {
+ if (up == null) {
+ return null;
+ }
+ switch (up) {
+ case READ_ONLY:
+ return EnumUpdatability.READONLY;
+ case READ_WRITE:
+ return EnumUpdatability.READWRITE;
+ case WHEN_CHECKED_OUT:
+ return EnumUpdatability.WHENCHECKEDOUT;
+ case ON_CREATE:
+ return EnumUpdatability.ONCREATE;
+ default:
+ throw new RuntimeException(up.name());
+ }
+ }
+
+ public static CmisPropertyDefinitionType convert(PropertyDefinition cpd) {
+ CmisPropertyDefinitionType pd = factory.createCmisPropertyDefinitionType();
+ pd.setId(cpd.getId());
+ pd.setLocalName(cpd.getLocalName());
+ URI dlns = cpd.getLocalNamespace();
+ pd.setLocalNamespace(dlns == null ? null : dlns.toString());
+ pd.setDisplayName(cpd.getDisplayName());
+ pd.setQueryName(cpd.getQueryName());
+ pd.setDescription(cpd.getDescription());
+ pd.setPropertyType(convert(cpd.getType()));
+ pd.setCardinality(convertMulti(cpd.isMultiValued()));
+ pd.setUpdatability(convert(cpd.getUpdatability()));
+ pd.setInherited(Boolean.valueOf(cpd.isInherited()));
+ pd.setRequired(cpd.isRequired());
+ pd.setQueryable(cpd.isQueryable());
+ pd.setOrderable(cpd.isOrderable());
+ pd.setOpenChoice(Boolean.valueOf(cpd.isOpenChoice()));
+ return pd;
+ }
+
+ public static CmisTypeDefinitionType convert(Type ct) {
+ CmisTypeDefinitionType t = factory.createCmisTypeDefinitionType();
+ t.setId(ct.getId());
+ t.setLocalName(ct.getLocalName());
+ URI tlns = ct.getLocalNamespace();
+ t.setLocalNamespace(tlns == null ? null : tlns.toString());
+ t.setDisplayName(ct.getDisplayName());
+ t.setQueryName(ct.getQueryName());
+ t.setDescription(ct.getDescription());
+ t.setBaseId(convert(ct.getBaseType()));
+ t.setParentId(ct.getParentId());
+ t.setCreatable(ct.isCreatable());
+ t.setFileable(ct.isFileable());
+ t.setQueryable(ct.isQueryable());
+ t.setFulltextIndexed(ct.isFulltextIndexed());
+ t.setIncludedInSupertypeQuery(ct.isIncludedInSuperTypeQuery());
+ t.setControllablePolicy(ct.isControllablePolicy());
+ t.setControllableACL(ct.isControllableACL());
+ List<CmisPropertyDefinitionType> pdl = t.getPropertyDefinition();
+ for (PropertyDefinition cpd : ct.getPropertyDefinitions()) {
+ pdl.add(convert(cpd));
+ }
+ return t;
+ }
+
+ public static CmisTypeDefinitionListType convert(ListPage<Type> ctl) {
+ CmisTypeDefinitionListType tl = factory.createCmisTypeDefinitionListType();
+ for (Type ct : ctl) {
+ tl.getTypes().add(convert(ct));
+ }
+ tl.setHasMoreItems(ctl.getHasMoreItems());
+ tl.setNumItems(BigInteger.valueOf(ctl.getNumItems()));
+ return tl;
+ }
+
+ public static List<CmisTypeContainer> convert(Collection<Type> ctl) {
+ List<CmisTypeContainer> list = new ArrayList<CmisTypeContainer>(
+ ctl.size());
+ // for (Type ct : ctl) {
+ // XXX
+ // }
+ return list;
+ }
+
+ public static CmisObjectType convert(ObjectEntry entry) {
+ CmisObjectType object = factory.createCmisObjectType();
+ CmisPropertiesType properties = factory.createCmisPropertiesType();
List<CmisProperty> list = properties.getProperty();
for (Entry<String, Serializable> e : entry.getValues().entrySet()) {
list.add(getWSCmisProperty(e.getKey(), e.getValue()));
}
object.setProperties(properties);
// object.setAllowableActions(null);
+ return object;
+ }
+
+ public static QueryResponse convertQuery(ListPage<ObjectEntry> res) {
+ QueryResponse response = factory.createQueryResponse();
+ CmisObjectListType objects = factory.createCmisObjectListType();
+ response.setObjects(objects);
+ for (ObjectEntry entry : res) {
+ objects.getObjects().add(convert(entry));
+ }
+ objects.setHasMoreItems(res.getHasMoreItems());
+ objects.setNumItems(BigInteger.valueOf(res.getNumItems()));
+ return response;
}
/**
Modified: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/DiscoveryServicePortImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/DiscoveryServicePortImpl.java?rev=918377&r1=918376&r2=918377&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/DiscoveryServicePortImpl.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/DiscoveryServicePortImpl.java Wed Mar 3 10:02:58 2010
@@ -41,6 +41,7 @@
import org.apache.chemistry.ws.CmisObjectType;
import org.apache.chemistry.ws.DiscoveryServicePort;
import org.apache.chemistry.ws.EnumIncludeRelationships;
+import org.apache.chemistry.ws.ObjectFactory;
import org.apache.chemistry.ws.Query;
import org.apache.chemistry.ws.QueryResponse;
@@ -52,7 +53,7 @@
public class DiscoveryServicePortImpl implements DiscoveryServicePort {
@Resource
- WebServiceContext wscontext;
+ private WebServiceContext wscontext;
public QueryResponse query(Query parameters) throws CmisException {
// repository
@@ -94,29 +95,16 @@
Inclusion inclusion = new Inclusion(null, renditions, relationships,
allowableActions, false, false);
- // response
- QueryResponse response = new QueryResponse();
- CmisObjectListType objects = new CmisObjectListType();
- response.setObjects(objects);
-
Map<String, Serializable> params = CallContext.mapFromWebServiceContext(wscontext);
SPI spi = repository.getSPI(params);
try {
ListPage<ObjectEntry> res = spi.query(statement, searchAllVersions,
inclusion, paging);
- objects.setHasMoreItems(res.getHasMoreItems());
- objects.setNumItems(BigInteger.valueOf(res.getNumItems()));
- List<CmisObjectType> objectList = objects.getObjects();
- for (ObjectEntry entry : res) {
- CmisObjectType object = new CmisObjectType();
- ChemistryHelper.chemistryToJAXB(entry, object);
- objectList.add(object);
- }
+
+ return ChemistryHelper.convertQuery(res);
} finally {
spi.close();
}
-
- return response;
}
public void getContentChanges(String repositoryId,
Added: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/MultiFilingServicePortImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/MultiFilingServicePortImpl.java?rev=918377&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/MultiFilingServicePortImpl.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/MultiFilingServicePortImpl.java Wed Mar 3 10:02:58 2010
@@ -0,0 +1,54 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ * Florent Guillaume, Nuxeo
+ */
+package org.apache.chemistry.soap.server;
+
+import javax.annotation.Resource;
+import javax.jws.WebService;
+import javax.xml.ws.WebServiceContext;
+
+import org.apache.chemistry.ws.CmisException;
+import org.apache.chemistry.ws.CmisExtensionType;
+import org.apache.chemistry.ws.MultiFilingServicePort;
+import org.apache.chemistry.ws.ObjectFactory;
+
+@WebService(name = "MultiFilingServicePort", //
+targetNamespace = "http://docs.oasis-open.org/ns/cmis/ws/200908/", //
+serviceName = "MultiFilingService", //
+portName = "MultiFilingServicePort", //
+endpointInterface = "org.apache.chemistry.ws.MultiFilingServicePort")
+public class MultiFilingServicePortImpl implements MultiFilingServicePort {
+
+ private static final ObjectFactory factory = new ObjectFactory();
+
+ @Resource
+ private WebServiceContext wscontext;
+
+ public CmisExtensionType addObjectToFolder(String repositoryId,
+ String objectId, String folderId, Boolean allVersions,
+ CmisExtensionType extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public CmisExtensionType removeObjectFromFolder(String repositoryId,
+ String objectId, String folderId, CmisExtensionType extension)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+}
Propchange: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/MultiFilingServicePortImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/MultiFilingServicePortImpl.java
------------------------------------------------------------------------------
svn:keywords = Id
Added: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/NavigationServicePortImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/NavigationServicePortImpl.java?rev=918377&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/NavigationServicePortImpl.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/NavigationServicePortImpl.java Wed Mar 3 10:02:58 2010
@@ -0,0 +1,105 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ * Florent Guillaume, Nuxeo
+ */
+package org.apache.chemistry.soap.server;
+
+import java.math.BigInteger;
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.jws.WebService;
+import javax.xml.ws.WebServiceContext;
+
+import org.apache.chemistry.ws.CmisException;
+import org.apache.chemistry.ws.CmisExtensionType;
+import org.apache.chemistry.ws.CmisObjectInFolderContainerType;
+import org.apache.chemistry.ws.CmisObjectInFolderListType;
+import org.apache.chemistry.ws.CmisObjectListType;
+import org.apache.chemistry.ws.CmisObjectParentsType;
+import org.apache.chemistry.ws.CmisObjectType;
+import org.apache.chemistry.ws.EnumIncludeRelationships;
+import org.apache.chemistry.ws.NavigationServicePort;
+import org.apache.chemistry.ws.ObjectFactory;
+
+@WebService(name = "NavigationService", //
+targetNamespace = "http://docs.oasis-open.org/ns/cmis/ws/200908/", //
+serviceName = "NavigationService", //
+portName = "NavigationServicePort", //
+endpointInterface = "org.apache.chemistry.ws.NavigationServicePort")
+public class NavigationServicePortImpl implements NavigationServicePort {
+
+ private static final ObjectFactory factory = new ObjectFactory();
+
+ @Resource
+ private WebServiceContext wscontext;
+
+ public CmisObjectListType getCheckedOutDocs(String repositoryId,
+ String folderId, String filter, String orderBy,
+ Boolean includeAllowableActions,
+ EnumIncludeRelationships includeRelationships,
+ String renditionFilter, BigInteger maxItems, BigInteger skipCount,
+ CmisExtensionType extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public CmisObjectInFolderListType getChildren(String repositoryId,
+ String folderId, String filter, String orderBy,
+ Boolean includeAllowableActions,
+ EnumIncludeRelationships includeRelationships,
+ String renditionFilter, Boolean includePathSegment,
+ BigInteger maxItems, BigInteger skipCount,
+ CmisExtensionType extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public List<CmisObjectInFolderContainerType> getDescendants(
+ String repositoryId, String folderId, BigInteger depth,
+ String filter, Boolean includeAllowableActions,
+ EnumIncludeRelationships includeRelationships,
+ String renditionFilter, Boolean includePathSegment,
+ CmisExtensionType extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public CmisObjectType getFolderParent(String repositoryId, String folderId,
+ String filter, CmisExtensionType extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public List<CmisObjectInFolderContainerType> getFolderTree(
+ String repositoryId, String folderId, BigInteger depth,
+ String filter, Boolean includeAllowableActions,
+ EnumIncludeRelationships includeRelationships,
+ String renditionFilter, Boolean includePathSegment,
+ CmisExtensionType extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public List<CmisObjectParentsType> getObjectParents(String repositoryId,
+ String objectId, String filter, Boolean includeAllowableActions,
+ EnumIncludeRelationships includeRelationships,
+ String renditionFilter, Boolean includeRelativePathSegment,
+ CmisExtensionType extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+}
Propchange: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/NavigationServicePortImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/NavigationServicePortImpl.java
------------------------------------------------------------------------------
svn:keywords = Id
Added: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ObjectServicePortImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ObjectServicePortImpl.java?rev=918377&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ObjectServicePortImpl.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ObjectServicePortImpl.java Wed Mar 3 10:02:58 2010
@@ -0,0 +1,200 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ * Florent Guillaume, Nuxeo
+ */
+package org.apache.chemistry.soap.server;
+
+import java.math.BigInteger;
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.jws.WebService;
+import javax.xml.ws.Holder;
+import javax.xml.ws.WebServiceContext;
+
+import org.apache.chemistry.ws.CmisAccessControlListType;
+import org.apache.chemistry.ws.CmisAllowableActionsType;
+import org.apache.chemistry.ws.CmisContentStreamType;
+import org.apache.chemistry.ws.CmisException;
+import org.apache.chemistry.ws.CmisExtensionType;
+import org.apache.chemistry.ws.CmisObjectType;
+import org.apache.chemistry.ws.CmisPropertiesType;
+import org.apache.chemistry.ws.CmisRenditionType;
+import org.apache.chemistry.ws.EnumIncludeRelationships;
+import org.apache.chemistry.ws.EnumUnfileObject;
+import org.apache.chemistry.ws.EnumVersioningState;
+import org.apache.chemistry.ws.ObjectFactory;
+import org.apache.chemistry.ws.ObjectServicePort;
+import org.apache.chemistry.ws.DeleteTreeResponse.FailedToDelete;
+
+@WebService(name = "ObjectServicePort", //
+targetNamespace = "http://docs.oasis-open.org/ns/cmis/ws/200908/", //
+serviceName = "ObjectService", //
+portName = "ObjectServicePort", //
+endpointInterface = "org.apache.chemistry.ws.ObjectServicePort")
+public class ObjectServicePortImpl implements ObjectServicePort {
+
+ private static final ObjectFactory factory = new ObjectFactory();
+
+ @Resource
+ private WebServiceContext wscontext;
+
+ public void createDocument(String repositoryId,
+ CmisPropertiesType properties, String folderId,
+ CmisContentStreamType contentStream,
+ EnumVersioningState versioningState, List<String> policies,
+ CmisAccessControlListType addACEs,
+ CmisAccessControlListType removeACEs,
+ Holder<CmisExtensionType> extension, Holder<String> objectId)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public void createDocumentFromSource(String repositoryId, String sourceId,
+ CmisPropertiesType properties, String folderId,
+ EnumVersioningState versioningState, List<String> policies,
+ CmisAccessControlListType addACEs,
+ CmisAccessControlListType removeACEs,
+ Holder<CmisExtensionType> extension, Holder<String> objectId)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public void createFolder(String repositoryId,
+ CmisPropertiesType properties, String folderId,
+ List<String> policies, CmisAccessControlListType addACEs,
+ CmisAccessControlListType removeACEs,
+ Holder<CmisExtensionType> extension, Holder<String> objectId)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public void createPolicy(String repositoryId,
+ CmisPropertiesType properties, String folderId,
+ List<String> policies, CmisAccessControlListType addACEs,
+ CmisAccessControlListType removeACEs,
+ Holder<CmisExtensionType> extension, Holder<String> objectId)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public void createRelationship(String repositoryId,
+ CmisPropertiesType properties, List<String> policies,
+ CmisAccessControlListType addACEs,
+ CmisAccessControlListType removeACEs,
+ Holder<CmisExtensionType> extension, Holder<String> objectId)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public void deleteContentStream(String repositoryId,
+ Holder<String> objectId, Holder<String> changeToken,
+ Holder<CmisExtensionType> extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public CmisExtensionType deleteObject(String repositoryId, String objectId,
+ Boolean allVersions, CmisExtensionType extension)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public FailedToDelete deleteTree(String repositoryId, String folderId,
+ Boolean allVersions, EnumUnfileObject unfileObjects,
+ Boolean continueOnFailure, CmisExtensionType extension)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public CmisAllowableActionsType getAllowableActions(String repositoryId,
+ String objectId, CmisExtensionType extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public CmisContentStreamType getContentStream(String repositoryId,
+ String objectId, String streamId, BigInteger offset,
+ BigInteger length, CmisExtensionType extension)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public CmisObjectType getObject(String repositoryId, String objectId,
+ String filter, Boolean includeAllowableActions,
+ EnumIncludeRelationships includeRelationships,
+ String renditionFilter, Boolean includePolicyIds,
+ Boolean includeACL, CmisExtensionType extension)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public CmisObjectType getObjectByPath(String repositoryId, String path,
+ String filter, Boolean includeAllowableActions,
+ EnumIncludeRelationships includeRelationships,
+ String renditionFilter, Boolean includePolicyIds,
+ Boolean includeACL, CmisExtensionType extension)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public CmisPropertiesType getProperties(String repositoryId,
+ String objectId, String filter, CmisExtensionType extension)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public List<CmisRenditionType> getRenditions(String repositoryId,
+ String objectId, String renditionFilter, BigInteger maxItems,
+ BigInteger skipCount, CmisExtensionType extension)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public void moveObject(String repositoryId, Holder<String> objectId,
+ String targetFolderId, String sourceFolderId,
+ Holder<CmisExtensionType> extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public void setContentStream(String repositoryId, Holder<String> objectId,
+ Boolean overwriteFlag, Holder<String> changeToken,
+ CmisContentStreamType contentStream,
+ Holder<CmisExtensionType> extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateProperties(String repositoryId, Holder<String> objectId,
+ Holder<String> changeToken, CmisPropertiesType properties,
+ Holder<CmisExtensionType> extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+}
Propchange: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ObjectServicePortImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/ObjectServicePortImpl.java
------------------------------------------------------------------------------
svn:keywords = Id
Added: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/PolicyServicePortImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/PolicyServicePortImpl.java?rev=918377&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/PolicyServicePortImpl.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/PolicyServicePortImpl.java Wed Mar 3 10:02:58 2010
@@ -0,0 +1,62 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ * Florent Guillaume, Nuxeo
+ */
+package org.apache.chemistry.soap.server;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.jws.WebService;
+import javax.xml.ws.WebServiceContext;
+
+import org.apache.chemistry.ws.CmisException;
+import org.apache.chemistry.ws.CmisExtensionType;
+import org.apache.chemistry.ws.CmisObjectType;
+import org.apache.chemistry.ws.ObjectFactory;
+import org.apache.chemistry.ws.PolicyServicePort;
+
+@WebService(name = "PolicyServicePort", //
+targetNamespace = "http://docs.oasis-open.org/ns/cmis/ws/200908/", //
+serviceName = "PolicyService", //
+portName = "PolicyServicePort", //
+endpointInterface = "org.apache.chemistry.ws.PolicyServicePort")
+public class PolicyServicePortImpl implements PolicyServicePort {
+
+ private static final ObjectFactory factory = new ObjectFactory();
+
+ @Resource
+ private WebServiceContext wscontext;
+
+ public CmisExtensionType applyPolicy(String repositoryId, String policyId,
+ String objectId, CmisExtensionType extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public List<CmisObjectType> getAppliedPolicies(String repositoryId,
+ String objectId, String filter, CmisExtensionType extension)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public CmisExtensionType removePolicy(String repositoryId, String policyId,
+ String objectId, CmisExtensionType extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+}
Propchange: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/PolicyServicePortImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/PolicyServicePortImpl.java
------------------------------------------------------------------------------
svn:keywords = Id
Added: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/RelationshipServicePortImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/RelationshipServicePortImpl.java?rev=918377&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/RelationshipServicePortImpl.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/RelationshipServicePortImpl.java Wed Mar 3 10:02:58 2010
@@ -0,0 +1,54 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ * Florent Guillaume, Nuxeo
+ */
+package org.apache.chemistry.soap.server;
+
+import java.math.BigInteger;
+
+import javax.annotation.Resource;
+import javax.jws.WebService;
+import javax.xml.ws.WebServiceContext;
+
+import org.apache.chemistry.ws.CmisException;
+import org.apache.chemistry.ws.CmisExtensionType;
+import org.apache.chemistry.ws.CmisObjectListType;
+import org.apache.chemistry.ws.EnumRelationshipDirection;
+import org.apache.chemistry.ws.ObjectFactory;
+import org.apache.chemistry.ws.RelationshipServicePort;
+
+@WebService(name = "RelationshipServicePort", //
+targetNamespace = "http://docs.oasis-open.org/ns/cmis/ws/200908/", //
+serviceName = "RelationshipService", //
+portName = "RelationshipServicePort", //
+endpointInterface = "org.apache.chemistry.ws.RelationshipServicePort")
+public class RelationshipServicePortImpl implements RelationshipServicePort {
+
+ private static final ObjectFactory factory = new ObjectFactory();
+
+ @Resource
+ private WebServiceContext wscontext;
+
+ public CmisObjectListType getObjectRelationships(String repositoryId,
+ String objectId, Boolean includeSubRelationshipTypes,
+ EnumRelationshipDirection relationshipDirection, String typeId,
+ String filter, Boolean includeAllowableActions,
+ BigInteger maxItems, BigInteger skipCount,
+ CmisExtensionType extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+}
Propchange: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/RelationshipServicePortImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/RelationshipServicePortImpl.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/RepositoryServicePortImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/RepositoryServicePortImpl.java?rev=918377&r1=918376&r2=918377&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/RepositoryServicePortImpl.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/RepositoryServicePortImpl.java Wed Mar 3 10:02:58 2010
@@ -17,27 +17,39 @@
package org.apache.chemistry.soap.server;
import java.math.BigInteger;
+import java.net.URI;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import javax.annotation.Resource;
import javax.jws.WebService;
+import javax.xml.bind.JAXBElement;
+import javax.xml.ws.WebServiceContext;
+import org.apache.chemistry.ListPage;
+import org.apache.chemistry.Paging;
+import org.apache.chemistry.PropertyDefinition;
import org.apache.chemistry.Repository;
import org.apache.chemistry.RepositoryCapabilities;
import org.apache.chemistry.RepositoryEntry;
import org.apache.chemistry.RepositoryInfo;
import org.apache.chemistry.RepositoryManager;
+import org.apache.chemistry.Type;
import org.apache.chemistry.ws.CmisException;
import org.apache.chemistry.ws.CmisExtensionType;
+import org.apache.chemistry.ws.CmisPropertyDefinitionType;
import org.apache.chemistry.ws.CmisRepositoryCapabilitiesType;
import org.apache.chemistry.ws.CmisRepositoryEntryType;
import org.apache.chemistry.ws.CmisRepositoryInfoType;
import org.apache.chemistry.ws.CmisTypeContainer;
import org.apache.chemistry.ws.CmisTypeDefinitionListType;
import org.apache.chemistry.ws.CmisTypeDefinitionType;
+import org.apache.chemistry.ws.ObjectFactory;
import org.apache.chemistry.ws.RepositoryServicePort;
+import sun.security.pkcs11.Secmod.DbMode;
+
@WebService(name = "RepositoryServicePort", //
targetNamespace = "http://docs.oasis-open.org/ns/cmis/ws/200908/", //
serviceName = "RepositoryService", //
@@ -45,13 +57,18 @@
endpointInterface = "org.apache.chemistry.ws.RepositoryServicePort")
public class RepositoryServicePortImpl implements RepositoryServicePort {
+ private static final ObjectFactory factory = new ObjectFactory();
+
+ @Resource
+ private WebServiceContext wscontext;
+
public List<CmisRepositoryEntryType> getRepositories(
CmisExtensionType extension) throws CmisException {
Collection<RepositoryEntry> repos = RepositoryManager.getInstance().getRepositories();
List<CmisRepositoryEntryType> entries = new ArrayList<CmisRepositoryEntryType>(
repos.size());
for (RepositoryEntry repo : repos) {
- CmisRepositoryEntryType entry = new CmisRepositoryEntryType();
+ CmisRepositoryEntryType entry = factory.createCmisRepositoryEntryType();
entry.setRepositoryId(repo.getId());
entry.setRepositoryName(repo.getName());
entries.add(entry);
@@ -66,53 +83,61 @@
if (repo == null) {
return null; // TODO or fault?
}
- RepositoryInfo info = repo.getInfo();
- RepositoryCapabilities cap = info.getCapabilities();
- CmisRepositoryInfoType repositoryInfo = new CmisRepositoryInfoType();
- repositoryInfo.setRepositoryId(info.getId());
- repositoryInfo.setRepositoryName(info.getName());
- repositoryInfo.setRepositoryDescription(info.getDescription());
- repositoryInfo.setVendorName(info.getVendorName());
- repositoryInfo.setProductName(info.getProductName());
- repositoryInfo.setProductVersion(info.getProductVersion());
- repositoryInfo.setCmisVersionSupported(info.getVersionSupported());
- repositoryInfo.setRootFolderId(info.getRootFolderId().getId());
-
- CmisRepositoryCapabilitiesType capabilities = new CmisRepositoryCapabilitiesType();
- repositoryInfo.setCapabilities(capabilities);
- capabilities.setCapabilityMultifiling(cap.hasMultifiling());
- capabilities.setCapabilityUnfiling(cap.hasUnfiling());
- capabilities.setCapabilityVersionSpecificFiling(cap.hasVersionSpecificFiling());
- capabilities.setCapabilityPWCUpdatable(cap.isPWCUpdatable());
- capabilities.setCapabilityPWCSearchable(cap.isPWCSearchable());
- capabilities.setCapabilityAllVersionsSearchable(cap.isAllVersionsSearchable());
- capabilities.setCapabilityQuery(ChemistryHelper.chemistryToJAXB(cap.getQueryCapability()));
- capabilities.setCapabilityJoin(ChemistryHelper.chemistryToJAXB(cap.getJoinCapability()));
+ RepositoryInfo info = repo.getInfo();
- return repositoryInfo;
+ return ChemistryHelper.convert(info);
}
public CmisTypeDefinitionType getTypeDefinition(String repositoryId,
String typeId, CmisExtensionType extension) throws CmisException {
- // TODO Auto-generated method stub
- throw new UnsupportedOperationException();
+ Repository repo = RepositoryManager.getInstance().getRepository(
+ repositoryId);
+ if (repo == null) {
+ return null; // TODO or fault?
+ }
+
+ Type type = repo.getType(typeId);
+
+ return ChemistryHelper.convert(type);
}
public CmisTypeDefinitionListType getTypeChildren(String repositoryId,
String typeId, Boolean includePropertyDefinitions,
BigInteger maxItems, BigInteger skipCount,
CmisExtensionType extension) throws CmisException {
- // TODO Auto-generated method stub
- throw new UnsupportedOperationException();
+ Repository repo = RepositoryManager.getInstance().getRepository(
+ repositoryId);
+ if (repo == null) {
+ return null; // TODO or fault?
+ }
+
+ boolean ipd = Boolean.TRUE.equals(includePropertyDefinitions);
+ int mi = maxItems == null ? -1 : maxItems.intValue();
+ int sc = skipCount == null ? -1 : skipCount.intValue();
+ Paging paging = new Paging(mi, sc);
+
+ ListPage<Type> types = repo.getTypeChildren(typeId, ipd, paging);
+
+ return ChemistryHelper.convert(types);
}
public List<CmisTypeContainer> getTypeDescendants(String repositoryId,
String typeId, BigInteger depth,
Boolean includePropertyDefinitions, CmisExtensionType extension)
throws CmisException {
- // TODO Auto-generated method stub
- throw new UnsupportedOperationException();
+ Repository repo = RepositoryManager.getInstance().getRepository(
+ repositoryId);
+ if (repo == null) {
+ return null; // TODO or fault?
+ }
+
+ boolean ipd = Boolean.TRUE.equals(includePropertyDefinitions);
+ int d = depth == null ? -1 : depth.intValue();
+
+ Collection<Type> ctl = repo.getTypeDescendants(typeId, d, ipd);
+
+ return ChemistryHelper.convert(ctl);
}
}
Added: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/VersioningServicePortImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/VersioningServicePortImpl.java?rev=918377&view=auto
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/VersioningServicePortImpl.java (added)
+++ incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/VersioningServicePortImpl.java Wed Mar 3 10:02:58 2010
@@ -0,0 +1,96 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Authors:
+ * Florent Guillaume, Nuxeo
+ */
+package org.apache.chemistry.soap.server;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.jws.WebService;
+import javax.xml.ws.Holder;
+import javax.xml.ws.WebServiceContext;
+
+import org.apache.chemistry.ws.CmisAccessControlListType;
+import org.apache.chemistry.ws.CmisContentStreamType;
+import org.apache.chemistry.ws.CmisException;
+import org.apache.chemistry.ws.CmisExtensionType;
+import org.apache.chemistry.ws.CmisObjectType;
+import org.apache.chemistry.ws.CmisPropertiesType;
+import org.apache.chemistry.ws.EnumIncludeRelationships;
+import org.apache.chemistry.ws.ObjectFactory;
+import org.apache.chemistry.ws.VersioningServicePort;
+
+@WebService(name = "VersioningServicePort", //
+targetNamespace = "http://docs.oasis-open.org/ns/cmis/ws/200908/", //
+serviceName = "VersioningService", //
+portName = "VersioningServicePort", //
+endpointInterface = "org.apache.chemistry.ws.VersioningServicePort")
+public class VersioningServicePortImpl implements VersioningServicePort {
+
+ private static final ObjectFactory factory = new ObjectFactory();
+
+ @Resource
+ private WebServiceContext wscontext;
+
+ public CmisExtensionType cancelCheckOut(String repositoryId,
+ String objectId, CmisExtensionType extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public void checkIn(String repositoryId, Holder<String> objectId,
+ Boolean major, CmisPropertiesType properties,
+ CmisContentStreamType contentStream, String checkinComment,
+ List<String> policies, CmisAccessControlListType addACEs,
+ CmisAccessControlListType removeACEs,
+ Holder<CmisExtensionType> extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public void checkOut(String repositoryId, Holder<String> objectId,
+ Holder<CmisExtensionType> extension, Holder<Boolean> contentCopied)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public List<CmisObjectType> getAllVersions(String repositoryId,
+ String objectId, String filter, Boolean includeAllowableActions,
+ CmisExtensionType extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public CmisObjectType getObjectOfLatestVersion(String repositoryId,
+ String objectId, Boolean major, String filter,
+ Boolean includeAllowableActions,
+ EnumIncludeRelationships includeRelationships,
+ String renditionFilter, Boolean includePolicyIds,
+ Boolean includeACL, CmisExtensionType extension)
+ throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+ public CmisPropertiesType getPropertiesOfLatestVersion(String repositoryId,
+ String objectId, Boolean major, String filter,
+ CmisExtensionType extension) throws CmisException {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException();
+ }
+
+}
Propchange: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/VersioningServicePortImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/chemistry/trunk/chemistry/chemistry-soap-server/src/main/java/org/apache/chemistry/soap/server/VersioningServicePortImpl.java
------------------------------------------------------------------------------
svn:keywords = Id