Richard S. Hall wrote:

> Well, R3 bundles are still allowed to not have a symbolic name...if
you 
> try to install an R4 bundle without one, you should get an install
error.

Oops, missed that one too!  I guess we are encountering all these
"bundle 101" issues as we are just beginning to get comfortable with R4.
Thanks for the reminder.

Rick Litton


-----Original Message-----
From: Richard S. Hall [mailto:[EMAIL PROTECTED] 
Sent: Friday, February 09, 2007 11:10 AM
To: felix-dev@incubator.apache.org
Subject: Re: Another OBR issue

Rick Litton wrote:
> Richard S. Hall wrote:
>
>   
>> Make sure that all of your locally installed bundles 
>> have symbolic names.
>>     
>
> Yes it now works!  The only "gotcha" I noticed was that modifying the
> version number of a package (Export-Package header) would not be
> reflected in the bundle by simply using the "obr deploy" command.  I
had
> to uninstall/install the bundle instead.  Otherwise, the OBR commands
I
> tested executed as advertised. ;)  
>   

If I understand, you are saying that you updated the version of an 
exported package, but not the version of bundle itself. If so, you are 
correct, OBR would not recognize that as a change. It only looks at 
symbolic name + bundle version as a unique identifier, so if it finds 
it, it thinks it is done.

> I also noticed that the Bundle-SymbolicName header is mandatory per
the
> R4 specs. I'm now wondering why this was not caught earlier in the
> bundle lifecycle.  And since bindex used the bundle name as the
symbolic
> name, I assumed that the bundle manifest was entirely valid.  Thanks
to
> you and Steven for helping sort this out.      
>   

Well, R3 bundles are still allowed to not have a symbolic name...if you 
try to install an R4 bundle without one, you should get an install
error.

