Ant Article online

Verfasst 24. März 2010 von janmaterne
Kategorien: Ant, de, en


After a long time of not-writing I have finished my (German) article about Ant 1.8.0. It is now published on JaxCenter: Der ANTwickler – Das neue Majorrelease

Musical production has finished

Verfasst 30. Januar 2010 von janmaterne
Kategorien: en, Uncategorized

Tags: ,

Some years ago a friend of mine – Richard – has written a musical (with his cousin). I joined with my trumpet and wrote the brass parts. Then sadly the project stopped …

But Richard has restarted the project and could produce the musical on CD (without brass 😦 ). But a demo is on youtube:

Concerts of my ensemble

Verfasst 25. November 2009 von janmaterne
Kategorien: en

Tags: , , , ,

My brass tentett Niederrhein Brass gives its yearly christmas concerts on GoogleMaps: concert location and GoogleMaps: concert location – both at 17:00 (5pm). If you are interested in – you are welcome. Entry is free of charge (but a donation at the end is welcome 😉

nrb_flyer_weihnacht_s1 nrb_flyer_weihnacht_s2

Ant: Use optional dependencies in JavaDoc

Verfasst 19. November 2009 von janmaterne
Kategorien: Ant, en

Tags: , ,

If you create your Javadocs you sometimes get unresolved reference warnings: package xy does not exist or cannot find symbol

If you define the path with these dependencies outside of the target you could reference that path using the classpathref attribute.

But if the path definition is done in an other target and you don’t want to have a dependency on that (e.g. many dependencies are downloaded there, e.g. using Ivy), using the classpathref would throw a BuildException because the path is not defined: Reference my-path.reference not found.

You could do a little hack: use a classpath attribute and use a special PropertyEvaluator for using that path: classpathref=“${toString:my-path.reference}“. If your defining target is executed before, the toString: resolves that into a usable path-string. If the target is not executed before, the resulting string toString:my-path.reference is just ignored by the javadoc task.

Links for 2009-11-13

Verfasst 13. November 2009 von janmaterne
Kategorien: Blogroll, en

Tags: , , , , , ,

Today I found two tools for testing: Byteman and YouDebug.

While I haven’t have a deeper look at Byteman I realized that YouDebug is writte by Kohsuke Kawaguchi. And it is very funny to recognizing him after Args4J and Hudson with another project. The world is small and you’ll see another every twice … or more 😉

Getting the Samsung CLX 2160 MFC work under Windows 7

Verfasst 4. November 2009 von janmaterne
Kategorien: en

Tags: , , , ,

My laser printer Samsung CLX 2160 worked very fine under Vista. But now I have upgraded to Win7Ultimate and it does not any more. Ok – new OS, new search for drivers …

I found a new driver on the Samsung page. But after installing I even couldnt print. The OS silently ignored print jobs. I tried to check the settings, but I always get the error message


Then I got an idea: maybe the (default) access rules are too restrictive. So I tried to widen them (Everybody: configure the printer, configure the documents)


And now it works 😉

Links for 2009-10-30

Verfasst 30. Oktober 2009 von janmaterne
Kategorien: Blogroll, en

Tags: , , , , , , ,

77 Windows 7-Tips by Jeffrey Hick, Don Jones, Pav Cherny, J. Peter Bruzzese and Bill Boswell.

Webcast zur Windows Power Shell 2.0 by Holger Schwichtenberg. In this first of three episodes he talks about Commandlets, Pipelining, direct use of .NET- and WMI-Classes and remote access.

Java: If you want to have the diff between two lists (Arrays.asList(„a“, „b“, „c“) vs. Arrays.asList(„a“, „c“, „d“)), then you should have a look at this blog entry.

Microsoft Press publishes a new eBook „Deploying Windows 7“ for free. It is an introduction by the authors from Windows 7 Resource Kit and TechNet Magazine.

🙂 If you are interested in Darth Vaders daily routine … here are some pictures.

DE: Webcast: NET for JEE-Developer – In this first of six episodes Golo Roden shows „From Java to C#“

With „Mastering PowerShell“ there is another free eBook available. Content: The PowerShell Console, Interaktive PowerShell, Varables, Arrays and Hashtables, The PowerShell Pipeline.

Let Ant tasks choose the attribute values by themself

Verfasst 30. Oktober 2009 von janmaterne
Kategorien: Ant, en

Tags: , , , ,

For a long time an idea travelled in my head. But now it arrived.

In my several Ant build files I have constructs like

<javac source=”${javac.source}” debug=”${javac.debug}” target=”${}” …

and the according properties defined in an external file. Now have a compile run for the source code and the test code and you have doubled this amount of configuration. And I thought that just writing a <javac> and starting with an -autoconf option would be easier.

The idea is: apply the properties directly before the task execution.

So I could implement a method call in oata.Task.perform() direclty before calling the execute() method.
Hhm …. I don’t want to change the Ant core that deeply because so many external tasks exist and I don’t want to (maybe) break their build.

Another idea is using an AOP framework like AspectJ for jumping in: before <? extends Task>.execute() : applyAttributeValues()
(I am not familiar with AspectJ but you get the idea.)
But then I would depend on the AOP library. That’s nothing for the Core. And Ant options should not depend on any further libraries.
I could implement it as a task:


Better. But I have to learn AspectJ … so not for now…

On the Hudson dev-mailinglist I heard from the Hudson Clover Plugin. It gatheres code coverage from Ant jobs WITHOUT configuring the job itself.-It adds a BuildListener which stores the srcdir and destdir values from <javac> tasks.
Nice idea …. use the Listeners taskStarted(event) and taskFinished(event) methods for doing AOP-stuff.

This results in the <autoconf> task, currently in the sandbox and feedback is welcome.

The goal:

  • apply attribute values from properties
  • do not overwrite user specified values
  • switch on/off the behaviour
  • support name prefix for using different values for different targets

While the last two points are easily to implement (add/remove the listener, use a prefix for property search) the first two are difficult.

apply attribute values from properties / which attributes are supported by a given task?

Why is this difficult? Just ask mytask.getClass() for declared setters ….

The problem is that you don’t get the task object. Due lazy instantiation/configuration the only thing you get from the BuildEvent is an UnknownElement. And therefore you cannot just ask getClass() for the class object you need.

I saw three different strategies according to that value:

  • if it is a <macrodef> I could ask it directly for its <attribute>s
  • if it is a normal task I ask the class object
  • if it is a <presetdef> I ask the class object from preset.getTypeClass()

do not overwrite user specified values

I could ask an object for its values, but which are set by the user and which are just implementation defaults? From the Java perspective you cannot distinguish between them…

My strategy is using a “clean” object (I called it template object) and compare its values with the values from the given object.

Funny suggestion for search…

Verfasst 25. Oktober 2009 von janmaterne
Kategorien: en

I just searched for "cloud computing" at amazon(.de). The suggestion for alternatives was very funny (Fahrradlampe – bicycle light?):


Links for 2009-10-19

Verfasst 19. Oktober 2009 von janmaterne
Kategorien: Blogroll, en

Tags: , , , , , , ,

Microsoft has announced two analysis tools for security wholes: BinScope Binary Analyzer and MiniFuzz File Fizzer. The first one checks for forgotten security flags and the second checks against flow patten.

There is a nice paper about risks in cloud computing:

  • Stalking in Amazon’s EC2
  • Sidechannel Attacks
  • Data Leakage through CPU Caches

If you are in N.Y. or Toronto and interesting in modeling, the Eclipse Modeling Days could be interesting for you.

German: event series about server virtualization.
Thu, 12.11.2009, Pullmann Hotel Köln
Wed, 18.11.2009, Gastwerk Hotel Hamburg
Thu, 26.11.2009, Novotel München Messe

Galileo publishes the „Linux Handbuch“ as free available OpenBook.

German: Microsoft publishes the eBook „Windows 7 – Auf einen Blick“ for free (since 31.10.2009). A free chapter is directly available, for the whole book you have to register.