You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2005/04/29 13:29:00 UTC
svn commit: r165294 - in /incubator/jackrabbit/trunk/contrib/jcr-server: ./
client/ server/ server/src/java/org/apache/jackrabbit/server/
server/src/java/org/apache/jackrabbit/server/io/ webapp/ webdav/
webdav/src/java/org/apache/jackrabbit/
webdav/src/java/org/apache/jackrabbit/webdav/jcr/
Author: tripod
Date: Fri Apr 29 04:29:00 2005
New Revision: 165294
URL: http://svn.apache.org/viewcvs?rev=165294&view=rev
Log:
- adapting server to latest api 0.16.4.1
- adding support for better repository extensibility
- add primary-item export command
Added:
incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apache/jackrabbit/server/io/PrimaryItemExportCommand.java (with props)
Modified:
incubator/jackrabbit/trunk/contrib/jcr-server/ (props changed)
incubator/jackrabbit/trunk/contrib/jcr-server/client/project.xml
incubator/jackrabbit/trunk/contrib/jcr-server/project.xml
incubator/jackrabbit/trunk/contrib/jcr-server/server/project.xml
incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apache/jackrabbit/server/RepositoryStartupServlet.java
incubator/jackrabbit/trunk/contrib/jcr-server/webapp/ (props changed)
incubator/jackrabbit/trunk/contrib/jcr-server/webapp/project.xml
incubator/jackrabbit/trunk/contrib/jcr-server/webdav/ (props changed)
incubator/jackrabbit/trunk/contrib/jcr-server/webdav/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/VersionControlledItemCollection.java
Propchange: incubator/jackrabbit/trunk/contrib/jcr-server/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri Apr 29 04:29:00 2005
@@ -0,0 +1,2 @@
+*.ipr
+*.iws
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/client/project.xml
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/client/project.xml?rev=165294&r1=165293&r2=165294&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/client/project.xml (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/client/project.xml Fri Apr 29 04:29:00 2005
@@ -37,16 +37,16 @@
<dependency>
<groupId>jsr170</groupId>
<artifactId>jcr</artifactId>
- <version>0.16.4</version>
- <url>http://www.day.com/maven/jsr170/jars/jcr-0.16.4.jar</url>
+ <version>0.16.4.1</version>
+ <url>http://www.day.com/maven/jsr170/jars/jcr-0.16.4.1.jar</url>
</dependency>
<dependency>
<id>jackrabbit</id>
- <version>0.16.4-dev</version>
+ <version>0.16.4.1-dev</version>
</dependency>
<dependency>
<id>jcr-rmi</id>
- <version>0.16.4</version>
+ <version>0.16.4.1</version>
</dependency>
<dependency>
<id>jdom</id>
@@ -66,7 +66,7 @@
</dependency>
<dependency>
<id>commons-collections</id>
- <version>2.1</version>
+ <version>3.1</version>
</dependency>
</dependencies>
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/project.xml
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/project.xml?rev=165294&r1=165293&r2=165294&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/project.xml (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/project.xml Fri Apr 29 04:29:00 2005
@@ -23,7 +23,7 @@
<groupId>jcr-server</groupId>
<name>Jackrabbit-Server</name>
- <currentVersion>0.16.4</currentVersion>
+ <currentVersion>0.16.4.1</currentVersion>
<inceptionYear>2005</inceptionYear>
<package>org.apache.jackrabbit.server.*</package>
<description>
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=165294&r1=165293&r2=165294&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/server/project.xml (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/server/project.xml Fri Apr 29 04:29:00 2005
@@ -45,12 +45,12 @@
<dependency>
<groupId>jsr170</groupId>
<artifactId>jcr</artifactId>
- <version>0.16.4</version>
- <url>http://www.day.com/maven/jsr170/jars/jcr-0.16.4.jar</url>
+ <version>0.16.4.1</version>
+ <url>http://www.day.com/maven/jsr170/jars/jcr-0.16.4.1.jar</url>
</dependency>
<dependency>
<id>jackrabbit</id>
- <version>0.16.4-dev</version>
+ <version>0.16.4.1-dev</version>
</dependency>
<dependency>
<id>jdom</id>
@@ -66,7 +66,7 @@
</dependency>
<dependency>
<id>jcr-rmi</id>
- <version>0.16.4</version>
+ <version>0.16.4.1</version>
</dependency>
<dependency>
<id>commons-chain</id>
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apache/jackrabbit/server/RepositoryStartupServlet.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apache/jackrabbit/server/RepositoryStartupServlet.java?rev=165294&r1=165293&r2=165294&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apache/jackrabbit/server/RepositoryStartupServlet.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apache/jackrabbit/server/RepositoryStartupServlet.java Fri Apr 29 04:29:00 2005
@@ -63,7 +63,7 @@
public final static String INIT_PARAM_LOG4J_CONFIG = "log4j-config";
/** the registered repository */
- private static RepositoryImpl repository;
+ private static Repository repository;
/** the name of the repository as configured */
private static String repositoryName;
@@ -173,15 +173,27 @@
log.info(" repository-name = " + repositoryName);
try {
- InputSource is = new InputSource(in);
- RepositoryConfig config = RepositoryConfig.create(is, repositoryHome.getAbsolutePath());
- repository = RepositoryImpl.create(config);
+ repository = createRepository(new InputSource(in), repositoryHome);
} catch (RepositoryException e) {
throw new ServletException("Error while creating repository", e);
}
}
/**
+ * Creates the repository for the given config and homedir.
+ *
+ * @param is
+ * @param homedir
+ * @return
+ * @throws RepositoryException
+ */
+ protected Repository createRepository(InputSource is, File homedir)
+ throws RepositoryException {
+ RepositoryConfig config = RepositoryConfig.create(is, homedir.getAbsolutePath());
+ return RepositoryImpl.create(config);
+ }
+
+ /**
* Registers the repository in the JNDI context
* @throws ServletException
*/
@@ -237,7 +249,7 @@
}
// try to create remote repository
- Remote remote = null;
+ Remote remote;
try {
Class clazz = Class.forName("org.apache.jackrabbit.server.RMIRemoteFactoryDelegater");
RemoteFactoryDelegater rmf = (RemoteFactoryDelegater) clazz.newInstance();
Added: incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apache/jackrabbit/server/io/PrimaryItemExportCommand.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apache/jackrabbit/server/io/PrimaryItemExportCommand.java?rev=165294&view=auto
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apache/jackrabbit/server/io/PrimaryItemExportCommand.java (added)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apache/jackrabbit/server/io/PrimaryItemExportCommand.java Fri Apr 29 04:29:00 2005
@@ -0,0 +1,134 @@
+/*
+ * Copyright 2004-2005 The Apache Software Foundation or its licensors,
+ * as applicable.
+ *
+ * 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.server.io;
+
+import org.apache.commons.chain.Command;
+import org.apache.commons.chain.Context;
+import org.apache.jackrabbit.JcrConstants;
+
+import javax.jcr.Node;
+import javax.jcr.Item;
+import javax.jcr.ItemNotFoundException;
+import javax.jcr.Property;
+import javax.jcr.RepositoryException;
+import javax.jcr.PropertyType;
+
+/**
+ * This Class implements an abstract export command for a nc-resource. It acts
+ * as generic base class that retrieves the resource properties from the
+ * exporting node.
+ * </p>
+ */
+public class PrimaryItemExportCommand implements Command, JcrConstants {
+
+ /**
+ * Executes this command by calling {@link #execute(ExportContext)} if
+ * the given context is of the correct class.
+ *
+ * @param context the (export) context.
+ * @return the return value of the delegated method or false;
+ * @throws Exception in an error occurrs
+ */
+ public boolean execute(Context context) throws Exception {
+ if (context instanceof ExportContext) {
+ return execute((ExportContext) context);
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Executs this command using the given export context.
+ *
+ * @param context the export context
+ * @return
+ * @throws Exception if an error occurrs
+ */
+ public boolean execute(ExportContext context) throws Exception {
+ Item item = context.getNode();
+ long creationTime=0;
+
+ // find primary item
+ while (item.isNode()) {
+ Node node = (Node)item;
+ // creation time not set with the files/folders
+ if (node.hasProperty(JCR_CREATED)) {
+ creationTime = node.getProperty(JCR_CREATED).getValue().getLong();
+ }
+ // avoid 'ItemNotFound' if no primary item is present
+ try {
+ item = ((Node) item).getPrimaryItem();
+ } catch (ItemNotFoundException e) {
+ // no primary item existing, stop searching
+ break;
+ }
+ }
+
+ // access property values
+ if (!item.isNode()) {
+ Property prop = (Property) item;
+ Node parent = prop.getParent();
+
+ context.setCreationTime(creationTime);
+ // check for last modified sibling
+ try {
+ if (parent.hasProperty(JCR_LASTMODIFIED)) {
+ context.setModificationTime(parent.getProperty(JCR_LASTMODIFIED).getLong());
+ }
+ } catch (RepositoryException e) {
+ // ignore
+ }
+
+ // check for contenttype and encoding sibling of the primary item.
+ String contentType="application/octet-stream";
+ if (!context.getNode().isSame(item)) {
+ try {
+ if (parent.hasProperty(JCR_MIMETYPE)) {
+ contentType = parent.getProperty(JCR_MIMETYPE).getString();
+
+ if (parent.hasProperty(JCR_ENCODING)) {
+ String encoding = parent.getProperty(JCR_ENCODING).getString();
+ if (!encoding.equals("")) {
+ contentType+="; charset=\"" + encoding + "\"";
+ }
+ }
+ }
+ } catch (RepositoryException e) {
+ // ignore
+ }
+ } else {
+ // property was requested > set content type according to type
+ contentType = (prop.getType() == PropertyType.BINARY) ? "application/octet-stream" : "text/plain";
+ }
+ context.setContentType(contentType);
+
+ // get content length
+ if (prop.getDefinition().isMultiple()) {
+ context.setInputStream(prop.getValues()[0].getStream());
+ context.setContentLength(prop.getLengths()[0]);
+ } else {
+ context.setInputStream(prop.getValue().getStream());
+ context.setContentLength(prop.getLength());
+ }
+ return true;
+ } else {
+ /* no primaryItem property could be retrieved, abort command */
+ return false;
+
+ }
+ }
+}
Propchange: incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apache/jackrabbit/server/io/PrimaryItemExportCommand.java
------------------------------------------------------------------------------
svn =
Propchange: incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apache/jackrabbit/server/io/PrimaryItemExportCommand.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/jackrabbit/trunk/contrib/jcr-server/webapp/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Apr 29 04:29:00 2005
@@ -1 +1,2 @@
target
+*.iml
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=165294&r1=165293&r2=165294&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webapp/project.xml (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webapp/project.xml Fri Apr 29 04:29:00 2005
@@ -57,15 +57,15 @@
<dependency>
<groupId>jsr170</groupId>
<artifactId>jcr</artifactId>
- <version>0.16.4</version>
- <url>http://www.day.com/maven/jsr170/jars/jcr-0.16.4.jar</url>
+ <version>0.16.4.1</version>
+ <url>http://www.day.com/maven/jsr170/jars/jcr-0.16.4.1.jar</url>
<properties>
<war.bundle>true</war.bundle>
</properties>
</dependency>
<dependency>
<id>jackrabbit</id>
- <version>0.16.4-dev</version>
+ <version>0.16.4.1-dev</version>
<properties>
<war.bundle>true</war.bundle>
</properties>
@@ -90,7 +90,7 @@
</dependency>
<dependency>
<id>jcr-rmi</id>
- <version>0.16.4</version>
+ <version>0.16.4.1</version>
<properties>
<war.bundle>false</war.bundle>
</properties>
@@ -105,7 +105,7 @@
</dependency>
<dependency>
<id>commons-collections</id>
- <version>2.1</version>
+ <version>3.1</version>
<properties>
<war.bundle>true</war.bundle>
</properties>
Propchange: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Apr 29 04:29:00 2005
@@ -1 +1,2 @@
target
+*.iml
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/project.xml
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/webdav/project.xml?rev=165294&r1=165293&r2=165294&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/project.xml (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/project.xml Fri Apr 29 04:29:00 2005
@@ -32,12 +32,12 @@
<dependency>
<groupId>jsr170</groupId>
<artifactId>jcr</artifactId>
- <version>0.16.4</version>
- <url>http://www.day.com/maven/jsr170/jars/jcr-0.16.4.jar</url>
+ <version>0.16.4.1</version>
+ <url>http://www.day.com/maven/jsr170/jars/jcr-0.16.4.1.jar</url>
</dependency>
<dependency>
<id>jackrabbit</id>
- <version>0.16.4-dev</version>
+ <version>0.16.4.1-dev</version>
</dependency>
<dependency>
<id>jdom</id>
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=165294&r1=165293&r2=165294&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 Fri Apr 29 04:29:00 2005
@@ -124,6 +124,10 @@
*/
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";
Modified: incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/VersionControlledItemCollection.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/VersionControlledItemCollection.java?rev=165294&r1=165293&r2=165294&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/VersionControlledItemCollection.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apache/jackrabbit/webdav/jcr/VersionControlledItemCollection.java Fri Apr 29 04:29:00 2005
@@ -468,7 +468,7 @@
// never occurs, because merging without bestEffort flag
// being set results in an exception on failure.
if (n.hasProperty(JcrConstants.JCR_MERGEFAILED)) {
- ReferenceValue[] mergeFailed = (ReferenceValue[]) n.getProperty(JcrConstants.JCR_MERGEFAILED).getValues();
+ Value[] mergeFailed = n.getProperty(JcrConstants.JCR_MERGEFAILED).getValues();
addHrefProperty(AUTO_MERGE_SET, mergeFailed, false);
}
// todo: checkout-fork, checkin-fork
@@ -487,7 +487,7 @@
* Add a {@link org.apache.jackrabbit.webdav.property.HrefProperty} with the specified property name and values.
*
* @param name
- * @param values Array of {@link ReferenceValue}s.
+ * @param values Array of {@link Value}s.
* @param isProtected
* @throws javax.jcr.ValueFormatException
* @throws IllegalStateException