Author: tdraier
Date: Fri Nov 16 12:09:31 2007
New Revision: 19180
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19180&repname=
=3Djahia
Log:
jackrabbit extensions for jahia
Added:
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/locator.ent =
(with props)
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/project.xml =
(with props)
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/=
jahia/
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/=
jahia/services/
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/=
jahia/services/content/
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/=
jahia/services/content/ExtraContentHandler.java
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/=
jahia/services/content/JahiaAccessManager.java
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/=
jahia/services/content/JahiaIOManager.java
Added: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/locator.ent
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/locator.ent&rev=3D19180&repname=
=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/locator.ent (=
added)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/locator.ent F=
ri Nov 16 12:09:31 2007
@@ -0,0 +1,6 @@
+<!ENTITY common-dependencies SYSTEM "file:../../common-packagedwebapps/pom=
-fragments/common-dependencies.ent"> =
+<!ENTITY common-topsite SYSTEM "file:../../common-packagedwebapps/pom-frag=
ments/common-topsite.ent"> =
+<!ENTITY common-toprepository SYSTEM "file:../../common-packagedwebapps/po=
m-fragments/common-toprepository.ent"> =
+<!ENTITY common-warsite SYSTEM "file:../../common-packagedwebapps/pom-frag=
ments/common-warsite.ent"> =
+<!ENTITY common-warrepository SYSTEM "file:../../common-packagedwebapps/po=
m-fragments/common-warrepository.ent"> =
+<!ENTITY jetspeed-version "2.1-dev">
Added: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/project.xml
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/project.xml&rev=3D19180&repname=
=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/project.xml (=
added)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/project.xml F=
ri Nov 16 12:09:31 2007
@@ -0,0 +1,88 @@
+<?xml version=3D"1.0" encoding=3D"UTF-8"?>
+<!DOCTYPE project [
+ <!ENTITY % locator-entities SYSTEM "file:locator.ent"> %locator-en=
tities;
+ ]>
+<project>
+ <extend>${basedir}/../project.xml</extend>
+ <pomVersion>3</pomVersion>
+ <artifactId>jackrabbit-ext</artifactId>
+ <groupId>jahia</groupId>
+ <package>org.jahia</package>
+
+ <url>http://projects.jahia.org/${pom.artifactId}/core</url>
+ <siteDirectory>html/${pom.artifactId}/core</siteDirectory>
+
+ <repository>
+ <connection>scm:cvs:pserver:[EMAIL PROTECTED]:/home/cvs/r=
epository_anonymous:${pom.artifactId}/jackrabbit-ext</connection>
+ <url>http://cvspub.jahia.org/cgi-bin/cvsweb.cgi/${pom.artifactId}/=
core/</url>
+ </repository>
+
+ <dependencies>
+ <dependency>
+ <groupId>jsr170</groupId>
+ <artifactId>jcr</artifactId>
+ <version>1.0</version>
+ <url>http://www.day.com/maven/jsr170/jars/jcr-1.0.jar</url>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-api</artifactId>
+ <version>1.4-562144</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-core</artifactId>
+ <version>1.4-562144</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-jcr-commons</artifactId>
+ <version>1.4-562144</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-text-extractors</artifactId>
+ <version>1.4-562144</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-webapp</artifactId>
+ <version>1.4-562144</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-jcr-rmi</artifactId>
+ <version>1.4-562144</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-webdav</artifactId>
+ <version>1.4-562144</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-jcr-server</artifactId>
+ <version>1.4-562144</version>
+ </dependency>
+
+ <dependency>
+ <groupId>jahia</groupId>
+ <artifactId>public-api</artifactId>
+ <version>5.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency> =
+ </dependencies>
+
+ <build>
+ <nagEmailAddress>[EMAIL PROTECTED]</nagEmailAddress>
+ <sourceDirectory>src/java</sourceDirectory>
+ <unitTestSourceDirectory>src/test/src/java</unitTestSourceDirector=
y>
+ </build>
+
+</project>
Added: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/o=
rg/jahia/services/content/ExtraContentHandler.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/jahia/services/con=
tent/ExtraContentHandler.java&rev=3D19180&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/=
jahia/services/content/ExtraContentHandler.java (added)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/=
jahia/services/content/ExtraContentHandler.java Fri Nov 16 12:09:31 2007
@@ -0,0 +1,54 @@
+package org.jahia.services.content;
+
+import org.apache.jackrabbit.JcrConstants;
+import org.apache.jackrabbit.server.io.*;
+import org.apache.jackrabbit.webdav.DavResource;
+
+import javax.jcr.Item;
+import javax.jcr.Node;
+import javax.jcr.RepositoryException;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: toto
+ * Date: 12 juil. 2007
+ * Time: 20:38:16
+ * To change this template use File | Settings | File Templates.
+ */
+public class ExtraContentHandler extends DefaultHandler implements IOHandl=
er {
+
+ public ExtraContentHandler(IOManager ioManager) {
+ super(ioManager);
+ }
+
+ public boolean canImport(ImportContext context, boolean isCollection) {
+ return false;
+ }
+
+ public boolean canImport(ImportContext context, DavResource resource) {
+ return false;
+ }
+
+ public boolean canExport(ExportContext context, boolean isCollection) {
+ if (context =3D=3D null || context.isCompleted()) {
+ return false;
+ }
+ Item exportRoot =3D context.getExportRoot();
+ boolean success =3D exportRoot !=3D null && exportRoot.isNode();
+ if (success && !isCollection) {
+ try {
+ Node th =3D ((Node)exportRoot);
+ success =3D th.getPrimaryNodeType().getName().equals(JcrCo=
nstants.NT_RESOURCE) && th.hasProperty(JcrConstants.JCR_DATA);
+ } catch (RepositoryException e) {
+ // should never occur.
+ success =3D false;
+ }
+ }
+ return success;
+ }
+
+ protected Node getContentNode(ExportContext context, boolean isCollect=
ion) throws RepositoryException {
+ return (Node)context.getExportRoot();
+ }
+
+}
Added: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/o=
rg/jahia/services/content/JahiaAccessManager.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/jahia/services/con=
tent/JahiaAccessManager.java&rev=3D19180&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/=
jahia/services/content/JahiaAccessManager.java (added)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/=
jahia/services/content/JahiaAccessManager.java Fri Nov 16 12:09:31 2007
@@ -0,0 +1,304 @@
+package org.jahia.services.content;
+
+import org.apache.jackrabbit.core.HierarchyManager;
+import org.apache.jackrabbit.core.ItemId;
+import org.apache.jackrabbit.core.PropertyId;
+import org.apache.jackrabbit.core.security.AMContext;
+import org.apache.jackrabbit.core.security.AccessManager;
+import org.apache.jackrabbit.name.*;
+import org.jahia.jaas.JahiaLoginModule;
+import org.jahia.jaas.JahiaPrincipal;
+import org.jahia.api.user.JahiaUserService;
+import org.jahia.api.Constants;
+
+import javax.jcr.*;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.security.auth.Subject;
+import java.util.*;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: toto
+ * Date: 28 f=C3=83=C2=A9vr. 2006
+ * Time: 17:58:41
+ * To change this template use File | Settings | File Templates.
+ */
+public class JahiaAccessManager implements AccessManager {
+ /**
+ * Subject whose access rights this AccessManager should reflect
+ */
+ protected Subject subject;
+
+ /**
+ * hierarchy manager used for ACL-based access control model
+ */
+ protected HierarchyManager hierMgr;
+
+ private boolean initialized;
+ protected String workspaceName;
+
+ protected JahiaPrincipal p;
+
+ /**
+ * Empty constructor
+ */
+ public JahiaAccessManager() {
+ initialized =3D false;
+ p =3D null;
+ }
+
+ //--------------------------------------------------------< AccessMana=
ger >
+ /**
+ * [EMAIL PROTECTED]
+ */
+ public void init(AMContext context)
+ throws AccessDeniedException, Exception {
+ if (initialized) {
+ throw new IllegalStateException("already initialized");
+ }
+
+ subject =3D context.getSubject();
+ hierMgr =3D context.getHierarchyManager();
+ workspaceName =3D context.getWorkspaceName();
+
+ Set principals =3D subject.getPrincipals(JahiaPrincipal.class);
+ if (!principals.isEmpty()) {
+ p =3D (JahiaPrincipal) principals.iterator().next();
+ }
+
+ // @todo check permission to access given workspace based on princ=
ipals
+ initialized =3D true;
+ }
+
+ public void close() throws Exception {
+ }
+
+ public void checkPermission(ItemId id, int permissions) throws AccessD=
eniedException, ItemNotFoundException, RepositoryException {
+ if (!isGranted(id,permissions)) {
+ throw new AccessDeniedException();
+ }
+ }
+
+ public boolean isGranted(ItemId id, int permissions) throws ItemNotFou=
ndException, RepositoryException {
+ if (p.isSystem()) {
+ return true;
+ }
+
+ try {
+ Session s =3D getRepository().login(org.jahia.jaas.JahiaLoginM=
odule.getSystemCredentials());
+ NamespaceResolver nr =3D new SessionNamespaceResolver(s);
+ Path path =3D getPath(id);
+ String jcrPath =3D PathFormat.format(path,nr);
+
+ // Always deny write access on system folders
+ if (s.itemExists(jcrPath)) {
+ Item i =3D s.getItem(jcrPath);
+ if (i.isNode() && permissions !=3D AccessManager.READ) {
+ String ntName =3D ((Node) i).getPrimaryNodeType().getN=
ame();
+ if (ntName.equals(Constants.JAHIANT_SYSTEMFOLDER) || n=
tName.equals(org.jahia.api.Constants.JAHIANT_VIRTUALSITE)
+ || ntName.equals("rep:root")) {
+ return false;
+ }
+ }
+ }
+
+ JahiaUserService service =3D getJahiaUserService();
+
+ // Administrators are always granted
+ if (service.isServerAdmin(p.getName())) {
+ return true;
+ }
+
+ Path.PathElement[] elements =3D path.getElements();
+ if (elements.length > 1) {
+ QName name =3D elements[1].getName();
+ if (name.getNamespaceURI().equals("")) {
+ // Site administrators are always granted
+ if (service.isAdmin(p.getName(),name.getLocalName())) {
+ return true;
+ }
+ CheckCommand v =3D new CheckCommand(permissions, name.=
getLocalName(), service);
+ recurseonACPs(jcrPath, s, v);
+ return v.isResult();
+ }
+ } else {
+ return true;
+ }
+
+ return false;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return true;
+ }
+
+ public Map getPermissions(ItemId id) {
+ try {
+ Session s =3D getRepository().login(JahiaLoginModule.getSystem=
Credentials());
+ NamespaceResolver nr =3D new SessionNamespaceResolver(s);
+
+ Path path =3D getPath(id);
+ String jcrPath =3D PathFormat.format(path,nr);
+
+ ViewCommand vv =3D new ViewCommand();
+ recurseonACPs(jcrPath, s, vv);
+ return vv.getResults();
+ } catch (Exception e) {
+ e.printStackTrace(); //To change body of catch statement use =
File | Settings | File Templates.
+ }
+ return new HashMap();
+ }
+
+ private Path getPath(ItemId id) throws RepositoryException {
+ Path path =3D null;
+ try {
+ // Get the path of the node
+ path =3D hierMgr.getPath(id);
+ } catch (ItemNotFoundException e) {
+ // This might be a property, get the path of the parent node
+ if (!id.denotesNode()) {
+ id =3D ((PropertyId)id).getParentId();
+ try {
+ path =3D hierMgr.getPath(id);
+ } catch (ItemNotFoundException e1) {
+ }
+ }
+ }
+ return path;
+ }
+
+ private void recurseonACPs(String jcrPath, Session s, Command v) throw=
s RepositoryException {
+ while (jcrPath.length() > 0) {
+ if (s.itemExists(jcrPath)) {
+ Item i =3D s.getItem(jcrPath);
+ if (i.isNode()) {
+ Node node =3D (Node) i;
+ if (node.isNodeType("mix:accessControlled")) {
+ Node acp =3D node.getProperty("jcr:accessControlPo=
licy").getNode();
+ NodeIterator aces =3D acp.getNode("jcr:acl").getNo=
des("jcr:ace");
+ while (aces.hasNext()) {
+ Node ace =3D aces.nextNode();
+ String principal =3D ace.getProperty("jcr:prin=
cipal").getString();
+ String type =3D ace.getProperty("jcr:aceType")=
.getString();
+ Value[] privileges =3D ace.getProperty("jcr:pr=
ivileges").getValues();
+
+ if (v.execute(jcrPath, principal, type, privil=
eges)) return;
+ }
+ }
+ }
+ if ("/".equals(jcrPath)) {
+ return;
+ } else if (jcrPath.lastIndexOf('/') > 0) {
+ jcrPath =3D jcrPath.substring(0,jcrPath.lastIndexOf('/=
'));
+ } else {
+ jcrPath =3D "/";
+ }
+ }
+ }
+ }
+
+ public boolean match(int permission, String privilege) {
+ switch (permission) {
+ case AccessManager.READ:
+ return "jcr:read".equals(privilege) || "jcr:getAccessContr=
olPolicy".equals(privilege) ||
+ "jcr:all".equals(privilege) ;
+ case AccessManager.WRITE:
+ return "jcr:addChildNodes".equals(privilege) || "jcr:setPr=
operties".equals(privilege) ||
+ "jcr:setAccessControlPolicy".equals(privilege) || =
"jcr:write".equals(privilege) || "jcr:all".equals(privilege) ;
+ case AccessManager.REMOVE:
+ return "jcr:removeChildNodes".equals(privilege) || "jcr:wr=
ite".equals(privilege) || "jcr:all".equals(privilege) ;
+ }
+ return false;
+ }
+
+ interface Command {
+ public boolean execute(String jcrPath, String principal, String ty=
pe, Value[] privileges) throws RepositoryException;
+ }
+
+ class CheckCommand implements Command {
+ private int permissions;
+ private String site;
+ private JahiaUserService service;
+ private boolean result;
+
+ public CheckCommand(int permissions, String site, JahiaUserService=
service) {
+ this.permissions =3D permissions;
+ this.site =3D site;
+ this.service =3D service;
+ }
+
+ public boolean isResult() {
+ return result;
+ }
+
+ public boolean execute(String jcrPath, String principal, String ty=
pe, Value[] privileges) throws RepositoryException {
+ for (int j =3D 0; j < privileges.length; j++) {
+ Value privilege =3D privileges[j];
+ if (match(permissions, privilege.getString())) {
+ String principalName =3D principal.substring(2);
+ if (principal.charAt(0) =3D=3D 'u') {
+ if (principalName.equals(p.getName())) {
+ result =3D type.equals("GRANT");
+ return true;
+ }
+ } else {
+ if (principalName.equals("guest") || service.isUse=
rMemberOf(p.getName(), principalName, site)) {
+ result =3D type.equals("GRANT");
+ return true;
+ }
+ }
+
+ }
+ }
+ return false;
+ }
+
+ }
+
+ class ViewCommand implements Command {
+ private Map results =3D new HashMap();
+
+ public Map getResults() {
+ return results;
+ }
+
+ public boolean execute(String jcrPath, String principal, String ty=
pe, Value[] privileges) throws RepositoryException {
+ List p =3D (List) results.get(principal);
+
+ if (p =3D=3D null) {
+ p =3D new ArrayList();
+ results.put(principal, p);
+ for (int i =3D 0; i < privileges.length; i++) {
+ Value privilege =3D privileges[i];
+ p.add(new String[]{jcrPath, type, privilege.getString(=
)});
+ }
+ }
+
+ return false;
+ }
+ }
+
+
+ public boolean canAccess(String workspaceName) throws NoSuchWorkspaceE=
xception, RepositoryException {
+ return true;
+ }
+
+
+ public Repository getRepository() throws NamingException {
+ String repName =3D "jcr/repository";
+ Hashtable env =3D new Hashtable();
+ InitialContext initctx =3D new InitialContext(env);
+ Context ctx =3D (Context) initctx.lookup("java:comp/env");
+ return (Repository) ctx.lookup(repName);
+ }
+
+ public JahiaUserService getJahiaUserService() throws NamingException {
+ String serviceName =3D "jahia/users";
+ Hashtable env =3D new Hashtable();
+ InitialContext initctx =3D new InitialContext(env);
+ Context ctx =3D (Context) initctx.lookup("java:comp/env");
+ return (JahiaUserService) ctx.lookup(serviceName);
+ }
+}
Added: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/o=
rg/jahia/services/content/JahiaIOManager.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/jahia/services/con=
tent/JahiaIOManager.java&rev=3D19180&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/=
jahia/services/content/JahiaIOManager.java (added)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/jackrabbit-ext/src/java/org/=
jahia/services/content/JahiaIOManager.java Fri Nov 16 12:09:31 2007
@@ -0,0 +1,66 @@
+/*
+ * 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.jahia.services.content;
+
+import org.apache.log4j.Logger;
+import org.apache.jackrabbit.server.io.*;
+import org.apache.jackrabbit.JcrConstants;
+import org.jahia.api.Constants;
+
+/**
+ * <code>JahiaIOManager</code>...
+ */
+public class JahiaIOManager extends IOManagerImpl {
+
+ private static Logger log =3D Logger.getLogger(JahiaIOManager.class);
+
+ /**
+ * Creates a new <code>DefaultIOManager</code> and populates the inter=
nal
+ * list of <code>IOHandler</code>s by the defaults.
+ *
+ * @see #init()
+ */
+ public JahiaIOManager() {
+ init();
+ }
+
+ /**
+ * Creates a new <code>DefaultIOManager</code>. The if the flag is set=
to
+ * false no <code>IOHandler</code>s are added to the internal list.
+ *
+ * @deprecated Use [EMAIL PROTECTED] IOManagerImpl} instead.
+ */
+ protected JahiaIOManager(boolean initDefaults) {
+ if (initDefaults) {
+ init();
+ }
+ }
+
+ /**
+ * Add the predefined <code>IOHandler</code>s to this manager. This in=
cludes
+ * <ul>
+ * <li>[EMAIL PROTECTED] ZipHandler}</li>
+ * <li>[EMAIL PROTECTED] XmlHandler}</li>
+ * <li>[EMAIL PROTECTED] DirListingExportHandler}</li>
+ * <li>[EMAIL PROTECTED] DefaultHandler}.</li>
+ * </ul>
+ */
+ protected void init() {
+ addIOHandler(new DirListingExportHandler(this));
+ addIOHandler(new ExtraContentHandler(this));
+ addIOHandler(new DefaultHandler(this, Constants.JAHIANT_FOLDER, Co=
nstants.JAHIANT_FILE, JcrConstants.NT_RESOURCE));
+ }
+}
\ No newline at end of file
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list