Hm after the merge i was not able to sync it again against the trunk.
Seems that something went wrong during the reintegration. Feel free to
try... but before spending to much time i would suggest to create a
new one.

btw. the nt:unstructured issue should be solved.

2012/4/26 Pierre Smits <pierre.sm...@gmail.com>:
> 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
>>



-- 

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