You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Lee Meador <le...@leemeador.com> on 2009/05/14 20:52:47 UTC

Weird cycle problem. Solutions requested.

I have a strange cyclic problem that I have sort-of working but I'm not
happy with it. I was wondering if any of you have a suggestion:

The application is a J2EE application. Maven 2 builds the ear. The
application is deployed on a cluster and I have a SOAP web service that an
instance in the cluster can use to request status from the other guys in the
cluster if he knows their IPs.

There is a parent project and all the others are children of it.

One child project (monitorIntegration) builds a jar that uses Axis 1.3 to
build a web service client that can talk to the other servers in the
cluster. There is also a proxy class that hides all the web service stuff
from the rest of the application. Axis is run inside an ant build xml file
in the generate-sources phase. It uses a wsdl that resides inside another
project (monitorWS) that is described below to generate the web service
client. But I do not tell Maven that this project depends on the monitorWS
project as it just references the wsdl where it lies on the file system.

I have a business jar project that depends on the monitorIntegration jar
project.

I have a service ejb project that depends on the business project. Inside
this project is a session bean that handles the incoming monitor web service
request (when its running on the other machine in the cluster) it has, if
you care, two business methods. One provides the combinded status of all
machines in the cluster and calls down into the monitorIntegration code
described above for all cluster machines (including itself). The other
business method provides the status for that one instance itself only.

Finally, there is the monitorWS war project that has a POJO and an interface
to define the web service endpoint. It depends on the service ejb project.
That POJO uses JNDI to find the session bean and call its business methods.
The process of building this project consistes of building the WSDL itself
(details of which I will leave out), building the server code from the WSDL
along with various XML files needed and then compiling the java code and
whipping together the WAR file.

To summarize the dependencies

 monitorWS depends on service
service depends on business
business depends on monitorIntegration
monitorIntegration uses the WSDL that monitorWS generates.

If you think about it you can see that the WSDL won't change to much and so
WSDL version n-1 can be used to build monitorIintegration's web service
client and it will mostly work. If any code is changed that causes the WSDL
to change it will really take two builds before it all gets straightened
out. Perhaps there is a deadlock condition in there somewhere but I don't
really care enough to figure it out.

One solution, I have thought of, is to quit generating the WSDL at build
time. Instead the developer can generate (or edit) the WSDL during
development time. That breaks the dependency cycle. If you don't see how
immediately, consider that a WSDL that the developer edits (or generates)
can be put into both the monitorWS and monitorIntegration projects and the
cycle is totally gone.

I wonder if there is some other solution. The cycle is actually present and
valid because the code that seems to call itself in a recursive manner is
really residing on another box which creates the end condition for the
apparent recursion. Of course, if I told Maven2 that monitorIntegration
depended on monitorWS it wouldn't let the build continue. (So ... I lied to
it.)

Thanks.

-- Lee


On Mon, May 11, 2009 at 2:39 PM, huser <mp...@atxg.com> wrote:

>
> Hi,
>
> I have Cobertura plugin configured in my pom.xml. Hudson renders the
> results
> from coverage.xml and reports the coverage results classified as
>
> Packages,Files, Classes,Methods,Lines,Conditionals
>
> Why am I not seeing BranchRate,LineRate,PackageLineRate etc ? I am not
> using
> "Maven Genertate Site" for any kind of Project Reports.
>
>
> My pom.xml looks like this:
>
>                        </plugin>
>                                <plugin>
>                                <groupId>org.codehaus.mojo</groupId>
>
> <artifactId>cobertura-maven-plugin</artifactId>
>                                <configuration>
>                                        <aggregate>true</aggregate>
>        <formats>
>          <format>xml</format>
>        </formats>
>                                        <check>
>
> <haltOnFailure>false</haltOnFailure>
>                            <branchRate>70</branchRate>
>                            <lineRate>70</lineRate>
>
> <totalBranchRate>70</totalBranchRate>
>                                        <totalLineRate>70</totalLineRate>
>  <packageLineRate>85</packageLineRate>
>            <packageBranchRate>85</packageBranchRate>
>                </check>
> </configuration>
> </plugin>
> --
> View this message in context:
> http://www.nabble.com/cobertura-results-tp23490065p23490065.html
> Sent from the Maven - Users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>


-- 
-- Lee Meador
Sent from gmail. My real email address is lee AT leemeador.com