Return-Path: Delivered-To: apmail-incubator-jackrabbit-commits-archive@www.apache.org Received: (qmail 32158 invoked from network); 29 Apr 2005 11:29:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 29 Apr 2005 11:29:05 -0000 Received: (qmail 88429 invoked by uid 500); 29 Apr 2005 11:30:19 -0000 Mailing-List: contact jackrabbit-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jackrabbit-dev@incubator.apache.org Delivered-To: mailing list jackrabbit-commits@incubator.apache.org Received: (qmail 88414 invoked by uid 500); 29 Apr 2005 11:30:19 -0000 Delivered-To: apmail-incubator-jackrabbit-cvs@incubator.apache.org Received: (qmail 88410 invoked by uid 99); 29 Apr 2005 11:30:19 -0000 X-ASF-Spam-Status: No, hits=0.2 required=10.0 tests=NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Fri, 29 Apr 2005 04:30:18 -0700 Received: (qmail 32152 invoked by uid 65534); 29 Apr 2005 11:29:02 -0000 Message-ID: <20050429112902.32150.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: 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/ Date: Fri, 29 Apr 2005 11:29:00 -0000 To: jackrabbit-cvs@incubator.apache.org From: tripod@apache.org X-Mailer: svnmailer-1.0.0-dev X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: tripod Date: Fri Apr 29 04:29:00 2005 New Revision: 165294 URL: http://svn.apache.org/viewcvs?rev=3D165294&view=3Drev 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/apach= e/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/apach= e/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/apach= e/jackrabbit/JcrConstants.java incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apach= e/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-s= erver/client/project.xml?rev=3D165294&r1=3D165293&r2=3D165294&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/contrib/jcr-server/client/project.xml (origi= nal) +++ incubator/jackrabbit/trunk/contrib/jcr-server/client/project.xml Fri Ap= r 29 04:29:00 2005 @@ -37,16 +37,16 @@ jsr170 jcr - 0.16.4 - http://www.day.com/maven/jsr170/jars/jcr-0.16.4.jar + 0.16.4.1 + http://www.day.com/maven/jsr170/jars/jcr-0.16.4.1.jar jackrabbit - 0.16.4-dev + 0.16.4.1-dev jcr-rmi - 0.16.4 + 0.16.4.1 jdom @@ -66,7 +66,7 @@ commons-collections - 2.1 + 3.1 =20 Modified: incubator/jackrabbit/trunk/contrib/jcr-server/project.xml URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-s= erver/project.xml?rev=3D165294&r1=3D165293&r2=3D165294&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- 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 @@ jcr-server =20 Jackrabbit-Server - 0.16.4 + 0.16.4.1 2005 org.apache.jackrabbit.server.* Modified: incubator/jackrabbit/trunk/contrib/jcr-server/server/project.xml URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-s= erver/server/project.xml?rev=3D165294&r1=3D165293&r2=3D165294&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/contrib/jcr-server/server/project.xml (origi= nal) +++ incubator/jackrabbit/trunk/contrib/jcr-server/server/project.xml Fri Ap= r 29 04:29:00 2005 @@ -45,12 +45,12 @@ jsr170 jcr - 0.16.4 - http://www.day.com/maven/jsr170/jars/jcr-0.16.4.jar + 0.16.4.1 + http://www.day.com/maven/jsr170/jars/jcr-0.16.4.1.jar jackrabbit - 0.16.4-dev + 0.16.4.1-dev jdom @@ -66,7 +66,7 @@ jcr-rmi - 0.16.4 + 0.16.4.1 commons-chain 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-s= erver/server/src/java/org/apache/jackrabbit/server/RepositoryStartupServlet= .java?rev=3D165294&r1=3D165293&r2=3D165294&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apach= e/jackrabbit/server/RepositoryStartupServlet.java (original) +++ incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apach= e/jackrabbit/server/RepositoryStartupServlet.java Fri Apr 29 04:29:00 2005 @@ -63,7 +63,7 @@ public final static String INIT_PARAM_LOG4J_CONFIG =3D "log4j-config"; =20 /** the registered repository */ - private static RepositoryImpl repository; + private static Repository repository; =20 /** the name of the repository as configured */ private static String repositoryName; @@ -173,15 +173,27 @@ log.info(" repository-name =3D " + repositoryName); =20 try { - InputSource is =3D new InputSource(in); - RepositoryConfig config =3D RepositoryConfig.create(is, repositoryHom= e=2EgetAbsolutePath()); - repository =3D RepositoryImpl.create(config); + repository =3D createRepository(new InputSource(in), repositoryHome); } catch (RepositoryException e) { throw new ServletException("Error while creating repository", e); } } =20 /** + * 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 =3D RepositoryConfig.create(is, homedir.ge= tAbsolutePath()); + return RepositoryImpl.create(config); + } + + /** * Registers the repository in the JNDI context * @throws ServletException */ @@ -237,7 +249,7 @@ } =20 // try to create remote repository - Remote remote =3D null; + Remote remote; try { Class clazz =3D Class.forName("org.apache.jackrabbit.server.RMIRemoteFac= toryDelegater"); RemoteFactoryDelegater rmf =3D (RemoteFactoryDelegater) clazz.newInstanc= e(); Added: incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/ap= ache/jackrabbit/server/io/PrimaryItemExportCommand.java URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-s= erver/server/src/java/org/apache/jackrabbit/server/io/PrimaryItemExportComm= and.java?rev=3D165294&view=3Dauto =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apach= e/jackrabbit/server/io/PrimaryItemExportCommand.java (added) +++ incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/org/apach= e/jackrabbit/server/io/PrimaryItemExportCommand.java Fri Apr 29 04:29:00 20= 05 @@ -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. + *

