jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Akram BEN AISSI (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (JCR-2745) Issues configuring repositoryURI or homeDir
Date Mon, 31 Oct 2011 21:15:32 GMT

    [ https://issues.apache.org/jira/browse/JCR-2745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13140565#comment-13140565

Akram BEN AISSI commented on JCR-2745:

jave you tried to use the ${jboss.home.url} property? I suddenly realized that this .url properties
are probably intended for this kind of use cases.

> Issues configuring repositoryURI or homeDir
> -------------------------------------------
>                 Key: JCR-2745
>                 URL: https://issues.apache.org/jira/browse/JCR-2745
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core
>    Affects Versions: 2.1.1
>         Environment: Windows 7 64 bit, JBoss 5.1.0.GA, Sun JDK 1.6.0_18
>            Reporter: Sverker Abrahamsson
> I've encountered an issue when upgrading jackrabbit to 2.1.1 from 1.x version. Earlier
I used to set homeDir parameter to ${jboss.server.data.dir}/jackrabbit for the repository
to be placed in $JBOSS_HOME/server/default/data/jackrabbit. I see that homeDir is now deprecated
and repositoryURI should be used instead. However, I can't succeed with placing it anywhere
else than $JBOSS_HOME/bin/jackrabbit which is where it ends up with repositoryURI = jcr-jackrabbit://jackrabbit
> I've used a debugger and found that the issue occurs in org.apache.jackrabbit.core.RepositoryFactoryImpl.getRepository(Map
parameters) where the repository uri is parsed by creating a URI object at line 81 (source
code from jackrabbit 2.1.1).
> First attempt, if I set repositoryURI to "jcr-jackrabbit://../server/default/data/jackrabbit"
then ".." is interpreted as the authority and "/server/default/data/jackrabbit" as the path,
instead of it both as relative path. This doesn't seem to be the right behavior as I can read
from jdk javadoc.
> Second attempt, setting repositoryURI to "jcr-jackrabbit://${jboss.server.data.dir}/jackrabbit"
then that is expanded to "jcr-jackrabbit://D:\java\jboss-5.1.0.GA\server\default\data/jackrabbit"
which cause a URISyntaxException with message "Illegal character in authority at index 17".
> Third attempt, setting repositoryURI to "jcr-jackrabbit://D:/java/jboss-5.1.0.GA/server/default/data/jackrabbit"
cause D: to be parsed as authority and the rest as path.
> Fourth attempt, using the old depreciated homeDir config parameter the repository is
instanciated but the webapp throws exception that repository startup configuration is invalid.
It is still creating it's temp directory under ${jboss.home}/bin/jackrabbit/
> Fifth attempt, trying to create repository from webapp. If repository home directory
is specified as jackrabbit then it's created under ${jboss.home}/bin/jackrabbit/. If specified
as d:/java/jboss-5.1.0.GA/server/default/data/jackrabbit then the following 
> occurs:
>  11:58:14,220 INFO  [STDOUT] 13.09.2010 11:58:14 *INFO * Installer: Creating new repository
home ':/java/jboss-5.1.0.GA/server/defaut/data/jackrabbit' (Installer.java, line 149)
> 11:58:14,223 INFO  [STDOUT] 13.09.2010 11:58:14 *INFO * Installer: Creating new repository
config: :\java\jboss-5.1.0.GA\server\defult\data\jackrabbit\repository.xml (Installer.java,
line 184)
> 11:58:14,238 INFO  [STDOUT] 13.09.2010 11:58:14 *ERROR* Installer: Error while installing
new repository config ':/java/jboss-5.1.0.GA/server/default/data/jackrabbit/repository.xml':
java.io.FileNotFoundException: :\java\jboss-5.1.0.GA\server\default\data\jackrabit\repository.xml
(The filename, directory name, or volume label syntax is incorrect) (Installer.java, line
> 11:58:25,712 INFO  [STDOUT] 13.09.2010 11:58:25 *ERROR* Installer: Trying to use exisintg
repository home ':/java/jboss-5.1.0.GA/sever/default/data/jackrabbit' but does not exists
(Installer.java, line 160)
> Sixth attempt, copying the repository created by webapp from $JBOSS_HOME/bin/jackrabbit
to $JBOSS_HOME/server/default/data/jackrabbit cause the webapp still to throw exception that
repository startup configuration is invalid
> Seventh attempt, after googling on how URI class works on windows I find a workaround
to set repositoryURI to jcr-jackrabbit:/D:/java/jboss-5.1.0.GA/server/default/data/jackrabbit
where it suceeds to instansiate the repository. Webapp still throws exception "Repository
startup configuration is not valid". 
> Eight attempt, debugging shows that RepositoryStartupServlet expects bootstrap.properties
in $JBOSS_HOME/bin/jackrabbit so it's copied there. It does not work to use the macro ${jboss.server.data.dir}
but using absolute path for repository.home and repository.config works
> Ninth attempt, changing bootstrap-config parameter in web.xml to ${jboss.server.data.dir}/jackrabbit/bootstrap.properties
works fine. However it's anoying to have to use absoute paths in bootstrap.properties since
the jboss macros aren't expanded, neither does repository.config=${rep.home}/repository.xml
> Tenth attempt, removing repository.home and repository.config from bootstrap.properties
and setting them as init parameters in web.xml works fins, then ${jboss.server.data.dir} is
expanded properly. $rep.home} doesn't work for repository.config but that was expected.
> Suggested actions to solve this issue:
> 1. Document how to set repositoryURI including the quirk on Windows, I haven't found
anything regarding this parameter on jackrabbit website
> 2. In org.apache.jackrabbit.core.RepositoryFactoryImpl.getRepository(Map parameters)
change line 81 to the following which will solve the issue of \ in path names on windows when
${jboss.server.data.dir} is expanded:
> URI uri = new URI(parameter.toString().trim().replaceAll("\\", "/"));
> 3. In org.apache.jackrabbit.j2ee.RepositoryStartupServlet.configure() expand macros when
the properties are loaded. I believe the jboss platform properties are availible from System.getProperties()
but not sure. I believe this is relevant for other platforms as well.
> 4. I think there may be nessary to identify why creating repository from the webapp doesn't
work according to the error messages above, I believe this is also and issue with URI but
I haven't analysed if further.
> This issue may be related to JCR-2729

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message