which can be used to pull in Virgo bundles on the build classpath from Ivy builds but I can't seem to find any information about the existence of a Maven counterpart.
In my specific case, I would like to be able to include the org.eclipse.virgo.test.framework-2.1.0.RELEASE.jar (and its transitive dependencies) in my Maven build to be able to execute Virgo integration tests.
Please note that these repositories are not browseable.
We don't want to publicise these repositories because we'll need to move off
Amazon S3 before long so non-SpringSource committers will be able to publish
builds, do releases, etc. without needing the SpringSource S3 keys.
Note that Virgo and Gemini Web publish their artifacts to Ivy repositories in
Amazon S3 *and* on build.eclipse.org. We may publish to Maven repositories on
build.eclipse.org (or elsewhere in the Eclipse infrastructure) in the fulness
of time as we move away from S3.
which indeed gives me the test framework and its dependencies on my test classpath.
However, the following simple test fails:
@RunWith(OsgiTestRunner.class)
public class OsgiIntegrationTest {
@Test
public void testInsideOsgi() {
System.err.println("Inside OSGi");
}
}
The error message is:
-------------------------------------------------------------------------------
Test set: org.osgi.sample.app.test.osgi.OsgiIntegrationTest
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.469 sec <<< FAILURE!
org.osgi.sample.app.test.osgi.OsgiIntegrationTest Time elapsed: 0 sec <<< ERROR!
org.osgi.framework.BundleException: Error converting plugin at C:\Users\peter\.m2\repository\org\eclipse\osgi\org.eclipse.osgi\3.6.1.R36x_v20100806\configuration\org.eclipse.osgi\bundles\1\1\bundlefile.
at org.eclipse.core.runtime.internal.adaptor.EclipseStorageHook.generateManifest(EclipseStorageHook.java:446)
at org.eclipse.core.runtime.internal.adaptor.EclipseStorageHook.getGeneratedManifest0(EclipseStorageHook.java:423)
at org.eclipse.core.runtime.internal.adaptor.EclipseStorageHook.getGeneratedManifest(EclipseStorageHook.java:393)
at org.eclipse.core.runtime.internal.adaptor.EclipseStorageHook.createCachedManifest(EclipseStorageHook.java:388)
at org.eclipse.core.runtime.internal.adaptor.EclipseStorageHook.getManifest(EclipseStorageHook.java:507)
at org.eclipse.osgi.internal.baseadaptor.BaseStorage.loadManifest(BaseStorage.java:306)
at org.eclipse.osgi.internal.baseadaptor.BundleInstall.begin(BundleInstall.java:82)
at org.eclipse.osgi.framework.internal.core.Framework.installWorkerPrivileged(Framework.java:921)
at org.eclipse.osgi.framework.internal.core.Framework$1.run(Framework.java:837)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.Framework.installWorker(Framework.java:888)
at org.eclipse.osgi.framework.internal.core.Framework.installBundle(Framework.java:832)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.installBundle(BundleContextImpl.java:167)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.installBundle(BundleContextImpl.java:161)
at org.eclipse.virgo.test.framework.OsgiTestRunner.installAndStartTestBundle(OsgiTestRunner.java:94)
at org.eclipse.virgo.test.framework.OsgiTestRunner.run(OsgiTestRunner.java:70)
Actually I can browse that artifact using the above repository url. I can see for example the pom of the artifact. But a maven download fails.
I have not yet successfully loaded any artifact from a P2 repository. So this might as well be a configuration issue. From what I have read I understood that I only need to add the tycho plugin in order to access P2 repos.
I believe http://build.eclipse.org/rt/virgo/maven/bundles/release is a standard Maven repository, so perhaps it would help if you didn't specify a p2 layout. Did some information you read give you the impression it was a p2 repo?
Very good question Glyn. Actually it's only the kind of browsing the files in that repository which reminded me of our own P2 repository which I have just set up. Removing the p2-layout tag perfectly solves the problem.