Skip to main content

Footprint Project adopts Maven 2

Posted by felipegaucho on March 25, 2009 at 11:37 AM EDT

What is Fotprint Project?

Footprint is a publisher and distributor of certificates of participation in conferences - signed PDF documents that prove you attended a conference or a course. Usually the companies have some formal process to manage education budget and universities also require some formal documentation in order to accept a participation in an event as part of their students' curriculum. The Footprint Project was created to respond the common question: How can I distribute reliable participation certificates to my conference attendees?

logo.jpg

From the technical point of view Footprint is a wrapper for iText, facilitating the configuration of the basic features demanded by conference managers: to fill out PDF diplomas, to sign them with a digital certificate and to send them by email. You can perform those steps using the standard distributions of iText, JavaMail api and some encryption library, but in order to do that you will need to hack a bit around the Java code - and conference organizers are not expected to be Java developers.

Despite the simplicity of the Footprint features, the library contains all you need to fill PDF forms, sign and distribute them by an SMTP server. It also supports JDBC connection, what give you a chance to connect the certificates generator to any Java compatible database - and it comes with a pre-bundled CSV driver, what allows you to use CSV files instead of database. So, if your project uses Maven and requires PDF manipulation, there is a chance that Footprint library reduces a lot your efforts. * If you are not interested in Java code, and you only want to generate certificates for your JUG meeting or conference, you can visit the Footprint home-page and download the latest stable release - it is ready to go.

Footprint Project available in the java.net Maven 2 repository

Footprint is available in the java.net Maven 2 repository. In order to use footprint in your project, you have two chances: to use the full bundled Footprint code with its dependencies or to use te Footprint core and declare the dependencies separately. The former option gives you simplicity and the later offers you a chance to use different versions of the footprint dependencies, like Bouncy Castle encryption library or JavaMail API. So, let's configure the pom.xml

Using the full-bundled Footprint library

Just include in your pom.xml the following elements:

	<repositories>
		<repository>
			<id>maven2-repository.dev.java.net</id>
			<name>Java.net Repository for Maven</name>
			<url>http://download.java.net/maven/2/
			</url>
		</repository>
	</repositories>
	<dependencies>
		<dependency>
			<groupId>net.java.dev.footprint</groupId>
			<artifactId>footprint-core</artifactId>
			<version>1.0-SNAPSHOT</version>
			<classifier>jar-with-dependencies</classifier>
		</dependency>
	</dependencies>

Using only the footprint-core code

The core code of Footprint requires some dependencies declaration:

	<repositories>
		<repository>
			<id>maven2-repository.dev.java.net</id>
			<name>Java.net Repository for Maven</name>
			<url>http://download.java.net/maven/2/
			</url>
		</repository>
		<repository>
			<id>maven-repository.dev.java.net</id>
			<name>Java.net Maven 1 Repository (legacy)</name>
			<url>http://download.java.net/maven/1
			</url>
			<layout>legacy</layout>
		</repository>
	</repositories>

	<dependencies>
		<dependency>
			<groupId>net.java.dev.footprint</groupId>
			<artifactId>footprint-core</artifactId>
			<version>1.0-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupId>com.lowagie</groupId>
			<artifactId>itext</artifactId>
			<version>2.0.7</version>
		</dependency>
		<dependency>
			<groupId>csvjdbc</groupId>
			<artifactId>csvjdbc.jar</artifactId>
			<version>LATEST</version>
			<scope>system</scope>
			<systemPath>${project.build.directory}/../lib/csvjdbc.jar
			</systemPath>
		</dependency>
	</dependencies>

Special attention to the csvjdbc.jar dependency - the CSVJDBC Project does not uses Maven, so you need to download the library manually and copy somewhere in your file system. This is the kind of boring step Footprint tries to hide from its users.

Footprint code requires Java 6

An important detail is about the Java version required by Footprint library: at least Java 1.6. In order to guarantee that, please include in your pom (or preferably in the parent pom) the following fragment:

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.0.2</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
				</configuration>
			</plugin>
			...
		</plugins>
		...
	</build>

Checkout the Footprint code

Footprint is distributed under LGPL license, and if you are interested in checkout the project code, just follow these steps:

  1. svn checkout https://footprint.dev.java.net/svn/footprint/trunk footprint --username your.java.net.login
    * you can also use the guest as username - to checkout a read-only copy of the code.
  2. cd footprint
  3. mvn clean install eclipse:eclipse

That's it, just open the project in your preferred IDE and have fun. If you find any problem or have a feature suggestion, be our guest to submit an issue in the Footprint Issue Tracker page. And if you want to follow the project continuous integration, please visit our Hudson.

Related Topics >>