Author: jleroux
Date: Sun Jun 30 08:38:58 2019
New Revision: 1862333
URL: http://svn.apache.org/viewvc?rev=1862333&view=rev
Log:
Reverted: Mathieu's changes in ConfigXMLReader.java from yesterday
OFBiz was crashing
Reverts rev. 1862324, 1862323, 1862322
Modified:
ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ConfigXMLReader.java
Modified:
ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ConfigXMLReader.java
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ConfigXMLReader.java?rev=1862333&r1=1862332&r2=1862333&view=diff
==============================================================================
---
ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ConfigXMLReader.java
(original)
+++
ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ConfigXMLReader.java
Sun Jun 30 08:38:58 2019
@@ -31,7 +31,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
-import java.util.stream.Collectors;
import javax.servlet.ServletContext;
@@ -188,13 +187,13 @@ public class ConfigXMLReader {
private String defaultRequest;
private String statusCode;
private List<URL> includes = new ArrayList<>();
- private final Map<String, Event> firstVisitEventList = new
LinkedHashMap<>();
- private final Map<String, Event> preprocessorEventList = new
LinkedHashMap<>();
- private final Map<String, Event> postprocessorEventList = new
LinkedHashMap<>();
- private final Map<String, Event> afterLoginEventList = new
LinkedHashMap<>();
- private final Map<String, Event> beforeLogoutEventList = new
LinkedHashMap<>();
- private final Map<String, String> eventHandlerMap = new HashMap<>();
- private final Map<String, String> viewHandlerMap = new HashMap<>();
+ private Map<String, Event> firstVisitEventList = new LinkedHashMap<>();
+ private Map<String, Event> preprocessorEventList = new
LinkedHashMap<>();
+ private Map<String, Event> postprocessorEventList = new
LinkedHashMap<>();
+ private Map<String, Event> afterLoginEventList = new LinkedHashMap<>();
+ private Map<String, Event> beforeLogoutEventList = new
LinkedHashMap<>();
+ private Map<String, String> eventHandlerMap = new HashMap<>();
+ private Map<String, String> viewHandlerMap = new HashMap<>();
private MultivaluedMapContext<String, RequestMap> requestMapMap = new
MultivaluedMapContext<>();
private Map<String, ViewMap> viewMapMap = new HashMap<>();
@@ -310,35 +309,6 @@ public class ConfigXMLReader {
return pushIncludes(ccfg -> ccfg.viewMapMap);
}
- /**
- * Computes the name of an XML element.
- *
- * @param el the element containing "type" and/or "name" attributes
- * @return the derived name.
- * @throws NullPointerException when {@code el} is {@code null}
- */
- private static String elementToName(Element el) {
- String eventName = el.getAttribute("name");
- return eventName.isEmpty()
- ? el.getAttribute("type") + "::" + el.getAttribute("path") + "::" +
el.getAttribute("invoke")
- : eventName;
- }
-
- /**
- * Collects some events defined in an XML tree.
- *
- * @param root the root of the XML tree
- * @param childName the name of the element inside {@code root}
containing the events
- * @return a map associating element derived names to an event objects.
- */
- private static void collectEvents(Element root, String childName,
Map<String, Event> coll) {
- Element child = UtilXml.firstChildElement(root, childName);
- if (child != null) {
- UtilXml.childElementList(child, "event").stream()
- .forEachOrdered(ev -> coll.put(elementToName(ev), new
Event(ev)));
- }
- }
-
private void loadGeneralConfig(Element rootElement) {
this.errorpage = UtilXml.childElementValue(rootElement,
"errorpage");
this.statusCode = UtilXml.childElementValue(rootElement,
"status-code");
@@ -352,19 +322,75 @@ public class ConfigXMLReader {
if (defaultRequestElement != null) {
this.defaultRequest =
defaultRequestElement.getAttribute("request-uri");
}
- collectEvents(rootElement, "firstvisit", firstVisitEventList);
- collectEvents(rootElement, "preprocessor", preprocessorEventList);
- collectEvents(rootElement, "postprocessor",
postprocessorEventList);
- collectEvents(rootElement, "after-login", afterLoginEventList);
- collectEvents(rootElement, "before-logout", beforeLogoutEventList);
+ // first visit event
+ Element firstvisitElement = UtilXml.firstChildElement(rootElement,
"firstvisit");
+ if (firstvisitElement != null) {
+ for (Element eventElement : UtilXml.childElementList(firstvisitElement,
"event")) {
+ String eventName = eventElement.getAttribute("name");
+ if (eventName.isEmpty()) {
+ eventName = eventElement.getAttribute("type") + "::" +
eventElement.getAttribute("path") + "::" + eventElement.getAttribute("invoke");
+ }
+ this.firstVisitEventList.put(eventName, new
Event(eventElement));
+ }
+ }
+ // preprocessor events
+ Element preprocessorElement = UtilXml.firstChildElement(rootElement,
"preprocessor");
+ if (preprocessorElement != null) {
+ for (Element eventElement :
UtilXml.childElementList(preprocessorElement, "event")) {
+ String eventName = eventElement.getAttribute("name");
+ if (eventName.isEmpty()) {
+ eventName = eventElement.getAttribute("type") + "::" +
eventElement.getAttribute("path") + "::" + eventElement.getAttribute("invoke");
+ }
+ this.preprocessorEventList.put(eventName, new
Event(eventElement));
+ }
+ }
+ // postprocessor events
+ Element postprocessorElement = UtilXml.firstChildElement(rootElement,
"postprocessor");
+ if (postprocessorElement != null) {
+ for (Element eventElement :
UtilXml.childElementList(postprocessorElement, "event")) {
+ String eventName = eventElement.getAttribute("name");
+ if (eventName.isEmpty()) {
+ eventName = eventElement.getAttribute("type") + "::" +
eventElement.getAttribute("path") + "::" + eventElement.getAttribute("invoke");
+ }
+ this.postprocessorEventList.put(eventName, new
Event(eventElement));
+ }
+ }
+ // after-login events
+ Element afterLoginElement = UtilXml.firstChildElement(rootElement,
"after-login");
+ if (afterLoginElement != null) {
+ for (Element eventElement : UtilXml.childElementList(afterLoginElement,
"event")) {
+ String eventName = eventElement.getAttribute("name");
+ if (eventName.isEmpty()) {
+ eventName = eventElement.getAttribute("type") + "::" +
eventElement.getAttribute("path") + "::" + eventElement.getAttribute("invoke");
+ }
+ this.afterLoginEventList.put(eventName, new
Event(eventElement));
+ }
+ }
+ // before-logout events
+ Element beforeLogoutElement = UtilXml.firstChildElement(rootElement,
"before-logout");
+ if (beforeLogoutElement != null) {
+ for (Element eventElement :
UtilXml.childElementList(beforeLogoutElement, "event")) {
+ String eventName = eventElement.getAttribute("name");
+ if (eventName.isEmpty()) {
+ eventName = eventElement.getAttribute("type") + "::" +
eventElement.getAttribute("path") + "::" + eventElement.getAttribute("invoke");
+ }
+ this.beforeLogoutEventList.put(eventName, new
Event(eventElement));
+ }
+ }
}
private void loadHandlerMap(Element rootElement) {
- Map<Boolean, Map<String, String>> handlers =
UtilXml.childElementList(rootElement, "handler").stream()
- .collect(Collectors.partitioningBy(el ->
"view".equals(el.getAttribute("type")),
- Collectors.toMap(el -> el.getAttribute("name"), el ->
el.getAttribute("className"))));
- viewHandlerMap.putAll(handlers.get(true));
- eventHandlerMap.putAll(handlers.get(false));
+ for (Element handlerElement : UtilXml.childElementList(rootElement,
"handler")) {
+ String name = handlerElement.getAttribute("name");
+ String type = handlerElement.getAttribute("type");
+ String className = handlerElement.getAttribute("class");
+
+ if ("view".equals(type)) {
+ this.viewHandlerMap.put(name, className);
+ } else {
+ this.eventHandlerMap.put(name, className);
+ }
+ }
}
protected void loadIncludes(Element rootElement) {