-> richard
> Rick Litton
>
>
> -----Original Message-----
> From: Richard S. Hall [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, February 08, 2007 2:48 PM
> To: felix-dev@incubator.apache.org
> Subject: Re: Another OBR issue
>
>
> On Feb 8, 2007, at 5:41 PM, Rick Litton wrote:
>
>   
>> Richard S. Hall wrote:
>>
>>     
>>> How did you generate the XML? Did you use bindex? Maybe it
>>> automatically adds the symbolic name.
>>>       
>> Yes, that's also right.  The bindex tool generated the repository.xml
>> and added the missing info, as shown in this xml fragment:
>>
>>     <capability name='bundle'>
>>       <p n='manifestversion' v='1'/>
>>       <p n='presentationname' v='Framework Data Source'/>
>>       <p n='symbolicname' v='Framework Data Source'/>
>>       <p n='version' t='version' v='1.1.0'/>
>>     </capability>
>>
>> Unfortunately, what is happening is the bundle that is failing with
>>     
> the
>   
>> NPE is also described in the same way:
>>
>>     <capability name='bundle'>
>>       <p n='manifestversion' v='1'/>
>>       <p n='presentationname' v='Framework Plugin'/>
>>       <p n='symbolicname' v='Framework Plugin'/>
>>       <p n='version' t='version' v='1.1.1'/>
>>     </capability>
>>
>> What I can determine by reading through the repository.xml is that a
>> couple of "requires" for the second bundle were either missing or
>> deprecated.  However, I'm not certain if this is the source of the
>> problem.  Also, could you confirm if packages referenced from the
>> classpath through the system bundle are "safely" visible to OBR and
>> resolved successfully?  These packages would of course appear in a
>> "require" tag as well yet they are not exported by any bundle.
>>     
>
> OBR converts every locally installed bundle into a Resource, including

> the system bundle. Make sure that all of your locally installed
bundles 
> have symbolic names. If they do, then we will have to track it 
> down...perhaps you can send me a URL to your repo and the steps to 
> reproduce the exception (or some sort of tar ball off line).
>
> -> richard
>
>   
>> Rick Litton
>>
>>
>>
>> -----Original Message-----
>> From: Richard S. Hall [mailto:[EMAIL PROTECTED]
>> Sent: Thursday, February 08, 2007 2:27 PM
>> To: felix-dev@incubator.apache.org
>> Subject: Re: Another OBR issue
>>
>>
>> On Feb 8, 2007, at 5:13 PM, Rick Litton wrote:
>>
>>     
>>> Richard S. Hall wrote:
>>>
>>>       
>>>> Are you saying that your bundle's manifest does not contain a
>>>>         
>> symbolic
>>     
>>>> name and the one shown below is given by default?
>>>>         
>>> Yes, that's correct.  Here is a portion of the manifest:
>>>
>>> Bundle-Name: Framework Data Source
>>> Bundle-Description: Data Source Layer.
>>> Bundle-Version: 1.1
>>> Bundle-Activator: com....framework.ds.Activator
>>> Bundle-ClassPath: .
>>> Export-Package: ...
>>> Import-Package: ...
>>>
>>> I was just hoping that the exception from OBR will be able describe
>>> what
>>> dependency failed to resolve so that the appropriate action can be
>>> taken.  I will also try to insert some code to make this happen as
>>> well.
>>>       
>> What is the scenario that is happening when you do see the exception?
>> It possible, as Steven suggested, that this could be related to
>>     
> whether
>   
>> the metadata is coming from XML or the manifest. For example, if you
>> have a bundle installed locally without a bundle symbolic name, then
>> when this is converted into a resource, it won't have a symbolic
name,
>> which could cause the NPE.
>>
>> How did you generate the XML? Did you use bindex? Maybe it
>> automatically adds the symbolic name.
>>
>> Just some thoughts.
>>
>> -> richard
>>
>>     
>>> Thanks in advance.
>>>
>>> Rick Litton
>>>
>>>
>>> -----Original Message-----
>>> From: Richard S. Hall [mailto:[EMAIL PROTECTED]
>>> Sent: Thursday, February 08, 2007 2:04 PM
>>> To: felix-dev@incubator.apache.org
>>> Subject: Re: Another OBR issue
>>>
>>>
>>> On Feb 8, 2007, at 3:09 PM, Rick Litton wrote:
>>>
>>>       
>>>> Richard S. Hall wrote:
>>>>
>>>>         
>>>>> I don't think so. OBR requires a bundle symbolic name, because
this
>>>>> plus version is a unique identifier.
>>>>>           
>>>> Hmmm.  I wonder how this worked:
>>>>         
>>> Are you saying that your bundle's manifest does not contain a
>>>       
> symbolic
>   
>>> name and the one shown below is given by default?
>>>
>>> I don't recall doing it that way, but anything is possible...it has
>>> been a long time since I worked on OBR. The last time I saw this
bug,
>>> though, I am fairly certain it was because there was no symbolic
>>>       
> name.
>   
>>> I will try to take a closer look at it and see if I can see what is
>>> going on.
>>>
>>> -> richard
>>>
>>>       
>>>> -> obr info "Framework Data Source"
>>>> ---------------------
>>>> Framework Data Source
>>>> ---------------------
>>>> description: Data Source Layer.
>>>> documentation: file:../temp/repository.xml
>>>> id: 1
>>>> license: file:../temp/repository.xml
>>>> presentationname: Framework Data Source
>>>> size: 7783
>>>> source: file:../temp/repository.xml
>>>> symbolicname: Framework Data Source
>>>> url: file:../temp/Build/bundles/fwk-ds.jar
>>>> version: 1.1.0
>>>>
>>>> ...
>>>>
>>>> -> obr deploy "Framework Data Source"
>>>> Target resource(s):
>>>> -------------------
>>>>    Framework Data Source (1.1.0)
>>>>
>>>> Deploying...done.
>>>>
>>>>
>>>>
>>>> Rick Litton
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: Richard S. Hall [mailto:[EMAIL PROTECTED]
>>>> Sent: Thursday, February 08, 2007 12:02 PM
>>>> To: felix-dev@incubator.apache.org
>>>> Subject: Re: Another OBR issue
>>>>
>>>>
>>>> On Feb 8, 2007, at 1:18 PM, Rick Litton wrote:
>>>>
>>>>         
>>>>> Steven wrote:
>>>>>
>>>>>           
>>>>>> It looks like either the symbolic name or the version are nil. I
>>>>>>             
>>>>> haven't been able to track down all the ways this could be so.
>>>>>
>>>>> Looking at the output from obr info, the repository.xml generated
>>>>>           
> by
>   
>>>>> bindex shows that the Bundle-Name has been used as a substitute
>>>>> when the
>>>>> Bundle-SymbolicName descriptor is missing from the manifest.
Hence
>>>>>           
>>> my
>>>       
>>>>> guess is that the obr deploy command fails with an NPE only when
>>>>> dependencies are not satisfied.
>>>>>           
>>>> I don't think so. OBR requires a bundle symbolic name, because this
>>>> plus version is a unique identifier.
>>>>
>>>> -> richard
>>>>
>>>>         
>>>>> Rick Litton
>>>>>
>>>>>
>>>>> -----Original Message-----
>>>>> From: Steven E. Harris [mailto:[EMAIL PROTECTED]
>>>>> Sent: Thursday, February 08, 2007 9:51 AM
>>>>> To: felix-dev@incubator.apache.org
>>>>> Subject: Re: Another OBR issue
>>>>>
>>>>> Rick Litton <[EMAIL PROTECTED]> writes:
>>>>>
>>>>>           
>>>>>> java.lang.NullPointerException
>>>>>>         at
>>>>>>
>>>>>>             
>>>>> org.apache.felix.bundlerepository.ResourceImpl.hashCode
>>>>> (ResourceImpl.jav
>>>>>           
>>>>>> a:79)
>>>>>>             
>>>>> ,----[ ResourceImpl.hashCode source ]
>>>>> |  public int hashCode()
>>>>> |  {
>>>>> |      return getSymbolicName().hashCode() ^
>>>>>           
>> getVersion().hashCode();
>>     
>>>>> |  }
>>>>> `----
>>>>>
>>>>> It looks like either the symbolic name or the version are nil. I
>>>>> haven't been able to track down all the ways this could be so. Do
>>>>>           
>> you
>>     
>>>>> know if the ResourceImpl here is a LocalResourceImpl, or one
>>>>>           
> created
>   
>>>>> by RepositoryImpl's parsing of an XML file?
>>>>>
>>>>> -- 
>>>>> Steven E. Harris
>>>>>           
>
>   

Reply via email to