tags:

views:

126

answers:

2

I'm working on a Java application that uses JavaSpace. We're developing this in Eclipse. There are a couple instances where we are inserting code into the JavaSpace to do some more advanced space notification logic. Doing this requires that we generate stubs for the classes used within the JavaSpace. We use an external script to generate these stubs.

The problem is that whenever Eclipse restarts, it does a clean build of the whole application. When it does this, it deletes all the stubs and we have to regenerate them.

I would like to find a way to either tell Eclipse not to remove the _stub.class and _skel.class files within the bin folder where the .class files are placed. Either that, or somehow teach Eclipse to generate the stub files whenever it does a rebuild (and I suppose whenever the source files from which the stubs are generated changes).

How can I do one of these, so that we don't have to manually build the stubs every time we start up Eclipse?

+1  A: 

You could declare your script as an external builder and add it to the builders of your project.

alt text

You can then configure that new builder to run on every complete re-build of the project, effectively canceling the removal of the stub files.


The other way would be to declare a new project P1 generating, referencing and compiling only those extra classes, project which would depend on the general original project P.
Meaning: when you re-build P, you do not touch this extra project P1 meant to manage the generated classes.

VonC
Is there a way to tell the script that it should only run in Linux or in Windows? We have developers that use both platforms, and the builder script is different in both.
Erick Robertson
@Erick: how about a wrapper script (declared as the external builder in an platform agnostic language like a ant script) which will detect the platform and call the right script ?
VonC
A: 

There are no need for for stubs in rmi from java 1.6

rgksugan
I'm using JavaSpace. It still requires stubs. Besides, the external builder works great.
Erick Robertson