luke's blog

Jar listing utility--Java archive file tool. Handling import errors easily in 4 steps.

Here is a quick example on how to get a database of what is contained in jars:
Step
1 of 4) Create a file containing:
#!/bin/bash
jarfolder=/usr/share
jarlist=/tmp/jarlist.txt
declare -a jarclass
find $jarfolder -name "*.jar" > $jarlist
for jarfile in `cat $jarlist`;
do
jarname=`basename $jarfile`;
jarfolder=`dirname $jarfile`;

jarclass=( $( jar -tvf $jarfile | awk '{ print $8 }' ) )
for aclass in "${jarclass[@]}"
do
echo $jarname $jarfolder $aclass;
done
done

2 of 4) Edit top 2 lines if needed/wanted.

3 of 4) Run the script and capture the output. You will get output like this:
maven-core-2.0.6-uber.jar /usr/share/maven/lib org/apache/maven/wagon/events/SessionEvent.class
maven-core-2.0.6-uber.jar /usr/share/maven/lib org/apache/maven/wagon/events/TransferEventSupport.class
maven-core-2.0.6-uber.jar /usr/share/maven/lib org/apache/maven/wagon/events/SessionEventSupport.class
maven-core-2.0.6-uber.jar /usr/share/maven/lib org/apache/maven/wagon/resource/Resource.class
maven-core-2.0.6-uber.jar /usr/share/maven/lib org/apache/maven/wagon/Wagon$1.class
maven-core-2.0.6-uber.jar /usr/share/maven/lib org/apache/maven/wagon/Wagon.class

Note: The list has 3 fields: Jar file name, Jar path, Class name.

Multi-Stage Continuous Integration

http://www.ddj.com/development-tools/212201506 is another good article for CI.

new version of GnuWIn32 as of 10/18/08

http://gnuwin32.sourceforge.net/ I want to try out the new wget and getopts commands!

Hudson main page

Where to get hudson: https://hudson.dev.java.net/
If you have wget then you can do this:
/usr/local/bin/wget -N --no-check-certificate http://hudson.gotdns.com/latest/hudson.war

http://hudson.jboss.org/hudson/ is a real live Hudson site used by jboss.org

http://fisheye4.atlassian.com/browse/~raw,r=12517/hudson/trunk/hudson/pl... is not working for me because my cvs does not parse the huge string that I am using.

I logged into dev.java.net and review this program. It uses stringBuilder in a wasteful way. in arrayToString it creates a new stringBuilder for each line of the modules list. It should use append instead.

Also, since many CVS clients are old, the servers are old, it is prone to failure in many ways. It should not put the whole module list on one line. It should run cvs rtag for each module individually. Still, it still just use one stringBuilder object.

Hug a developer, but only if your boss says to do it!

http://develop-one.net/blog/2008/08/27/HugADeveloper.aspx is a sad video, since it is so true.

Visual Studio custom command line switches

http://www.codeproject.com/KB/macros/SimpleSwitchFramework.aspx is an example of making a custom switch for devenv. I really need to get to know msbuild.

Development Process tool

Introduction to OpenUP discusses the SDP "Open UP". Yet, it is not just another process doc. It is based on the Eclipse Platform's Eclipse Process Framework (EPF). This allows teams to define work flow using Eclipse.

I need to sharpen up on Team Foundation Server, but if I had the time and choice. I would evaluate EPF.

How to expand a cvs module and list all folders.

cvs ls ${modulelist} 2> ${modulelist}.txt
cat ${modulelist}.txt | awk 'BEGIN { FS = ": " } ; { print $2 }'

Getting $PATH line by line

echo $PATH | tr ':' '\n' will list the $PATH nicely.

So will this:
echo $PATH | sed "s/:/\\
> /g"

That is hitting return and getting the ">" that is not typed in.

Syndicate content