luke's blog
Jar listing utility--Java archive file tool. Handling import errors easily in 4 steps.
Submitted by luke on Mon, 2009-11-16 20:51Here 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.
Virtual Box is Sun's Virtual OS.
Submitted by luke on Thu, 2008-12-04 06:50Multi-Stage Continuous Integration
Submitted by luke on Thu, 2008-12-04 06:49http://www.ddj.com/development-tools/212201506 is another good article for CI.
new version of GnuWIn32 as of 10/18/08
Submitted by luke on Sat, 2008-11-01 16:35http://gnuwin32.sourceforge.net/ I want to try out the new wget and getopts commands!
Hudson main page
Submitted by luke on Thu, 2008-10-09 20:51Where 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!
Submitted by luke on Fri, 2008-08-29 10:32http://develop-one.net/blog/2008/08/27/HugADeveloper.aspx is a sad video, since it is so true.
Visual Studio custom command line switches
Submitted by luke on Thu, 2008-08-21 09:19http://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
Submitted by luke on Fri, 2008-07-18 13:50Introduction 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.
Submitted by luke on Wed, 2008-07-16 23:18cvs ls ${modulelist} 2> ${modulelist}.txt
cat ${modulelist}.txt | awk 'BEGIN { FS = ": " } ; { print $2 }'
Getting $PATH line by line
Submitted by luke on Sat, 2008-07-12 13:16echo $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.
