felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-1017) Generic types ignored when generating MANIFEST.MF
Date Mon, 28 Mar 2011 14:38:05 GMT

    [ https://issues.apache.org/jira/browse/FELIX-1017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13012083#comment-13012083

Chris commented on FELIX-1017:

Hi Stuart,

what exactly did you fix with last upgrade 0.0.357?

We have a similar issue and I'd like to hear your opinion. 
Shortened scenario:
Project with a service-api-module with pom that tells felix to create a MANIFEST.MF because
we also use it in an Eclipse / equinox environment.
Felix omits import-package for a certain class 'Type' because no bytecode usage - (generic<Type>)
Client fails to start because (a little bit complicated): Spring Bean creation there checks
via org.aspectj.weaver.reflect... the generic type that it thinks it needs 'Type'.

My questions are: 
Is this fixed with your upgrade?
Is this more a bug of Spring checking too much?
We currently use a work-around declaring "Import-Package: Type" directly which is a little
bit unsatisfactory since it could happen again any time and this 'bug' was hard to find.

Best regards,

> Generic types ignored when generating MANIFEST.MF
> -------------------------------------------------
>                 Key: FELIX-1017
>                 URL: https://issues.apache.org/jira/browse/FELIX-1017
>             Project: Felix
>          Issue Type: Bug
>          Components: Maven Bundle Plugin
>    Affects Versions: maven-bundle-plugin-2.0.0
>            Reporter: Clovis Seragiotto
>            Assignee: Stuart McCulloch
>             Fix For: maven-bundle-plugin-2.0.1
> Generic information present in the bytecode is not considered when MANIFEST.MF is generated.
In the following example, the package "a" is not included in the Import-Package list, which
causes an Exception at runtime (TypeNotPresentException)
> package b;
> import java.lang.reflect.*;
> import a.A;
> public class B {
>     java.util.List<A> list;
>     public static void main(String[] args) {
>        for(Field f : B.class.getDeclaredFields()) {
>            ParameterizedType type = (ParameterizedType)f.getGenericType();
>            for(Type t : type.getActualTypeArguments()) {
>                System.out.println(t); // <--- java.lang.TypeNotPresentException: Type
a.A not present
>            }
>        }
>     }
> }

This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message