[ http://issues.apache.org/jira/browse/FELIX-113?page=all ]

Richard S. Hall resolved FELIX-113.
-----------------------------------

    Resolution: Won't Fix
      Assignee: Richard S. Hall

You cannot update OBR deployed bundles with "update" unless you specify the URL 
from which you want the bundle to be updated. In general, OBR deployed bundles 
should be updated using OBR (i.e., "obr deploy 14").

This issue is somewhat complicated, but OBR cannot deploy a bundle using the 
real location from where the bundle JAR came from because then OBR can never 
install another bundle from that location. Thus, OBR creates an arbitrary 
location string for each bundle it installs.

The reason that this is necessary is that OBR automatically updates deployed 
bundles if necessary, so their location string is actually meaningless. For 
example, assume that OBR deploys "http://foo.com/repo/foo-1.0.0.jar"; to a 
framework and does not mangle the location string. Later OBR updates that 
bundle to "http://foo.com/repo/foo-2.0.0.jar";. After the update, the original 
bundle still has a location string for the 1.0.0 bundle, even though it is the 
2.0.0 bundle. This makes it impossible for OBR to install 1.0.0 bundle again, 
if another bundle comes along and has a dependency on 1.0.0.

The "obr:" location string is used to get around such issues, making the 
location string independent of the location of the bundle in the repo.

At one time I toyed with the idea of creating a URL handler for obr: that could 
make this work properly for update, but it seems that there was some conceptual 
difficulty to do so...I can't remember.

> Unknown protocol: obr when updating a bundle deployed with OBR
> --------------------------------------------------------------
>
>                 Key: FELIX-113
>                 URL: http://issues.apache.org/jira/browse/FELIX-113
>             Project: Felix
>          Issue Type: Bug
>          Components: Bundle Repository (OBR)
>            Reporter: Guillaume Sauthier
>         Assigned To: Richard S. Hall
>
> After deploying my bundle with obr :
> obr deploy my.component.id
> If I try to update the bundle, I've got the following Exception :
> -> update 14
> ERROR: Unable to update the bundle. (java.net.MalformedURLException: Unknown 
> protocol: obr)java.net.MalformedURLException: Unknown protocol: obr
>       at java.net.URL.<init>(URL.java:601)
>       at java.net.URL.<init>(URL.java:464)
>       at java.net.URL.<init>(URL.java:413)
>       at 
> org.apache.felix.framework.cache.JarRevision.initialize(JarRevision.java:277)
>       at 
> org.apache.felix.framework.cache.JarRevision.<init>(JarRevision.java:78)
>       at 
> org.apache.felix.framework.cache.JarRevision.<init>(JarRevision.java:56)
>       at 
> org.apache.felix.framework.cache.BundleArchive.createRevisionFromLocation(BundleArchive.java:1004)
>       at 
> org.apache.felix.framework.cache.BundleArchive.revise(BundleArchive.java:629)
>       at org.apache.felix.framework.Felix._updateBundle(Felix.java:1378)
>       at org.apache.felix.framework.Felix.updateBundle(Felix.java:1332)
>       at org.apache.felix.framework.BundleImpl.update(BundleImpl.java:344)
>       at org.apache.felix.framework.BundleImpl.update(BundleImpl.java:331)
>       at 
> org.apache.felix.shell.impl.UpdateCommandImpl.execute(UpdateCommandImpl.java:94)
>       at 
> org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:263)
>       at 
> org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Activator.java:165)
>       at java.lang.Thread.run(Thread.java:595)
> java.net.MalformedURLException: Unknown protocol: obr
> Seems that OBR manage URLs with 'obr' scheme, scheme that is not supported...

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to