+ */ +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 =3D context.getNode(); + long creationTime=3D0; + + // find primary item + while (item.isNode()) { + Node node =3D (Node)item; + // creation time not set with the files/folders + if (node.hasProperty(JCR_CREATED)) { + creationTime =3D node.getProperty(JCR_CREATED).getValue().= getLong(); + } + // avoid 'ItemNotFound' if no primary item is present + try { + item =3D ((Node) item).getPrimaryItem(); + } catch (ItemNotFoundException e) { + // no primary item existing, stop searching + break; + } + } + + // access property values + if (!item.isNode()) { + Property prop =3D (Property) item; + Node parent =3D prop.getParent(); + + context.setCreationTime(creationTime); + // check for last modified sibling + try { + if (parent.hasProperty(JCR_LASTMODIFIED)) { + context.setModificationTime(parent.getProperty(JCR_LAS= TMODIFIED).getLong()); + } + } catch (RepositoryException e) { + // ignore + } + + // check for contenttype and encoding sibling of the primary i= tem. + String contentType=3D"application/octet-stream"; + if (!context.getNode().isSame(item)) { + try { + if (parent.hasProperty(JCR_MIMETYPE)) { + contentType =3D parent.getProperty(JCR_MIMETYPE).g= etString(); + + if (parent.hasProperty(JCR_ENCODING)) { + String encoding =3D parent.getProperty(JCR_ENC= ODING).getString(); + if (!encoding.equals("")) { + contentType+=3D"; charset=3D\"" + encoding= + "\""; + } + } + } + } catch (RepositoryException e) { + // ignore + } + } else { + // property was requested > set content type according to = type + contentType =3D (prop.getType() =3D=3D 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/o= rg/apache/jackrabbit/server/io/PrimaryItemExportCommand.java ---------------------------------------------------------------------------= --- svn =3D=20 Propchange: incubator/jackrabbit/trunk/contrib/jcr-server/server/src/java/o= rg/apache/jackrabbit/server/io/PrimaryItemExportCommand.java ---------------------------------------------------------------------------= --- svn:eol-style =3D 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-s= erver/webapp/project.xml?rev=3D165294&r1=3D165293&r2=3D165294&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/contrib/jcr-server/webapp/project.xml (origi= nal) +++ incubator/jackrabbit/trunk/contrib/jcr-server/webapp/project.xml Fri Ap= r 29 04:29:00 2005 @@ -57,15 +57,15 @@ jsr170 jcr - 0.16.4 - http://www.day.com/maven/jsr170/jars/jcr-0.16.4.jar + 0.16.4.1 + http://www.day.com/maven/jsr170/jars/jcr-0.16.4.1.jar true jackrabbit - 0.16.4-dev + 0.16.4.1-dev true @@ -90,7 +90,7 @@ jcr-rmi - 0.16.4 + 0.16.4.1 false @@ -105,7 +105,7 @@ commons-collections - 2.1 + 3.1 true 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-s= erver/webdav/project.xml?rev=3D165294&r1=3D165293&r2=3D165294&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/project.xml (origi= nal) +++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/project.xml Fri Ap= r 29 04:29:00 2005 @@ -32,12 +32,12 @@ jsr170 jcr - 0.16.4 - http://www.day.com/maven/jsr170/jars/jcr-0.16.4.jar + 0.16.4.1 + http://www.day.com/maven/jsr170/jars/jcr-0.16.4.1.jar jackrabbit - 0.16.4-dev + 0.16.4.1-dev jdom 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-s= erver/webdav/src/java/org/apache/jackrabbit/JcrConstants.java?rev=3D165294&= r1=3D165293&r2=3D165294&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apach= e/jackrabbit/JcrConstants.java (original) +++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apach= e/jackrabbit/JcrConstants.java Fri Apr 29 04:29:00 2005 @@ -124,6 +124,10 @@ */ public static final String JCR_ONPARENTVERSION =3D "jcr:onParentVersio= n"; /** + * jcr:path + */ + public static final String JCR_PATH =3D "jcr:path"; + /** * jcr:predecessors */ public static final String JCR_PREDECESSORS =3D "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-s= erver/webdav/src/java/org/apache/jackrabbit/webdav/jcr/VersionControlledIte= mCollection.java?rev=3D165294&r1=3D165293&r2=3D165294&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apach= e/jackrabbit/webdav/jcr/VersionControlledItemCollection.java (original) +++ incubator/jackrabbit/trunk/contrib/jcr-server/webdav/src/java/org/apach= e/jackrabbit/webdav/jcr/VersionControlledItemCollection.java Fri Apr 29 04:= 29:00 2005 @@ -468,7 +468,7 @@ // never occurs, because merging without bestEffor= t flag // being set results in an exception on failure. if (n.hasProperty(JcrConstants.JCR_MERGEFAILED)) { - ReferenceValue[] mergeFailed =3D (ReferenceVal= ue[]) n.getProperty(JcrConstants.JCR_MERGEFAILED).getValues(); + Value[] mergeFailed =3D n.getProperty(JcrConst= ants.JCR_MERGEFAILED).getValues(); addHrefProperty(AUTO_MERGE_SET, mergeFailed, f= alse); } // todo: checkout-fork, checkin-fork @@ -487,7 +487,7 @@ * Add a {@link org.apache.jackrabbit.webdav.property.HrefProperty} wi= th 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