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