great Idea!
I've been thinking about this for a long time!
some people @ develop.com had (possibly inspired by .NET Attributes) an
idea like that.
-> "Good Book: Component Development for the Java Platform from Stuard
Halloway"
Joshua Bloch - Mr Effective Java - leads the JCP working group on custom
META attributes - JSR 175 - they don't have any specifications right now
but at least it sounds like interesting extensions are to come up with
Java 1.5
Am Don, 2002-09-19 um 16.24 schrieb Berin Loritsch:
> As I was going through my pile of papers I printed out to review later
> (most of which I already did), I stumbled on the BCEL instructions.
> When they described the class file structure, a lightbulb went off in
> my head. At the end of every Class, is space for Class Attributes,
> including application specific attributes. The same thing for the
> end of every method for Method Attributes.
>
> Instead of embedding descriptors in XML files, we can combine the
> powers of BCEL and XDoclet to place all the relavant attributes
> directly in the Class file! We would first compile the classes the
> normal way, then apply the XDoclet/BCEL driven filter to add the
> attributes directly into the class file.
BCEL and XDoclet would have been the type of combination I would have
choosen too.
But it is also important to provide a tool that, given an external
descriptor "marks the class" with the needed attributes, as declarative
definitions is not always - but in most cases - done by the developer.
>
> The important thing is that we would have to override the
> defineClass(String name, byte[] b, int off, int len) method of the
> ClassLoader to make it work. We can offload that into a helper class
> like I did for JarScanner so that we get the following info:
>
> interface ClassDescriptor
> {
> boolean isAvalonClass(); // has attributes
> Class getClass(); // return the defined class
> Object getDescriptor(); // will return the Type or Service
> // descriptor
> }
>
> public final class AvalonClassUtil
> {
> public static ClassDescriptor defineClass( String name,
> byte[] b,
> int offset,
> int length );
> }
>
>
> Or something like that.
>
> Using BCEL to add and read attributes will make our lives easier,
> although it is entirely possible to have something that will
> scan the class file without BCEL (to limit the number of runtime
> dependencies).
>
> As an additional benefit, we can use BCEL to get rid of all the
> NOP entries in the class files. :)
and do a little bit optimization (loop unrolling and so forth) - but
thats probably counterproductive as this is the job of the jit/hotspot.
>
> So am I a mad man or a genious? (I tend to think I am tetering
> on the edge between the two)
I would say the latter one.
I look forward to reading your book - hope it arrives soon in the
bookshelves.
>
> --
>
> "They that give up essential liberty to obtain a little temporary safety
> deserve neither liberty nor safety."
> - Benjamin Franklin
>
>
> --
> To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>