[jira] [Created] (FELIX-4517) Generate generic capabilities for services from blueprint and scr descriptors

2014-05-19 Thread Guillaume Nodet (JIRA)
Guillaume Nodet created FELIX-4517:
--

 Summary: Generate generic capabilities for services from blueprint 
and scr descriptors
 Key: FELIX-4517
 URL: https://issues.apache.org/jira/browse/FELIX-4517
 Project: Felix
  Issue Type: Bug
  Components: Maven Bundle Plugin
Reporter: Guillaume Nodet
Assignee: Guillaume Nodet
 Fix For: maven-bundle-plugin-2.4.1






--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (FELIX-4517) Generate generic capabilities and requirements for services from blueprint and scr descriptors

2014-05-19 Thread Guillaume Nodet (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4517?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Guillaume Nodet updated FELIX-4517:
---

Summary: Generate generic capabilities and requirements for services from 
blueprint and scr descriptors  (was: Generate generic capabilities for services 
from blueprint and scr descriptors)

 Generate generic capabilities and requirements for services from blueprint 
 and scr descriptors
 --

 Key: FELIX-4517
 URL: https://issues.apache.org/jira/browse/FELIX-4517
 Project: Felix
  Issue Type: Bug
  Components: Maven Bundle Plugin
Reporter: Guillaume Nodet
Assignee: Guillaume Nodet
 Fix For: maven-bundle-plugin-2.4.1






--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (FELIX-4517) Generate generic capabilities and requirements for services from blueprint and scr descriptors

2014-05-19 Thread Guillaume Nodet (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4517?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Guillaume Nodet resolved FELIX-4517.


Resolution: Fixed

Committing to https://svn.apache.org/repos/asf/felix/trunk ...
A   
bundleplugin/src/main/java/org/apache/felix/bundleplugin/ScrPlugin.java
A   
bundleplugin/src/main/resources/org/apache/felix/bundleplugin/scr.xsl
M   bundleplugin/pom.xml
M   
bundleplugin/src/main/java/org/apache/felix/bundleplugin/BlueprintPlugin.java
M   
bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
M   
bundleplugin/src/main/resources/org/apache/felix/bundleplugin/blueprint.xsl
M   
bundleplugin/src/test/java/org/apache/felix/bundleplugin/BlueprintComponentTest.java
Committed r1595765


 Generate generic capabilities and requirements for services from blueprint 
 and scr descriptors
 --

 Key: FELIX-4517
 URL: https://issues.apache.org/jira/browse/FELIX-4517
 Project: Felix
  Issue Type: Bug
  Components: Maven Bundle Plugin
Reporter: Guillaume Nodet
Assignee: Guillaume Nodet
 Fix For: maven-bundle-plugin-2.4.1






--
This message was sent by Atlassian JIRA
(v6.2#6252)


Re: Handling of provisional OSGi API?

2014-05-19 Thread Guillaume Nodet
The change and your proposal.  It seems to restrictive to not allow coding
against API that are being developped when not planning to release the
project before the API is.


2014-05-17 9:37 GMT+02:00 David Jencks david_jen...@yahoo.com:

 I propose we change the provisional api policy page
 http://felix.apache.org/documentation/development/provisional-osgi-api-policy.htmlto
  this (markdown source):

 The OSGi Alliance exposes provisional API that may or may not become part
 of future OSGI specifications.  This policy explains how and when Felix
 subprojects may relate to such API. Provisional OSGi API refers to anything
 in the `org.osgi.*` package namespace that is not part of a final released
 specification.

 ## Policy
 1. No Felix release may contain or refer to provisional OSGI API.
 1. Provisional API may be included and used in unreleased source code,
 however the API must be part of a final released OSGI specification before
 this felix source may be released.

 1. Although it is STRONGLY NOT RECOMMENDED, modified versions of
 provisional api may be released with these modifications:

  1. Any provisional OSGi API must be recreated in the `org.apache.felix.*`
 package name space; this effectively makes it provisional Felix API.
  1. All Felix provisional API must be marked as deprecated.
  1. All Felix provisional API exported from bundles should be exported
 with a mandatory attribute of `status=provisional`.

 ## Discussion

 The first goal of this policy is to completely avoid using provisional
 OSGi API in released Felix projects given the potential confusion and
 questions by doing so. The second goal is to make the existence of any
 released Felix provisional API completely obvious to downstream users and
 make it difficult for them to use it unknowingly. However, any such release
 is likely to involve numerous problems such as incorrect semantic
 versioning or version mismatch between the provisional and eventual osgi
 release and bundle version inflation if the felix provisional api is
 removed after the OSGI API is released.

 As an example, to provisionally export the
 `org.apache.felix.service.metatype` package, the
 `Export-Package` statement would look something like this:

 :::xml
 Export-Package
   org.apache.felix.service.metatype; version=0.1;
 mandatory=status; status=provisional
 /Export-Package

 When working with new OSGI specifications, constructing a Felix
 provisional API will likely result in parallel package structures between
 the provisional OSGi and Felix APIs. When working with existing
 specifications, it may be necessary to create extensions to existing OSGi
 interfaces in the Felix package namespace.

 Comments?

 thanks

 david jencks

 ps.  JB, Guillaume, what exactly are you +1ing?  That we keep talking?
 That the policy stay the same? Change?

 On May 16, 2014, at 7:56 PM, Richard S. Hall he...@ungoverned.org
 wrote:

  On 5/16/14, 20:43 , David Jencks wrote:
  You have a point about specs that don't get released.  And in such a
 circumstance having something released with org.osgi packages marked
 provisional would be sort of a disaster.
 
  But if a felix subproject is going to be an osgi ri, it really needs to
 be developed with the right package names.  Otherwise, for instance,
 debugging the conformance test suite will be more or less impossible, as
 well as making running the ri against the ct implausible.
 
  I believe we did have this issue with the Config Admin RI and somehow we
 managed.
 
 
  So I think I'd like the policy to say (sub) projects are strongly
 discouraged from releasing anything with a non released osgi spec api no
 matter what package it's moved to and how provisional it's marked, but it's
 ok to have unreleased org.osgi packages in source as long as either the
 spec gets released before any felix release is made or they are removed
 before any felix release is made.
 
  I don't think we can leave policy as a recommendation, because then it
 still leaves it up to whomever to decide.
 
  Again, I don't have an issue with saying it is okay in source form, but
 not in a released artifact.
 
 
 
  My next DS commits add the DTO stuff, so unless the policy is changed
 they will have to wait on github for a while.
 
  So, make a modified policy proposal and put it up for comments and
 ultimately a vote.
 
  - richard
 
 
  thanks
  david jencks
 
 
 
  On May 16, 2014, at 2:24 PM, Richard S. Hall he...@ungoverned.org
 wrote:
 
  There was thought that went into that policy, it wasn't just pulled
 out of the air...further, from experience of working on that specs that
 didn't make the cut (original OBR and Gogo), I can say the policy does a
 good job of avoiding the confusion/complication created in those cases.
 
  So, working around the policy based on personal whim, doesn't seem
 like a good idea...that sort of makes it not a policy.
 
  However, all policies can be improved. You could argue that the policy
 should 

Re: Handling of provisional OSGi API?

2014-05-19 Thread Marcel Offermans
I did not read David’s proposal that way. I think he is saying:

YES, you can code against an API that is under development, as long as you do 
not do any releases (before the API is finalized).

So only if you want to do a release before the API is finalized do you need to 
package it under the Felix namespace and deprecate it (with a provisional 
status).

The only downside I see is that, from the OSGi Alliance point of view, they are 
getting less “real world” use of their reference implementations while they are 
being developed, because this policy makes it impractical to use (in 
production) any API that is still under development. On the other hand, it’s 
not too hard for someone to write a small component that publishes such an API 
itself and “bridges” to the artifact that our project released. I think that’s 
actually a reasonable compromise.

Personally, I could also live with a policy that only requires us to put the 
API in the Felix namespace (and not mark it deprecated or anything). Once an 
artifact has been released, it’s out there anyway. On the other hand, those 
extras are not in anybody’s way and they do serve as a warning, so I’m not 
going to make an argument that we must remove them.

Greetings, Marcel

On 19 May 2014, at 9:24 , Guillaume Nodet gno...@apache.org wrote:

 The change and your proposal.  It seems to restrictive to not allow coding
 against API that are being developped when not planning to release the
 project before the API is.
 
 
 2014-05-17 9:37 GMT+02:00 David Jencks david_jen...@yahoo.com:
 
 I propose we change the provisional api policy page
 http://felix.apache.org/documentation/development/provisional-osgi-api-policy.htmlto
  this (markdown source):
 
 The OSGi Alliance exposes provisional API that may or may not become part
 of future OSGI specifications.  This policy explains how and when Felix
 subprojects may relate to such API. Provisional OSGi API refers to anything
 in the `org.osgi.*` package namespace that is not part of a final released
 specification.
 
 ## Policy
 1. No Felix release may contain or refer to provisional OSGI API.
 1. Provisional API may be included and used in unreleased source code,
 however the API must be part of a final released OSGI specification before
 this felix source may be released.
 
 1. Although it is STRONGLY NOT RECOMMENDED, modified versions of
 provisional api may be released with these modifications:
 
 1. Any provisional OSGi API must be recreated in the `org.apache.felix.*`
 package name space; this effectively makes it provisional Felix API.
 1. All Felix provisional API must be marked as deprecated.
 1. All Felix provisional API exported from bundles should be exported
 with a mandatory attribute of `status=provisional`.
 
 ## Discussion
 
 The first goal of this policy is to completely avoid using provisional
 OSGi API in released Felix projects given the potential confusion and
 questions by doing so. The second goal is to make the existence of any
 released Felix provisional API completely obvious to downstream users and
 make it difficult for them to use it unknowingly. However, any such release
 is likely to involve numerous problems such as incorrect semantic
 versioning or version mismatch between the provisional and eventual osgi
 release and bundle version inflation if the felix provisional api is
 removed after the OSGI API is released.
 
 As an example, to provisionally export the
 `org.apache.felix.service.metatype` package, the
 `Export-Package` statement would look something like this:
 
:::xml
Export-Package
  org.apache.felix.service.metatype; version=0.1;
 mandatory=status; status=provisional
/Export-Package
 
 When working with new OSGI specifications, constructing a Felix
 provisional API will likely result in parallel package structures between
 the provisional OSGi and Felix APIs. When working with existing
 specifications, it may be necessary to create extensions to existing OSGi
 interfaces in the Felix package namespace.
 
 Comments?
 
 thanks
 
 david jencks
 
 ps.  JB, Guillaume, what exactly are you +1ing?  That we keep talking?
 That the policy stay the same? Change?
 
 On May 16, 2014, at 7:56 PM, Richard S. Hall he...@ungoverned.org
 wrote:
 
 On 5/16/14, 20:43 , David Jencks wrote:
 You have a point about specs that don't get released.  And in such a
 circumstance having something released with org.osgi packages marked
 provisional would be sort of a disaster.
 
 But if a felix subproject is going to be an osgi ri, it really needs to
 be developed with the right package names.  Otherwise, for instance,
 debugging the conformance test suite will be more or less impossible, as
 well as making running the ri against the ct implausible.
 
 I believe we did have this issue with the Config Admin RI and somehow we
 managed.
 
 
 So I think I'd like the policy to say (sub) projects are strongly
 discouraged from releasing anything with a non released osgi spec api no
 

Re: Handling of provisional OSGi API?

2014-05-19 Thread David Bosschaert
On 5/16/14, 20:43 , David Jencks wrote:
 for instance, debugging the conformance test suite will be more or less 
 impossible,

Yep, if you're writing an RI in Felix and this RI needs to run as part
of the OSGi CT, it will only work if it uses the official OSGi API.
As an example take an OSGi CT that looks for a whiteboard service that
implements the org.osgi.service.http.runtime.HttpServiceRuntime
interface.
The CT will not find the implementation if it's renamed to
org.apache.felix...something. So at least to test the RI as part of
the CT you need the real API.

BTW I think it would be good if this policy could also apply to new
versions of an existing API. E.g. it should also be usable when we
move the Core API from 1.7 to 1.8 for Core R6. Thought anyone?

Cheers,

David

On 19 May 2014 10:05, Marcel Offermans marcel.offerm...@luminis.nl wrote:
 I did not read David’s proposal that way. I think he is saying:

 YES, you can code against an API that is under development, as long as you do 
 not do any releases (before the API is finalized).

 So only if you want to do a release before the API is finalized do you need 
 to package it under the Felix namespace and deprecate it (with a provisional 
 status).

 The only downside I see is that, from the OSGi Alliance point of view, they 
 are getting less “real world” use of their reference implementations while 
 they are being developed, because this policy makes it impractical to use (in 
 production) any API that is still under development. On the other hand, it’s 
 not too hard for someone to write a small component that publishes such an 
 API itself and “bridges” to the artifact that our project released. I think 
 that’s actually a reasonable compromise.

 Personally, I could also live with a policy that only requires us to put the 
 API in the Felix namespace (and not mark it deprecated or anything). Once an 
 artifact has been released, it’s out there anyway. On the other hand, those 
 extras are not in anybody’s way and they do serve as a warning, so I’m not 
 going to make an argument that we must remove them.

 Greetings, Marcel

 On 19 May 2014, at 9:24 , Guillaume Nodet gno...@apache.org wrote:

 The change and your proposal.  It seems to restrictive to not allow coding
 against API that are being developped when not planning to release the
 project before the API is.


 2014-05-17 9:37 GMT+02:00 David Jencks david_jen...@yahoo.com:

 I propose we change the provisional api policy page
 http://felix.apache.org/documentation/development/provisional-osgi-api-policy.htmlto
  this (markdown source):

 The OSGi Alliance exposes provisional API that may or may not become part
 of future OSGI specifications.  This policy explains how and when Felix
 subprojects may relate to such API. Provisional OSGi API refers to anything
 in the `org.osgi.*` package namespace that is not part of a final released
 specification.

 ## Policy
 1. No Felix release may contain or refer to provisional OSGI API.
 1. Provisional API may be included and used in unreleased source code,
 however the API must be part of a final released OSGI specification before
 this felix source may be released.

 1. Although it is STRONGLY NOT RECOMMENDED, modified versions of
 provisional api may be released with these modifications:

 1. Any provisional OSGi API must be recreated in the `org.apache.felix.*`
 package name space; this effectively makes it provisional Felix API.
 1. All Felix provisional API must be marked as deprecated.
 1. All Felix provisional API exported from bundles should be exported
 with a mandatory attribute of `status=provisional`.

 ## Discussion

 The first goal of this policy is to completely avoid using provisional
 OSGi API in released Felix projects given the potential confusion and
 questions by doing so. The second goal is to make the existence of any
 released Felix provisional API completely obvious to downstream users and
 make it difficult for them to use it unknowingly. However, any such release
 is likely to involve numerous problems such as incorrect semantic
 versioning or version mismatch between the provisional and eventual osgi
 release and bundle version inflation if the felix provisional api is
 removed after the OSGI API is released.

 As an example, to provisionally export the
 `org.apache.felix.service.metatype` package, the
 `Export-Package` statement would look something like this:

:::xml
Export-Package
  org.apache.felix.service.metatype; version=0.1;
 mandatory=status; status=provisional
/Export-Package

 When working with new OSGI specifications, constructing a Felix
 provisional API will likely result in parallel package structures between
 the provisional OSGi and Felix APIs. When working with existing
 specifications, it may be necessary to create extensions to existing OSGi
 interfaces in the Felix package namespace.

 Comments?

 thanks

 david jencks

 ps.  JB, Guillaume, what exactly are you +1ing?  That we keep 

Re: Handling of provisional OSGi API?

2014-05-19 Thread Marcel Offermans
Hello David,

On 19 May 2014, at 10:22 , David Bosschaert david.bosscha...@gmail.com wrote:

 On 5/16/14, 20:43 , David Jencks wrote:
 for instance, debugging the conformance test suite will be more or less 
 impossible,
 
 Yep, if you're writing an RI in Felix and this RI needs to run as part
 of the OSGi CT, it will only work if it uses the official OSGi API.
 As an example take an OSGi CT that looks for a whiteboard service that
 implements the org.osgi.service.http.runtime.HttpServiceRuntime
 interface.
 The CT will not find the implementation if it's renamed to
 org.apache.felix...something. So at least to test the RI as part of
 the CT you need the real API.

You do, but as far as I know you do not need a release (in the Apache sense of 
the word, meaning source code) for that as the OSGi CT only requires you to 
submit a binary artifact. And that can easily be produced without doing any 
kind of release (and should, because it’s not for public consumption usually).

 BTW I think it would be good if this policy could also apply to new
 versions of an existing API. E.g. it should also be usable when we
 move the Core API from 1.7 to 1.8 for Core R6. Thought anyone?

This policy already applies to new versions of an existing API, right?

Greetings, Marcel


 
 Cheers,
 
 David
 
 On 19 May 2014 10:05, Marcel Offermans marcel.offerm...@luminis.nl wrote:
 I did not read David’s proposal that way. I think he is saying:
 
 YES, you can code against an API that is under development, as long as you 
 do not do any releases (before the API is finalized).
 
 So only if you want to do a release before the API is finalized do you need 
 to package it under the Felix namespace and deprecate it (with a provisional 
 status).
 
 The only downside I see is that, from the OSGi Alliance point of view, they 
 are getting less “real world” use of their reference implementations while 
 they are being developed, because this policy makes it impractical to use 
 (in production) any API that is still under development. On the other hand, 
 it’s not too hard for someone to write a small component that publishes such 
 an API itself and “bridges” to the artifact that our project released. I 
 think that’s actually a reasonable compromise.
 
 Personally, I could also live with a policy that only requires us to put the 
 API in the Felix namespace (and not mark it deprecated or anything). Once an 
 artifact has been released, it’s out there anyway. On the other hand, those 
 extras are not in anybody’s way and they do serve as a warning, so I’m not 
 going to make an argument that we must remove them.
 
 Greetings, Marcel
 
 On 19 May 2014, at 9:24 , Guillaume Nodet gno...@apache.org wrote:
 
 The change and your proposal.  It seems to restrictive to not allow coding
 against API that are being developped when not planning to release the
 project before the API is.
 
 
 2014-05-17 9:37 GMT+02:00 David Jencks david_jen...@yahoo.com:
 
 I propose we change the provisional api policy page
 http://felix.apache.org/documentation/development/provisional-osgi-api-policy.htmlto
  this (markdown source):
 
 The OSGi Alliance exposes provisional API that may or may not become part
 of future OSGI specifications.  This policy explains how and when Felix
 subprojects may relate to such API. Provisional OSGi API refers to anything
 in the `org.osgi.*` package namespace that is not part of a final released
 specification.
 
 ## Policy
 1. No Felix release may contain or refer to provisional OSGI API.
 1. Provisional API may be included and used in unreleased source code,
 however the API must be part of a final released OSGI specification before
 this felix source may be released.
 
 1. Although it is STRONGLY NOT RECOMMENDED, modified versions of
 provisional api may be released with these modifications:
 
 1. Any provisional OSGi API must be recreated in the `org.apache.felix.*`
 package name space; this effectively makes it provisional Felix API.
 1. All Felix provisional API must be marked as deprecated.
 1. All Felix provisional API exported from bundles should be exported
 with a mandatory attribute of `status=provisional`.
 
 ## Discussion
 
 The first goal of this policy is to completely avoid using provisional
 OSGi API in released Felix projects given the potential confusion and
 questions by doing so. The second goal is to make the existence of any
 released Felix provisional API completely obvious to downstream users and
 make it difficult for them to use it unknowingly. However, any such release
 is likely to involve numerous problems such as incorrect semantic
 versioning or version mismatch between the provisional and eventual osgi
 release and bundle version inflation if the felix provisional api is
 removed after the OSGI API is released.
 
 As an example, to provisionally export the
 `org.apache.felix.service.metatype` package, the
 `Export-Package` statement would look something like this:
 
   :::xml
   Export-Package
  

Re: Handling of provisional OSGi API?

2014-05-19 Thread David Bosschaert
On 19 May 2014 10:54, Marcel Offermans marcel.offerm...@luminis.nl wrote:
 Hello David,

 On 19 May 2014, at 10:22 , David Bosschaert david.bosscha...@gmail.com 
 wrote:

 On 5/16/14, 20:43 , David Jencks wrote:
 for instance, debugging the conformance test suite will be more or less 
 impossible,

 Yep, if you're writing an RI in Felix and this RI needs to run as part
 of the OSGi CT, it will only work if it uses the official OSGi API.
 As an example take an OSGi CT that looks for a whiteboard service that
 implements the org.osgi.service.http.runtime.HttpServiceRuntime
 interface.
 The CT will not find the implementation if it's renamed to
 org.apache.felix...something. So at least to test the RI as part of
 the CT you need the real API.

 You do, but as far as I know you do not need a release (in the Apache sense 
 of the word, meaning source code) for that as the OSGi CT only requires you 
 to submit a binary artifact. And that can easily be produced without doing 
 any kind of release (and should, because it’s not for public consumption 
 usually).

Yep, correct. When OSGi releases the RIs and CTs they do want to be
able to correlate an RI binary to a commit in the source code tree
(e.g. by mentioning a tag or commit ID in the manifest), but it
doesn't have to be an official release.

 BTW I think it would be good if this policy could also apply to new
 versions of an existing API. E.g. it should also be usable when we
 move the Core API from 1.7 to 1.8 for Core R6. Thought anyone?

 This policy already applies to new versions of an existing API, right?

Great.

Cheers,

David


Re: Handling of provisional OSGi API?

2014-05-19 Thread Carsten Ziegeler
+1 sounds good to me


2014-05-17 9:37 GMT+02:00 David Jencks david_jen...@yahoo.com:

 I propose we change the provisional api policy page
 http://felix.apache.org/documentation/development/provisional-osgi-api-policy.htmlto
  this (markdown source):

 The OSGi Alliance exposes provisional API that may or may not become part
 of future OSGI specifications.  This policy explains how and when Felix
 subprojects may relate to such API. Provisional OSGi API refers to anything
 in the `org.osgi.*` package namespace that is not part of a final released
 specification.

 ## Policy
 1. No Felix release may contain or refer to provisional OSGI API.
 1. Provisional API may be included and used in unreleased source code,
 however the API must be part of a final released OSGI specification before
 this felix source may be released.

 1. Although it is STRONGLY NOT RECOMMENDED, modified versions of
 provisional api may be released with these modifications:

  1. Any provisional OSGi API must be recreated in the `org.apache.felix.*`
 package name space; this effectively makes it provisional Felix API.
  1. All Felix provisional API must be marked as deprecated.
  1. All Felix provisional API exported from bundles should be exported
 with a mandatory attribute of `status=provisional`.

 ## Discussion

 The first goal of this policy is to completely avoid using provisional
 OSGi API in released Felix projects given the potential confusion and
 questions by doing so. The second goal is to make the existence of any
 released Felix provisional API completely obvious to downstream users and
 make it difficult for them to use it unknowingly. However, any such release
 is likely to involve numerous problems such as incorrect semantic
 versioning or version mismatch between the provisional and eventual osgi
 release and bundle version inflation if the felix provisional api is
 removed after the OSGI API is released.

 As an example, to provisionally export the
 `org.apache.felix.service.metatype` package, the
 `Export-Package` statement would look something like this:

 :::xml
 Export-Package
   org.apache.felix.service.metatype; version=0.1;
 mandatory=status; status=provisional
 /Export-Package

 When working with new OSGI specifications, constructing a Felix
 provisional API will likely result in parallel package structures between
 the provisional OSGi and Felix APIs. When working with existing
 specifications, it may be necessary to create extensions to existing OSGi
 interfaces in the Felix package namespace.

 Comments?

 thanks

 david jencks

 ps.  JB, Guillaume, what exactly are you +1ing?  That we keep talking?
 That the policy stay the same? Change?

 On May 16, 2014, at 7:56 PM, Richard S. Hall he...@ungoverned.org
 wrote:

  On 5/16/14, 20:43 , David Jencks wrote:
  You have a point about specs that don't get released.  And in such a
 circumstance having something released with org.osgi packages marked
 provisional would be sort of a disaster.
 
  But if a felix subproject is going to be an osgi ri, it really needs to
 be developed with the right package names.  Otherwise, for instance,
 debugging the conformance test suite will be more or less impossible, as
 well as making running the ri against the ct implausible.
 
  I believe we did have this issue with the Config Admin RI and somehow we
 managed.
 
 
  So I think I'd like the policy to say (sub) projects are strongly
 discouraged from releasing anything with a non released osgi spec api no
 matter what package it's moved to and how provisional it's marked, but it's
 ok to have unreleased org.osgi packages in source as long as either the
 spec gets released before any felix release is made or they are removed
 before any felix release is made.
 
  I don't think we can leave policy as a recommendation, because then it
 still leaves it up to whomever to decide.
 
  Again, I don't have an issue with saying it is okay in source form, but
 not in a released artifact.
 
 
 
  My next DS commits add the DTO stuff, so unless the policy is changed
 they will have to wait on github for a while.
 
  So, make a modified policy proposal and put it up for comments and
 ultimately a vote.
 
  - richard
 
 
  thanks
  david jencks
 
 
 
  On May 16, 2014, at 2:24 PM, Richard S. Hall he...@ungoverned.org
 wrote:
 
  There was thought that went into that policy, it wasn't just pulled
 out of the air...further, from experience of working on that specs that
 didn't make the cut (original OBR and Gogo), I can say the policy does a
 good job of avoiding the confusion/complication created in those cases.
 
  So, working around the policy based on personal whim, doesn't seem
 like a good idea...that sort of makes it not a policy.
 
  However, all policies can be improved. You could argue that the policy
 should simply be modified, as David suggests, to say only released
 subprojects must not contain provisional API.
 
  I'd personally be fine with that, but such a 

[jira] [Commented] (FELIX-4145) bundleall goal failure

2014-05-19 Thread NeMewSys (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14001622#comment-14001622
 ] 

NeMewSys commented on FELIX-4145:
-

Guys... Bundleall is deprecated but what else do we have left?
Please can you post an answer here?

http://stackoverflow.com/questions/23737169/managing-osgi-dependency-hell

Thanks!

 bundleall goal failure
 --

 Key: FELIX-4145
 URL: https://issues.apache.org/jira/browse/FELIX-4145
 Project: Felix
  Issue Type: Bug
  Components: Maven Bundle Plugin
Affects Versions: maven-bundle-plugin-2.4.0
 Environment: Linux 64-bit, Oracle JDK 1.7.0_25-b15, Apache Maven 3.0.4
Reporter: Amichai Rothman

 When running the bundleall goaI in version 2.4.0 I get the error below. If I 
 revert to 2.3.7 (and change nothing else) everything works ok.
 [ERROR] Failed to execute goal 
 org.apache.felix:maven-bundle-plugin:2.4.0:bundleall (default-cli) on project 
 myproject: Error generating OSGi bundle for project 
 org.apache.geronimo.specs:geronimo-jms_1.1_spec: 
 aQute.bnd.osgi.Descriptors$PackageRef cannot be cast to java.lang.String - 
 [Help 1]
 org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute 
 goal org.apache.felix:maven-bundle-plugin:2.4.0:bundleall (default-cli) on 
 project myproject: Error generating OSGi bundle for project 
 org.apache.geronimo.specs:geronimo-jms_1.1_spec
 at 
 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
 at 
 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
 at 
 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
 at 
 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
 at 
 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
 at 
 org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
 at 
 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
 at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
 at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
 at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
 at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
 at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:606)
 at 
 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
 at 
 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
 at 
 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
 at 
 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
 Caused by: org.apache.maven.plugin.MojoExecutionException: Error generating 
 OSGi bundle for project org.apache.geronimo.specs:geronimo-jms_1.1_spec
 at 
 org.apache.felix.bundleplugin.BundleAllPlugin.bundle(BundleAllPlugin.java:399)
 at 
 org.apache.felix.bundleplugin.BundleAllPlugin.bundleRoot(BundleAllPlugin.java:322)
 at 
 org.apache.felix.bundleplugin.BundleAllPlugin.bundleAll(BundleAllPlugin.java:213)
 at 
 org.apache.felix.bundleplugin.BundleAllPlugin.bundleAll(BundleAllPlugin.java:289)
 at 
 org.apache.felix.bundleplugin.BundleAllPlugin.bundleAll(BundleAllPlugin.java:289)
 at 
 org.apache.felix.bundleplugin.BundleAllPlugin.bundleAll(BundleAllPlugin.java:170)
 at 
 org.apache.felix.bundleplugin.BundleAllPlugin.execute(BundleAllPlugin.java:157)
 at 
 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
 at 
 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
 ... 19 more
 Caused by: java.lang.ClassCastException: 
 aQute.bnd.osgi.Descriptors$PackageRef cannot be cast to java.lang.String
 at 
 org.apache.felix.bundleplugin.BundleAllPlugin.addExportedPackages(BundleAllPlugin.java:420)
 at 
 org.apache.felix.bundleplugin.BundleAllPlugin.bundle(BundleAllPlugin.java:388)
 ... 27 more



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[VOTE] SCR Tooling Release

2014-05-19 Thread Carsten Ziegeler
Hi,

This vote is about adding java 8 support to our SCR tool chain.
https://issues.apache.org/jira/browse/FELIX-4461

It consists of the following releases:

SCR Generator 1.10.0
Maven SCR Plugin 1.17.0
SCR Ant Task 1.11.0
Bnd SCR Plugin 1.1.0

Staging repository:
https://repository.apache.org/content/repositories/orgapachefelix-1018/

You can use this UNIX script to download the release and verify the
signatures:
http://svn.apache.org/repos/asf/felix/trunk/check_staged_release.sh

Usage:
sh check_staged_release.sh 1018 /tmp/felix-staging


Please vote to approve this release:

 [ ] +1 Approve the release
 [ ]  0 Don't care
 [ ] -1 Don't release, because ...

This vote will be open for 72 hours.

Regards
Carsten

-- 
Carsten Ziegeler
cziege...@apache.org


Re: [VOTE] SCR Tooling Release

2014-05-19 Thread Carsten Ziegeler
+1

Carsten


2014-05-19 14:15 GMT+02:00 Carsten Ziegeler cziege...@apache.org:

 Hi,

 This vote is about adding java 8 support to our SCR tool chain.
 https://issues.apache.org/jira/browse/FELIX-4461

 It consists of the following releases:

 SCR Generator 1.10.0
 Maven SCR Plugin 1.17.0
 SCR Ant Task 1.11.0
 Bnd SCR Plugin 1.1.0

 Staging repository:
 https://repository.apache.org/content/repositories/orgapachefelix-1018/

 You can use this UNIX script to download the release and verify the
 signatures:
 http://svn.apache.org/repos/asf/felix/trunk/check_staged_release.sh

 Usage:
 sh check_staged_release.sh 1018 /tmp/felix-staging


 Please vote to approve this release:

  [ ] +1 Approve the release
  [ ]  0 Don't care
  [ ] -1 Don't release, because ...

 This vote will be open for 72 hours.

 Regards
 Carsten

 --
 Carsten Ziegeler
 cziege...@apache.org




-- 
Carsten Ziegeler
cziege...@apache.org


[jira] [Commented] (FELIX-4512) Add a new Mojo to invoke the BND Baseline tool

2014-05-19 Thread Carsten Ziegeler (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14001695#comment-14001695
 ] 

Carsten Ziegeler commented on FELIX-4512:
-

It seems that the update of bnd is causing new headers to be created 
automatically:
Provide-Capability and Require-Capability and in one project I get now the error
 osgi.service osgi.service must have the objectClass attribute set

 Add a new Mojo to invoke the BND Baseline tool
 --

 Key: FELIX-4512
 URL: https://issues.apache.org/jira/browse/FELIX-4512
 Project: Felix
  Issue Type: New Feature
  Components: Maven Bundle Plugin
Affects Versions: maven-bundle-plugin-2.4.0
Reporter: Simone Tripodi
Assignee: Carsten Ziegeler
 Fix For: maven-bundle-plugin-2.4.1

 Attachments: FELIX-4512.1.patch, FELIX-4512.2.patch, 
 FELIX-4512.patch, Screen Shot 2014-05-13 at 11.49.44 PM.pdf


 The BND 2.2.0 library contains an extraordinary tool called 
 [Baseline|http://www.aqute.biz/Bnd/Versioning] (see Baselining paragraph) 
 that compares the public API of a bundle with the public API of another 
 bundle.
 It would be really useful to have this tool in the {{maven-bundle-plugin}} in 
 order to keep track of APIs modifications during development time.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (FELIX-4512) Add a new Mojo to invoke the BND Baseline tool

2014-05-19 Thread Simone Tripodi (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14001704#comment-14001704
 ] 

Simone Tripodi commented on FELIX-4512:
---

Is it related to the {{bundle}} plugin, or the {{baseline}} one? The first, I 
guess... :(

 Add a new Mojo to invoke the BND Baseline tool
 --

 Key: FELIX-4512
 URL: https://issues.apache.org/jira/browse/FELIX-4512
 Project: Felix
  Issue Type: New Feature
  Components: Maven Bundle Plugin
Affects Versions: maven-bundle-plugin-2.4.0
Reporter: Simone Tripodi
Assignee: Carsten Ziegeler
 Fix For: maven-bundle-plugin-2.4.1

 Attachments: FELIX-4512.1.patch, FELIX-4512.2.patch, 
 FELIX-4512.patch, Screen Shot 2014-05-13 at 11.49.44 PM.pdf


 The BND 2.2.0 library contains an extraordinary tool called 
 [Baseline|http://www.aqute.biz/Bnd/Versioning] (see Baselining paragraph) 
 that compares the public API of a bundle with the public API of another 
 bundle.
 It would be really useful to have this tool in the {{maven-bundle-plugin}} in 
 order to keep track of APIs modifications during development time.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (FELIX-4512) Add a new Mojo to invoke the BND Baseline tool

2014-05-19 Thread Carsten Ziegeler (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14001733#comment-14001733
 ] 

Carsten Ziegeler commented on FELIX-4512:
-

Yes, right - it's related to the bundle plugin

 Add a new Mojo to invoke the BND Baseline tool
 --

 Key: FELIX-4512
 URL: https://issues.apache.org/jira/browse/FELIX-4512
 Project: Felix
  Issue Type: New Feature
  Components: Maven Bundle Plugin
Affects Versions: maven-bundle-plugin-2.4.0
Reporter: Simone Tripodi
Assignee: Carsten Ziegeler
 Fix For: maven-bundle-plugin-2.4.1

 Attachments: FELIX-4512.1.patch, FELIX-4512.2.patch, 
 FELIX-4512.patch, Screen Shot 2014-05-13 at 11.49.44 PM.pdf


 The BND 2.2.0 library contains an extraordinary tool called 
 [Baseline|http://www.aqute.biz/Bnd/Versioning] (see Baselining paragraph) 
 that compares the public API of a bundle with the public API of another 
 bundle.
 It would be really useful to have this tool in the {{maven-bundle-plugin}} in 
 order to keep track of APIs modifications during development time.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (FELIX-4512) Add a new Mojo to invoke the BND Baseline tool

2014-05-19 Thread Simone Tripodi (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14001750#comment-14001750
 ] 

Simone Tripodi commented on FELIX-4512:
---

I stumbled in a Bnd [issue|https://github.com/bndtools/bnd/issues/413] where it 
is stated that {{Require-Capability}} should be automatically generated only 
for _osgi.ee_... WDYT?

 Add a new Mojo to invoke the BND Baseline tool
 --

 Key: FELIX-4512
 URL: https://issues.apache.org/jira/browse/FELIX-4512
 Project: Felix
  Issue Type: New Feature
  Components: Maven Bundle Plugin
Affects Versions: maven-bundle-plugin-2.4.0
Reporter: Simone Tripodi
Assignee: Carsten Ziegeler
 Fix For: maven-bundle-plugin-2.4.1

 Attachments: FELIX-4512.1.patch, FELIX-4512.2.patch, 
 FELIX-4512.patch, Screen Shot 2014-05-13 at 11.49.44 PM.pdf


 The BND 2.2.0 library contains an extraordinary tool called 
 [Baseline|http://www.aqute.biz/Bnd/Versioning] (see Baselining paragraph) 
 that compares the public API of a bundle with the public API of another 
 bundle.
 It would be really useful to have this tool in the {{maven-bundle-plugin}} in 
 order to keep track of APIs modifications during development time.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[DS] Various factory component issues, and progress on RFC 190

2014-05-19 Thread David Jencks
Hi,

I've been working on implementing the proposed rfc 190 changes to DS in felix 
scr.  I've committed some work and have most of the DTO and multiple pid 
support implemented locally.  The major bits I haven't started on yet are 
configuration through annotations and scope support (for exposed services and 
for references).  I don't expect either of these to be particularly difficult, 
but then I haven't started.

There are some difficulties with factory components and DTO/mutliple pid 
support.  In terms of the spec, DTO and factory components don't work well 
together, see bug 2683 (I'm not sure how visible this is to non-osgi-members).  
In Felix,

1. I think we should not support the obsolete factory configuration  
newInstance-like behavior on namespace 1.3+ components.  We shouldn't have 
supported it after namespace 1.0, but we should stop now for sure. Trying to 
support this with multiple pids is just too weird.

2. Because of how I implemented multiple pid support for normal components, I 
think it would be easy to Implement factory config  multiple instances of the 
ComponentFactory service.  I believe this behavior was requested by Pierre de 
Rop.  There's an additional problem if you do this that you can't distinguish 
the ComponentFactory services registered from the multiple factory 
configurations.  To solve this I propose that configuration properties prefixed 
with org.apache.felix.scr.factory. (exact string up for discussion) be added 
to the ComponentFactory service properties.  Of course all this would have to 
be enabled by an flag in the xml such as 
felix:factoryComponentFactoryPID=true (no good ideas on this one yet).

As a reminder, a few days ago I said I was about to remove the legacy 
configuration system entirely in favor of the spec one based on DTOs since they 
are conceptually incompatible and the existing one is fundamentally confused.  
So far no response so it's going soon….

Comments?

thanks
david jencks



Re: [DS] Various factory component issues, and progress on RFC 190

2014-05-19 Thread Carsten Ziegeler
Hi,


2014-05-19 22:57 GMT+02:00 David Jencks david_jen...@yahoo.com:

 There are some difficulties with factory components and DTO/mutliple pid
 support.  In terms of the spec, DTO and factory components don't work well
 together, see bug 2683 (I'm not sure how visible this is to
 non-osgi-members).  In Felix,

 1. I think we should not support the obsolete factory configuration 
 newInstance-like behavior on namespace 1.3+ components.  We shouldn't have
 supported it after namespace 1.0, but we should stop now for sure. Trying
 to support this with multiple pids is just too weird.

 +1, yes we should have dropped that support with earlier namespaces :(


 2. Because of how I implemented multiple pid support for normal
 components, I think it would be easy to Implement factory config  multiple
 instances of the ComponentFactory service.  I believe this behavior was
 requested by Pierre de Rop.  There's an additional problem if you do this
 that you can't distinguish the ComponentFactory services registered from
 the multiple factory configurations.  To solve this I propose that
 configuration properties prefixed with org.apache.felix.scr.factory.
 (exact string up for discussion) be added to the ComponentFactory service
 properties.  Of course all this would have to be enabled by an flag in the
 xml such as felix:factoryComponentFactoryPID=true (no good ideas on this
 one yet).


Sounds fine to me. Would it make sense to get this into RFC190?


 As a reminder, a few days ago I said I was about to remove the legacy
 configuration system entirely in favor of the spec one based on DTOs since
 they are conceptually incompatible and the existing one is fundamentally
 confused.  So far no response so it's going soon….

I agree, let's just go forward with the DTOs

Carsten



 Comments?

 thanks
 david jencks




-- 
Carsten Ziegeler
cziege...@apache.org


[jira] [Reopened] (FELIX-4517) Generate generic capabilities and requirements for services from blueprint and scr descriptors

2014-05-19 Thread Carsten Ziegeler (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4517?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Carsten Ziegeler reopened FELIX-4517:
-


 Generate generic capabilities and requirements for services from blueprint 
 and scr descriptors
 --

 Key: FELIX-4517
 URL: https://issues.apache.org/jira/browse/FELIX-4517
 Project: Felix
  Issue Type: Bug
  Components: Maven Bundle Plugin
Reporter: Guillaume Nodet
Assignee: Guillaume Nodet
 Fix For: maven-bundle-plugin-2.4.1






--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (FELIX-4517) Generate generic capabilities and requirements for services from blueprint and scr descriptors

2014-05-19 Thread Carsten Ziegeler (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4517?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14002820#comment-14002820
 ] 

Carsten Ziegeler commented on FELIX-4517:
-

With this enabled, I now get errors in projects like
osgi.service osgi.service must have the objectClass attribute set

These projects were working/building fine before.
Is there any switch to enable/disable this feature?

 Generate generic capabilities and requirements for services from blueprint 
 and scr descriptors
 --

 Key: FELIX-4517
 URL: https://issues.apache.org/jira/browse/FELIX-4517
 Project: Felix
  Issue Type: Bug
  Components: Maven Bundle Plugin
Reporter: Guillaume Nodet
Assignee: Guillaume Nodet
 Fix For: maven-bundle-plugin-2.4.1






--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (FELIX-4512) Add a new Mojo to invoke the BND Baseline tool

2014-05-19 Thread Carsten Ziegeler (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14002821#comment-14002821
 ] 

Carsten Ziegeler commented on FELIX-4512:
-

This is actually not caused by this issue but by FELIX-4517

 Add a new Mojo to invoke the BND Baseline tool
 --

 Key: FELIX-4512
 URL: https://issues.apache.org/jira/browse/FELIX-4512
 Project: Felix
  Issue Type: New Feature
  Components: Maven Bundle Plugin
Affects Versions: maven-bundle-plugin-2.4.0
Reporter: Simone Tripodi
Assignee: Carsten Ziegeler
 Fix For: maven-bundle-plugin-2.4.1

 Attachments: FELIX-4512.1.patch, FELIX-4512.2.patch, 
 FELIX-4512.patch, Screen Shot 2014-05-13 at 11.49.44 PM.pdf


 The BND 2.2.0 library contains an extraordinary tool called 
 [Baseline|http://www.aqute.biz/Bnd/Versioning] (see Baselining paragraph) 
 that compares the public API of a bundle with the public API of another 
 bundle.
 It would be really useful to have this tool in the {{maven-bundle-plugin}} in 
 order to keep track of APIs modifications during development time.



--
This message was sent by Atlassian JIRA
(v6.2#6252)