Thursday, January 12, 2012

See what process is using a TCP port in Windows

It is annoying to see "address already in use" in log files.

To check which process uses TCP port in windows,
1) netstat -ano
find the right port and remember the PID
2)tasklist /svc /FI "PID eq ${PID}"

Original Post

Tuesday, January 10, 2012

Checkstyle suppression configuration in Maven

Recently I ran into this checkstyle configuration problem. Basically we have this multi-module maven project and we would like to put checkstyle config and suppression in the parent maven pom but apparently checkstyle maven plugin not very happy with the relative path of suppression config file, for example


<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
<suppressionsLocation>config/checkstyle-suppressions.xml</suppressionsLocation>

During the build modules look for checkstyle-suppressions.xml at its own directory not parent and checkstyle plugin just simply ignores the error when file not found. Some people had the same problem with me on Stackoverflow and here too. I just choose the easy solution to add a new property in both parent and children pom files to set the correct location of the config file. 

parent pom

<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
<suppressionsLocation>${main.basedir}/config/checkstyle-suppressions.xml</suppressionsLocation>

<main.basedir>${project.basedir}</main.basedir>

children pom
<main.basedir>${project.basedir}/..</main.basedir>

And there is another way, I guess the better one, to share resource across project in Maven here.

Thursday, January 5, 2012

New Maven Archetype

Just build another maven archetype using maven3, spring3, freemarker and selenium web driver.

Archetype artifact available here. Use maven install the artifact then


mvn archetype:generate                                                 \
  -DarchetypeGroupId=au.com.melbourne.ben               \
  -DarchetypeArtifactId=prototype-archetype                 \
  -DarchetypeVersion=1.0-SNAPSHOT                        \
  -DgroupId=[Your Group Id]                                        \
  -DartifactId=[Your Artifact Id]