Hi there,

I'm trying to figure out how to stop OBR downloading a Bundle I already have 
locally, and am hoping someone can give me some clarity on what is wrong with 
my approach.

I have Bundle A Version 1.1 installed locally.
I also have OBR configured with a remote repository, which also has Bundle A 
Version 1.1 indexed.

When I query 
repositoryAdmin.discoverResources("(&(symbolicName=${bundleA.symbolicName})(version=${bundleA.version}))"
It only returns 1 resource, the remote resource (and from looking at 
RepositoryAdminImpl it intentionally doesn't look at the system or local repos).
So I then add this resource to the Resolver.

Fast forward to when I am calling resolver.deploy(), looking at the 
ResolverImpl I can see the path where the local resource can be found and then 
nothing will be done (because nothing needs to be done)
But the check that is causing the remote resource to download is:
if (!localResource.equals(deployResource)) 

The localResource and the (remote) deployResource are two different objects, 
and the localResource is a LazyLocalResourceImpl which has no implementation of 
equals, so is just a standard object equals and it fails since deployResource 
is a ResourceImpl. 
So we go into the if statement and the local bundle is updated with the remote 
bundle, which is unnecessary since both are Bundle A Version 1.1


I'm not too sure where I'm making the incorrect assumptions, any pointers in 
the right direction would be most welcome.

Thanks in advance,
James


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@felix.apache.org
For additional commands, e-mail: users-h...@felix.apache.org

Reply via email to