Merged CMIS063 to HEAD

Resolve merge issues.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@17272 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
David Caruana
2009-10-30 22:34:54 +00:00
parent bf4991eac0
commit 34b62b98dc
10 changed files with 20 additions and 922 deletions

View File

@@ -9,8 +9,6 @@
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<!-- Uncomment this block to enable CMIS web services
<jaxws:endpoint address="/RepositoryService" implementor="#dmRepositoryService"
implementorClass="org.alfresco.repo.cmis.ws.DMRepositoryServicePort">
<jaxws:inInterceptors>
@@ -241,7 +239,6 @@
<bean class="org.apache.cxf.feature.LoggingFeature" />
</jaxws:features>
</jaxws:endpoint>
-->
<bean id="dmServicesProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">

View File

@@ -1,661 +0,0 @@
[#ftl]
[#-- --]
[#-- ATOM Entry --]
[#-- --]
[#macro entry ns=""]
<entry[#if ns != ""] ${ns}[/#if]>
[#nested]
</entry>
[/#macro]
[#macro objectCMISProps object propfilter]
<cmis:properties>
[#assign typedef = cmistype(object)]
[#list typedef.propertyDefinitions?values as propdef]
[@filter propfilter propdef.queryName][@prop propdef.propertyId.id object propdef.dataType.label/][/@filter]
[/#list]
</cmis:properties>
[/#macro]
[#-- --]
[#-- ATOM Entry for Document --]
[#-- --]
[#macro document node propfilter="*" includeallowableactions=false includerelationships="none" ns=""]
[@entry ns]
<author><name>${node.properties.creator!""}</name></author>
[@contentstream node/]
<id>urn:uuid:${node.id}</id>
[@linksLib.linknodeself node/]
[@linksLib.linkstream node "enclosure"/]
[@linksLib.linknodeedit node/]
[@linksLib.linkstream node "edit-media"/]
[@documentCMISLinks node=node/]
<published>${xmldate(node.properties.created)}</published>
<summary>[@contentsummary node/]</summary>
<title>${node.name}</title>
<updated>${xmldate(node.properties.modified)}</updated>
<app:edited>${xmldate(node.properties.modified)}</app:edited>
<alf:icon>${absurl(url.context)}${node.icon16}</alf:icon>
<cmisra:object>
[@objectCMISProps node propfilter/]
[#if includeallowableactions][@allowableactions node/][/#if]
</cmisra:object>
<cmisra:pathSegment>${node.name}</cmisra:pathSegment>
[/@entry]
[/#macro]
[#macro documentCMISLinks node]
[@linksLib.linkallowableactions node/]
[@linksLib.linkrelationships node/]
[@linksLib.linkparents node/]
[@linksLib.linkversions node/]
[@linksLib.linktype node/]
[@linksLib.linkservice/]
[/#macro]
[#-- --]
[#-- ATOM Entry for Version --]
[#-- --]
[#macro version node version propfilter="*" ns=""]
[@entry ns]
<author><name>${node.properties.creator}</name></author>
[@contentstream node/]
<id>urn:uuid:${node.id}</id>
[@linksLib.linknodeself node/]
[@linksLib.linkstream node "enclosure"/]
[@documentCMISLinks node=node/]
<published>${xmldate(node.properties.created)}</published>
<summary>[@contentsummary node/]</summary>
<title>${node.name}</title>
<updated>${xmldate(node.properties.modified)}</updated>
<app:edited>${xmldate(node.properties.modified)}</app:edited>
<alf:icon>${absurl(url.context)}${node.icon16}</alf:icon>
<cmisra:object>
[@objectCMISProps node propfilter/]
</cmisra:object>
[/@entry]
[/#macro]
[#-- --]
[#-- ATOM Entry for Private Working Copy --]
[#-- --]
[#macro pwc node propfilter="*" includeallowableactions=false includerelationships="none" ns=""]
[@entry ns]
<author><name>${node.properties.creator}</name></author>
[@contentstream node/]
<id>urn:uuid:${node.id}</id>
[#assign pwcuri]/cmis/pwc/[@linksLib.noderef node/][/#assign]
[@linksLib.linkself href="${pwcuri}"/]
[@linksLib.linkstream node "enclosure"/]
[@linksLib.linknodeedit node/]
[@linksLib.linkstream node "edit-media"/]
[@documentCMISLinks node=node/]
<published>${xmldate(node.properties.created)}</published>
<summary>[@contentsummary node/]</summary>
<title>${node.name}</title>
<updated>${xmldate(node.properties.modified)}</updated>
<app:edited>${xmldate(node.properties.modified)}</app:edited>
<alf:icon>${absurl(url.context)}${node.icon16}</alf:icon>
<cmisra:object>
[@objectCMISProps node propfilter/]
[#if includeallowableactions][@allowableactions node/][/#if]
</cmisra:object>
<cmisra:pathSegment>${node.name}</cmisra:pathSegment>
[/@entry]
[/#macro]
[#-- --]
[#-- ATOM Entry for Folder --]
[#-- --]
[#macro foldertree node propfilter="*" includeallowableactions=false includerelationships="none" ns="" maxdepth=-1]
[@folder node propfilter "folders" includeallowableactions includerelationships ns 1 maxdepth "" "tree"/]
[/#macro]
[#macro folder node propfilter="*" typesfilter="any" includeallowableactions=false includerelationships="none" ns="" depth=1 maxdepth=1 relativePathSegment="" nestedkind=""]
[@entry ns]
<author><name>${node.properties.creator}</name></author>
<content>${node.id}</content> [#-- TODO --]
<id>urn:uuid:${node.id}</id>
[@linksLib.linknodeself node/]
[@linksLib.linknodeedit node/]
[@folderCMISLinks node/]
<published>${xmldate(node.properties.created)}</published>
<summary>${node.properties.description!node.properties.title!""}</summary> [#-- TODO --]
<title>${node.name}</title>
<updated>${xmldate(node.properties.modified)}</updated>
<app:edited>${xmldate(node.properties.modified)}</app:edited>
<alf:icon>${absurl(url.context)}${node.icon16}</alf:icon>
<cmisra:object>
[@objectCMISProps node propfilter/]
[#if includeallowableactions][@allowableactions node/][/#if]
</cmisra:object>
<cmisra:pathSegment>${node.name}</cmisra:pathSegment>
[#if relativePathSegment != ""]
<cmisra:relativePathSegment>${relativePathSegment}</cmisra:relativePathSegment>
[/#if]
[#-- recurse for depth greater than 1 --]
[#if maxdepth == -1 || depth &lt; maxdepth]
[#assign nested = cmischildren(node, typesfilter)/]
[#if nested?size > 0]
<cmisra:children>
[@feedLib.node node "${nestedkind}"]
[#if nestedkind == "tree"][@linksLib.linktree node "self"/][#else][@linksLib.linkdescendants node "self"/][/#if]
[/@feedLib.node]
[#list nested as child]
[#if child.isDocument]
[@document child propfilter includeallowableactions includerelationships/]
[#else]
[@folder child propfilter typesfilter includeallowableactions includerelationships ns depth+1 maxdepth "" nestedkind/]
[/#if]
[/#list]
</cmisra:children>
[/#if]
[/#if]
[/@entry]
[/#macro]
[#macro folderCMISLinks node]
[@linksLib.linkallowableactions node/]
[@linksLib.linkrelationships node/]
[#if cmisproperty(node, cmisconstants.PROP_PARENT_ID)?is_string]
[@linksLib.linkparent node/]
[/#if]
[@linksLib.linkchildren node/]
[@linksLib.linkdescendants node/]
[@linksLib.linktree node/]
[@linksLib.linktype node/]
[@linksLib.linkservice/]
[/#macro]
[#-- --]
[#-- ATOM Entry for Relationship --]
[#-- --]
[#macro assoc assoc propfilter="*" includeallowableactions=false ns=""]
[@entry ns]
<author><name>${xmldate(date)}</name></author> [#-- TODO: [@namedvalue cmisconstants.PROP_CREATED_BY assoc cmisconstants.DATATYPE_STRING/] --]
<content>[@namedvalue cmisconstants.PROP_OBJECT_ID assoc cmisconstants.DATATYPE_ID/]</content> [#-- TODO: spec id, how to map? --]
<id>[@namedvalue cmisconstants.PROP_OBJECT_ID assoc cmisconstants.DATATYPE_ID/]</id> [#-- TODO: id compliant --]
[@linksLib.linkassocself assoc/]
[@linksLib.linkassocedit assoc/]
[@assocCMISLinks assoc=assoc/]
<published>${xmldate(date)}</published> [#-- TODO: [@namedvalue cmisconstants.PROP_CREATION_DATE assoc cmisconstants.DATATYPE_DATETIME/] --]
<summary>[@namedvalue cmisconstants.PROP_OBJECT_ID assoc cmisconstants.DATATYPE_ID/]</summary> [#-- TODO: spec id, how to map? --]
<title>[@namedvalue cmisconstants.PROP_OBJECT_ID assoc cmisconstants.DATATYPE_ID/]</title> [#-- TODO: spec id, how to map? --]
<updated>${xmldate(date)}</updated> [#-- TODO: [@namedvalue cmisconstants.PROP_LAST_MODIFICATION_DATE assoc cmisconstants.DATATYPE_DATETIME/] --]
<app:edited>${xmldate(date)}</app:edited> [#-- TODO: [@namedvalue cmisconstants.PROP_LAST_MODIFICATION_DATE assoc cmisconstants.DATATYPE_DATETIME/] --]
<cmisra:object>
[@objectCMISProps assoc propfilter/]
[#-- TODO: [#if includeallowableactions][@allowableactions node/][/#if] --]
</cmisra:object>
[/@entry]
[/#macro]
[#macro assocCMISLinks assoc]
[#-- TODO: <link rel="allowableactions" href="${absurl(url.serviceContext)}/cmis/node/${node.nodeRef.storeRef.protocol}/${node.nodeRef.storeRef.identifier}/${node.nodeRef.id}/permissions"/> --]
[@linksLib.linktype assoc/]
[@linksLib.linktosource assoc.source/]
[@linksLib.linktotarget assoc.target/]
[@linksLib.linkservice/]
[/#macro]
[#-- --]
[#-- ATOM Entry for Query Row --]
[#-- --]
[#-- TODO: spec issue 47 --]
[#macro row row includeallowableactions=false]
[@entry]
[#-- TODO: calculate multiNodeResultSet from result set --]
[#if row.nodes?? && row.nodes?size == 1][#assign node = row.nodes?first/][/#if]
[#if node??]
<author><name>${node.properties.creator!""}</name></author>
[#-- TODO: review if consistent with ATOM --]
[#if node.isDocument]
[@contentstream node/]
[#else]
<content>${node.id}</content> [#-- TODO --]
[/#if]
<id>urn:uuid:${node.id}</id>
[@linksLib.linknodeself node/]
[@linksLib.linknodeedit node/]
[#if node.isDocument]
[@linksLib.linkstream node "enclosure"/]
[@linksLib.linkstream node "edit-media"/]
[@documentCMISLinks node=node/]
[#else]
[@folderCMISLinks node=node/]
[/#if]
<title>${node.name}</title>
<updated>${xmldate(node.properties.modified)}</updated>
<alf:icon>${absurl(url.context)}${node.icon16}</alf:icon>
[#else]
<author><name>${person.properties.userName}</name></author>
<id>urn:uuid:row-${row.index?c}</id>
<title>Row ${row.index?c}</title>
<updated>${xmldate(now)}</updated>
[/#if]
<cmisra:object>
<cmis:properties>
[#assign rowvalues = row.values]
[#list rowvalues?keys as colname]
[#assign coltype = row.getColumnType(colname)]
[#if rowvalues[colname]??]
[@propvalue colname rowvalues[colname] coltype/]
[#else]
[@propnull colname coltype/]
[/#if]
[/#list]
</cmis:properties>
[#if node?? && includeallowableactions][@allowableactions node/][/#if]
</cmisra:object>
[/@entry]
[/#macro]
[#-- --]
[#-- CMIS Properties --]
[#-- --]
[#macro filter filter value]
[#if filter == "*" || filter?index_of(value) != -1 || filter?matches(value,'i')][#nested][/#if]
[/#macro]
[#macro prop name object type]
[#assign value=cmisproperty(object, name)/]
[#if value?is_string || value?is_number || value?is_boolean || value?is_date || value?is_enumerable]
[@propvalue name value type/]
[#elseif value.class.canonicalName?ends_with("NULL")]
[@propnull name type/]
[/#if]
[/#macro]
[#macro propvalue name value type]
[#if type == cmisconstants.DATATYPE_STRING]
<cmis:propertyString propertyDefinitionId="${name}">[@values value;v]<cmis:value>[@stringvalue v/]</cmis:value>[/@values]</cmis:propertyString>
[#elseif type == cmisconstants.DATATYPE_INTEGER]
<cmis:propertyInteger propertyDefinitionId="${name}">[@values value;v]<cmis:value>[@integervalue v/]</cmis:value>[/@values]</cmis:propertyInteger>
[#elseif type == cmisconstants.DATATYPE_DECIMAL]
<cmis:propertyDecimal propertyDefinitionId="${name}">[@values value;v]<cmis:value>[@decimalvalue v/]</cmis:value>[/@values]</cmis:propertyDecimal>
[#elseif type == cmisconstants.DATATYPE_BOOLEAN]
<cmis:propertyBoolean propertyDefinitionId="${name}">[@values value;v]<cmis:value>[@booleanvalue v/]</cmis:value>[/@values]</cmis:propertyBoolean>
[#elseif type == cmisconstants.DATATYPE_DATETIME]
<cmis:propertyDateTime propertyDefinitionId="${name}">[@values value;v]<cmis:value>[@datetimevalue v/]</cmis:value>[/@values]</cmis:propertyDateTime>
[#elseif type == cmisconstants.DATATYPE_URI]
[#-- TODO: check validity of abs url prefix --]
<cmis:propertyUri propertyDefinitionId="${name}">[@values value;v]<cmis:value>[@urivalue absurl(url.serviceContext) + v/]</cmis:value>[/@values]</cmis:propertyUri>
[#elseif type == cmisconstants.DATATYPE_ID]
<cmis:propertyId propertyDefinitionId="${name}">[@values value;v]<cmis:value>[@idvalue v/]</cmis:value>[/@values]</cmis:propertyId>
[#-- TODO: remaining property types --]
[/#if]
[/#macro]
[#macro propnull name type]
[#if type == cmisconstants.DATATYPE_STRING]
<cmis:propertyString propertyDefinitionId="${name}"/>
[#elseif type == cmisconstants.DATATYPE_INTEGER]
<cmis:propertyInteger propertyDefinitionId="${name}"/>
[#elseif type == cmisconstants.DATATYPE_DECIMAL]
<cmis:propertyDecimal propertyDefinitionId="${name}"/>
[#elseif type == cmisconstants.DATATYPE_BOOLEAN]
<cmis:propertyBoolean propertyDefinitionId="${name}"/>
[#elseif type == cmisconstants.DATATYPE_DATETIME]
<cmis:propertyDateTime propertyDefinitionId="${name}"/>
[#elseif type == cmisconstants.DATATYPE_URI]
<cmis:propertyUri propertyDefinitionId="${name}"/>
[#elseif type == cmisconstants.DATATYPE_ID]
<cmis:propertyId propertyDefinitionId="${name}"/>
[#-- TODO: remaining property types --]
[/#if]
[/#macro]
[#-- --]
[#-- CMIS Values --]
[#-- --]
[#macro namedvalue name object type]
[#assign value=cmisproperty(object, name)/]
[#if value?is_string || value?is_number || value?is_boolean || value?is_date || value?is_enumerable][@typedvalue value type/][#elseif value.class.canonicalName?ends_with("NULL")][/#if]
[/#macro]
[#macro typedvalue value type]
[#if type== cmisconstants.DATATYPE_STRING]
[@values value;v][@stringvalue v/][/@values]
[#elseif type == cmisconstants.DATATYPE_INTEGER]
[@values value;v][@integervalue v/][/@values]
[#elseif type == cmisconstants.DATATYPE_DECIMAL]
[@values value;v][@decimalvalue v/][/@values]
[#elseif type == cmisconstants.DATATYPE_BOOLEAN]
[@values value;v][@booleanvalue v/][/@values]
[#elseif type == cmisconstants.DATATYPE_DATETIME]
[@values value;v][@datetimevalue v/][/@values]
[#elseif type == cmisconstants.DATATYPE_URI]
[#-- TODO: check validity of abs url prefix --]
[@values value;v][@urivalue absurl(url.serviceContext) + v/][/@values]
[#elseif type == cmisconstants.DATATYPE_ID]
[@values value;v][@idvalue v/][/@values]
[#-- TODO: remaining property types --]
[/#if]
[/#macro]
[#macro values vals][#if vals?is_enumerable][#list vals as val][#nested val][/#list][#else][#nested vals][/#if][/#macro]
[#macro stringvalue value]${value}[/#macro]
[#macro integervalue value]${value?c}[/#macro]
[#macro decimalvalue value]${value?c}[/#macro]
[#macro booleanvalue value]${value?string}[/#macro]
[#macro datetimevalue value]${xmldate(value)}[/#macro]
[#macro urivalue value]${value}[/#macro]
[#macro idvalue value]${value}[/#macro]
[#-- --]
[#-- CMIS Allowable Actions --]
[#-- --]
[#macro allowableactions node ns=""]
<cmis:allowableActions[#if ns != ""] ${ns}[/#if]>
[#nested]
[#assign typedef = cmistype(node)]
[#list typedef.actionEvaluators?values as actionevaluator]
[@allowableaction node actionevaluator/]
[/#list]
</cmis:allowableActions>
[/#macro]
[#macro allowableaction node actionevaluator]
<cmis:${actionevaluator.action.label}>${actionevaluator.isAllowed(node.nodeRef)?string}</cmis:${actionevaluator.action.label}>
[/#macro]
[#-- --]
[#-- ATOM Entry for Type Definition --]
[#-- --]
[#macro typedef typedefn includeProperties=true includeInheritedProperties=true ns="" depth=1 maxdepth=1]
[@entry ns=ns]
<author><name>${person.properties.userName}</name></author>
<content>${typedefn.typeId.id}</content> [#-- TODO --]
<id>urn:uuid:type-${typedefn.typeId.id}</id>
[@linksLib.linktypeself typedefn/]
[@typedefCMISLinks typedefn/]
<summary>[#if typedefn.description??]${typedefn.description?xml}[#else]${typedefn.displayName?xml}[/#if]</summary>
<title>${typedefn.displayName}</title>
<updated>${xmldate(date)}</updated> [#-- TODO --]
[@typedefCMISProps typedefn includeProperties/]
[#-- recurse for depth greater than 1 --]
[#if maxdepth == -1 || depth &lt; maxdepth]
[#assign nested = typedefn.getSubTypes(false)/]
[#if nested?size > 1]
<cmisra:children>
[@feedLib.generic "urn:uuid:type-${typedefn.typeId.id}-descendants" "Type ${typedefn.displayName} Descendants" "${person.properties.userName}"]
[@linksLib.linktypedescendants typedefn "self"/]
[/@feedLib.generic]
[#list nested as child]
[@typedef child includeProperties includeInheritedProperties ns depth+1 maxdepth/]
[/#list]
</cmisra:children>
[/#if]
[/#if]
[/@entry]
[/#macro]
[#macro typedefCMISLinks typedef]
[@linksLib.linktype typedef/]
[#if typedef.parentType??]
[@linksLib.linktypeparent typedef/]
[/#if]
[@linksLib.linktypechildren typedef/]
[@linksLib.linktypedescendants typedef/]
[@linksLib.linkservice/]
[/#macro]
[#macro typedefCMISProps typedef includeProperties=true includeInheritedProperties=true]
[#if typedef.baseType.typeId.id = cmisconstants.TYPE_DOCUMENT]
[@documenttypedefCMISProps typedef includeProperties includeInheritedProperties/]
[#elseif typedef.baseType.typeId.id = cmisconstants.TYPE_FOLDER]
[@foldertypedefCMISProps typedef includeProperties includeInheritedProperties/]
[#elseif typedef.baseType.typeId.id = cmisconstants.TYPE_RELATIONSHIP]
[@relationshiptypedefCMISProps typedef includeProperties includeInheritedProperties/]
[#elseif typedef.baseType.typeId.id = cmisconstants.TYPE_POLICY]
[@policytypedefCMISProps typedef includeProperties includeInheritedProperties/]
[/#if]
[/#macro]
[#macro documenttypedefCMISProps typedef includeProperties=true includeInheritedProperties=true]
<cmisra:type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="cmis:cmisTypeDocumentDefinitionType">
[@objecttypedefCMISProps typedef includeProperties includeInheritedProperties/]
<cmis:versionable>${typedef.versionable?string}</cmis:versionable>
<cmis:contentStreamAllowed>${typedef.contentStreamAllowed.label}</cmis:contentStreamAllowed>
</cmisra:type>
[/#macro]
[#macro foldertypedefCMISProps typedef includeProperties=true includeInheritedProperties=true]
<cmisra:type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="cmis:cmisTypeFolderDefinitionType">
[@objecttypedefCMISProps typedef includeProperties includeInheritedProperties/]
</cmisra:type>
[/#macro]
[#macro relationshiptypedefCMISProps typedef includeProperties=true includeInheritedProperties=true]
<cmisra:type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="cmis:cmisTypeRelationshipDefinitionType">
[@objecttypedefCMISProps typedef includeProperties includeInheritedProperties/]
[#list typedef.allowedSourceTypes as allowedSourceType]
<cmis:allowedSourceTypes>${allowedSourceType.typeId.id}</cmis:allowedSourceTypes>
[/#list]
[#list typedef.allowedTargetTypes as allowedTargetType]
<cmis:allowedTargetTypes>${allowedTargetType.typeId.id}</cmis:allowedTargetTypes>
[/#list]
</cmisra:type>
[/#macro]
[#macro policytypedefCMISProps typedef includeProperties=true includeInheritedProperties=true]
<cmisra:type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="cmis:cmisTypePolicyDefinitionType">
[@objecttypedefCMISProps typedef includeProperties includeInheritedProperties/]
</cmisra:type>
[/#macro]
[#macro objecttypedefCMISProps typedef includeProperties=true includeInheritedProperties=true]
<cmis:id>${typedef.typeId.id}</cmis:id>
<cmis:localName>${typedef.typeId.localName}</cmis:localName>
<cmis:localNamespace>${typedef.typeId.localNamespace}</cmis:localNamespace>
<cmis:displayName>[#if typedef.displayName??]${typedef.displayName?xml}[/#if]</cmis:displayName>
<cmis:queryName>${typedef.queryName}</cmis:queryName>
<cmis:description>[#if typedef.description??]${typedef.description?xml}[/#if]</cmis:description>
<cmis:baseTypeId>${typedef.baseType.typeId.id}</cmis:baseTypeId>
[#if typedef.parentType??]
<cmis:parentId>${typedef.parentType.typeId.id}</cmis:parentId>
[/#if]
<cmis:creatable>${typedef.creatable?string}</cmis:creatable>
<cmis:fileable>${typedef.fileable?string}</cmis:fileable>
<cmis:queryable>${typedef.queryable?string}</cmis:queryable>
<cmis:fulltextindexed>${typedef.fullTextIndexed?string}</cmis:fulltextindexed>
<cmis:includedInSupertypeQuery>${typedef.includeInSuperTypeQuery?string}</cmis:includedInSupertypeQuery>
<cmis:controllablePolicy>${typedef.controllablePolicy?string}</cmis:controllablePolicy>
<cmis:controllableACL>${typedef.controllableACL?string}</cmis:controllableACL>
[#if includeProperties]
[#assign ownedprops = typedef.ownedPropertyDefinitions?keys]
[#list typedef.propertyDefinitions?values as propdef]
[#assign inherited = !ownedprops?seq_contains(propdef.propertyId)]
[#if includeInheritedProperties || !inherited]
[@propdefCMISProps propdef inherited/]
[/#if]
[/#list]
[/#if]
[/#macro]
[#macro propdefCMISProps propdef inherited=false]
[#if propdef.dataType.label == cmisconstants.DATATYPE_BOOLEAN]
[@booleanpropdefCMISProps propdef inherited/]
[#elseif propdef.dataType.label == cmisconstants.DATATYPE_ID]
[@idpropdefCMISProps propdef inherited/]
[#elseif propdef.dataType.label == cmisconstants.DATATYPE_INTEGER]
[@integerpropdefCMISProps propdef inherited/]
[#elseif propdef.dataType.label == cmisconstants.DATATYPE_DATETIME]
[@datetimepropdefCMISProps propdef inherited/]
[#elseif propdef.dataType.label == cmisconstants.DATATYPE_DECIMAL]
[@decimalpropdefCMISProps propdef inherited/]
[#elseif propdef.dataType.label == cmisconstants.DATATYPE_HTML]
[@htmlpropdefCMISProps propdef inherited/]
[#elseif propdef.dataType.label == cmisconstants.DATATYPE_STRING]
[@stringpropdefCMISProps propdef inherited/]
[#elseif propdef.dataType.label == cmisconstants.DATATYPE_URI]
[@uripropdefCMISProps propdef inherited/]
[#elseif propdef.dataType.label == cmisconstants.DATATYPE_XML]
[@xmlpropdefCMISProps propdef inherited/]
[/#if]
[/#macro]
[#macro booleanpropdefCMISProps propdef inherited=false]
<cmis:propertyBooleanDefinition>
[@abstractpropdefCMISProps propdef inherited/]
</cmis:propertyBooleanDefinition>
[/#macro]
[#macro idpropdefCMISProps propdef inherited=false]
<cmis:propertyIdDefinition>
[@abstractpropdefCMISProps propdef inherited/]
</cmis:propertyIdDefinition>
[/#macro]
[#macro integerpropdefCMISProps propdef inherited=false]
<cmis:propertyIntegerDefinition>
[@abstractpropdefCMISProps propdef inherited/]
[#-- TODO: minValue, maxValue --]
</cmis:propertyIntegerDefinition>
[/#macro]
[#macro datetimepropdefCMISProps propdef inherited=false]
<cmis:propertyDateTimeDefinition>
[@abstractpropdefCMISProps propdef inherited/]
</cmis:propertyDateTimeDefinition>
[/#macro]
[#macro decimalpropdefCMISProps propdef inherited=false]
<cmis:propertyDecimalDefinition>
[@abstractpropdefCMISProps propdef inherited/]
</cmis:propertyDecimalDefinition>
[/#macro]
[#macro htmlpropdefCMISProps propdef inherited=false]
<cmis:propertyHtmlDefinition>
[@abstractpropdefCMISProps propdef inherited/]
</cmis:propertyHtmlDefinition>
[/#macro]
[#macro stringpropdefCMISProps propdef inherited=false]
<cmis:propertyStringDefinition>
[@abstractpropdefCMISProps propdef inherited/]
[#if propdef.maximumLength != -1]
<cmis:maxLength>${propdef.maximumLength}</cmis:maxLength>
[/#if]
</cmis:propertyStringDefinition>
[/#macro]
[#macro uripropdefCMISProps propdef inherited=false]
<cmis:propertyUriDefinition>
[@abstractpropdefCMISProps propdef inherited/]
</cmis:propertyUriDefinition>
[/#macro]
[#macro xmlpropdefCMISProps propdef inherited=false]
<cmis:propertyXmlDefinition>
[@abstractpropdefCMISProps propdef inherited/]
[#-- TODO: scheme, uri --]
</cmis:propertyXmlDefinition>
[/#macro]
[#macro abstractpropdefCMISProps propdef inherited=false]
<cmis:id>${propdef.propertyId.id}</cmis:id>
<cmis:localName>${propdef.propertyId.localName}</cmis:localName>
<cmis:localNamespace>${propdef.propertyId.localNamespace}</cmis:localNamespace>
<cmis:displayName>[#if propdef.displayName??]${propdef.displayName?xml}[/#if]</cmis:displayName>
<cmis:queryName>${propdef.queryName}</cmis:queryName>
[#if propdef.description??]
<cmis:description>${propdef.description?xml}</cmis:description>
[/#if]
<cmis:propertyType>${propdef.dataType.label}</cmis:propertyType>
<cmis:cardinality>${propdef.cardinality.label}</cmis:cardinality>
<cmis:updatability>${propdef.updatability.label}</cmis:updatability>
<cmis:inherited>${inherited?string}</cmis:inherited>
<cmis:required>${propdef.required?string}</cmis:required>
<cmis:queryable>${propdef.queryable?string}</cmis:queryable>
<cmis:orderable>${propdef.orderable?string}</cmis:orderable>
[@cmisChoices propdef.choices propdef.dataType.label/]
<cmis:openChoice>${propdef.openChoice?string}</cmis:openChoice>
[#if propdef.defaultValue??]
[#-- TODO: defaults for HTML and XML property types --]
<cmis:defaultValue><cmis:value>${propdef.defaultValue}</cmis:value></cmis:defaultValue>
[/#if]
[/#macro]
[#macro cmisChoices choices type]
[#if choices?exists]
[#list choices as choice]
[#if type == cmisconstants.DATATYPE_STRING]
<cmis:choiceString cmis:key="${choice.name}">
[@cmisChoices choice.children type/]
<cmis:value>[@stringvalue choice.value/]</cmis:value>
</cmis:choiceString>
[#elseif type == cmisconstants.DATATYPE_INTEGER]
<cmis:choiceInteger cmis:key="${choice.name}">
[@cmisChoices choice.children type/]
<cmis:value>[@stringvalue choice.value/]</cmis:value>
</cmis:choiceInteger>
[#elseif type == cmisconstants.DATATYPE_DECIMAL]
<cmis:choiceDecimal cmis:key="${choice.name}">
[@cmisChoices choice.children type/]
<cmis:value>[@stringvalue choice.value/]</cmis:value>
</cmis:choiceDecimal>
[#elseif type == cmisconstants.DATATYPE_BOOLEAN]
<cmis:choiceBoolean cmis:key="${choice.name}">
[@cmisChoices choice.children type/]
<cmis:value>[@stringvalue choice.value/]</cmis:value>
</cmis:choiceBoolean>
[#elseif type == cmisconstants.DATATYPE_DATETIME]
<cmis:choiceDateTime cmis:key="${choice.name}">
[@cmisChoices choice.children type/]
<cmis:value>[@stringvalue choice.value/]</cmis:value>
</cmis:choiceDateTime>
[#elseif type == cmisconstants.DATATYPE_URI]
<cmis:choiceUri cmis:key="${choice.name}">
[@cmisChoices choice.children type/]
<cmis:value>[@stringvalue choice.value/]</cmis:value>
</cmis:choiceUri>
[#elseif type == cmisconstants.DATATYPE_ID]
<cmis:choiceId cmis:key="${choice.name}">
[@cmisChoices choice.children type/]
<cmis:value>[@stringvalue choice.value/]</cmis:value>
</cmis:choiceId>
[#-- TODO: remaining property types --]
[/#if]
[/#list]
[/#if]
[/#macro]
[#-- --]
[#-- General Utils --]
[#-- --]
[#-- Helper to render Atom Summary --]
[#macro contentsummary node][#if node.properties.description??]${node.properties.description}[#elseif node.properties.title??]${node.properties.title}[#elseif node.mimetype?? && node.mimetype == "text/plain"]${cropContent(node.properties.content, 50)}[#else]${node.properties.name}[/#if][/#macro]
[#-- Helper to render Alfresco content type to Atom content type --]
[#macro contenttype type][#if type == "text/html"]text[#elseif type == "text/xhtml"]xhtml[#elseif type == "text/plain"]text<#else>${type}[/#if][/#macro]
[#-- Helper to render atom content element --]
[#macro contentstream node]<content[#if node.mimetype??] type="${node.mimetype}"[/#if] src="[@linksLib.contenturi node/]"/>[/#macro]

View File

@@ -1,151 +0,0 @@
[#ftl]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Alfresco CMIS</title>
<link rel="stylesheet" href="${url.context}/css-boilerplate/screen.css" type="text/css" media="screen" charset="utf-8">
<!--[if lte IE 6]><link rel="stylesheet" href="${url.context}/css-boilerplate/lib/ie.css" type="text/css" media="screen" charset="utf-8"><![endif]-->
<script type="text/javascript">
function toggleDisplay(toggle)
{
var toggleBody = document.getElementById(toggle.id + "_body");
if (!toggleBody) return true;
if (toggleBody.style.display == "none")
{
toggleBody.style.display = "block";
toggle.innerHTML = "-";
}
else
{
toggleBody.style.display = "none";
toggle.innerHTML = "+";
}
return true;
}
</script>
</head>
<body>
<div id="page">
<div id="header">
<a href="http://www.alfresco.com"><img id="alflogo" src="${url.context}/images/logo/AlfrescoLogo200.png"/></a><a href="http://www.oasis-open.org/committees/cmis"><img id="alflogo" height="55px" src="${url.context}/images/logo/cmis_logo_100.png"/></a>
</div>
<div id="body" class="wrapper">
<div id="introduction">
<h2>Explore and Test CMIS</h2>
<p>The CMIS (Content Management Interoperability Services) specification is now very close to Public Review.</p>
<p>This site hosts a <a href="#repo">CMIS Repository</a> and <a href="#testatompub">CMIS AtomPub TCK</a> to assist the development of the specification and promote interoperability between up-and-coming implementations. Feel free to use them for building and testing your own CMIS clients and servers.</p>
<p>Frequent updates are made to both the Repository and TCK as issues are resolved or new capabilities added. Currently, <strong class="highlight">version ${cmisVersion}</strong> of the CMIS specification is supported.</p>
<a name="repo"></a>
<h3>Alfresco CMIS Repository</h3>
<p>Point your CMIS client to one of the following Alfresco CMIS bindings (with <strong>user=admin</strong> and <strong>password=admin</strong>).</p>
<ul>
<li>CMIS AtomPub Binding: <a href="${url.serviceContext}/api/repository">AtomPub Service Document</a></li>
<li>CMIS Web Services Binding: <a href="${url.context}/cmis">WSDL Documents</a></li>
</ul>
<p>You can also browse this repository via the <a href="${url.context}/cmisbrowse?url=${absurl(url.serviceContext)}/api/cmis">CMIS FileShare browser</a>.</p>
<h5><span id="repoinfo" class="toggle" onclick="return toggleDisplay(this)">+</span> CMIS Repository Information</h5>
<table id="repoinfo_body" style="display: none;">
<tr><td>Version Supported</td><td>${cmisVersion}</td></tr>
<tr><td>Repository Id</td><td>${server.id}</td></tr>
<tr><td>Repository Name</td><td>${server.name}</td></tr>
<tr><td>Repository Description</td><td>[none]</td></tr>
<tr><td>Vendor Name</td><td>Alfresco</td></tr>
<tr><td>Product Name</td><td>Alfresco Repository (${server.edition})</td></tr>
<tr><td>Product Version</td><td>${server.version}</td></tr>
</table>
<h5><span id="repocapabilities" class="toggle" onclick="return toggleDisplay(this)">+</span> CMIS Repository Capabilities</h5>
<table id="repocapabilities_body" style="display: none;">
<tr><td>ACL</td><td>none</td></tr>
<tr><td>AllVersionsSearchable</td><td>${allVersionsSearchable?string}</td></tr>
<tr><td>Changes</td><td>[#-- TODO --]none</td></tr>
<tr><td>ContentStreamUpdatability</td><td>anytime</td></tr>
<tr><td>GetDescendants</td><td>true</td></tr>
<tr><td>GetFolderTree</td><td>true</td></tr>
<tr><td>Multifiling</td><td>true</td></tr>
<tr><td>PWCSearchable</td><td>${pwcSearchable?string}</td></tr>
<tr><td>PWCUpdateable</td><td>true</td></tr>
<tr><td>Query</td><td>${querySupport}</td></tr>
<tr><td>Join</td><td>${joinSupport}</td></tr>
<tr><td>Renditions</td><td>none</td></tr>
<tr><td>Unfiling</td><td>false</td></tr>
<tr><td>VersionSpecificFiling</td><td>false</td></tr>
</table>
<p><em>Note: The contents of this repository may be cleaned at any time.</em><p>
<a name="testatompub"></a>
<h3>CMIS AtomPub TCK</h3>
<p>Point the TCK (Test Compatibility Kit) at your CMIS Repository AtomPub Service Document. Provide credentials (or leave blank, if authentication not required) and adjust options as necessary. Hit the '<strong>Start TCK</strong>' button for a test report.</p>
<p><em>Tip: Enable the 'Trace Reqs/Responses' option for examples of conversations with a CMIS Repository via AtomPub.</em></p>
<p><em>Note: This TCK is now contributed to <a href="http://incubator.apache.org/chemistry/">Apache Chemistry</a>.</em></p>
<form action="${url.serviceContext}/api/cmis/test" method="post" class="hform">
<fieldset>
<legend>CMIS Repository</legend>
<p><label>Service Document</label><input type="text" name="chemistry.tck.serviceUrl" size="50" value="${absurl(url.serviceContext)}/api/cmis"></p>
<p><label>Username</label><input type="text" name="chemistry.tck.user" value="admin"></p>
<p><label>Password</label><input type="text" name="chemistry.tck.password" value="admin"></p>
</fieldset>
<fieldset>
<legend>Options</legend>
<p class="checkbox"><label>Validate Responses</label><input type="checkbox" name="chemistry.tck.validate" value="true"[#if tckOptions.validate] checked="checked"[/#if]></p>
<p class="checkbox"><label>Fail on Validation Error</label><input type="checkbox" name="chemistry.tck.failOnValidationError" value="true"[#if tckOptions.failOnValidationError] checked="checked"[/#if]></p>
<p class="checkbox"><label>Trace Reqs/Responses</label><input type="checkbox" name="chemistry.tck.traceRequests" value="true"[#if tckOptions.traceRequests] checked="checked"[/#if]><p>
<p><label>Tests</label><input name="chemistry.tck.tests" value="RepositoryServiceTest.testRepository"></p>
<p><label><span id="availtests" class="toggle" onclick="return toggleDisplay(this)">[+]</span> Available Tests</label>
<table id="availtests_body" style="display: none;">
[#list tckTests as test]<tr><td>${test}</td></tr>[/#list]
</table></p>
</fieldset>
<p><input type="submit" name="submit" value="Start TCK" class="button"></p>
</form>
</div>
<div id="resources">
<h3>CMIS Resources</h3>
<ul>
<li><a href="http://www.oasis-open.org/committees/cmis">OASIS Technical Committee</a></li>
<li><a href="http://xml.coverpages.org/cmis.html">Cover Pages</a></li>
<li><a href="http://www.oasis-open.org/committees/download.php/34413/CMIS-70b3.zip"><strong>Specification v0.7</strong></a></li>
</ul>
<h3>Alfresco Resources</h3>
<ul>
<li><a href="http://wiki.alfresco.com/wiki/CMIS">CMIS Wiki</a></li>
<li><a href="http://blogs.alfresco.com/cmis/">CMIS Blog</a></li>
<li><a href="http://wiki.alfresco.com/wiki/Download_Community_Edition">Download</a> Repository</a></li>
<li><a href="http://wiki.alfresco.com/wiki/Alfresco_SVN_Development_Environment">Source Code</a> for Repository</li>
<li><a href="http://svn.alfresco.com/repos/alfresco-open-mirror/alfresco/HEAD/root/design/changes_v0.62f_to_v0.7.txt">Changes from v0.62 to v0.7</li>
</ul>
<h3>Apache Chemistry</h3>
<ul>
<li><a href="http://incubator.apache.org/chemistry/">Home Page</a></li>
<li><a href="http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-tck-atompub/">Source Code</a> for TCK</li>
</ul>
<h3>CMIS FileShare</h3>
<ul>
<li><a href="http://cmisfs.fmui.de/">Home Page</a></li>
</ul>
<h3>Provide Feedback</h3>
<ul>
<li><a href="http://forums.alfresco.com/en/viewforum.php?f=45">CMIS Forum</a></li>
<li><a href="https://issues.alfresco.com/jira/secure/IssueNavigator.jspa?reset=true&mode=hide&pid=10103&sorter/order=DESC&sorter/field=priority&resolution=-1&component=10459">Find / Raise Issues</li>
<li><a href="http://groups.google.com/group/cmis-interop">CMIS Interop Group</a></li>
</ul>
</div>
</div>
<div id="footer">
<p>Last Updated: $Date$, Alfresco Software, Inc</p>
</div>
</div>
</body>
</html>

View File

@@ -135,7 +135,7 @@
<li><a href="http://wiki.alfresco.com/wiki/Download_Community_Edition">Download</a> Repository</a></li>
<li><a href="http://wiki.alfresco.com/wiki/Alfresco_SVN_Development_Environment">Source Code</a> for Repository</li>
<li><a href="http://svn.alfresco.com/repos/alfresco-open-mirror/alfresco/HEAD/root/design/changes_v0.62f_to_v0.7.txt">Changes: v0.62 to v0.7</li>
<li><a href="http://svn.alfresco.com/repos/alfresco-open-mirror/alfresco/HEAD/root/design/changes_v0.7_to_v1.0cd04.txt">Changes: v0.7 to v1.0 cd04</li>
<li><a href="http://svn.alfresco.com/repos/alfresco-open-mirror/alfresco/HEAD/root/design/changes_v0.7_to_1.0cd04.txt">Changes: v0.7 to v1.0 cd04</li>
</ul>
<h3>Apache Chemistry</h3>
<ul>

View File

@@ -197,6 +197,7 @@ public class DMNavigationServicePort extends DMAbstractServicePort implements Na
*/
public CmisObjectType getFolderParent(String repositoryId, String folderId, String filter, CmisExtensionType extension) throws CmisException
{
// FIXME: [BUG] It is necessary to check with specification for behaviour of this method with folderId equal to rootFolderId!!!
checkRepositoryId(repositoryId);
if ((filter != null) && !filter.equals("") && !filter.equals("*"))

View File

@@ -97,7 +97,6 @@ public class DMRepositoryServicePort extends DMAbstractServicePort implements Re
propertyTypeEnumMapping.put(CMISDataTypeEnum.INTEGER, EnumPropertyType.INTEGER);
propertyTypeEnumMapping.put(CMISDataTypeEnum.STRING, EnumPropertyType.STRING);
propertyTypeEnumMapping.put(CMISDataTypeEnum.URI, EnumPropertyType.URI);
propertyTypeEnumMapping.put(CMISDataTypeEnum.XML, EnumPropertyType.XML);
queryTypeEnumMapping = new HashMap<CMISQueryEnum, EnumCapabilityQuery>();
queryTypeEnumMapping.put(CMISQueryEnum.BOTH_COMBINED, EnumCapabilityQuery.BOTHCOMBINED);
@@ -223,8 +222,6 @@ public class DMRepositoryServicePort extends DMAbstractServicePort implements Re
break;
case URI:
break;
case XML:
break;
}
return result;
}
@@ -286,10 +283,6 @@ public class DMRepositoryServicePort extends DMAbstractServicePort implements Re
{
return new CmisPropertyUriDefinitionType();
}
case XML:
{
return new CmisPropertyXmlDefinitionType();
}
default:
{
throw cmisObjectsUtils.createCmisException(type.getLabel(), EnumServiceException.OBJECT_NOT_FOUND);

View File

@@ -25,7 +25,9 @@
package org.alfresco.repo.cmis.ws.utils;
import java.math.BigInteger;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -387,33 +389,25 @@ public class CmisObjectsUtils
*/
public NodeRef getLatestNode(NodeRef documentNodeRef, boolean major)
{
Version specifiedVersion = versionService.getCurrentVersion(documentNodeRef);
NodeRef latestVersionNodeRef = documentNodeRef;
if ((null != specifiedVersion) && (null != specifiedVersion.getVersionedNodeRef()))
VersionHistory versionHistory = versionService.getVersionHistory(documentNodeRef);
if (null != versionHistory)
{
latestVersionNodeRef = specifiedVersion.getVersionedNodeRef();
if (major)
Collection<Version> allVersions = versionHistory.getAllVersions();
Iterator<Version> versionsIterator = ((null != allVersions) && !allVersions.isEmpty()) ? (allVersions.iterator()) : (null);
Version latestVersion = (null == versionsIterator) ? (null) : (versionsIterator.next());
String currentVersionLabel = (null != latestVersion) ? (latestVersion.getVersionLabel()) : (null);
if (major && (null != latestVersion))
{
Version latestVersion = versionService.getCurrentVersion(latestVersionNodeRef);
if ((null != latestVersion) && (VersionType.MAJOR != latestVersion.getVersionType()))
for (; (VersionType.MAJOR != latestVersion.getVersionType()) && versionsIterator.hasNext(); latestVersion = versionsIterator.next())
{
VersionHistory versionHistory = versionService.getVersionHistory(latestVersion.getFrozenStateNodeRef());
if (null != versionHistory)
{
for (latestVersion = versionHistory.getPredecessor(latestVersion); (null != latestVersion) && (VersionType.MAJOR != latestVersion.getVersionType()); latestVersion = versionHistory
.getPredecessor(latestVersion))
{
}
}
if ((null != latestVersion) && (null != latestVersion.getFrozenStateNodeRef()))
{
latestVersionNodeRef = latestVersion.getFrozenStateNodeRef();
}
}
latestVersion = (VersionType.MAJOR != latestVersion.getVersionType()) ? (null) : (latestVersion);
}
if ((null != latestVersion) && (null != latestVersion.getVersionLabel()))
{
latestVersionNodeRef = (!latestVersion.getVersionLabel().equals(currentVersionLabel) || (null == latestVersion.getVersionedNodeRef()) || !nodeService
.exists(latestVersion.getVersionedNodeRef())) ? (latestVersion.getFrozenStateNodeRef()) : (latestVersion.getVersionedNodeRef());
}
}

View File

@@ -476,7 +476,7 @@ public class PropertyUtil
return PropertyCheckingStateEnum.PROPERTY_NOT_UPDATABLE;
}
if (propertyDefinition.isRequired() && (value == null))
if (propertyDefinition.isRequired() && (null == value))
{
throw cmisObjectsUtils.createCmisException((propertyName + " property required"), EnumServiceException.CONSTRAINT);
}
@@ -499,7 +499,7 @@ public class PropertyUtil
return PropertyCheckingStateEnum.PROPERTY_CHECKED;
}
private enum PropertyCheckingStateEnum
public enum PropertyCheckingStateEnum
{
PROPERTY_CHECKED, PROPERTY_NATIVE, PROPERTY_NOT_UPDATABLE;
}
@@ -733,25 +733,6 @@ public class PropertyUtil
return property;
}
case XML:
{
CmisPropertyXml property = new CmisPropertyXml();
property.setPdid(pdid);
if (value instanceof Collection)
{
for (CmisPropertyXml.Value propertyValue : (Collection<CmisPropertyXml.Value>) value)
{
property.getValue().add(propertyValue);
}
}
else
{
property.getValue().add((CmisPropertyXml.Value) value);
}
return property;
}
case HTML:
{
CmisPropertyHtml property = new CmisPropertyHtml();

View File

@@ -1,2 +0,0 @@
basedir=/Users/davidc/Dev/projects/cmis063/code/root/projects/remote-api
lib=/Users/davidc/Dev/software/apache-cxf-2.1.2/lib

View File

@@ -1,54 +0,0 @@
<project name="WS-Binding" default="main" basedir=".">
<property file="${user.name}.build.properties" />
<property file="build.properties" />
<property name="src.dir" value="${basedir}/source" />
<property name="src.java" value="${src.dir}/java" />
<property name="src.wsdl" value="${src.dir}/wsdl" />
<property name="src.generated" value="${src.dir}/generated" />
<property name="build.dir" value="${basedir}/build" />
<property name="build.classes" value="${build.dir}/classes" />
<property name="lib" value="${lib}" />
<path id="classpath.lib">
<fileset dir="${lib}">
<include name="**/*.jar" />
</fileset>
</path>
<target name="main" depends="undeploy, deploy" />
<target name="undeploy">
<delete failonerror="no" includeemptydirs="true">
<fileset dir="${alfresco.home}/tomcat/webapps/alfresco/WEB-INF/classes/org/alfresco/">
<include name="**/*.*" />
</fileset>
</delete>
</target>
<target name="deploy">
<copy todir="${alfresco.home}/tomcat/webapps/alfresco/WEB-INF/classes" overwrite="true">
<fileset dir="${build.classes}">
<include name="**/*.*" />
<exclude name="**/*Test.*" />
<exclude name="**/extension/*.*" />
</fileset>
</copy>
</target>
<target name="wsdl2java">
<java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="yes" maxmemory="256m">
<classpath refid="classpath.lib" />
<arg value="-noAddressBinding" />
<arg value="-d" />
<arg value="/Users/davidc/Dev/projects/cmis063/code/root/projects/remote-api/source/generated" />
<arg value="-p" />
<arg value="org.alfresco.repo.cmis.ws" />
<arg value="CMISWS-Service.wsdl" />
</java>
</target>
</project>