I want to speed up my development process. Here is my "big picture":
I develop my use cases and the business logic in "plain old java classes" without any references to EJB or silmilar. Then I develop a thin layer to integrate my logic in an EJB application server. This layer could be implemented as a "session facade". This layer controls transaction behavior, security and similar things.
My problem: if you change some code you have to compile, build the jar/ear file, deploy, and finaly you can test your new code. This is so slooooow.
My idea: create a framework that simulates the required services (most important: correct transactional behavior) in a completly local environment. But I don't want to reinvent an application server.
I hope my problem is clear to you. I just want to test my changes quicker and with the same behaviour as deployed to the application server. But everything should run within a single process in my favorite IDE.
Has anyone suggestions? Are there "frameworks" that I could use? What steps are you performing in your everyday work?
Dude, is your problem more targeted towards unit testing, or is it a wrong way of working style which you want to continue ?
If itz unit testing then go to jakarta.apache.org and download JUnit and Cactus I guess that is what you are looking for.
It's not targeted toward unit testing. If it's a "wrong way of working style" please tell me the right way. I like it as simple as possible.
'Test driven development', 'Unit tests', seperating most of your 'business logic' in 'Plain Old Java Classes' as you do is a way to go.
I have used 'Unit test' for some years now, and it is recommended for a number of reasons.
'Test driven development' is the next step, and I haved only used it for a couple of month. However it seems promissing. Most of the business logic is developed in a cycle: 'write test' - test - 'write code' - test - 'write test'. I can run it all inside my IDE (IntelliJ) and the turnaround time is a few seconds. In stead of having the whole application running, you just run a small test application inside the JUnit framework.
When you have made as much you can this way, you still have to deploy the whole application into the applicationserver to do the last things. How far you can postphone this, is a matter of creative thinking and maybe some design patterns. There have been suggested a couple of patterns on this site (I think) on how to design for substituting Entity Beans with stubs.
Use a tool like IBM's WSAD that integrates a complete App Server in the development environment.
Compile, deploy, test takes seconds.
This article might answer most of your questions.
J2EE Best Practices