Wednesday April 02, 2003
|
Vanity Foul Dedicated to the wanderings of an egotistical mind. |
|
"You've been quiet lately" I'm not the kind to speak up on every little thing, it has to really catch my attention and fire my imagination. I haven't seen anything like that lately, at least not that hasn't been adequately discussed elsewhere... Perl 6 I must be behind the times, but I read an article in the April 2003 issue of Linux Magazine (on newstands now) about Perl 6. Cool! I haven't looked at Perl for about 5 years, but I really like what they've got planned. I particularly like how given-when behaves, and the fact that "given" and "when" can be used independantly of each other: they're really seperate tools that fit together to produce a switch-case model. A lot of the other stuff planned should really minimize the inherant obfuscatability of Perl (the new Object definitions make *much* more sense!). Finally, I'd love for Java to have the new junctions coming in Perl 6 (nice shortcut expressions). The only downside is that Perl 6 is years away (cannot find the exact statement now). :-( Using Custom Taskdefs Buried in the Ant Manual:
Adding your task to the system is rather simple too:
1. Make sure the class that implements your task is in the classpath
when starting Ant.
2. Add a <taskdef> element to your project. This actually adds
your task to the system.
3. Use your task in the rest of the buildfile.
Example
<?xml version="1.0"?>
<project name="OwnTaskExample" default="main" basedir=".">
<taskdef name="mytask" classname="com.mydomain.MyVeryOwnTask"/>
<target name="main">
<mytask message="Hello World! MyVeryOwnTask works!"/>
</target>
</project>
Example 2
To use a task directly from the buildfile which created it, place the
<taskdef> declaration inside a target after the compilation. Use the
classpath attribute of <taskdef> to point to where the code has just
been compiled.
<?xml version="1.0"?>
<project name="OwnTaskExample2" default="main" basedir=".">
<target name="build" >
<mkdir dir="build"/>
<javac srcdir="source" destdir="build"/>
</target>
<target name="declare" depends="build">
<taskdef name="mytask"
classname="com.mydomain.MyVeryOwnTask"
classpath="build"/>
</target>
<target name="main" depends="declare">
<mytask message="Hello World! MyVeryOwnTask works!"/>
</target>
</project>
Also see TaskDef
(
Mar 21 2003, 08:06:31 AM
)
Technology
Permalink
Trackback: http://www.brainopolis.com/roller/trackback/lance/Weblog/using_custom_taskdefs Why Am I Getting All This Spam? A great research piece from the Center for Democracy & Technology.
This leads me to believe it would be worth the effort to put even a simple email obfuscator on Roller's Comments feature. Page-by-Page Iterators Considered Nuclear Waste Okay, so I exaggerate, but Crazy Bob has been having trouble. Fortunately he solved his dilemma:
I'm just hoping he contributes the Oracle LIMITS code back to Castor. Thanks Bob! Oh no, there goes Tokyo, go go Greebo Unless someone objects, I'm likely to Greebotize Roller this week. The only point of objection I see is that the build.xml will have to "bootstrap" the custom task (looks entirely possible, experimentation will tell).
Simple JNDI More Good StuffTM, this time from Henri Yandell, a.k.a. Bayard. Thanks Henri, I think I'll be using this soon! HoneyPot reborn! DiveIntoMark revived my interest in my own project with this article. Part of what killed my interest was my upgrade to Resin 2.1.5, which broke support for ResponseWrappers (sometime between 2.0.1 and 2.1.5). For those still curious, HoneyPot is a ServletFilter that performs much the same duties as outlined in the DiveIntoMark article. It still needs considerable work, but Mark's article has inspired me to continue. This time I guess I'll need to write a "Resin-specific" version of the ResponseWrapper, but that is okay. What particularly perked my interest was the idea of publishing a webservice of bad IP/Referer/UserAgents, for all installations to share. HoneyPot currently writes a list of bad IP's to a text file, but I think I'll make it use Prevayler for persistence (way cooler). And I'll probably use Greebo; I like to have a "real" project to try out new tech. And HoneyPot could use a better name, because I don't think it is accurate (the original idea was to create some false trails to trap naughty User Agents). I'll take suggestions... |
|
||||||