You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Lukas Roedl (JIRA)" <ji...@apache.org> on 2013/07/15 00:04:48 UTC

[jira] [Created] (KARAF-2388) Error "No karaf base dir found in extracted distribution." when using customized Karaf distribution

Lukas Roedl created KARAF-2388:
----------------------------------

             Summary: Error "No karaf base dir found in extracted distribution." when using customized Karaf distribution
                 Key: KARAF-2388
                 URL: https://issues.apache.org/jira/browse/KARAF-2388
             Project: Karaf
          Issue Type: Bug
          Components: karaf-exam
    Affects Versions: 3.0.0.RC1, 2.3.2
            Reporter: Lukas Roedl


Following the manual at http://karaf.apache.org/manual/latest-2.3.x/developers-guide/writing-tests.html#KarafDistributionConfigurationOption I tried to write integration tests based on a custom Karaf distribution.
I used the following to configure the container:

{code:java}
...
karafDistributionConfiguration()
	.frameworkUrl(
			maven()
			.groupId("at.ac.ait.hbs.homer")
			.artifactId("at.ac.ait.hbs.homer.core.distribution.assemblies.stable")
			.type("zip")
			.versionAsInProject()
	)
	.karafVersion(KARAF_VERSION)
	.name("Apache Karaf")
	.unpackDirectory(new File(UNPACK_DIRECTORY)),
...
{code}

When running the tests I get an "No karaf base dir found in extracted distribution." error. When looking into the "target\exam\<random>\" folder (= UNPACK_DIRECTORY) there is really a mess:

{code}
DISCLAIMER.txt
LICENSE.txt
README.txt
...
bin\
...
config.properties
custom.properties
endorsed\
ext\
...
karaf.bat
karaf.jar
keys.properties
org\
...
system.properties
tmp\
users.properties
{code}

What I expected was the default Karaf distribution layout:

{code}
bin\
data\
demo\
deploy\
etc\
lib\
system\
README
karaf-manual-2.3.2.html
karaf-manual-2.3.2.pdf
...
{code}

Digging into the problem I found out that the eg. the apache-karaf-2.3.2.zip looks like:

{code}
apache-karaf-2.3.2\bin\
apache-karaf-2.3.2\data\
apache-karaf-2.3.2\demo\
apache-karaf-2.3.2\deploy\
apache-karaf-2.3.2\etc\
apache-karaf-2.3.2\lib\
apache-karaf-2.3.2\system\
apache-karaf-2.3.2\README
apache-karaf-2.3.2\karaf-manual-2.3.2.html
apache-karaf-2.3.2\karaf-manual-2.3.2.pdf
...
{code}

Whereas the custom distribution I'm using looks like:

{code}
bin\
data\
demo\
deploy\
etc\
lib\
system\
README
karaf-manual-2.3.2.html
karaf-manual-2.3.2.pdf
...
{code}

Not the different "base" directory in the two packages - "apache-karaf-2.3.2" in case of the Karaf 2.3.2 assembly.
It seems that the container assumes that every zip/tar.gz file given has this "base" directory structure and extracts only the contents of subfolders to the unpack directory.

I think a check for this "base" directory should be integrated in the container and either extract only the contents in this "base" directory or extract the whole file otherwise - the base directory seems to have the same name as the artifact name?!

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira