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 08:24:04 GMT
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 ......

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

Mime
View raw message