So one of my coworkers asked me if I had an example Struts application he could look at so he could get a feel for Struts. He’s an experienced Java developer, but doesn’t seem to have had much experience with J2EE. I had the Struts source on my hard drive, so I emailed him a zip file with the Web application files (JSPs, configs, and so forth), and the source to the supporting classes. He had already downloaded the Struts distribution, so he set about figuring it out. After he asked a few questions, I realized that if you aren’t intimately familiar with the structure of a J2EE web application, there’s a lot in there that’s not all that intuitive.
Not long after, he complained about not being able to build it. I told him he needed all of the supporting JAR files for Struts in addition to struts.jar. I realized that there are a lot of Jakarta JAR files that are packaged with just about every open source framework that most people aren’t familiar with. On my latest application where I’m using Hibernate and Spring, it seems like there are about 40 supporting JAR files.
Anyway, he started putting all of the JAR files into his classpath environment variable, and quickly overran the size that Windows allows. So at that point I asked him why he didn’t use an IDE to manage his libraries. He had NetBeans installed, but I told him I’d never used it — I told him I used Eclipse. He downloaded Eclipse and after unpacking it, immediately ran into problems.
I went over to check it out, and saw that he expected his source files to already be available within Eclipse. I told him that Eclipse preferred to manage files itself, and that he needed to create a new project and import his files. When I tried to drag the files into Eclipse, it didn’t work. I quit Eclipse and saw a bunch of Eclipse project files in the source directory I was trying to import, and realized that he had set the workspace directory to the directory where his files already were. That’s why he expected to be able to see them within Eclipse. Makes sense, right? Needless to say I had to explain that he needed to set his workspace directory to someplace clean and then import his files to that directory.
Once we created a new project, deleted the default source directory, created a new directory for source and then moved the output directory elsewhere, we added all the external jars to the project and got everything to build. Then he wanted to know how to edit the JSPs, and I had to explain that you could import the JSPs and config files into Eclipse, but that there was no special facility for editing them or managing them in any way built in. I abashedly told him that I used MyEclipse for that stuff, and that it was only $30. I didn’t have the heart to go on to explain that they have a Web tools project for Eclipse that’s just getting off the ground. I then explained that you could write an Ant build file to deploy the application to Tomcat and that there was a Tomcat launcher plugin for Eclipse, but that didn’t help much, since hasn’t used Ant.
All of this stuff seems like such second nature to me that I was amazed when it took so much work to get another developer up and running even to such a minimal extent. On the other hand, it did make me feel like I know some stuff that not everybody knows.