You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2010/05/02 21:30:40 UTC
svn commit: r940310 -
/geronimo/server/trunk/plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/merge/MergeHelper.java
Author: djencks
Date: Sun May 2 19:30:40 2010
New Revision: 940310
URL: http://svn.apache.org/viewvc?rev=940310&view=rev
Log:
GERONIMO-5037 fix type cast problem
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=940310&r1=940309&r2=940310&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 Sun May 2 19:30:40 2010
@@ -21,6 +21,7 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.lang.reflect.Array;
import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
@@ -441,33 +442,43 @@ public class MergeHelper {
}
//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 ?
- LinkedList<WebFragmentOrderEntry> webFragmentOrderEntryList = new LinkedList<WebFragmentOrderEntry>();
- for (WebFragmentOrderEntry webFragmentOrderEntry : webFragmentOrderEntryMap.values()) {
- for (String beforeEntryName : webFragmentOrderEntry.beforeEntryNames) {
- webFragmentOrderEntryMap.get(beforeEntryName).afterEntryNames.add(webFragmentOrderEntry.name);
- }
- if (webFragmentOrderEntry.afterDefined && webFragmentOrderEntry.afterOthers) {
- webFragmentOrderEntryList.addLast(webFragmentOrderEntry);
- } else {
- webFragmentOrderEntryList.addFirst(webFragmentOrderEntry);
+ WebFragmentEntry[] webFragmentTypes = new WebFragmentEntry[webFragmentOrderEntryMap.size()];
+ int iIndex = 0;
+ for (WebFragmentOrderEntry webFragmentOrderEntry : webFragmentOrderEntryMap.values()) {
+ webFragmentTypes[iIndex++] = webFragmentOrderEntry.webFragmentEntry;
+ }
+ //TODO really not save?
+// saveOrderedLibAttribute(earContext, webFragmentTypes);
+ return webFragmentTypes;
+ }
+ LinkedList<WebFragmentOrderEntry> webFragmentOrderEntryList = null;
+ if (relativeSortRequired) {
+ //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 ?
+ webFragmentOrderEntryList = new LinkedList<WebFragmentOrderEntry>();
+ for (WebFragmentOrderEntry webFragmentOrderEntry : webFragmentOrderEntryMap.values()) {
+ for (String beforeEntryName : webFragmentOrderEntry.beforeEntryNames) {
+ webFragmentOrderEntryMap.get(beforeEntryName).afterEntryNames.add(webFragmentOrderEntry.name);
+ }
+ if (webFragmentOrderEntry.afterDefined && webFragmentOrderEntry.afterOthers) {
+ webFragmentOrderEntryList.addLast(webFragmentOrderEntry);
+ } else {
+ webFragmentOrderEntryList.addFirst(webFragmentOrderEntry);
+ }
}
- }
- //Step 3: Detect Circus references
- // a. A -> A
- // b. A -> B -> A
- // c. A -> B -> C -> A
- for (WebFragmentOrderEntry webFragmentOrderEntry : webFragmentOrderEntryList) {
- detectCircusAfterDependency(webFragmentOrderEntry, webFragmentOrderEntry, webFragmentOrderEntryMap, new HashSet<String>());
- }
- //Step 4: Sort the webFragment depending on the after configurations
- //TODO The Sort algorithm might need to improve.
- for (WebFragmentOrderEntry webFragmentOrderEntry : webFragmentOrderEntryMap.values()) {
- for (String afterEntryName : webFragmentOrderEntry.afterEntryNames) {
- swap(webFragmentOrderEntry.name, afterEntryName, webFragmentOrderEntryList);
+ //Step 3: Detect Circus references
+ // a. A -> A
+ // b. A -> B -> A
+ // c. A -> B -> C -> A
+ for (WebFragmentOrderEntry webFragmentOrderEntry : webFragmentOrderEntryList) {
+ detectCircusAfterDependency(webFragmentOrderEntry, webFragmentOrderEntry, webFragmentOrderEntryMap, new HashSet<String>());
+ }
+ //Step 4: Sort the webFragment depending on the after configurations
+ //TODO The Sort algorithm might need to improve.
+ for (WebFragmentOrderEntry webFragmentOrderEntry : webFragmentOrderEntryMap.values()) {
+ for (String afterEntryName : webFragmentOrderEntry.afterEntryNames) {
+ swap(webFragmentOrderEntry.name, afterEntryName, webFragmentOrderEntryList);
+ }
}
}
WebFragmentEntry[] webFragmentTypes = new WebFragmentEntry[webFragmentOrderEntryList.size()];