tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Howard M. Lewis Ship (JIRA)" <j...@apache.org>
Subject [jira] Created: (TAP5-852) ClassTransformation.addInitialization()
Date Wed, 23 Sep 2009 21:37:16 GMT

                 Key: TAP5-852
                 URL: https://issues.apache.org/jira/browse/TAP5-852
             Project: Tapestry 5
          Issue Type: New Feature
          Components: tapestry-core
            Reporter: Howard M. Lewis Ship

It is very common to want to add some initialization to a component.

Currently, it is necessary to inject dependencies and directly add code.

It would be nice if there were new interfaces:

interface ComponentInitializer {
  void initializeComponent(ComponentResources resources);

interface ComponentFieldInitializer {
  Object initializeComponentField(ComponentResources resources);

These could be paired up with methods in ClassTransformation:

void addFieldInitialization(String fieldName, ComponentFieldInitializer initializer);
void addInitialization(ComponentInitializer initializer);

These methods would translate to code executed in the constructor of the component.

This would simplify many of the existing component class transform workers.

It also represents a way to start moving away from writing explicit code generation (using
Javassist psuedo-code) towards a more API driven approach that could eventually be implemented
ASM or some other better supported toolkit.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message