On Thu, Dec 17, 2009 at 3:39 PM, Kurt T Stam <[email protected]> wrote:

> Thx Tammo,
>
> It's good to know there is no runtime dependency, and I think checking the
> generated classes in would be an improvement. How often do these classes
> change?


Very rarely. Actually we've discussed checking those in many times (I can
still hear Alex pestering).


> If they need to be regenerated often I'd still like to explore if there
> isn't a way we can avoid being tied to the use of restricted classes, even
> at code generation time. Is there any documentation around this that can
> help me understand how/why this is used. I'm familiar with annotations, but
> not with using them to generate code.
>

This is fairly old, probably more than 3 years old. IIRC, PXE was originally
using javadoc comments for the generation, XDoclet style (remember how that
was all the rage back then :) ). When Java annotations came out, the
generation has been changed to use apt. Note that in this case, interfaces
that are necessary to write and compile code are generated, so in contrary
to a lot of other annotations use it's not runtime information. The type
safety was an important part of the design as I recall it.

Matthieu


>
> --Kurt
>
>
> Tammo van Lessen wrote:
>
>> Hi Kurt,
>>
>> these classes are needed as ODE's jacob implementation uses Java
>> annotations to generate a couple of files (ChannelListeners basically).
>>
>> However, we could think about committing these files to SVN and put an
>> ant script in place to generate them on demand.
>>
>> Cheers,
>>  Tammo
>>
>> On 17.12.2009 16:22, Kurt T Stam wrote:
>>
>>
>>> Hi guys,
>>>
>>> While working on the maven build, we noticed that the jacob-ap depends
>>> on the use of restricted classes of the SUN JDK.
>>>
>>> i.e. org.apache.ode.jacob.ap.ChannelTypeAnnotationProcessor
>>>
>>> import com.sun.mirror.apt.AnnotationProcessor;
>>> import com.sun.mirror.apt.AnnotationProcessorEnvironment;
>>> import com.sun.mirror.declaration.AnnotationTypeDeclaration;
>>> import com.sun.mirror.declaration.InterfaceDeclaration;
>>> import com.sun.mirror.type.InterfaceType;
>>> import com.sun.mirror.util.DeclarationFilter;
>>>
>>> This seems like a problem to me, also it now ties us to using a SUN jdk?
>>> Does anyone have some more background info on this?
>>>
>>> Thx,
>>>
>>> --Kurt
>>>
>>>
>>
>>
>>
>>
>
>

Reply via email to