Spring DM server is supposed to support using the EBR as a remote repository. I was wondering what the specifics for configuring the EBR as a remote/hosted repo.
Spring DM server is supposed to support using the EBR as a remote repository. I was wondering what the specifics for configuring the EBR as a remote/hosted repo.
You can configure dm Server to use the EBR as a remote repository by configuring a remote repository in config/com.springsource.repository.properties:
You then also need to add the repository to the configured chain:Code:ebr.type=remote ebr.uri=http://repository.springsource.com/index/external.orf ebr.indexRefreshInterval=5
You'll need to use a recent nightly build as we've fixed a bug in this area since the release of M5.Code:chain=ext,usr,watched-repo,ebr
I should also mention that, at the moment, configuring the EBR as a remote repository has an interesting side-effect. The EBR contains all of Spring's optional dependencies so, if you start dm Server with the EBR available, dm Server will provision all of Spring's optional dependencies at startup which can be quite a lengthy process as they are downloaded. The remote repository implementation (in recent nightly builds) includes cacheing support so this download won't be necessary every time.
That said, this is an area that we want to improve before we release 2.0 and it'd be great to get some user feedback. One option we have considered is to allow certain repositories to be configured such that they will not be used to satisfy optional imports but we wonder if this is solution is too coarse-grained. Feedback is most definitely welcome.
Last edited by Glyn Normington; Oct 23rd, 2009 at 03:48 AM.
Andy Wilkinson
SpringSource
I will definitely try it out as it was getting really tiring downloading jars to find out I had another 10 dependencies that needed to be downloaded which translated into even more. using my local maven repository seemed to cause the server to fail to start. Probably because it is used for many projects.
Hi Andy,
I'm using springsource-dm-server-2.0.0.CI-449 that I've downloaded and installed just a few minutes ago. With the modifications you suggested it starts but web interface is not available. If I restore the original config/com.springsource.repository.properties everything works as expected.
I'm have not seen provisioning starting either. I see 86 jar files +1 libd file in repository/ext/. Is there something else I need to do to trigger provisioning from ebr?
I'm stuck here as well using DM Server 2.0.0.RELEASE. When I deploy my app, the server doesn't even try to download anything, it fails immediately with com.springsource.kernel.osgi.framework.UnableToSat isfyBundleDependenciesException: Unable to satisfy dependencies of bundle 'test4' at version '0.0.0': Import-Bundle with symbolic name 'com.springsource.org.aspectj.weaver' in version range '[1.6.5.RELEASE, 1.6.5.RELEASE]' could not be satisfied.
In the server log, I'm seeing
Initiating a download of a bundle from the STS Servers tab also does nothing.Code:[2010-02-10 14:05:46.305] ebr c.s.r.i.remote.ArtifactDescriptorStoreWatcher$StoreUpdaterThread Copying index failed for remote repository 'ebr'. java.io.FileNotFoundException: C:\springsource-dm-server-2.0.0.RELEASE\work\ebr-"c47025d6e89111503a3b3091258b95ba".descriptors (The filename, directory name, or volume label syntax is incorrect) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:179) at java.io.FileOutputStream.<init>(FileOutputStream.java:131) at com.springsource.repository.internal.remote.DescriptorStoreFactory.createDescriptorStore(DescriptorStoreFactory.java:65) at com.springsource.repository.internal.remote.ArtifactDescriptorStoreWatcher$StoreUpdaterThread.readNewDescriptorStore(ArtifactDescriptorStoreWatcher.java:161) at com.springsource.repository.internal.remote.ArtifactDescriptorStoreWatcher$StoreUpdaterThread.run(ArtifactDescriptorStoreWatcher.java:110)
I spent so many hours on this and now I'm getting unsure: can DM Server download any dependency automatically or I'm misunderstanding something and manual installation is the only option?