ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rhino" <rhi...@sympatico.ca>
Subject Re: Displaying the value in a Java class?
Date Fri, 10 Feb 2006 17:16:23 GMT

----- Original Message ----- 
From: "Matt Benson" <gudnabrsam@yahoo.com>
To: "Ant Users List" <user@ant.apache.org>
Sent: Friday, February 10, 2006 11:01 AM
Subject: Re: Displaying the value in a Java class?


> --- Rhino <rhino1@sympatico.ca> wrote:
>
>>
>> [I've lost the original email containing this thread
>> but I found it in the
>> MARC archives and pasted it  below the line of equal
>> signs....]
>>
>> Matt,
>>
>> You are absolutely right, it was NOT _remotely_
>> obvious that BCEL has to be
>> present in order for LoadProperties to work. If you
>> hadn't posted that fact,
>> I would never have found that in the manual, for
>> several reasons:
>> 1. LoadProperties is a core task so I would have
>> assumed that it wouldn't
>> need extra jars. It's my understanding that core
>> tasks, by definition, are
>> ones that don't need extra jars to work. Apparently,
>> this is not true; even
>> a core task may need extra jars in somes cases.
>> 2. The article on LoadProperties doesn't mention the
>> need for BCEL to be
>> present.
>
> It's not loadproperties that needs BCEL; it's the
> classconstants filterchain.
>
Yes, I understand that but I looked in the loadproperties article assuming 
it was the one that might explain why I was getting the I/O error. I agree 
that the explanation doesn't really belong there but it seemed like a 
reasonable place to look before I knew what the problem was.

I wonder if there shouldn't be a note or warning or something in all of the 
tasks that can use filterchains, such as loadproperties, loadfiles, etc., to 
the effect that anyone using the classconstants filterchain should be sure 
to install BCEL?

>> 3. The article on FilterChains doesn't mention the
>> need for BCEL to be
>> present.
>>
>
> There should be a link; will add.
>
Excellent!

>> Even if I had looked at the optional jars page, I
>> might have missed it
>> because I would have been looking for filterchains
>> or loadproperties in the
>> second column of the table, not specifically
>> "ClassConstants filter reader".
>>
>> So thank you VERY much for pointing that out. As
>> soon as I installed BCEL, I
>> found that my task executed without the
>> IOExceptions.
>>
>> Unfortunately, I still have one problem that may
>> keep this from being the
>> solution to my problem after all: the ClassConstants
>> filter reader
>> apparently only gets information about _String_
>> constants (it only returned
>> values for the Strings in my .class file but no
>> other types) but the
>> constant I am trying to read is defined as follows:
>>
>>     public static final EmploymentHistoryFormats
>> DESIRED_EMPLOYMENT_HISTORY_FORMAT =
>> EmploymentHistoryFormats.LIST_FORMAT;
>>
>> EmploymentHistoryFormats is an enum, not a String.
>>
>> Is there any way to coax this filter to tell me that
>> the current value of
>> DESIRED_EMPLOYMENT_HISTORY_FORMAT is LIST_FORMAT?
>> That's all I really want
>> to know to get my build.xml working 100%.
>>
>> If not, is there any other way to get this
>> information?
>
> filter the Java file w/ regex looking for
>
> "^[\s]*public static final EmploymentHistoryFormats
> DESIRED_EMPLOYMENT_HISTORY_FORMAT[\s]*=[\s]*([^;]+);[\s]*$"
>
> and replace w/ "\1"?
>
Your suggestion is a bit cryptic for me to follow completely. Are you saying 
I should use a ContainsRegex filter but still within LoadProperties? Or are 
you proposing that I use LoadFiles and the .java file instead of the 
ClassConstants filter?

And why do you want to replace anything? I just want to know the value of 
the constant, not change it. (Although, now that I think about it, it might 
be neat to be able to let the user modify the value before doing the rest of 
the build.... But I don't think that's what you're talking about, right?

--
Rhino
>>
>> --
>> Rhino
>>
>>
> =================================================================
>> I thought the manual was wrong at first too, but
>> using
>> a class file is correct.  What is not as obvious is
>> that you need BCEL to make it work.  This is
>> documented in install.html#librarydependencies from
>> the manual.
>>
>> HTH,
>> Matt
>>
>> --- Rhino <rhino1@sympatico.ca> wrote:
>>
>> > The classcontents filterreader might very well be
>> > exactly what I want - if I
>> > could understand how to use it!
>> >
>> > I've just tried several experiments and nothing
>> > works for me; nothing at
>> > all.
>> >
>> > I must be misunderstanding some of the concepts.
>> For
>> > instance, it _looks_ as
>> > if I should be able to read a file, grab all the
>> > constants from it, and turn
>> > them into properties. But I can't make out if I'm
>> > supposed to reading a
>> > class file or a source file: it _looks_ as if I
>> > should be reading a class
>> > file, which seems counterintuitive to me.
>> > Nevertheless, I've tried pointing
>> > the task at both a real .class file and at a real
>> > Java source file in turn
>> > but I inevitably get "Unable to load file:
>> > java.io.IOException" regardless
>> > of which I use. Here is my task:
>> >
>> > <loadproperties srcfile="ResumeConstants.java">
>> >
>> > <filterchain>
>> >
>> > <classconstants/>
>> >
>> > </filterchain>
>> >
>> > </loadproperties>
>> >
>> >
>> >
>> > (Replacing the srcfile value with
>> > "ResumeConstants.class" made no difference
>> > at all. Both the source and the class file are in
>> > the same directory as the
>> > Ant script itself, just to keep things nice and
>> > simple.)
>> >
>> > Here is the stackTrace:
>> >
>> > BUILD FAILED
>> >
>> >
>>
> E:\eclipse\3.1.1\eclipse\workspace\Resume_JDK_1.5.0\xml\filter.xml:34:
>> >
>> > Unable to load file: java.io.IOException
>> >
>> > at
>> >
>>
> org.apache.tools.ant.taskdefs.LoadProperties.execute(LoadProperties.java:227)
>> >
>> > at
>> >
>>
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
>> >
>> > at
>> org.apache.tools.ant.Task.perform(Task.java:364)
>> >
>> > at
>> >
>> org.apache.tools.ant.Target.execute(Target.java:341)
>> >
>> > at
>> >
>>
> org.apache.tools.ant.Target.performTasks(Target.java:369)
>> >
>> > at
>> >
>>
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
>> >
>> > at
>> >
>>
> org.apache.tools.ant.Project.executeTarget(Project.java:1185)
>> >
>> > at
>> >
>>
> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
>> >
>> > at
>> >
>>
> org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDe
>>
>> \
>> faultExecutor.java:32)
>> >
>> > at
>> >
>>
> org.apache.tools.ant.Project.executeTargets(Project.java:1068)
>> >
>> > at
>> >
>>
> org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:42
>>
>> \
>> 3)
>> >
>> > at
>> >
>>
> org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:1
>>
>> \
>> 37)
>> >
>> > Caused by: java.io.IOException
>> >
>> > at
>> >
>>
> org.apache.tools.ant.filters.ClassConstants.read(ClassConstants.java:136)
>> >
>> > at
>> >
>>
> org.apache.tools.ant.filters.BaseFilterReader.read(BaseFilterReader.java:86)
>> >
>> > at java.io.Reader.read(Unknown Source)
>>
> === message truncated ===
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
>
> -- 
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.375 / Virus Database: 267.15.5/256 - Release Date: 10/02/2006
>
> 



-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.375 / Virus Database: 267.15.5/256 - Release Date: 10/02/2006


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message