I have a dynamic web project (DWP) which has some generic filters, servlets and listeners. This project is a DWP because it contains test situations; it's configured in a Tomcat server and I can do run through some test scenario's.

Naturally I want to use this in a real life DWP, so I want to include the "utility DWP" project, but Eclipse doesn't show it in the JEE module dependencies; only non-DWP projects are listed.

I assume it is on purpose, but I think my scenario is not that strange. Is there a away around?

I am not positive I have a grasp on your situation but this is what I think it is.

You have a set of java classes that both your Testing DWP and your "real life" DWP need access too.

If this is a case then you should create a Utility project using the "File -> New -> Utility Project" wizard and move the shared classes to that project. Then both of your DWPs can add the utility project as a JEE module dependency.

If I am not understanding your situation correctly please clarify.

Ian Tewksbury
WTP JavaScript Tools
IBM Rational
-----“When once you have tasted flight, you will forever walk the earth with your eyes turned skyward, for there you have been, and there you will always long to return.” ~Leonardo da Vinci

Ian Tewksbury ha scritto:
> If this is a case then you should create a Utility project using the
> "File -> New -> Utility Project" wizard and move the shared classes to
> that project. Then both of your DWPs can add the utility project as a
> JEE module dependency.

I didn't even know "Utility Project" existed. I usually create a Java
Project that then I add as a JEE module dependency to the Dynamic Web
Project.

However, I agree with Tom that sometimes having support for such a
dependency mechanism even for web application resources (JSPs, static
documents, etc.) would be useful, but AFAIK it's not possibile yet.

I could separate the test classes into a separate DWP, that would work. But I'd prefer keeping source + test in one.

What are the shared resources here that need to be accessed by both DWP. Is it Java classes, or Servlets or a combination of both?

While I am still not clear on the situation one thing you could try is to add the "utility DWP" as a class path dependency of the production DWP. To do this you would:
1. right click on the production DWP and selection "Properties" 2. then select "Java Build Path"
3. then select the "Projects" tab
4. Then click "Add..." and select the your utility DWP

I am not positive this will buy you what you are looking for and you would still have to deploy each DWP separately unless they are both contain din the same EAR then you could just deploy the EAR.

The relationship that needs to be formed between the projects and weather a separate "Utility Project" would be useful here really depends what type of resources you are trying to reference in your utility DWP and how you are referencing them.

Ian Tewksbury
WTP JavaScript Tools
IBM Rational
-----“When once you have tasted flight, you will forever walk the earth with your eyes turned skyward, for there you have been, and there you will always long to return.” ~Leonardo da Vinci

The problem is not in that they don't compile, they do fine, but that I cannot place them on the JEE module dependencies for the Tomcat server that is running inside Eclipse. Then It won't find the classes when they are specified in web.xml.

Tom Eugelink ha scritto:
> The DWP tools project contains servlets and filters.
>
> The problem is not in that they don't compile, they do fine, but that I
> cannot place them on the JEE module dependencies for the Tomcat server
> that is running inside Eclipse. Then It won't find the classes when they
> are specified in web.xml.
>

But, if the DWP tools project just contains servlets and filters, why
don't you follow Ian's first advice? If you set it as a "Utility
project" instead of a "Dynamic Web Project", it will still compile
(cause the Utility project is bound to a server runtime) and it will be
available for the production DWP to be used as a JEE module dependency...

Tom Eugelink ha scritto:
> The DWP tools project contains servlets and filters.
>
> The problem is not in that they don't compile, they do fine, but that I
> cannot place them on the JEE module dependencies for the Tomcat server
> that is running inside Eclipse. Then It won't find the classes when they
> are specified in web.xml.

An alternative would be this: if you don't want the DWP tools project to
be a "Utility project" (for any reason), you can set is as a Java
project and manually add to it the Server runtime (Tomcat or such...)
Java library. Then, you'll be able to add it as a JEE module dependency
to the production DWP.

The generic DWP contains a test environment testing the servlets and filters, so it is configured as a DWP in the server itself.
The actual project uses the generic servlets, and naturally is configured as a DWP project in the server.

The setup is not that strange, is it? It's like you're building a JAR project and have a utility JAR project it depends on. The utility JAR project has its own test environment.

I can work around this problem; just build the JAR with the servlets and include that in the other project. But then I do not have the flexible EDI setup I hoped.

Tom Eugelink ha scritto:
> The generic DWP contains a test environment testing the servlets and
> filters, so it is configured as a DWP in the server itself. The actual
> project uses the generic servlets, and naturally is configured as a DWP
> project in the server.
>
> The setup is not that strange, is it? It's like you're building a JAR
> project and have a utility JAR project it depends on. The utility JAR
> project has its own test environment.

I still can't understand what's your problem.

If your problem is "how can I set the dependency", the solution is "set
up the generic project as a Utility project" (if that wouldn't work
please explain why). Then, you will be able to set it as a JEE module
dependency for your actual project, so that a JAR of the utility project
will be automatically built by Eclipse and deployed to WEB-INF/lib
folder of your actual project. The existance of a test environment in
the utility project shouldn't be a problem for that. If it is, please
explain why (and define what's your test environment... test classes? A
web application?).

If your problem is "I want to add a DWP as a JEE module dependency for
another DWP", the answer is: as of now, you can't. But it's still not
clear why you want the generic project to be a DWP at all costs.

In this way the Java source code in the "Utility Project" is accessibly from both your Testing and Actual DWPs and you are able to create the neccissary JEE Module Dependencies.

But as you said in the beginning there is no way to have a JEE Module Dependency on a DWP from a DWP. Not working in that area I do not know the reasons why but you could always search for an open Bugzilla request for this feature or open your own if you can not find one. Though I think the solution I described above is the expected practice.

Blue Skies,

~Ian

Ian Tewksbury
WTP JavaScript Tools
IBM Rational
-----“When once you have tasted flight, you will forever walk the earth with your eyes turned skyward, for there you have been, and there you will always long to return.” ~Leonardo da Vinci

Ian Tewksbury ha scritto:
> But as you said in the beginning there is no way to have a JEE Module
> Dependency on a DWP from a DWP. Not working in that area I do not know
> the reasons why but you could always search for an open Bugzilla request
> for this feature or open your own if you can not find one. Though I
> think the solution I described above is the expected practice.