I am new to EJBs but working in software for a long time
When I make any mods to my EJB I take the following steps to test it. That is a lot. What am I missing ?
1> Compile EJB
2> Generate DD if needed
3> jar all EJBs in the package
4> Run EJBC
5> Deploy the jar
6>Access from my web client & test.
Welcome to EJB.
The steps you have listed are all required - nobody said it was supposed to be easy. You can automate steps 1,3,4,5 with jakarta ant.
depending on which IDE you use, you can automate all steps, including the testing.
WebSphere Studio Application Developer (an IDE by IBM which integrates seamlessly into IBM WebSphere) has some nice built-in features that allow you to create, deploy and test your EJBs with very little manual coding...
ANT can also be used to help automate many of the steps and in a while you will write your own little tools to generate EJBs, DD... and even the deployment into the Application Server!
Check out the docs & newsgroups for your Application Server and you will find some information regarding that topic...
we currently use the following:
- Ant for build control jakarta ant
- XDoclet to generate the EJB files inc. home/remote , .xml files etc. This is run as a task in the ant build script. xdoclet
- cactus for unit testing EJBs. Also run as a task in the ant build script. jakarta cactus
All of these are open source. XDoclet is a great tool as it covers a number of app servers.
thanks for the advice on XDoclet. Seems to be a very promising tool and I will take a deeper look at it.
What I did in order to reduce our work to a minimum is:
I wrote a java-application, that connects to a JDBC-compliant database (here: Oracle), reads out the database metadata, and generates 1:1 ejbfiles, meaning: 1 Table : 1 Entity-Bean: BeanImpl, XML-DD, Home/Remote-Interfaces, ValueObjects, Session-Beans for data-access (1.1 ejb standard). The generation process (sqldatatype 2 javadatatype, package structures to create etc.) is also highly customizable and creating EJB 2.0 compliant code is also very simple.
We used Velocity as the rendering engine and it works just fine.
The drawback of this solution: each table is mapped to ONE entity bean and FK relationsships etc. are not implemented...
I would like to hear your opinion on all that. Does anyone know if there is a similar software out there, so I can stop further development of this tool?