You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Christoph Emmersberger (JIRA)" <ji...@apache.org> on 2014/02/20 15:58:22 UTC

[jira] [Updated] (WICKET-5511) Import cglib dependencies in Manifest with version numbers

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

Christoph Emmersberger updated WICKET-5511:
-------------------------------------------

    Attachment: WICKET-5511.patch

Hi

yes, I have seen, how Wicket creates it's manifest files and did dome more research, including a proposed patch:

(1) Wicket-Core does not directly rely on any CGLib dependency. However, when installing wicket-core within an OSGi container, wicket seems to pull some transitive dependencies to CGLib. I have not investigated  on where the actually dependency chain comes from.
In case you have no other CGlib version in your container, there is no issue installing wicket-core. Only if you want to maintain multiple versions of a single bundle in your OSGi environment (exactly as OSGi was originally designed for), you run into trouble not resolving the correct versions.
The following output shows, that Karaf as an OSGi container pulls a CGLib dependency on wicket-core.

List of bundles after installing Wicket feature from PAX-WICKET
{code}
karaf@root()> bundle:list 
START LEVEL 100 , List Threshold: 50
 ID | State  | Lvl | Version | Name                                 
--------------------------------------------------------------------
 99 | Active |  80 | 2.2.2.1 | Apache ServiceMix :: Bundles :: cglib
100 | Active |  80 | 6.7.0   | Wicket Util                          
101 | Active |  80 | 6.7.0   | Wicket Request                       
102 | Active |  80 | 6.7.0   | Wicket Core                          
103 | Active |  80 | 6.7.0   | Wicket Auth Roles                    
104 | Active |  80 | 6.7.0   | Wicket Extensions
{code}

Detailed dependency information for Wicket Core:
{code}
Bundle Location: mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.cglib/2.2.2_1
Importing Bundles: org.apache.wicket.core, org.springframework.core
{code}

(2) I did not ask to upgrade to any other CGLib version, since I encountered a code break when conducting the change. It seems that CGLib has changed some parts of it's API or Wicket is using it differently.
(3) Please find attached a patch that may resolve the dependency issue. What I've done so far is:
a) Introduce a variable containing the CGLib version
b) Adjust the {code}<Import-Package>{code} statement to pull the correct CGLib version.

Before applying the patch, I'd like to do the following
a) Run a more detailed analysis on the root cause
b) Check if there is any other solution that can be back ported without handling the dirty maven-shade fix.

Best,

Christoph

> Import cglib dependencies in Manifest with version numbers
> ----------------------------------------------------------
>
>                 Key: WICKET-5511
>                 URL: https://issues.apache.org/jira/browse/WICKET-5511
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket
>    Affects Versions: 6.7.0, 6.8.0, 6.9.0, 6.9.1, 6.10.0, 6.11.0, 6.12.0, 6.13.0, 7.0.0
>            Reporter: Christoph Emmersberger
>         Attachments: WICKET-5511.patch
>
>
> I have recently encountered an issue when using Wicket in an OSGI environment since the CGLIB version is not imported with the appropriate version number.
> A full description about that issue has been filed in the PAX-WICKET JIRA:
> https://ops4j1.jira.com/browse/PAXWICKET-455
> It would be really helpful to add the import statement with correct version number since this resolves the issue of OSGi bundle resolution.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)