geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ivan <xhh...@gmail.com>
Subject Re: How to define those bundlized dependencies which would be published by Geronimo
Date Thu, 03 Dec 2009 09:19:08 GMT
Not sure whether I missed anything, From my understanding, it has nothing to
do with car-maven-plugin. While the optional is configurred with true, maven
would not add it as its dependency, and it has the same effect of marking
the original jar as an exclusion in the pom file of the project depending on
the bundle.

2009/12/3 David Jencks <david_jencks@yahoo.com>

>
> On Dec 3, 2009, at 12:24 AM, Ivan wrote:
>
> I remembered that while the configuration <optional>true</optional> is
> added, it should not cause the transitive dependency of the original jar
> file. Will re-validate it later ......
>
>
> That is not my experience.  At least, our geronimo dependency management
> doesn't see it that way.  Maybe this is a bug in the car-maven-plugin.
>
> thanks
> david jencks
>
>
> 2009/12/3 David Jencks <david_jencks@yahoo.com>
>
>>
>> On Dec 2, 2009, at 9:22 PM, Ivan wrote:
>>
>>
>>
>> 2009/12/2 David Jencks <david_jencks@yahoo.com>
>>
>>>
>>> On Dec 2, 2009, at 1:01 AM, David Jencks wrote:
>>>
>>>  I have no problem with the idea of including dependencies on bundleized
>>>> versions of the original dependencies, this seems to me like a good
>>>> convention.
>>>>
>>>> However I don't see any use in the exclusions  you show, since the
>>>> original non-bundleized jar is a dependency of the new bundle, and needs
to
>>>> be excluded whenever we use it.  Excluding the original jar will also
>>>> exclude all of its dependencies, so the exclusions you show won't have any
>>>> effect.
>>>>
>>>> I think we need to work hard to push the bundleization back into the
>>>> originating project and to modify the felix bundle plugin so the original
>>>> non-bundle doesn't end up as a transitive dependency of the bundle.
>>>>
>>>
>>> I think I found a way to avoid the transitive dependencies problem using
>>> <Embed-Package>.  Here's a bit of the jstl bundleization pom:
>>>
>>>
>>>    <dependencies>
>>>        <dependency>
>>>            <groupId>${pkgGroupId}</groupId>
>>>            <artifactId>${pkgArtifactId}</artifactId>
>>>            <version>${pkgVersion}</version>
>>>            <scope>provided</scope>
>>>        </dependency>
>>>    </dependencies>
>>>
>>>    <build>
>>>        <plugins>
>>>            <plugin>
>>>                <groupId>org.apache.felix</groupId>
>>>                <artifactId>maven-bundle-plugin</artifactId>
>>>                <!--<version>2.0.1-SNAPSHOT</version>-->
>>>                <configuration>
>>>                    <instructions>
>>>
>>>  <Export-Package>javax.servlet.jsp.jstl*;version="1.2",*</Export-Package>
>>>
>>>  <Import-Package>com.sun.org.apache*;resolution:=optional,*</Import-Package>
>>>
>>>  <!--<_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>-->
>>>
>>>  <Embed-Dependency>*;scope=provided;inline=true</Embed-Dependency>
>>>                    </instructions>
>>>                </configuration>
>>>            </plugin>
>>>        </plugins>
>>>    </build>
>>>
>>> I have some moderately extensive changes pending so I'd appreciate it if
>>> anyone interested in adopting this approach wait a day or so before
>>> committing it.
>>>
>>
>>   Could you please explain it more ? From the generated manifest.mf file
>> and the dependency tree, I did not find any different. Thanks !
>>
>>
>> The files included in the bundle should be exactly the same.  However,
>> since the dependency in the pom is marked "provided", it is not a maven
>> transitive dependency of the bundle.  Therefore the original jar does not
>> need to be excluded from the bundle when you use the bundle as a maven
>> dependency in a project.
>>
>> hope this is clearer :-)
>>
>> thanks
>> david jencks
>>
>>
>>
>>>
>>> thanks
>>> david jencks
>>>
>>>
>>>
>>>
>>>> thanks
>>>> david jencks
>>>>
>>>> On Dec 1, 2009, at 8:53 PM, Ivan wrote:
>>>>
>>>>  Hi,
>>>>>   In the plugin enabling work, we always need to exclude those
>>>>> non-bundle depdencies, and add the bundlized ones somewhere.
>>>>>   But for those bundlized 3rd componenets which would publish by
>>>>> Geronimo in the folder framework/bundles, I think we may have two ways,
take
>>>>> org.apache.geronimo.bundles/woden-impl-dom as an example, currently,
the
>>>>> dependency setting in the pom file is like :
>>>>>  <dependency>
>>>>>           <groupId>${pkgGroupId}</groupId>
>>>>>           <artifactId>${pkgArtifactId}</artifactId>
>>>>>           <version>${pkgVersion}</version>
>>>>>           <exclusions>
>>>>>               <exclusion>
>>>>>                   <groupId>org.apache.ant</groupId>
>>>>>                   <artifactId>ant</artifactId>
>>>>>               </exclusion>
>>>>>               <exclusion>
>>>>>                   <groupId>xerces</groupId>
>>>>>                   <artifactId>xercesImpl</artifactId>
>>>>>               </exclusion>
>>>>>               <exclusion>
>>>>>                   <groupId>xerces</groupId>
>>>>>                   <artifactId>xmlParserAPIs</artifactId>
>>>>>               </exclusion>
>>>>>               <exclusion>
>>>>>                   <groupId>wsdl</groupId>
>>>>>                   <artifactId>wsdl</artifactId>
>>>>>               </exclusion>
>>>>>           </exclusions>
>>>>>       </dependency>
>>>>>
>>>>>  All the non-bundlized components are excluded, so when using this
>>>>> bundle, we may also need to add the bundlized wsdl there.
>>>>>  While it seems that we could also add the bundlized wsdl in the pom
>>>>> file of org.apache.geronimo.bundles/woden-impl-dom. It may be like :
>>>>>
>>>>>  <dependencies>
>>>>>       <dependency>
>>>>>           <groupId>${pkgGroupId}</groupId>
>>>>>           <artifactId>${pkgArtifactId}</artifactId>
>>>>>           <version>${pkgVersion}</version>
>>>>>           <exclusions>
>>>>>               <exclusion>
>>>>>                   <groupId>org.apache.ant</groupId>
>>>>>                   <artifactId>ant</artifactId>
>>>>>               </exclusion>
>>>>>               <exclusion>
>>>>>                   <groupId>xerces</groupId>
>>>>>                   <artifactId>xercesImpl</artifactId>
>>>>>               </exclusion>
>>>>>               <exclusion>
>>>>>                   <groupId>xerces</groupId>
>>>>>                   <artifactId>xmlParserAPIs</artifactId>
>>>>>               </exclusion>
>>>>>               <exclusion>
>>>>>                   <groupId>wsdl</groupId>
>>>>>                   <artifactId>wsdl</artifactId>
>>>>>               </exclusion>
>>>>>           </exclusions>
>>>>>       </dependency>
>>>>>       <dependency>
>>>>>           <groupId>org.apache.servicemix.bundles</groupId>
>>>>>           <artifactId>org.apache.servicemix.bundles.wsdl4j</artifactId>
>>>>>           <version>1.6.2_2</version>
>>>>>       </dependency>
>>>>>   </dependencies>
>>>>>
>>>>>  Then, when we use it, we may not need to add bundlized wsdl there, I
>>>>> think car-maven-plugin could find it. I am thinking that we might need
a
>>>>> uniform way to do it, any comment ?
>>>>>
>>>>> --
>>>>> Ivan
>>>>>
>>>>
>>>>
>>>
>>
>>
>> --
>> Ivan
>>
>>
>>
>
>
> --
> Ivan
>
>
>


-- 
Ivan

Mime
View raw message