You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by xu...@apache.org on 2010/05/01 16:06:09 UTC
svn commit: r940027 -
/geronimo/server/trunk/plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/merge/MergeHelper.java
Author: xuhaihong
Date: Sat May 1 14:06:09 2010
New Revision: 940027
URL: http://svn.apache.org/viewvc?rev=940027&view=rev
Log:
ORDERED_LIBS should be null if no absolute or relative ordering has been specified
Modified:
geronimo/server/trunk/plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/merge/MergeHelper.java
Modified: geronimo/server/trunk/plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/merge/MergeHelper.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/merge/MergeHelper.java?rev=940027&r1=940026&r2=940027&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/merge/MergeHelper.java (original)
+++ geronimo/server/trunk/plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/merge/MergeHelper.java Sat May 1 14:06:09 2010
@@ -190,7 +190,9 @@ public class MergeHelper {
}
}
}
- return orderedWebFragments.toArray(new WebFragmentEntry[0]);
+ WebFragmentEntry[] webFragmentEntries = orderedWebFragments.toArray(new WebFragmentEntry[0]);
+ saveOrderedLibAttribute(earContext, webFragmentEntries);
+ return webFragmentEntries;
}
@SuppressWarnings("unchecked")
@@ -381,16 +383,6 @@ public class MergeHelper {
}
}
WebFragmentEntry[] webFragmentEntries = sortWebFragments(earContext, module, bundle, webApp, jarUrlWebFragmentDocumentMap);
- //Save ORDERED_LIBS Attribute
- List<String> orderedLibs = new ArrayList<String>();
- for (WebFragmentEntry webFragmentEntry : webFragmentEntries) {
- String jarURL = webFragmentEntry.getJarURL();
- int iBeginIndex = jarURL.indexOf("WEB-INF/");
- if (iBeginIndex > 0) {
- orderedLibs.add(jarURL.substring(iBeginIndex + 8));
- }
- }
- earContext.getGeneralData().put(AbstractWebModuleBuilder.ORDERED_LIBS, orderedLibs);
//
MergeContext mergeContext = new MergeContext();
mergeContext.setEarContext(earContext);
@@ -433,8 +425,17 @@ public class MergeHelper {
throws DeploymentException {
Map<String, WebFragmentOrderEntry> webFragmentOrderEntryMap = new LinkedHashMap<String, WebFragmentOrderEntry>();
//Step 1 : Create WebFragmentOrderEntry for sorting web fragments easily
+ boolean relativeSortRequired = false;
for (String webFragmentName : webFragmentEntryMap.keySet()) {
- webFragmentOrderEntryMap.put(webFragmentName, WebFragmentOrderEntry.create(webFragmentEntryMap.get(webFragmentName)));
+ WebFragmentEntry webFragmentEntry = webFragmentEntryMap.get(webFragmentName);
+ if (!relativeSortRequired) {
+ relativeSortRequired = webFragmentEntry.getWebFragment().getOrderingArray().length > 0;
+ }
+ webFragmentOrderEntryMap.put(webFragmentName, WebFragmentOrderEntry.create(webFragmentEntry));
+ }
+ //If none of the web-fragment.xml defines the order element, the order of jar files are unknown
+ if (!relativeSortRequired) {
+ return webFragmentOrderEntryMap.values().toArray(new WebFragmentEntry[0]);
}
//Step 2 : Initialize the list by before/after others configurations, also, convert the before configurations to corresponding after configurations
//TODO Is the reference like A before others and B before A allowed ?
@@ -468,6 +469,7 @@ public class MergeHelper {
for (WebFragmentOrderEntry webFragmentOrderEntry : webFragmentOrderEntryList) {
webFragmentTypes[iIndex++] = webFragmentOrderEntry.webFragmentEntry;
}
+ saveOrderedLibAttribute(earContext, webFragmentTypes);
return webFragmentTypes;
}
@@ -574,6 +576,19 @@ public class MergeHelper {
}
}
+ private static void saveOrderedLibAttribute(EARContext earContext, WebFragmentEntry[] webFragmentEntries) {
+ //Save ORDERED_LIBS Attribute
+ List<String> orderedLibs = new ArrayList<String>();
+ for (WebFragmentEntry webFragmentEntry : webFragmentEntries) {
+ String jarURL = webFragmentEntry.getJarURL();
+ int iBeginIndex = jarURL.indexOf("WEB-INF/");
+ if (iBeginIndex > 0) {
+ orderedLibs.add(jarURL.substring(iBeginIndex + 8));
+ }
+ }
+ earContext.getGeneralData().put(AbstractWebModuleBuilder.ORDERED_LIBS, orderedLibs);
+ }
+
private static class WebFragmentOrderEntry {
public boolean afterDefined;