I understand now, you are mixing BaseActivator and karaf-services-maven-plugin.

If you use Karaf-services-maven-plugin, you should not use the Activator for 
command (only for services, tracker, etc).

Regards
JB

> Le 13 juil. 2020 à 14:56, Paul Spencer <[email protected]> a écrit :
> 
> JB,
> 
> 
>> On Jul 13, 2020, at 12:40 AM, Jean-Baptiste Onofre <[email protected]> wrote:
>> 
>> Hi Paul,
>> 
>> Not sure I fully understand what you mean, but ignoring Activator from a 
>> command perspective is by design.
> 
> You say Activators are ignored by design, so why are services treated 
> differently?
> 
>> 
>> The plugin scans for any packages part of the bundle (export or private, but 
>> not import). In your case, if foo is imported, it’s not scanned as it will 
>> register its own commands by its own (it’s to avoid to have some commands 
>> register by several bundles).
> 
> How do I mark foo as imported?
> 
>> If foo is private to "bar", then, commands will be scanned and added.
>> 
>> Regards
>> JB
>> 
> 
> Paul Spencer
> 
>>> Le 13 juil. 2020 à 00:42, Paul Spencer <[email protected]> a écrit 
>>> :
>>> 
>>> Karaf 4.2.9
>>> 
>>> I have a bundle "bar" with commands declared with @Service.  The bundle has 
>>> dependency on "foo" which also containing commands declared using @Service. 
>>> Commands from "bar" and "foo" are included in the "Karaf-Commands" of 
>>> MANIFEST.MF
>>> 
>>> Looking at the karaf-services-maven-plugin, specifically 
>>> GenerateServieMetaData.java, I see where Activators not in the output class 
>>> path are ignored.  There is not such check for services.
>>> 
>>> Identification of Bundle Activators defined in dependency are ignored, but 
>>> Services are not.  Is this a bug in the karaf-services-maven-plugin?
>>> 
>>> ***
>>> * MANIFEST.MF
>>> ***
>>> From Karaf-Commands = com.foo.internal,com.bar.internal.commands
>>> 
>>> ***
>>> * From the Maven Build
>>> ***
>>> [INFO] --- karaf-services-maven-plugin:4.2.9:service-metadata-generate 
>>> (service-metadata-generate) @ ewm-tpm-server ---
>>> [INFO] Ignoring 
>>> jar:file:/Users/paul/.m2/repository/com/foo/2.0.0-SNAPSHOT/foo-2.0.0-SNAPSHOT.jar!/com/foo/internal/Activator.class
>>> [INFO] Service com.foo.internal.JobsListCommand
>>> [INFO] Service com.foo.internal.JobResumeCommand
>>> [INFO] Service com.foo.internal.JobPauseCommand
>>> [INFO] Service com.bar.internal.commands.AddCommand
>>> [INFO] Service com.bar.internal.commands.StatusCommand
>>> [INFO] Service com.bar.internal.commands.UpdateCommand
>>> [INFO] Service com.bar.internal.commands.ListCommand
>>> 
>>> 
>>> ***
>>> * org.apache.karaf.tooling.tracker.GenerateServieMetaData
>>> *  
>>> https://github.com/apache/karaf/blob/master/tooling/karaf-services-maven-plugin/src/main/java/org/apache/karaf/tooling/tracker/GenerateServiceMetadata.java
>>> ***
>>>              URL classUrl = 
>>> clazz.getClassLoader().getResource(clazz.getName().replace('.', '/') + 
>>> ".class");
>>>              URL outputDirectoryUrl = new 
>>> File(project.getBuild().getOutputDirectory()).toURI().toURL();
>>>              if (classUrl == null || 
>>> !classUrl.getPath().startsWith(outputDirectoryUrl.getPath())) {
>>>                  getLog().info("Ignoring " + classUrl);
>>>                  continue;
>>>              }
>>> ...
>>> 
>>>          for (Class<?> clazz : services) {
>>>              getLog().info("Service " + clazz.getCanonicalName());
>>>              packages.add(clazz.getPackage().getName());
>>>          }
>>> 
>>> 
>>> Paul Spencer
>>> 
>>> 
>>> 
>> 
> 

Reply via email to