You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by dp...@apache.org on 2005/05/09 11:49:28 UTC
svn commit: r169262 - in /incubator/jackrabbit/trunk/contrib/jcr-server:
server/ server/src/java/org/apache/jackrabbit/server/simple/dav/lock/
webapp/ webdav/src/java/org/apache/jackrabbit/
webdav/src/java/org/apache/jackrabbit/webdav/jcr/
webdav/src/java/org/apache/jackrabbit/webdav/jcr/property/
webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/
Author: dpfister
Date: Mon May 9 02:49:27 2005
New Revision: 169262
URL: http://svn.apache.org/viewcvs?rev=169262&view=rev
Log:
- fix uncomplete sync
Added:
incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/RepositoryDescriptorsReport.java (with props)
Removed:
incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apache/jackrabbit/server/simple/dav/lock/SimpleLockManager.java
Modified:
incubator/jackrabbit/trunk/contrib/jcr-server/server/project.xml
incubator/jackrabbit/trunk/contrib/jcr-server/webapp/project.xml
incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/JcrConstants.java
incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/AbstractItemResource.java
incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java
incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/ItemResourceConstants.java
incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/RootCollection.java
incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/RootItemCollection.java
incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/property/ValuesProperty.java
incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/ExportViewReport.java
incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/LocateByUuidReport.java
incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/RegisteredNamespacesReport.java
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/server/project.xml
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/server/project.xml?rev=169262&r1=169261&r2=169262&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/server/project.xml (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/server/project.xml Mon May 9 02:49:27 2005
@@ -66,7 +66,6 @@
</dependency>
<dependency>
<id>jcr-rmi</id>
-<!-- TODO: change to 0.16.4.1 as soon as available -->
<version>0.16.4</version>
</dependency>
<dependency>
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/webapp/project.xml
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/webapp/project.xml?rev=169262&r1=169261&r2=169262&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webapp/project.xml (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webapp/project.xml Mon May 9 02:49:27 2005
@@ -90,7 +90,6 @@
</dependency>
<dependency>
<id>jcr-rmi</id>
-<!-- TODO: change to 0.16.4.1 as soon as available -->
<version>0.16.4</version>
<properties>
<war.bundle>false</war.bundle>
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/JcrConstants.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/JcrConstants.java?rev=169262&r1=169261&r2=169262&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/JcrConstants.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/JcrConstants.java Mon May 9 02:49:27 2005
@@ -124,10 +124,6 @@
*/
public static final String JCR_ONPARENTVERSION = "jcr:onParentVersion";
/**
- * jcr:path
- */
- public static final String JCR_PATH = "jcr:path";
- /**
* jcr:predecessors
*/
public static final String JCR_PREDECESSORS = "jcr:predecessors";
@@ -203,6 +199,16 @@
* jcr:versionableUuid
*/
public static final String JCR_VERSIONABLEUUID = "jcr:versionableUuid";
+
+ /**
+ * Pseudo property jcr:path used with query results
+ */
+ public static final String JCR_PATH = "jcr:path";
+ /**
+ * Pseudo property jcr:score used with query results
+ */
+ public static final String JCR_SCORE = "jcr:score";
+
/**
* mix:lockable
*/
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/AbstractItemResource.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/AbstractItemResource.java?rev=169262&r1=169261&r2=169262&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/AbstractItemResource.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/AbstractItemResource.java Mon May 9 02:49:27 2005
@@ -18,10 +18,7 @@
import org.apache.log4j.Logger;
import org.apache.jackrabbit.webdav.property.*;
import org.apache.jackrabbit.webdav.*;
-import org.apache.jackrabbit.webdav.jcr.version.report.NodeTypesReport;
-import org.apache.jackrabbit.webdav.jcr.version.report.ExportViewReport;
-import org.apache.jackrabbit.webdav.jcr.version.report.LocateByUuidReport;
-import org.apache.jackrabbit.webdav.jcr.version.report.RegisteredNamespacesReport;
+import org.apache.jackrabbit.webdav.jcr.version.report.*;
import org.apache.jackrabbit.webdav.transaction.TxLockEntry;
import org.apache.jackrabbit.webdav.version.report.SupportedReportSetProperty;
import org.apache.jackrabbit.webdav.version.report.ReportType;
@@ -237,7 +234,8 @@
NodeTypesReport.NODETYPES_REPORT,
ExportViewReport.EXPORTVIEW_REPORT,
LocateByUuidReport.LOCATE_BY_UUID_REPORT,
- RegisteredNamespacesReport.REGISTERED_NAMESPACES_REPORT
+ RegisteredNamespacesReport.REGISTERED_NAMESPACES_REPORT,
+ RepositoryDescriptorsReport.REPOSITORY_DESCRIPTORS_REPORT
});
}
}
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java?rev=169262&r1=169261&r2=169262&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java Mon May 9 02:49:27 2005
@@ -224,8 +224,16 @@
n.addNode(resource.getDisplayName());
} else {
// MKCOL, which is not allowed for existing resources
+ if (getTransactionId() == null) {
+ // if not part of a transaction directely import on workspace
+ // since changes would be explicitely saved in the
+ // complete-call.
+ getRepositorySession().getWorkspace().importXML(getResourcePath(), in, ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);
+ } else {
+ // changes will not be persisted unless the tx is completed.
getRepositorySession().importXML(getResourcePath(), in, ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);
}
+ }
} else {
if (in == null) {
// PUT: not possible
@@ -671,6 +679,9 @@
properties.add(new NodeTypeProperty(JCR_MIXINNODETYPES, n.getMixinNodeTypes(), false));
properties.add(new DefaultDavProperty(JCR_INDEX, new Integer(n.getIndex())));
addHrefProperty(JCR_REFERENCES, n.getReferences(), false);
+ if (n.isNodeType(JcrConstants.MIX_REFERENCEABLE)) {
+ properties.add(new DefaultDavProperty(JCR_UUID, n.getUUID()));
+ }
} catch (RepositoryException e) {
log.error("Failed to retrieve primary nodetype property: " + e.getMessage());
}
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/ItemResourceConstants.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/ItemResourceConstants.java?rev=169262&r1=169261&r2=169262&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/ItemResourceConstants.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/ItemResourceConstants.java Mon May 9 02:49:27 2005
@@ -63,8 +63,13 @@
// xml elements used to reflect the workspaces ns-registry
// TODO: to be review...
public static final String XML_NAMESPACE = "namespace";
- public static final String XML_NSPREFIX = "nsPrefix";
- public static final String XML_NSURI = "nsURI";
+ public static final String XML_PREFIX = "prefix";
+ public static final String XML_URI = "uri";
+
+ // xml elements used for repository-descritors report
+ public static final String XML_DESCRIPTOR = "descriptor";
+ public static final String XML_DESCRIPTORKEY = "descriptorkey";
+ public static final String XML_DESCRIPTORVALUE = "descriptorvalue";
/**
* Extension to the WebDAV 'exclusive' lock, that allows to distinguish
@@ -108,6 +113,7 @@
public static final DavPropertyName JCR_MIXINNODETYPES = DavPropertyName.create("mixinnodetypes", NAMESPACE);
public static final DavPropertyName JCR_INDEX = DavPropertyName.create("index", NAMESPACE);
public static final DavPropertyName JCR_REFERENCES = DavPropertyName.create("references", NAMESPACE);
+ public static final DavPropertyName JCR_UUID = DavPropertyName.create("uuid", NAMESPACE);
public static final DavPropertyName JCR_PRIMARYITEM = DavPropertyName.create("primaryitem", NAMESPACE);
// property names used for resources representing jcr-properties
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/RootCollection.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/RootCollection.java?rev=169262&r1=169261&r2=169262&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/RootCollection.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/RootCollection.java Mon May 9 02:49:27 2005
@@ -19,6 +19,7 @@
import org.apache.jackrabbit.webdav.*;
import org.apache.jackrabbit.webdav.jcr.version.report.RegisteredNamespacesReport;
import org.apache.jackrabbit.webdav.jcr.version.report.NodeTypesReport;
+import org.apache.jackrabbit.webdav.jcr.version.report.RepositoryDescriptorsReport;
import org.apache.jackrabbit.webdav.version.report.SupportedReportSetProperty;
import org.apache.jackrabbit.webdav.version.report.ReportType;
@@ -177,7 +178,8 @@
supportedReports = new SupportedReportSetProperty(new ReportType[] {
ReportType.EXPAND_PROPERTY,
NodeTypesReport.NODETYPES_REPORT,
- RegisteredNamespacesReport.REGISTERED_NAMESPACES_REPORT
+ RegisteredNamespacesReport.REGISTERED_NAMESPACES_REPORT,
+ RepositoryDescriptorsReport.REPOSITORY_DESCRIPTORS_REPORT
});
}
}
@@ -199,4 +201,4 @@
}
return null;
}
-}
\ No newline at end of file
+}
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/RootItemCollection.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/RootItemCollection.java?rev=169262&r1=169261&r2=169262&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/RootItemCollection.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/RootItemCollection.java Mon May 9 02:49:27 2005
@@ -95,8 +95,8 @@
Element[] nsElems = new Element[prefixes.length];
for (int i = 0; i < prefixes.length; i++) {
Element elem = new Element(XML_NAMESPACE, NAMESPACE);
- elem.addContent(new Element(XML_NSPREFIX).setText(prefixes[i]));
- elem.addContent(new Element(XML_NSURI)).setText(nsReg.getURI(prefixes[i]));
+ elem.addContent(new Element(XML_PREFIX).setText(prefixes[i]));
+ elem.addContent(new Element(XML_URI)).setText(nsReg.getURI(prefixes[i]));
nsElems[i] = elem;
}
properties.add(new DefaultDavProperty(ItemResourceConstants.JCR_NAMESPACES, nsElems, false));
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/property/ValuesProperty.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/property/ValuesProperty.java?rev=169262&r1=169261&r2=169262&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/property/ValuesProperty.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/property/ValuesProperty.java Mon May 9 02:49:27 2005
@@ -93,7 +93,7 @@
/**
* Converts the value of this property to a {@link javax.jcr.Value value array}.
- * Please note, that the convertion is done by using the {@link org.apache.jackrabbit.core.util.ValueHelper}
+ * Please note, that the convertion is done by using the {@link org.apache.jackrabbit.core.value.ValueHelper}
* class that is not part of the JSR170 API.
*
* @return Array of Value objects
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/ExportViewReport.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/ExportViewReport.java?rev=169262&r1=169261&r2=169262&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/ExportViewReport.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/ExportViewReport.java Mon May 9 02:49:27 2005
@@ -37,8 +37,8 @@
/**
* <code>ExportViewReport</code> handles REPORT requests for the 'exportview'
* report. The 'exportview' report is used to export
- * {@link Session#exportDocView(String, java.io.OutputStream, boolean, boolean) DocView}
- * and {@link Session#exportSysView(String, java.io.OutputStream, boolean, boolean) SysView}
+ * {@link Session#exportDocumentView(String, java.io.OutputStream, boolean, boolean) DocView}
+ * and {@link Session#exportSystemView(String, java.io.OutputStream, boolean, boolean) SysView}
* of the {@link javax.jcr.Item item} represented by the requested resource.
* <p/>
* The request body must contain a jcr:exportview element:
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/LocateByUuidReport.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/LocateByUuidReport.java?rev=169262&r1=169261&r2=169262&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/LocateByUuidReport.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/LocateByUuidReport.java Mon May 9 02:49:27 2005
@@ -112,7 +112,7 @@
DavResource res = resource.getFactory().createResource(loc, session);
MultiStatus ms = new MultiStatus();
- ms.addResourceProperties(res, propNameSet, 0);
+ ms.addResourceProperties(res, propNameSet, info.getDepth());
return ms.toXml();
} catch (RepositoryException e) {
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/RegisteredNamespacesReport.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/RegisteredNamespacesReport.java?rev=169262&r1=169261&r2=169262&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/RegisteredNamespacesReport.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/RegisteredNamespacesReport.java Mon May 9 02:49:27 2005
@@ -31,18 +31,23 @@
import java.util.List;
/**
- * <code>NodeTypesReport</code> allows to retrieve the definition of a single
- * or multiple node types. The request body must be a 'jcr:nodetypes' element:
- * <pre>
- * <!ELEMENT nodetypes ( nodetype+ | all-nodetypes | mixin-nodetypes | primary-nodetypes ) >
+ * <code>RegisteredNamespacesReport</code> let the client retrieve the namespaces
+ * registered on the repository.<p/>
*
- * <!ELEMENT nodetype ( nodetype-name ) >
- * <!ELEMENT nodetype-name (#PCDATA) >
+ * Request body:
+ * <pre>
+ * <!ELEMENT registerednamespaces EMPTY >
+ * </pre>
*
- * <!ELEMENT all-nodetypes EMPTY >
- * <!ELEMENT mixin-nodetypes EMPTY >
- * <!ELEMENT primary-nodetypes EMPTY >
+ * Response body:
+ * <pre>
+ * <!ELEMENT registerednamespaces-report (namespace)* >
+ * <!ELEMENT namespace (prefix, uri) >
+ * <!ELEMENT prefix (#PCDATA) >
+ * <!ELEMENT uri (#PCDATA) >
* </pre>
+ *
+ * @see javax.jcr.Workspace#getNamespaceRegistry()
*/
public class RegisteredNamespacesReport implements Report, ItemResourceConstants {
@@ -117,8 +122,8 @@
List namespaceList = new ArrayList();
for (int i = 0; i < prefixes.length; i++) {
Element elem = new Element(XML_NAMESPACE, NAMESPACE);
- elem.addContent(new Element(XML_NSPREFIX, NAMESPACE).setText(prefixes[i]));
- elem.addContent(new Element(XML_NSURI, NAMESPACE).setText(nsReg.getURI(prefixes[i])));
+ elem.addContent(new Element(XML_PREFIX, NAMESPACE).setText(prefixes[i]));
+ elem.addContent(new Element(XML_URI, NAMESPACE).setText(nsReg.getURI(prefixes[i])));
namespaceList.add(elem);
}
Element report = new Element("registerednamespaces-report", NAMESPACE).addContent(namespaceList);
Added: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/RepositoryDescriptorsReport.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/RepositoryDescriptorsReport.java?rev=169262&view=auto
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/RepositoryDescriptorsReport.java (added)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/RepositoryDescriptorsReport.java Mon May 9 02:49:27 2005
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * 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.
+ */
+package org.apache.jackrabbit.webdav.jcr.version.report;
+
+import org.apache.log4j.Logger;
+import org.apache.jackrabbit.webdav.version.report.*;
+import org.apache.jackrabbit.webdav.version.DeltaVResource;
+import org.apache.jackrabbit.webdav.DavException;
+import org.apache.jackrabbit.webdav.DavSession;
+import org.apache.jackrabbit.webdav.jcr.ItemResourceConstants;
+import org.jdom.Document;
+import org.jdom.Element;
+
+import javax.jcr.*;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <code>RepositoryDescriptorsReport</code> allows to retrieve the repository
+ * descriptors. The request body must be an empty 'jcr:repositorydescriptors' element:
+ * <pre>
+ * <!ELEMENT repositorydescriptors EMPTY >
+ * </pre>
+ * <br>
+ * The response body must match the following format
+ *
+ * <pre>
+ * <!ELEMENT repositorydescriptors-report ( descriptor )* >
+ * <!ELEMENT descriptor ( descriptorkey, descriptorvalue ) >
+ * <!ELEMENT descriptorkey (#PCDATA) >
+ * <!ELEMENT descriptorvalue (#PCDATA) >
+ * </pre>
+ *
+ * @see javax.jcr.Repository#getDescriptorKeys()
+ * @see Repository#getDescriptor(String)
+ */
+public class RepositoryDescriptorsReport implements Report, ItemResourceConstants {
+
+ private static Logger log = Logger.getLogger(RepositoryDescriptorsReport.class);
+
+ /**
+ * The registered type of this report.
+ */
+ public static final ReportType REPOSITORY_DESCRIPTORS_REPORT = ReportType.register("registerednamespaces", ItemResourceConstants.NAMESPACE, RepositoryDescriptorsReport.class);
+
+ private Repository repository;
+
+ /**
+ * Returns {@link #REPOSITORY_DESCRIPTORS_REPORT} type.
+ * @return {@link #REPOSITORY_DESCRIPTORS_REPORT}
+ * @see org.apache.jackrabbit.webdav.version.report.Report#getType()
+ */
+ public ReportType getType() {
+ return REPOSITORY_DESCRIPTORS_REPORT;
+ }
+
+ /**
+ * @param resource
+ * @throws IllegalArgumentException if the resource or the session retrieved
+ * from the specified resource is <code>null</code>
+ * @see org.apache.jackrabbit.webdav.version.report.Report#setResource(org.apache.jackrabbit.webdav.version.DeltaVResource)
+ */
+ public void setResource(DeltaVResource resource) {
+ if (resource == null) {
+ throw new IllegalArgumentException("Resource must not be null.");
+ }
+ DavSession session = resource.getSession();
+ if (session == null || session.getRepositorySession() == null) {
+ throw new IllegalArgumentException("The resource must provide a non-null session object in order to create the jcr:nodetypes report.");
+ }
+ repository = session.getRepositorySession().getRepository();
+ }
+
+ /**
+ * @param info
+ * @throws IllegalArgumentException if the specified info does not contain
+ * a jcr:nodetypes element.
+ * @see org.apache.jackrabbit.webdav.version.report.Report#setInfo(org.apache.jackrabbit.webdav.version.report.ReportInfo)
+ */
+ public void setInfo(ReportInfo info) {
+ if (info == null || !"repositorydescriptors".equals(info.getReportElement().getName())) {
+ throw new IllegalArgumentException("jcr:repositorydescriptors element expected.");
+ }
+ }
+
+ /**
+ * Returns a Xml representation of the node type definition(s) according
+ * to the info object.
+ *
+ * @return Xml representation of the node type definition(s)
+ * @throws org.apache.jackrabbit.webdav.DavException if the specified nodetypes are not known or if another
+ * error occurs while retrieving the nodetype definitions.
+ * @see org.apache.jackrabbit.webdav.version.report.Report#toXml()
+ */
+ public Document toXml() throws DavException {
+ String[] keys = repository.getDescriptorKeys();
+ List descList = new ArrayList();
+ for (int i = 0; i < keys.length; i++) {
+ Element elem = new Element(XML_DESCRIPTOR, NAMESPACE);
+ elem.addContent(new Element(XML_DESCRIPTORKEY, NAMESPACE).setText(keys[i]));
+ elem.addContent(new Element(XML_DESCRIPTORVALUE, NAMESPACE).setText(repository.getDescriptor(keys[i])));
+ descList.add(elem);
+ }
+ Element report = new Element("repositorydescriptors-report", NAMESPACE).addContent(descList);
+ Document reportDoc = new Document(report);
+ return reportDoc;
+ }
+}
\ No newline at end of file
Propchange: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/version/report/RepositoryDescriptorsReport.java
------------------------------------------------------------------------------
svn:eol-style = native