Reputation: 3191
I have added a new mvn url in the mvn.cfg file in my local Karaf 4.0.2 installation like below:
org.ops4j.pax.url.mvn.repositories= \ http://repo1.maven.org/maven2@id=central, \ http://repository.springsource.com/maven/bundles/release@id=spring.ebr.release, \ http://repository.springsource.com/maven/bundles/external@id=spring.ebr.external, \ http://zodiac.springsource.com/maven/bundles/release@id=gemini, \ http://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases, \ https://oss.sonatype.org/content/repositories/snapshots@id=sonatype.snapshots.deploy@snapshots@noreleases, \ https://oss.sonatype.org/content/repositories/ops4j-snapshots@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases, \ http://repository.springsource.com/maven/bundles/external@id=spring-ebr-repository@snapshots@noreleases, \ http://jenkins:8081/artifactory/simple/repo/@id=central, \
http://artifactory.lsp.axiell.com/artifactory/maven-central@id=central, \ http://artifactory.lsp.axiell.com/artifactory/libs-snapshot-release@snapshots
Basically the one I am interested in now is the last one with @snapshots. It contains a feature xml that specifies a bundle that I want to install in my local karaf. The repo resides somewhere else.
When I type the following in the karaf console:
feature:repo-add mvn:com.axiell.lsp.integrations/utils/1.0-SNAPSHOT/xml/features
I get the error: karaf@root()> feature:repo-add mvn:com.axiell.lsp.integrations/utils/1.0-SNAPSHOT/xml/features Adding feature url mvn:com.axiell.lsp.integrations/utils/1.0-SNAPSHOT/xml/features Error executing command: Repository spec is empty string. : mvn:com.axiell.lsp.integrations/utils/1.0-SNAPSHOT/xml/features
This is the stacktrace in the logs.
,framework=org.apache.felix.framework,uuid=a1dc4a95-fb3b-440d-a6fd-e458f91bedbb
2016-09-25 14:36:49,195 | ERROR | nsole user karaf | ShellUtil | 45 - org.apache.karaf.shell.core - 4.0.2 | Exception caught while executing command
java.io.IOException: Repository spec is empty string. : mvn:com.axiell.lsp.integrations/utils/1.0-20160925.111911-1/xml/features
at org.apache.karaf.features.internal.service.RepositoryImpl.load(RepositoryImpl.java:85)[8:org.apache.karaf.features.core:4.0.2]
at org.apache.karaf.features.internal.service.FeaturesServiceImpl.loadRepository(FeaturesServiceImpl.java:391)[8:org.apache.karaf.features.core:4.0.2]
at org.apache.karaf.features.internal.service.FeaturesServiceImpl.addRepository(FeaturesServiceImpl.java:411)[8:org.apache.karaf.features.core:4.0.2]
at org.apache.karaf.features.command.RepoAddCommand.doExecute(RepoAddCommand.java:50)[32:org.apache.karaf.features.command:4.0.2]
at org.apache.karaf.features.command.FeaturesCommandSupport.execute(FeaturesCommandSupport.java:37)[32:org.apache.karaf.features.command:4.0.2]
at org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:83)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:67)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:87)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:182)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:119)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:94)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.karaf.shell.impl.console.ConsoleSessionImpl.run(ConsoleSessionImpl.java:268)[45:org.apache.karaf.shell.core:4.0.2]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_71]
Caused by: shaded.org.ops4j.lang.NullArgumentException: Repository spec is empty string.
at shaded.org.ops4j.lang.NullArgumentException.validateNotEmpty(NullArgumentException.java:109)
at org.ops4j.pax.url.mvn.internal.config.MavenRepositoryURL.<init>(MavenRepositoryURL.java:94)[7:org.ops4j.pax.url.mvn:2.4.3]
at org.ops4j.pax.url.mvn.internal.config.MavenConfigurationImpl.getRepositories(MavenConfigurationImpl.java:315)[7:org.ops4j.pax.url.mvn:2.4.3]
at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.selectRepositories(AetherBasedResolver.java:349)[7:org.ops4j.pax.url.mvn:2.4.3]
at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:523)[7:org.ops4j.pax.url.mvn:2.4.3]
at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:506)[7:org.ops4j.pax.url.mvn:2.4.3]
at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:481)[7:org.ops4j.pax.url.mvn:2.4.3]
at org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:123)[7:org.ops4j.pax.url.mvn:2.4.3]
at java.net.URL.openStream(URL.java:1045)[:1.8.0_71]
at org.apache.karaf.features.internal.service.RepositoryImpl.load(RepositoryImpl.java:80)[8:org.apache.karaf.features.core:4.0.2]
... 15 more
2016-09-25 14:36:56,109 | ERROR | nsole user karaf | ShellUtil | 45 - org.apache.karaf.shell.core - 4.0.2 | Exception caught while executing command
java.io.IOException: Repository spec is empty string. : mvn:com.axiell.lsp.integrations/utils/1.0-SNAPSHOT/xml/features
at org.apache.karaf.features.internal.service.RepositoryImpl.load(RepositoryImpl.java:85)[8:org.apache.karaf.features.core:4.0.2]
at org.apache.karaf.features.internal.service.FeaturesServiceImpl.loadRepository(FeaturesServiceImpl.java:391)[8:org.apache.karaf.features.core:4.0.2]
at org.apache.karaf.features.internal.service.FeaturesServiceImpl.addRepository(FeaturesServiceImpl.java:411)[8:org.apache.karaf.features.core:4.0.2]
at org.apache.karaf.features.command.RepoAddCommand.doExecute(RepoAddCommand.java:50)[32:org.apache.karaf.features.command:4.0.2]
at org.apache.karaf.features.command.FeaturesCommandSupport.execute(FeaturesCommandSupport.java:37)[32:org.apache.karaf.features.command:4.0.2]
at org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:83)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:67)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:87)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:182)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:119)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:94)[45:org.apache.karaf.shell.core:4.0.2]
at org.apache.karaf.shell.impl.console.ConsoleSessionImpl.run(ConsoleSessionImpl.java:268)[45:org.apache.karaf.shell.core:4.0.2]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_71]
Caused by: shaded.org.ops4j.lang.NullArgumentException: Repository spec is empty string.
at shaded.org.ops4j.lang.NullArgumentException.validateNotEmpty(NullArgumentException.java:109)
at org.ops4j.pax.url.mvn.internal.config.MavenRepositoryURL.<init>(MavenRepositoryURL.java:94)[7:org.ops4j.pax.url.mvn:2.4.3]
at org.ops4j.pax.url.mvn.internal.config.MavenConfigurationImpl.getRepositories(MavenConfigurationImpl.java:315)[7:org.ops4j.pax.url.mvn:2.4.3]
at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.selectRepositories(AetherBasedResolver.java:349)[7:org.ops4j.pax.url.mvn:2.4.3]
at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:523)[7:org.ops4j.pax.url.mvn:2.4.3]
at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:506)[7:org.ops4j.pax.url.mvn:2.4.3]
at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:481)[7:org.ops4j.pax.url.mvn:2.4.3]
at org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:123)[7:org.ops4j.pax.url.mvn:2.4.3]
at java.net.URL.openStream(URL.java:1045)[:1.8.0_71]
at org.apache.karaf.features.internal.service.RepositoryImpl.load(RepositoryImpl.java:80)[8:org.apache.karaf.features.core:4.0.2]
... 15 more
I have tried every possible combination but I always get the error repository spec is empty. What could be the issue here? Thanks in advance.
Upvotes: 2
Views: 1564
Reputation: 6237
https://ops4j1.jira.com/browse/PAXURL-333 is now fixed. extra spaces and commas are discarded.
Upvotes: 0
Reputation: 3191
Ok this was a strange one but an old post gave me an hint. Basically one of the mvn url had a space character at the end which probably messed up the parsing of the urls. Removing the url fixed the issue.
http://osdir.com/ml/users-felix-apache/2009-11/msg00096.html
Upvotes: 2
Reputation: 19606
You must give the maven repository an id. Try:
http://artifactory.lsp.axiell.com/artifactory/libs-snapshot-release@id=axiell@snapshots
Upvotes: 1