aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dominik Przybysz (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ARIES-1772) Add an option to blueprint-maven-plugin to exclude dependencies.
Date Sun, 11 Feb 2018 22:00:03 GMT

    [ https://issues.apache.org/jira/browse/ARIES-1772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16360145#comment-16360145
] 

Dominik Przybysz commented on ARIES-1772:
-----------------------------------------

Hi Daniel,

I have reproduced first of your errors. Excluding dependencies does not solve this problem.
It is because BMP does not 
use BND, but java reflections where your class is needed with all dependencies.

I have encountered similar problem and solve it by adding dependency (which you describe as
provided) to plugin dependencies. I have added the test for such problem to BMP itests.

The second problem is problem with your manifest and it is not connected with BMP. If you
want to use external class XYZ then you have to have its package defined in Import-Package.

> Add an option to blueprint-maven-plugin to exclude dependencies.
> ----------------------------------------------------------------
>
>                 Key: ARIES-1772
>                 URL: https://issues.apache.org/jira/browse/ARIES-1772
>             Project: Aries
>          Issue Type: New Feature
>          Components: Blueprint
>    Affects Versions: blueprint-maven-plugin-1.9.0
>            Reporter: Daniel Estermann
>            Assignee: Dominik Przybysz
>            Priority: Major
>
> Currently the list of scanned classes by blueprint-maven-plugin can be restricted using scanPath
parameter, so the list can also contain the classes of the project dependencies. With my
projects I experience two kind of issues with it:
>  * If the the scan path is chosen too widely it may lead to a build failure. For example:
Assume project A has a dependency to project B an both have the same base package, which is
chosen as the scan path. Project B has a blueprint bean, which implements an interface from
some +provided+ dependency of it. The build of project A will fail then, because it will
try to scan a blueprint bean of project B but it will miss its provided dependency. An example
error message:
>  
> {code:java}
> Failed to execute goal org.apache.aries.blueprint:blueprint-maven-plugin:1.9.0:blueprint-generate
(default) on project email-template-editor-core: Execution default of goal org.apache.aries.blueprint:blueprint-maven-plugin:1.9.0:blueprint-generate
failed: A required class was missing while executing org.apache.aries.blueprint:blueprint-maven-plugin:1.9.0:blueprint-generate:
com/mycorporation/scheduler/api/ScheduledService{code}
>  
>  * If a bean of project B appears in the autowire.xml of project A, but the package of
that bean is not imported in the manifest of project A, a ClassNotFoundException will be
thrown during runtime:
>  
> {code:java}
> java.lang.ClassNotFoundException: com.mycorporation.project-a.commons.notification.IncomingNotificationService
from [Module "deployment.com.mycorporation.project-b.commons.core:0.0.1.SNAPSHOT" from Service
Module Loader]
> {code}
>  
> I suggest to add an option, to exclude dependencies from the list of scanned classes,
like [maven-bundle-plugin's excludeDependencies|http://felix.apache.org/components/bundle-plugin/bundle-mojo.html#excludeDependencies]
for example, and give this option per default such value as to exclude all dependencies.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message