Sascha,

We have branch jackrabbit20100709 in svn. Can't we use that one?

Regards,

Pierre

Op 26 april 2012 15:58 schreef Sascha Rodekamp <
sascha.rodekamp.lynx...@googlemail.com> het volgende:

> Hi Pierre,
> the last patch had no functional changes. It just prepares the
> repository loading for the following changes.
>
> That the nt:unstructured node is not found seems do be another issue.
> I will check that.
>
> For further implementations we definitely should create a new branch.
> But before creating it i wanted to clean up some code parts. By the
> end of this week (tomorrow) i will create one, is this ok for you?
>
> Thanks and regards,
> Sascha
>
>
> 2012/4/26 Pierre Smits <pierre.sm...@gmail.com>:
> > Sascha,
> >
> > I did a small test against this revision.
> >
> > Creating content in jcr works ok, but is still visible to other tenants.
> >
> > Upload of a file triggered following:
> >
> > The Following Errors Occurred:
> >
> > Error calling event: org.ofbiz.webapp.event.EventHandlerException:
> Problems
> > processing event:
> > org.apache.jackrabbit.ocm.exception.IncorrectPersistentClassException:
> Node
> > type: nt:unstructured has no descriptor. (Node type: nt:unstructured has
> no
> > descriptor.)
> >
> > Although the previous situation wasn't perfect, maybe we should implement
> > and test first in the jcr branch before bringing it to trunk.
> >
> > Regards,
> >
> > Pierre
> >
> > Op 26 april 2012 13:18 schreef <sascharodek...@apache.org> het volgende:
> >
> >> Author: sascharodekamp
> >> Date: Thu Apr 26 11:18:51 2012
> >> New Revision: 1330779
> >>
> >> URL: http://svn.apache.org/viewvc?rev=1330779&view=rev
> >> Log:
> >> Clean Up the repository loding code. No functional changes.
> >>
> >> Added:
> >>    ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRJndi.java
> (with
> >> props)
> >> Modified:
> >>    ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRContainer.java
> >>    ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRFactory.java
> >>
>  ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRFactoryUtil.java
> >>
> >>
>  ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/RepositoryFactory.java
> >>
>  ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/RepositoryLoader.java
> >>
> >>
>  
> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/jackrabbit/JCRFactoryImpl.java
> >>
> >> Modified:
> >> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRContainer.java
> >> URL:
> >>
> http://svn.apache.org/viewvc/ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRContainer.java?rev=1330779&r1=1330778&r2=1330779&view=diff
> >>
> >>
> ==============================================================================
> >> --- ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRContainer.java
> >> (original)
> >> +++ ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRContainer.java
> >> Thu Apr 26 11:18:51 2012
> >> @@ -18,20 +18,13 @@
> >>
> >>
>  
> *******************************************************************************/
> >>  package org.ofbiz.jcr.loader;
> >>
> >> -import javax.jcr.Repository;
> >>  import javax.jcr.RepositoryException;
> >> -import javax.naming.Context;
> >> -import javax.naming.NamingException;
> >> -import javax.naming.Reference;
> >> -import javax.naming.StringRefAddr;
> >>
> >>  import org.ofbiz.base.config.GenericConfigException;
> >>  import org.ofbiz.base.config.ResourceLoader;
> >>  import org.ofbiz.base.container.Container;
> >>  import org.ofbiz.base.container.ContainerConfig;
> >>  import org.ofbiz.base.container.ContainerException;
> >> -import org.ofbiz.base.util.Debug;
> >> -import org.ofbiz.base.util.JNDIContextFactory;
> >>  import org.ofbiz.base.util.UtilXml;
> >>  import org.w3c.dom.Element;
> >>
> >> @@ -44,18 +37,9 @@ public class JCRContainer implements Con
> >>     public static final String module = JCRContainer.class.getName();
> >>
> >>     public static final String DEFAULT_JCR_CONFIG_PATH =
> >> "framework/jcr/config/jcr-config.xml";
> >> -    public static final String REP_HOME_DIR = "0";
> >> -    public static final String CONFIG_FILE_PATH = "1";
> >> -
> >> -    private static String jndiName = null;
> >> -    private static String factoryClassName = null;
> >> -    private static String jcrContextName = null;
> >>
> >>     private static String configFilePath = null;
> >>     private boolean removeRepositoryOnShutdown = false;
> >> -    private String homeDir = null;
> >> -
> >> -    Context jndiContext = null;
> >>
> >>     /*
> >>      * (non-Javadoc)
> >> @@ -65,52 +49,12 @@ public class JCRContainer implements Con
> >>      */
> >>     @Override
> >>     public void init(String[] args, String configFile) throws
> >> ContainerException {
> >> -        // get the container configuration
> >> -        ContainerConfig.Container cc =
> >> ContainerConfig.getContainer("jcr-container", configFile);
> >> -        if (cc == null) {
> >> -            throw new ContainerException("No jcr-container
> configuration
> >> found in container config!");
> >> -        }
> >> -
> >> -        // embedded properties
> >> -        removeRepositoryOnShutdown =
> ContainerConfig.getPropertyValue(cc,
> >> "removeRepositoryOnShutdown", false);
> >> -        configFilePath = ContainerConfig.getPropertyValue(cc,
> >> "configFilePath", DEFAULT_JCR_CONFIG_PATH);
> >> -
> >> -        Element configRootElement = null;
> >> -        try {
> >> -            configRootElement =
> >> ResourceLoader.getXmlRootElement(configFilePath);
> >> -        } catch (GenericConfigException e) {
> >> -            throw new ContainerException("Could not load the jcr
> >> configuration in file " + configFilePath, e);
> >> -        }
> >> -
> >> -        if (configRootElement == null) {
> >> -            throw new ContainerException("No jcr configuration found in
> >> file " + configFilePath);
> >> -        }
> >> -
> >> -        homeDir = UtilXml.childElementAttribute(configRootElement,
> >> "home-dir", "path", "runtime/data/jcr/");
> >> -        Element childElement =
> >> UtilXml.firstChildElement(configRootElement, "jcr-context");
> >> -        jcrContextName = UtilXml.elementAttribute(childElement, "name",
> >> "default");
> >> +        readContainerConfig(configFile);
> >>
> >> -        // find the default JCR implementation
> >> -        for (Element curElement :
> >> UtilXml.childElementList(configRootElement, "jcr")) {
> >> -            if
> (jcrContextName.equals(curElement.getAttribute("name"))) {
> >> -                factoryClassName = curElement.getAttribute("class");
> >> -                jndiName = curElement.getAttribute("jndi-name");
> >> -                break;
> >> -            }
> >> -        }
> >> -
> >> -        // get the default JCR factory
> >> -        JCRFactory jcrFactory = JCRFactoryUtil.getJCRFactory();
> >> -
> >> -        if (jcrFactory == null) {
> >> -            throw new ContainerException("Cannot load JCRFactory
> >> implementation class");
> >> -        }
> >> +        Element configRootElement = getConfigFileRootElement();
> >>
> >> -        try {
> >> -            jcrFactory.initialize(configRootElement);
> >> -        } catch (RepositoryException e) {
> >> -            throw new ContainerException("Cannot initialize JCRFactory
> >> context", e);
> >> -        }
> >> +        Element factoryImplDefinition =
> >> getJcrFactoryImplementationClassName(configRootElement);
> >> +        initializeJcrFactory(configRootElement, factoryImplDefinition);
> >>     }
> >>
> >>     /*
> >> @@ -120,10 +64,7 @@ public class JCRContainer implements Con
> >>      */
> >>     @Override
> >>     public boolean start() throws ContainerException {
> >> -        JCRFactory jcrFactory = JCRFactoryUtil.getJCRFactory();
> >> -        if (jcrFactory == null) {
> >> -            throw new ContainerException("Cannot load JCRFactory
> >> implementation class");
> >> -        }
> >> +        JCRFactory jcrFactory = getJCRFactory();
> >>
> >>         try {
> >>             jcrFactory.start();
> >> @@ -131,17 +72,6 @@ public class JCRContainer implements Con
> >>             throw new ContainerException("Cannot start JCRFactory
> >> context", e);
> >>         }
> >>
> >> -        // get JNDI context
> >> -        try {
> >> -            jndiContext =
> >> JNDIContextFactory.getInitialContext("localjndi");
> >> -        } catch (GenericConfigException e) {
> >> -            Debug.logError(e, module);
> >> -        }
> >> -
> >> -        bindRepository();
> >> -        // Test JNDI bind
> >> -        RepositoryLoader.getRepository();
> >> -
> >>         return true;
> >>     }
> >>
> >> @@ -152,10 +82,7 @@ public class JCRContainer implements Con
> >>      */
> >>     @Override
> >>     public void stop() throws ContainerException {
> >> -        JCRFactory jcrFactory = JCRFactoryUtil.getJCRFactory();
> >> -        if (jcrFactory == null) {
> >> -            throw new ContainerException("Cannot load JCRFactory
> >> implementation class");
> >> -        }
> >> +        JCRFactory jcrFactory = getJCRFactory();
> >>
> >>         try {
> >>             jcrFactory.stop(removeRepositoryOnShutdown);
> >> @@ -164,40 +91,67 @@ public class JCRContainer implements Con
> >>         }
> >>     }
> >>
> >> -    /**
> >> -     * returns the class name of the JCRFactory implementation
> >> -     *
> >> -     * @return
> >> -     */
> >> -    public static String getFactoryClassName() {
> >> -        return factoryClassName;
> >> -    }
> >>
> >>     public static String getConfigFilePath() {
> >>         return configFilePath;
> >>     }
> >>
> >> -    protected void bindRepository() {
> >> -        if (this.jndiContext != null) {
> >> -            try {
> >> -                Reference ref = new
> Reference(Repository.class.getName(),
> >> org.ofbiz.jcr.loader.RepositoryFactory.class.getName(), null);
> >> -                ref.add(new StringRefAddr(REP_HOME_DIR, homeDir));
> >> -                ref.add(new StringRefAddr(CONFIG_FILE_PATH,
> >> configFilePath));
> >> -                this.jndiContext.bind(jndiName, ref);
> >> -                Debug.logInfo("Repository bound to JNDI as " +
> jndiName,
> >> module);
> >> -            } catch (NamingException ne) {
> >> -                Debug.logError(ne, module);
> >> -            }
> >> +    private void readContainerConfig(String configFile) throws
> >> ContainerException {
> >> +        // get the container configuration
> >> +        ContainerConfig.Container cc =
> >> ContainerConfig.getContainer("jcr-container", configFile);
> >> +        if (cc == null) {
> >> +            throw new ContainerException("No jcr-container
> configuration
> >> found in container config!");
> >>         }
> >> +
> >> +        // embedded properties
> >> +        removeRepositoryOnShutdown =
> ContainerConfig.getPropertyValue(cc,
> >> "removeRepositoryOnShutdown", false);
> >> +        configFilePath = ContainerConfig.getPropertyValue(cc,
> >> "configFilePath", DEFAULT_JCR_CONFIG_PATH);
> >>     }
> >>
> >> -    protected void unbindRepository(String name) {
> >> -        if (this.jndiContext != null) {
> >> -            try {
> >> -                this.jndiContext.unbind(jndiName);
> >> -            } catch (NamingException e) {
> >> -                Debug.logError(e, module);
> >> +    private Element getConfigFileRootElement() throws
> ContainerException {
> >> +        Element configRootElement = null;
> >> +        try {
> >> +            configRootElement =
> >> ResourceLoader.getXmlRootElement(configFilePath);
> >> +        } catch (GenericConfigException e) {
> >> +            throw new ContainerException("Could not load the jcr
> >> configuration in file " + configFilePath, e);
> >> +        }
> >> +
> >> +        if (configRootElement == null) {
> >> +            throw new ContainerException("No jcr configuration found in
> >> file " + configFilePath);
> >> +        }
> >> +        return configRootElement;
> >> +    }
> >> +
> >> +    private Element getJcrFactoryImplementationClassName(Element
> >> configRootElement) {
> >> +        Element childElement =
> >> UtilXml.firstChildElement(configRootElement, "jcr-context");
> >> +        String jcrContextName = UtilXml.elementAttribute(childElement,
> >> "name", "default");
> >> +
> >> +        // find the default JCR implementation
> >> +        for (Element curElement :
> >> UtilXml.childElementList(configRootElement, "jcr")) {
> >> +            if
> (jcrContextName.equals(curElement.getAttribute("name"))) {
> >> +                return curElement;
> >>             }
> >>         }
> >> +
> >> +        return null;
> >> +    }
> >> +
> >> +    private void initializeJcrFactory(Element configRootElement,
> Element
> >> factoryImplDefinition) throws ContainerException {
> >> +
> >>
>  
> JCRFactoryUtil.setJcrFactoryClassName(factoryImplDefinition.getAttribute("class"));
> >> +        JCRFactory jcrFactory = getJCRFactory();
> >> +
> >> +        try {
> >> +            jcrFactory.initialize(configRootElement,
> >> factoryImplDefinition);
> >> +        } catch (RepositoryException e) {
> >> +            throw new ContainerException("Cannot initialize JCRFactory
> >> context", e);
> >> +        }
> >> +    }
> >> +
> >> +    private JCRFactory getJCRFactory() throws ContainerException {
> >> +        JCRFactory jcrFactory = JCRFactoryUtil.getJCRFactory();
> >> +        if (jcrFactory == null) {
> >> +            throw new ContainerException("Cannot load JCRFactory
> >> implementation class");
> >> +        }
> >> +        return jcrFactory;
> >>     }
> >>  }
> >>
> >> Modified:
> >> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRFactory.java
> >> URL:
> >>
> http://svn.apache.org/viewvc/ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRFactory.java?rev=1330779&r1=1330778&r2=1330779&view=diff
> >>
> >>
> ==============================================================================
> >> --- ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRFactory.java
> >> (original)
> >> +++ ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRFactory.java
> Thu
> >> Apr 26 11:18:51 2012
> >> @@ -29,9 +29,10 @@ public interface JCRFactory {
> >>     /**
> >>      *
> >>      * @param configRootElement
> >> +     * @param factoryImplDefinition
> >>      * @throws RepositoryException
> >>      */
> >> -    public void initialize(Element configRootElement) throws
> >> RepositoryException;
> >> +    public void initialize(Element configRootElement, Element
> >> factoryImplDefinition) throws RepositoryException;
> >>
> >>     /**
> >>      *
> >>
> >> Modified:
> >> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRFactoryUtil.java
> >> URL:
> >>
> http://svn.apache.org/viewvc/ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRFactoryUtil.java?rev=1330779&r1=1330778&r2=1330779&view=diff
> >>
> >>
> ==============================================================================
> >> ---
> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRFactoryUtil.java
> >> (original)
> >> +++
> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRFactoryUtil.java
> >> Thu Apr 26 11:18:51 2012
> >> @@ -28,7 +28,8 @@ public class JCRFactoryUtil {
> >>
> >>     public static final String module = JCRFactoryUtil.class.getName();
> >>
> >> -    private static JCRFactory jcrFactory = null;
> >> +    private static JCRFactory jcrFactory;
> >> +    private static String jcrFactoryName;
> >>
> >>     /**
> >>      *
> >> @@ -43,7 +44,7 @@ public class JCRFactoryUtil {
> >>                     ClassLoader loader =
> >> Thread.currentThread().getContextClassLoader();
> >>                     Class<?> c;
> >>                     try {
> >> -                        c =
> >> loader.loadClass(JCRContainer.getFactoryClassName());
> >> +                        c = loader.loadClass(jcrFactoryName);
> >>                         jcrFactory = (JCRFactory) c.newInstance();
> >>                     } catch (ClassNotFoundException e) {
> >>                         Debug.logError(e, "Cannot get instance of the
> jcr
> >> implementation", module);
> >> @@ -70,4 +71,8 @@ public class JCRFactoryUtil {
> >>
> >>         return session;
> >>     }
> >> +
> >> +    public static void setJcrFactoryClassName(String
> jcrFactoryClassName)
> >> {
> >> +        jcrFactoryName = jcrFactoryClassName;
> >> +    }
> >>  }
> >>
> >> Added: ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRJndi.java
> >> URL:
> >>
> http://svn.apache.org/viewvc/ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRJndi.java?rev=1330779&view=auto
> >>
> >>
> ==============================================================================
> >> --- ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRJndi.java
> (added)
> >> +++ ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRJndi.java Thu
> >> Apr 26 11:18:51 2012
> >> @@ -0,0 +1,70 @@
> >> +package org.ofbiz.jcr.loader;
> >> +
> >> +import javax.jcr.Repository;
> >> +import javax.naming.InitialContext;
> >> +import javax.naming.NamingException;
> >> +import javax.naming.Reference;
> >> +import javax.naming.StringRefAddr;
> >> +
> >> +import org.ofbiz.base.config.GenericConfigException;
> >> +import org.ofbiz.base.util.Debug;
> >> +import org.ofbiz.base.util.JNDIContextFactory;
> >> +
> >> +public class JCRJndi {
> >> +
> >> +    public static final String module = JCRJndi.class.getName();
> >> +
> >> +    public final static String ADDR_TYPE_FOR_REPOSITORY_HOME_DIR =
> >> "REPHOME";
> >> +    public final String ADDR_TYPE_FOR_CONFIG_FILE_PATH = "CONFPATH";
> >> +
> >> +    private final String jndiName;
> >> +    private final String configFilePath;
> >> +    private final String repositoryHomeDir;
> >> +
> >> +    public JCRJndi(String configFilePath, String jndiName, String
> >> repositoryHomeDir) {
> >> +        this.configFilePath = configFilePath;
> >> +        this.jndiName = jndiName;
> >> +        this.repositoryHomeDir = repositoryHomeDir;
> >> +    }
> >> +
> >> +    public void registerJcrToJndi() {
> >> +        InitialContext jndiContext = null;
> >> +
> >> +        try {
> >> +            jndiContext = getInitialContext();
> >> +        } catch (GenericConfigException e) {
> >> +            Debug.logError(e, module);
> >> +        }
> >> +
> >> +        bindRepository(jndiContext);
> >> +        // Test JNDI bind
> >> +        RepositoryLoader.getRepository();
> >> +    }
> >> +
> >> +    public void unbindRepository() {
> >> +        try {
> >> +            InitialContext jndiContext = getInitialContext();
> >> +            jndiContext.unbind(jndiName);
> >> +        } catch (NamingException e) {
> >> +            Debug.logError(e, module);
> >> +        } catch (GenericConfigException e) {
> >> +            Debug.logError(e, module);
> >> +        }
> >> +    }
> >> +
> >> +    private InitialContext getInitialContext() throws
> >> GenericConfigException {
> >> +        return JNDIContextFactory.getInitialContext("default");
> >> +    }
> >> +
> >> +    private void bindRepository(InitialContext jndiContext) {
> >> +        try {
> >> +            Reference ref = new Reference(Repository.class.getName(),
> >> org.ofbiz.jcr.loader.RepositoryFactory.class.getName(), null);
> >> +            ref.add(new
> StringRefAddr(ADDR_TYPE_FOR_REPOSITORY_HOME_DIR,
> >> repositoryHomeDir));
> >> +            ref.add(new StringRefAddr(ADDR_TYPE_FOR_CONFIG_FILE_PATH,
> >> configFilePath));
> >> +            jndiContext.bind(jndiName, ref);
> >> +            Debug.logInfo("Repository bound to JNDI as " + jndiName,
> >> module);
> >> +        } catch (NamingException ne) {
> >> +            Debug.logError(ne, module);
> >> +        }
> >> +    }
> >> +}
> >>
> >> Propchange:
> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/JCRJndi.java
> >>
> >>
> ------------------------------------------------------------------------------
> >>    svn:mime-type = text/plain
> >>
> >> Modified:
> >>
> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/RepositoryFactory.java
> >> URL:
> >>
> http://svn.apache.org/viewvc/ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/RepositoryFactory.java?rev=1330779&r1=1330778&r2=1330779&view=diff
> >>
> >>
> ==============================================================================
> >> ---
> >>
> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/RepositoryFactory.java
> >> (original)
> >> +++
> >>
> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/RepositoryFactory.java
> >> Thu Apr 26 11:18:51 2012
> >> @@ -22,15 +22,15 @@ public class RepositoryFactory implement
> >>         synchronized (cache) {
> >>             Object instance = cache.get(obj);
> >>             if (instance == null && obj instanceof Reference) {
> >> -                Reference ref = (Reference) obj;
> >> -                String repHomeDir =
> >> ref.get(JCRContainer.REP_HOME_DIR).getContent().toString();
> >> +                Reference reference = (Reference) obj;
> >> +                String repHomeDir =
> >>
> reference.get(JCRJndi.ADDR_TYPE_FOR_REPOSITORY_HOME_DIR).getContent().toString();
> >>                 // check if the repository is already started, than use
> it
> >>                 // otherwise create it
> >>                 File lock = new File(repHomeDir);
> >>                 if (lock.exists()) {
> >>                     instance =
> >> JcrUtils.getRepository(lock.toURI().toString());
> >>                 } else {
> >> -                    instance = new
> >>
> TransientRepository(ref.get(JCRContainer.DEFAULT_JCR_CONFIG_PATH).getContent().toString(),
> >> repHomeDir);
> >> +                    instance = new
> >>
> TransientRepository(reference.get(JCRContainer.DEFAULT_JCR_CONFIG_PATH).getContent().toString(),
> >> repHomeDir);
> >>                 }
> >>
> >>                 cache.put(obj, instance);
> >>
> >> Modified:
> >> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/RepositoryLoader.java
> >> URL:
> >>
> http://svn.apache.org/viewvc/ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/RepositoryLoader.java?rev=1330779&r1=1330778&r2=1330779&view=diff
> >>
> >>
> ==============================================================================
> >> ---
> >> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/RepositoryLoader.java
> >> (original)
> >> +++
> >> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/RepositoryLoader.java
> >> Thu Apr 26 11:18:51 2012
> >> @@ -71,7 +71,7 @@ public class RepositoryLoader {
> >>             String jndiName = curElement.getAttribute("jndi-name");
> >>             if (UtilValidate.isNotEmpty(jndiName)) {
> >>                 try {
> >> -                    repos.put(name, (Repository)
> >> JNDIContextFactory.getInitialContext("localjndi").lookup(jndiName));
> >> +                    repos.put(name, (Repository)
> >> JNDIContextFactory.getInitialContext("default").lookup(jndiName));
> >>                 } catch (NamingException e) {
> >>                     Debug.logError(e, module);
> >>                 } catch (GenericConfigException e) {
> >>
> >> Modified:
> >>
> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/jackrabbit/JCRFactoryImpl.java
> >> URL:
> >>
> http://svn.apache.org/viewvc/ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/jackrabbit/JCRFactoryImpl.java?rev=1330779&r1=1330778&r2=1330779&view=diff
> >>
> >>
> ==============================================================================
> >> ---
> >>
> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/jackrabbit/JCRFactoryImpl.java
> >> (original)
> >> +++
> >>
> ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/loader/jackrabbit/JCRFactoryImpl.java
> >> Thu Apr 26 11:18:51 2012
> >> @@ -47,7 +47,9 @@ import org.apache.jackrabbit.spi.QNodeTy
> >>  import org.ofbiz.base.util.Debug;
> >>  import org.ofbiz.base.util.UtilValidate;
> >>  import org.ofbiz.base.util.UtilXml;
> >> +import org.ofbiz.entity.Delegator;
> >>  import org.ofbiz.jcr.loader.JCRFactory;
> >> +import org.ofbiz.jcr.loader.JCRJndi;
> >>  import org.ofbiz.jcr.orm.jackrabbit.data.JackrabbitArticle;
> >>  import org.ofbiz.jcr.orm.jackrabbit.file.JackrabbitFile;
> >>  import org.ofbiz.jcr.orm.jackrabbit.file.JackrabbitFolder;
> >> @@ -71,21 +73,28 @@ public class JCRFactoryImpl implements J
> >>
> >>     protected static Repository repository = null;
> >>     protected Session session = null;
> >> +
> >>     protected static Mapper mapper = null;
> >>
> >> +    private JCRJndi jndi;
> >> +
> >>     /*
> >>      * (non-Javadoc)
> >>      *
> >>      * @see org.ofbiz.jcr.JCRFactory#initialize(org.w3c.dom.Element)
> >>      */
> >>     @Override
> >> -    public void initialize(Element configRootElement) throws
> >> RepositoryException {
> >> +    public void initialize(Element configRootElement, Element
> >> factoryImplDefinition) throws RepositoryException {
> >> +        homeDir = UtilXml.childElementAttribute(configRootElement,
> >> "home-dir", "path", "runtime/data/jcr/");
> >> +        String factoryJndiName =
> >> factoryImplDefinition.getAttribute("jndi-name");
> >> +
> >> +        jndi = new JCRJndi(jackrabbitConfigFile, factoryJndiName,
> >> homeDir);
> >> +
> >>         Element childElement =
> >> UtilXml.firstChildElement(configRootElement, "jcr-credentials");
> >>         CREDENTIALS_USERNAME = UtilXml.elementAttribute(childElement,
> >> "username", null);
> >>         CREDENTIALS_PASSWORD = UtilXml.elementAttribute(childElement,
> >> "password", null).toCharArray();
> >>
> >>         jackrabbitConfigFile =
> >> UtilXml.childElementAttribute(configRootElement, "config-file-path",
> >> "path", "framework/jcr/config/jackrabbit.xml");
> >> -        homeDir = UtilXml.childElementAttribute(configRootElement,
> >> "home-dir", "path", "runtime/data/jcr/");
> >>     }
> >>
> >>     /*
> >> @@ -113,6 +122,8 @@ public class JCRFactoryImpl implements J
> >>         classes.add(JackrabbitArticle.class);
> >>
> >>         mapper = new AnnotationMapperImpl(classes);
> >> +
> >> +        jndi.registerJcrToJndi();
> >>     }
> >>
> >>     /*
> >> @@ -136,6 +147,8 @@ public class JCRFactoryImpl implements J
> >>                 }
> >>             }
> >>         }
> >> +
> >> +        jndi.unbindRepository();
> >>     }
> >>
> >>     /*
> >> @@ -186,7 +199,7 @@ public class JCRFactoryImpl implements J
> >>     /*
> >>      * Register some new node types
> >>      */
> >> -    protected void registerNodeTypes(Session session) throws
> >> InvalidNodeTypeDefException, javax.jcr.RepositoryException, IOException
> {
> >> +    private void registerNodeTypes(Session session) throws
> >> InvalidNodeTypeDefException, javax.jcr.RepositoryException, IOException
> {
> >>         InputStream xml = new FileInputStream(CUSTOM_NODE_TYPES);
> >>
> >>         // HINT: throws InvalidNodeTypeDefException, IOException
> >>
> >>
> >>
>
>
>
> --
>
> Sascha Rodekamp
>     Visit the new german OFBiz Blog: http://www.ofbiz.biz
>     Lynx-Consulting GmbH
>     Johanniskirchplatz 6
>     D-33615 Bielefeld
>     http://www.lynx.de
>

Reply via email to