You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Carsten Ziegeler (JIRA)" <ji...@apache.org> on 2012/06/13 13:49:43 UTC

[jira] [Created] (FELIX-3550) Reimplement the SCR Generator

Carsten Ziegeler created FELIX-3550:
---------------------------------------

             Summary: Reimplement the SCR Generator
                 Key: FELIX-3550
                 URL: https://issues.apache.org/jira/browse/FELIX-3550
             Project: Felix
          Issue Type: Task
          Components: Maven SCR Plugin
            Reporter: Carsten Ziegeler
            Assignee: Carsten Ziegeler
             Fix For: maven-scr-plugin-1.7.6, scr ant task 1.1.6, scr generator 1.1.6, scr annotations 1.6.2


The current implementation of the maven scr plugin and generator has grown over time and is very complex. It makes a lot of assumptions about hidden datastructures. This is partially due to the use of QDox in the beginning of the plugin
As we drop the support for javadoc annotations, we can also drop qdox and clean up the implementation
This also makes developing new features easier

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (FELIX-3550) Reimplement the SCR Generator

Posted by "Carsten Ziegeler (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-3550?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Carsten Ziegeler resolved FELIX-3550.
-------------------------------------

    Resolution: Fixed
    
> Reimplement the SCR Generator
> -----------------------------
>
>                 Key: FELIX-3550
>                 URL: https://issues.apache.org/jira/browse/FELIX-3550
>             Project: Felix
>          Issue Type: Task
>          Components: Maven SCR Plugin, SCR Annotations
>            Reporter: Carsten Ziegeler
>            Assignee: Carsten Ziegeler
>             Fix For: maven-scr-plugin-1.8.0, scr ant task 1.2.0, scr generator 1.2.0, scr annotations 1.7.0
>
>         Attachments: 120720_FELIX-3550_fixes.patch
>
>
> The current implementation of the maven scr plugin and generator has grown over time and is very complex. It makes a lot of assumptions about hidden datastructures. This is partially due to the use of QDox in the beginning of the plugin
> As we drop the support for javadoc annotations, we can also drop qdox and clean up the implementation
> This also makes developing new features easier

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (FELIX-3550) Reimplement the SCR Generator

Posted by "Carsten Ziegeler (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-3550?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Carsten Ziegeler updated FELIX-3550:
------------------------------------

    Component/s: SCR Annotations
    
> Reimplement the SCR Generator
> -----------------------------
>
>                 Key: FELIX-3550
>                 URL: https://issues.apache.org/jira/browse/FELIX-3550
>             Project: Felix
>          Issue Type: Task
>          Components: Maven SCR Plugin, SCR Annotations
>            Reporter: Carsten Ziegeler
>            Assignee: Carsten Ziegeler
>             Fix For: maven-scr-plugin-1.8.0, scr ant task 1.2.0, scr generator 1.2.0, scr annotations 1.7.0
>
>
> The current implementation of the maven scr plugin and generator has grown over time and is very complex. It makes a lot of assumptions about hidden datastructures. This is partially due to the use of QDox in the beginning of the plugin
> As we drop the support for javadoc annotations, we can also drop qdox and clean up the implementation
> This also makes developing new features easier

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (FELIX-3550) Reimplement the SCR Generator

Posted by "Robert Munteanu (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13294391#comment-13294391 ] 

Robert Munteanu commented on FELIX-3550:
----------------------------------------

The implementation can also be based on an annotation processor. Besides being a 'standard' technology it has the benefit of improving integration with yet-unsupported build tools like Gradle and IDEs.
                
> Reimplement the SCR Generator
> -----------------------------
>
>                 Key: FELIX-3550
>                 URL: https://issues.apache.org/jira/browse/FELIX-3550
>             Project: Felix
>          Issue Type: Task
>          Components: Maven SCR Plugin
>            Reporter: Carsten Ziegeler
>            Assignee: Carsten Ziegeler
>             Fix For: maven-scr-plugin-1.7.6, scr ant task 1.1.6, scr generator 1.1.6, scr annotations 1.6.2
>
>
> The current implementation of the maven scr plugin and generator has grown over time and is very complex. It makes a lot of assumptions about hidden datastructures. This is partially due to the use of QDox in the beginning of the plugin
> As we drop the support for javadoc annotations, we can also drop qdox and clean up the implementation
> This also makes developing new features easier

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (FELIX-3550) Reimplement the SCR Generator

Posted by "Carsten Ziegeler (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13294441#comment-13294441 ] 

Carsten Ziegeler commented on FELIX-3550:
-----------------------------------------

@Chetan : The annotations have now retention class and we use ASM to extract them from the class files :)

@Robert : I'm open for using annotation processors. So far I haven't found a good way of leveraging them in the implementation.  If you have some ideas, we could discuss them on the mailing list.
                
> Reimplement the SCR Generator
> -----------------------------
>
>                 Key: FELIX-3550
>                 URL: https://issues.apache.org/jira/browse/FELIX-3550
>             Project: Felix
>          Issue Type: Task
>          Components: Maven SCR Plugin
>            Reporter: Carsten Ziegeler
>            Assignee: Carsten Ziegeler
>             Fix For: maven-scr-plugin-1.8.0, scr ant task 1.2.0, scr generator 1.2.0, scr annotations 1.7.0
>
>
> The current implementation of the maven scr plugin and generator has grown over time and is very complex. It makes a lot of assumptions about hidden datastructures. This is partially due to the use of QDox in the beginning of the plugin
> As we drop the support for javadoc annotations, we can also drop qdox and clean up the implementation
> This also makes developing new features easier

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (FELIX-3550) Reimplement the SCR Generator

