blob: 3a59024070a6dca65b8c5ede165b1555ffdf6f08 [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN"
"task.dtd">
<task id="tjcircleb" xml:lang="en-us">
<title outputclass="id_title">Correcting cyclical dependencies after an EAR
is imported</title>
<shortdesc outputclass="id_shortdesc">You can resolve cyclical dependencies
after an EAR is imported.</shortdesc>
<prolog><metadata>
<keywords><indexterm>cyclical dependencies<indexterm>correcting</indexterm></indexterm>
<indexterm>projects<indexterm>correcting cyclical dependencies</indexterm></indexterm>
<indexterm>J2EE modules<indexterm>correcting cyclical dependencies</indexterm></indexterm>
</keywords>
</metadata></prolog>
<taskbody outputclass="id_taskbody">
<context outputclass="id_context"><p outputclass="anchor_topictop">A cyclical dependency between two
or more modules in an enterprise application most commonly occurs when projects
are imported from outside the workbench. When a cycle exists between two or
more modules in an enterprise application, the <tm tmclass="special" tmowner="Sun Microsystems, Inc."
tmtype="tm" trademark="Java">Java</tm> builder cannot accurately compute the
build order of the projects. Full builds fail under these conditions, or require
several invocations.</p><p>Therefore, the best practice is to organize your
projects or modules into components. This allows your module dependencies
to function as a tree instead of a cycle diagram. This practice has the added
benefit of producing a better factored and layered application.</p></context>
<steps outputclass="id_steps">
<step><cmd>Identify all the classes within the JAR files that have cyclical
dependencies, then move those classes into a common <tm tmclass="special"
tmowner="Sun Microsystems, Inc." tmtype="tm" trademark="Java">Java</tm> project
or JAR file.</cmd></step>
<step><cmd>Use the enterprise application editor to map utility JAR files
to the common projects.</cmd></step>
<step><cmd>Use the JAR dependency editor or properties page, for each module
of the JAR in the application, to set dependencies only to the JAR files that
are truly required.</cmd></step>
</steps>
<postreq outputclass="id_postreq"><p outputclass="anchor_topicbottom"></p></postreq>
</taskbody>
</task>