Diagnostic.java is available on my website at:
http://cleancode.sourceforge.net/wwwdoc/download.html
(The direct link for my Java source zip file is two clicks down is:
http://prdownloads.sourceforge.net/cleancode/cleancode-java-source-v0_9_03.zip?download
)
I'll take a look at writing a custom Ant task in the near future; thanks for
the outline.
On Mon, 24 Jan 2005 22:43:29 -0500, Erik Hatcher <[EMAIL PROTECTED]> wrote:
Could you post your Diagnostic.java code?
I think your best bet to solving the <classcontants> issue is to dig
under the hood of its code and see what makes it tick and experiment.
Or, certainly simpler, write a custom Ant task that gets the
information from Diagnostic and sets and Ant property. It'd only be a
few lines of code to do this - extend from Task, implement a public
void execute() method, get the value you want, and call
project.setNewProperty(...).
Erik
On Jan 24, 2005, at 9:09 PM, michael sorens wrote:
Yes, my constants are "public static final". The problem, I found, is
that the definition of VERSION is a method evaluation, not a
compile-time constant, as you had tried. So that answers that
question.
The remaining issue is back on the file that I really want to use,
Diagnostic.class. Changing nothing except the class name & path to
point to this file causes an IOException, so it looks like a bug to
me. Who does one inform of such things?
BTW, Erik thanks for your <prefixlines> tip regarding constants!
On Mon, 24 Jan 2005 12:14:56 -0500, Erik Hatcher
<[EMAIL PROTECTED]> wrote:
On Jan 24, 2005, at 11:05 AM, michael sorens wrote:
(1) Well I tried adding bcel.jar to my ant/lib directory but it made
no difference.
What did make a difference was my choice of .class file to load.
Instead of my Diagnostic.class
I tried a simpler Version.class and then I received no error, even
*without* bcel.jar. So this seems like a data-dependent bug...
Did you make your VERSION be "public static final"? I just tried it
(had to download and install BCEL into ANT_HOME/lib myself) with this
class:
public class Test {
public static final String VERSION = "version";
}
I also tried it with an int:
public static final int VERSION = 123;
with this build file snippet:
<loadproperties srcfile="build/Test.class">
<filterchain>
<classconstants/>
</filterchain>
</loadproperties>
<echo>${VERSION}</echo>
(2) As I could successfully execute with my Version.class, how do I
then *access* the properties?
I have a constant named VERSION. I tried <echo> with "${VERSION}" and
with "${com.cleancode.data.Version.VERSION}" but neither had a value.
What are the rules for the name of a property from a class file?
the property name is the constant name, no package prefix is added.
Though a slick trick is to use a <prefixlines prefix="constants."/>
after <classconstants>.
My guess is your property is not public static final.
Erik
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]