Monday, December 25, 2006

Artifact

In Maven and other recent project and source management, we often find this term: "artifact".

I found some of the definition in the Wikipedia.
Artifacts are byproducts of software development process. Uses cases, class diagrams, UML models, requirements document, project plans, business cases and risk assessments are examples of artifacts.

Sometimes it refers also to the code or executable software produced, e.g. in the case of our Maven 2, artifact identifies to the code and executable software produced.

Merry Christmas!

Merry Christmas 2006!

Dear friends, may the joy of Christmas fill your soul today!

Regards,
Daniel

Friday, December 22, 2006

Develop with pleasure!

I, Endy and T Budi S have received the personal licenses for IntelliJ IDEA 6.0 and its sister product TeamCity, for our role as speakers in the last 2 months' JaMU 23 and JaMU 24. Thanks for the support from JetBrains, s.r.o to our JUG and JaMU in Indonesia!

I installed the version 6.0.2 smoothly. My, GWT studio, Geronimo integration, Glassfish integration, JBoss integration, Javascript Intention Powerpack, Struts Assitant, Tomcat integration, WebLogic integration and Websphere integration!

Cool stuff!

Thursday, December 21, 2006

New Features in the JSP 2.0

I dunno where I've been, since this is an ancient artifact from the Jurassic era.
Since my current project is a surgeon on a JSP/Servlet from some time around year 2000 code, I stumbled upon this page...

Six Cool New JSP and Servlet Features at OnJava.com.

  1. Servlets as Welcome Files
  2. Mapping Filters to RequestDispatchers
  3. Using Listeners with Servlet Requests
  4. Using EL Code Within Template Text
  5. Writing Tag Files (in JSP!)
  6. Writing EL-Qualified Functions

Though it's been around since 2004, I think those features are still cool! Two years ago I'm exploring custom tags using Java codes, but now the custom tags can be JSPs too!!

Today's people always talking about Freemarker, Velocity and many other cool template engine. But I still love JSPs, which is easier to debug, though some people could abuse, yet, I still have the confindence that people indeed can write good and maintainable JSP code.

I began rewriting some of the code, and using the EL expression 1.0. It needs a lot of rework for this old and hard to maintain JSP codes, but I think the effort will be worthed it!

I've just hoping that we'll be moving to Tomcat 5.5 on JDK 5, but I'm just happy to find out these features work just fine in Tomcat 5.0 (RI for JSP 2.0!) which we are using on JDK 1.4.2.

The new feature I will surely use is the new JSP tag definition! After the tag components has been matured you can begin writing the corresponding Java classes, but for experiments, creations of new ones and debugging, better use the JSP version!
Now I've got a complete prototyping scripting tool!

Saturday, December 9, 2006

JEE Learning Track

(Yes, it's no longer J2EE, it's been renamed JEE now!)
This early morning I read somebody asking, what is the learning track for a Java SE developer if he wants to learn the Java EE platform.

I try to list down and compile the track to learn based on my own experience:
  1. Download and install an JSP/Servlet Container (recommended: Apache Tomcat 5.5)
  2. Learn to deploy a simple JSP/Servlet application, like one from Sun, one from BEA, etc.
  3. Some usage of the JSP headers
  4. Try to deploy a Servlet
    1. Folder structure of a simple WAR file
    2. Folder structure of an EAR file
    3. Setting up the web.xml (this is one of the intricated process)
    4. Setting up the correct mapping and filter
  5. (I will continue this later...)

Thursday, December 7, 2006

Why Maven sucks...

OK, while I'm one who preach the usage of Apache Maven 2, I need to be even with ones who rejects the idea. Here is a list of some reasons while people think that Maven sucks...

  1. Some of the people who maintains the repository were not discipline and not consistent
  2. Not for building leading edge technologies (snapshot build, nightly build, candidate release, alpha, beta, etc)
  3. Not everyone could afford to download the 11GB++ repository
  4. Too bandwidth consuming for firsttimers (or someone who just wants to give a try)
  5. Takes time to setup
  6. (I will add up several thing later...)

Wednesday, December 6, 2006

What Maven Good At...

As usual, somebody at JUG-ID started a flame by throwing a fireball: "Maven is a junk!".

The most popular greeting in the JUG-ID is: "Salam hangat," (or translated to "Warm greeting,"). Well, I think that the most popular greeting has reasons for it. One of the things that makes the mailing list become 'warm' because there are lots of flames around, such as "Java vs .NET", "Sun sucks", "Maven sucks", "Vacuum cleaner sucks" also!, etc.

At some point then we realized that the flame thrower has points. And also some people thinks "JUG-ID sucks" as well. At least at some times ago I think that way ("JUG-ID sucks").

Now, I try list down what Maven Good At...
(and on the next post, "Why Maven sucks"... as well)

1) Reducing the Project Lead Time
2) Force project to follow certain rules
3) Dependency management
4) One place to change dependency
5) No need to store jar files in the versioning system anymore
6) (This list will grow...)

Mevenide plugin for NetBeans 2.3 has been released!

http://blogs.codehaus.org/archives/001409_mevenide_maven2_for_netbeans_23_release.html

NetBeans users, welcome to the Maven 2 world!

Maven 2: Snare and Pitfalls

Last Saturday I presented Maven 2 at JaMU 24.
The world of Maven is still growing, expanding, and there are lots of unexplored area. Newcomers could be discouraged to use Maven 2 because of certain things which could make them stuck.

Here are some of the snare and pitfall while setting up Maven 2:

1) Creating the "~/.m2" folder in Windows environment

The "~" (tilde) is a common representation of user folder in the UNIX/Linux systems. In Windows, it usually maps to "C:\Documents and Settings\your.username", "C:\Documents and Settings\your.username.DOMAIN", or "C:\Documents and Settings\your.username.DOMAIN.001", etc.
When we try to create a folder in the Window Explorer using the File - New Folder menu, Windows will display a stupid dialog telling you "you must type a filename". Obviously we want to create a folder, so the message should be "you must type a folder name".

After struggling for a while I eventually managed to create the folder using Cygwin's bash shell. Of course this is not solving the problem when you don't have Cygwin installed. And Cygwin brings POSIX personality to NT platform. I believe there are some other way to create such files, like calling the Windows API to create the folder. But I eventually found the simplest thing to create the folder, unzip a folder with that name using your favorite zip tools!
I included the file in the starter kits (uploaded to JUG-ID file repository).


2) Got the message "generics are not supported in -source 1.3"

What has happened right here?! You are sure of using JDK 5 already, but yet you still got this message.
The problem is that the default setting for maven-compiler-plugin is to use the JDK 1.3. So the workaround is to add this to your pom.xml file in the section:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin&g;


3) Setting up the right environment variables to run the Maven 2