tango-resizable-icons-0.8.90.1 released!

The Tango Icon Set as resizeable Java2D objects.

The project is hosted in maven central. here you’ll find a quick copy/paste for the dependency.

tango-example_icons

See them all at a bigger size at Wikimedia Commons Tango icons page

Advertisements

flamingo-maven-plugin-1.1 released!

flamingo-maven-plugin transcode SVG files into Java2D classes that can implement ResizableIcon from the Flamingo / Insubstantial projects

The project is hosted in maven central. here you’ll find a quick copy/paste for the dependency.

Transcode SVG files

Use the following goal: transcode

Configuration inside the POM

Here is a quick example:

<plugin>
 <groupId>org.codeartisans</groupId>
 <artifactId>flamingo-maven-plugin</artifactId>
 <version>1.1</version>
 <executions>
  <execution>
   <id>icons</id>
   <phase>generate-sources</phase>
   <goals><goal>transcode</goal></goals>
   <configuration>
    <sourceDirectory>${project.basedir}/src/main/svg</sourceDirectory>
    <outputPackage>com.example.icons</outputPackage>
    <implementsResizableIcon>true</implementsResizableIcon><!-- Defaults to false -->
    <stopOnFailure>false</stopOnFailure> <!-- Defaults to true -->
   </configuration>
  </execution>
 </executions>
</plugin>

thirdparties-maven-plugin-1.0 released!

Use thirdparties-maven-plugin to easily copy/download external files and attach them as classified artifacts.

The project is hosted in maven central so no special setup is needed to use it.

Here is the snippet for the 1.0 version :

<plugin>
 <groupId>org.codeartisans</groupId>
 <artifactId>thirdparties-maven-plugin</artifactId> 
 <version>1.0</version>
</plugin>

Usage

This plugin has only one goal : attached.

Configuration using a property file

<configuration>
 <thirdPartiesFile>${project.basedir}/path/to/yours.properties</thirdPartiesFile>
</configuration> 

Property file syntax is as follow:

[classifier].[type].src=[url]
[classifier].[type].md5=[md5] 

Here is a quick example:

foo.tar.gz.src=http://example.com/Foo-1.2.3-r5635.tar.gz
foo.tar.gz.md5=94c331b029ab45d7db5d39cccacdf0e1 

The md5 statement is optional and used only if present. If absent a file that already exists is not downloaded.

Configuration inside the POM

Here is a quick example:

<configuration>
 <thirdParties>
 <thirdParty>
 <classifier>foo</classifier>
 <type>tar.gz</type>
 <src>http://example.com/Foo-1.2.3-r5635.tar.gz</src>
 <md5>94c331b029ab45d7db5d39cccacdf0e1</md5>
 </thirdParty>
 </thirdParties>
</configuration>

artifactinfo-maven-plugin-1.0 released!

artifactinfo-maven-plugin generate java code with constants containing maven project metadata for use in your code.

The project is hosted in maven central so no special setup is needed to use it.

Here is the snippet for the 1.0 version :

<plugin>
 <groupId>org.codeartisans</groupId>
 <artifactId>artifactinfo-maven-plugin</artifactId> 
 <version>1.0</version>
</plugin>

It is very simple to use:

  • it has only one goal : artifactinfo
  • without configuration it use sensible defaults reusing groupId and artifactId for package and class name
  • you can override default package name with the packageName configuration parameter
  • you can override default class name with the className configuration parameter

Swing On Steroïds 1.2 Released

Today I released Swing On Steroïds 1.2 under the Apache Licence 2.0.

Swing On Steroïds is a micro-framework bringing awesomness to Swing development with Supervising Presenters and Passive Views (aka. MVP), a MessageBus and optionaly Guice or Qi4j.

It’s largely inspired by the work of Ray Ryan at Google on the GWT Wave client and his presentation at Google IO 2009 titled Best Practices for Architecting GWT App.
I’d say that watching this video is the first step to understanding Swing On Steroids.

It’s been used in production apps for about a year now with success : it’s modular, refactorable and work for small or big applications.

Among some enchancements, this release is the first one where non-ui related code (threading, forking, messagebus etc…) is available in a separate jar.

At this time the documentation is really poor. I hope to find time to write some.
If you’re interested, read about the patterns mentionned above and then dig into the code. If you understand the patterns it won’t be hard to understand and get started.

As a bonus, a versatile wizard api using the same patterns, a graph model and commodities such as BlockingView easing in and out smoothly thanks to Trident is provided.

You can find the jars and dependency snippets in Maven Central.

Tell me what you think.

A maven plugin to repackage your java archives : jaroverlay-maven-plugin

MavenIn the Java EE 5 TutorialDevelopment Roles” chapter we can see the following three roles, from the code to the deployment :

  • Application Component Provider: “The application component provider is the company or person who creates web components, enterprise beans, applets, or application clients for use in Java EE applications.”
  • Application Assembler: “The application assembler is the company or person who receives application modules from component providers and assembles them into a Java EE application EAR file.”
  • Application Deployer and Administrator: “The application deployer and administrator is the company or person who configures and deploys the Java EE application …”

This page says that this is the Application Assembler job to configure the deployment descriptor before packaging the EAR.

Beside that, artifact produced by mavenized enterprise projects are EARs, already packaged. Plus, it often is the developer (or Application Component Provider) that write the packaging configuration.

Next comes the “configuration for deployment” time. Here, if deployment dependant configuration is in deployment descriptors you would have to unpack the EAR and possibly nested java archives (WARs and/or JARs) to get a hand on all deployment descriptors.

This task can be quite cumbersome and time consuming (really dumb too). Continue reading “A maven plugin to repackage your java archives : jaroverlay-maven-plugin”