Posted by "Chetan Mehrotra (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13294410#comment-13294410 ] 

Chetan Mehrotra commented on FELIX-3550:
----------------------------------------

Had the annotations been not compile time one could have used ASM ClassVisitor support similar to what is used by Maven Plugin Plugin to generate plugin xml [1]. It also allows one to use same infrastructure with non java languages like Groovy as bytecode becomes the source of truth.

[1] http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java?view=markup
                
> Reimplement the SCR Generator
> -----------------------------
>
>                 Key: FELIX-3550
>                 URL: https://issues.apache.org/jira/browse/FELIX-3550
>             Project: Felix
>          Issue Type: Task
>          Components: Maven SCR Plugin
>            Reporter: Carsten Ziegeler
>            Assignee: Carsten Ziegeler
>             Fix For: maven-scr-plugin-1.8.0, scr ant task 1.2.0, scr generator 1.2.0, scr annotations 1.7.0
>
>
> The current implementation of the maven scr plugin and generator has grown over time and is very complex. It makes a lot of assumptions about hidden datastructures. This is partially due to the use of QDox in the beginning of the plugin
> As we drop the support for javadoc annotations, we can also drop qdox and clean up the implementation
> This also makes developing new features easier

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (FELIX-3550) Reimplement the SCR Generator

Posted by "Carsten Ziegeler (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-3550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13420503#comment-13420503 ] 

Carsten Ziegeler commented on FELIX-3550:
-----------------------------------------

Great, thanks for the patch! Looks pretty good to me, I've applied it to trunk. Thanks!
                
> Reimplement the SCR Generator
> -----------------------------
>
>                 Key: FELIX-3550
>                 URL: https://issues.apache.org/jira/browse/FELIX-3550
>             Project: Felix
>          Issue Type: Task
>          Components: Maven SCR Plugin, SCR Annotations
>            Reporter: Carsten Ziegeler
>            Assignee: Carsten Ziegeler
>             Fix For: maven-scr-plugin-1.8.0, scr ant task 1.2.0, scr generator 1.2.0, scr annotations 1.7.0
>
>         Attachments: 120720_FELIX-3550_fixes.patch
>
>
> The current implementation of the maven scr plugin and generator has grown over time and is very complex. It makes a lot of assumptions about hidden datastructures. This is partially due to the use of QDox in the beginning of the plugin
> As we drop the support for javadoc annotations, we can also drop qdox and clean up the implementation
> This also makes developing new features easier

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (FELIX-3550) Reimplement the SCR Generator

Posted by "Stefan Seifert (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-3550?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stefan Seifert updated FELIX-3550:
----------------------------------

    Attachment: 120720_FELIX-3550_fixes.patch

i've tested the refactored implementation with some of our more complex projects and found - and fixed - several issues. patch attached [^120720_FELIX-3550_fixes.patch].

issues in detail:
- custom annotations provided with an AnnotationProvider where not detected if their retention policy was RUNTIME. this may be required if the annotation is not only used for the SCR plugin but for other usecases as well that require RUNTIME.
- annotated methods with array parameters caused errors during processing
- annotated overloaded methods with same signature parameter count where not detected properly
- NPE was thrown if a component hat no configuration policy property set
- replaced two System.out.println's with debug log outputs
                
> Reimplement the SCR Generator
> -----------------------------
>
>                 Key: FELIX-3550
>                 URL: https://issues.apache.org/jira/browse/FELIX-3550
>             Project: Felix
>          Issue Type: Task
>          Components: Maven SCR Plugin, SCR Annotations
>            Reporter: Carsten Ziegeler
>            Assignee: Carsten Ziegeler
>             Fix For: maven-scr-plugin-1.8.0, scr ant task 1.2.0, scr generator 1.2.0, scr annotations 1.7.0
>
>         Attachments: 120720_FELIX-3550_fixes.patch
>
>
> The current implementation of the maven scr plugin and generator has grown over time and is very complex. It makes a lot of assumptions about hidden datastructures. This is partially due to the use of QDox in the beginning of the plugin
> As we drop the support for javadoc annotations, we can also drop qdox and clean up the implementation
> This also makes developing new features easier

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Work started] (FELIX-3550) Reimplement the SCR Generator

Posted by "Carsten Ziegeler (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-3550?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Work on FELIX-3550 started by Carsten Ziegeler.

> Reimplement the SCR Generator
> -----------------------------
>
>                 Key: FELIX-3550
>                 URL: https://issues.apache.org/jira/browse/FELIX-3550
>             Project: Felix
>          Issue Type: Task
>          Components: Maven SCR Plugin
>            Reporter: Carsten Ziegeler
>            Assignee: Carsten Ziegeler
>             Fix For: maven-scr-plugin-1.7.6, scr ant task 1.1.6, scr generator 1.1.6, scr annotations 1.6.2
>
>
> The current implementation of the maven scr plugin and generator has grown over time and is very complex. It makes a lot of assumptions about hidden datastructures. This is partially due to the use of QDox in the beginning of the plugin
> As we drop the support for javadoc annotations, we can also drop qdox and clean up the implementation
> This also makes developing new features easier

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira