Hi Dan

Great, thanks for the help, yes, will try tomorrow morning

Cheers, Sergey
On 08/07/15 21:40, Daniel Kulp wrote:
Sergey,

I believe this can now be reverted.   The xjc plugin we have to workaround this 
JAXB issue has been updated to handle this.    Can you retry with this reverted 
to double check?

Dan



On Jul 8, 2015, at 10:11 AM, [email protected] wrote:

Repository: cxf
Updated Branches:
  refs/heads/master 2d41042eb -> aa76bda0f


[CXF-6481] Parsing httpj:engine simple elements directly


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/aa76bda0
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/aa76bda0
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/aa76bda0

Branch: refs/heads/master
Commit: aa76bda0f657d38e027e9248da7df723cc4cf8c2
Parents: 2d41042
Author: Sergey Beryozkin <[email protected]>
Authored: Wed Jul 8 15:10:52 2015 +0100
Committer: Sergey Beryozkin <[email protected]>
Committed: Wed Jul 8 15:10:52 2015 +0100

----------------------------------------------------------------------
.../JettyHTTPServerEngineFactoryHolder.java     | 32 ++++++++++++----
.../JettyServerEngineFactoryParser.java         | 39 +++++++++++++++-----
2 files changed, 55 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/aa76bda0/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyHTTPServerEngineFactoryHolder.java
----------------------------------------------------------------------
diff --git 
a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyHTTPServerEngineFactoryHolder.java
 
b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyHTTPServerEngineFactoryHolder.java
index 348de38..21ea18d 100644
--- 
a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyHTTPServerEngineFactoryHolder.java
+++ 
b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyHTTPServerEngineFactoryHolder.java
@@ -62,6 +62,9 @@ public class JettyHTTPServerEngineFactoryHolder {
     private Map<String, Connector> connectorMap;

     private Map<String, List<Handler>> handlersMap;
+
+    private Map<String, Boolean> sessionSupportMap;
+    private Map<String, Boolean> reuseAddressMap;

     private JAXBContext jaxbContext;
     private Set<Class<?>> jaxbClasses;
@@ -134,7 +137,19 @@ public class JettyHTTPServerEngineFactoryHolder {
                             + engine.getPort().toString());
                     }
                 }
-
+                if (sessionSupportMap != null) {
+                    Boolean sessionSupport = 
sessionSupportMap.get(engine.getPort().toString());
+                    if (sessionSupport != null) {
+                        eng.setSessionSupport(sessionSupport);
+                    }
+                }
+                if (reuseAddressMap != null) {
+                    Boolean reuseAddress = 
reuseAddressMap.get(engine.getPort().toString());
+                    if (reuseAddress != null) {
+                        eng.setReuseAddress(reuseAddress);
+                    }
+                }
+
                 if (engine.isContinuationsEnabled() != null) {
                     
eng.setContinuationsEnabled(engine.isContinuationsEnabled());
                 }
@@ -148,12 +163,7 @@ public class JettyHTTPServerEngineFactoryHolder {
                 if (engine.getPort() != null) {
                     eng.setPort(engine.getPort());
                 }
-                if (engine.isReuseAddress() != null) {
-                    eng.setReuseAddress(engine.isReuseAddress());
-                }
-                if (engine.isSessionSupport() != null) {
-                    eng.setSessionSupport(engine.isSessionSupport());
-                }
+
                 if (engine.getThreadingParameters() != null) {
                     ThreadingParametersType threads = 
engine.getThreadingParameters();
                     ThreadingParameters rThreads = new ThreadingParameters();
@@ -206,6 +216,14 @@ public class JettyHTTPServerEngineFactoryHolder {
         this.connectorMap = connectorMap;
     }

+    public void setSessionSupportMap(Map<String, Boolean> sessionMap) {
+        this.sessionSupportMap = sessionMap;
+    }
+
+    public void setReuseAddressMap(Map<String, Boolean> reuseMap) {
+        this.reuseAddressMap = reuseMap;
+    }
+
     public void setHandlersMap(Map<String, List<Handler>> handlersMap) {
         this.handlersMap = handlersMap;
     }

http://git-wip-us.apache.org/repos/asf/cxf/blob/aa76bda0/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyServerEngineFactoryParser.java
----------------------------------------------------------------------
diff --git 
a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyServerEngineFactoryParser.java
 
b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyServerEngineFactoryParser.java
index 8e8c470..0452846 100644
--- 
a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyServerEngineFactoryParser.java
+++ 
b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyServerEngineFactoryParser.java
@@ -79,21 +79,23 @@ public class JettyServerEngineFactoryParser extends 
AbstractBPBeanDefinitionPars
             ef.setInitMethod("init");
             ef.setActivation(ComponentMetadata.ACTIVATION_EAGER);
             ef.setDestroyMethod("destroy");
+
             // setup the EngineConnector
-            ef.addProperty("connectorMap", parseEngineConnector(element, ef, 
context));
-            ef.addProperty("handlersMap", parseEngineHandlers(element, ef, 
context));
+            List<Element> engines = DOMUtils
+                .getChildrenWithName(element, 
HTTPJettyTransportNamespaceHandler.JETTY_TRANSPORT, "engine");
+            ef.addProperty("connectorMap", parseEngineConnector(engines, ef, 
context));
+            ef.addProperty("handlersMap", parseEngineHandlers(engines, ef, 
context));
+            ef.addProperty("sessionSupportMap", parseEngineBooleanProperty(engines, ef, 
context, "sessionSupport"));
+            ef.addProperty("reuseAddressMap", parseEngineBooleanProperty(engines, ef, 
context, "reuseAddress"));
             return ef;
         } catch (Exception e) {
             throw new RuntimeException("Could not process configuration.", e);
         }
     }

-    protected Metadata parseEngineConnector(Element element, ComponentMetadata 
enclosingComponent,
+    protected Metadata parseEngineConnector(List<Element> engines, 
ComponentMetadata enclosingComponent,
                                             ParserContext context) {
         List<MapEntry> entries = new ArrayList<MapEntry>();
-        // create an empty map first
-        List<Element> engines = DOMUtils
-            .getChildrenWithName(element, 
HTTPJettyTransportNamespaceHandler.JETTY_TRANSPORT, "engine");
         for (Element engine : engines) {
             String port = engine.getAttribute("port");
             ValueMetadata keyValue = createValue(context, port);
@@ -110,11 +112,9 @@ public class JettyServerEngineFactoryParser extends 
AbstractBPBeanDefinitionPars
         return new MapMetadataImpl("java.lang.String", 
"org.eclipse.jetty.server.Connector", entries);
     }

-    protected Metadata parseEngineHandlers(Element element, ComponentMetadata 
enclosingComponent,
+    protected Metadata parseEngineHandlers(List<Element> engines, 
ComponentMetadata enclosingComponent,
                                            ParserContext context) {
         List<MapEntry> entries = new ArrayList<MapEntry>();
-        List<Element> engines = DOMUtils
-            .getChildrenWithName(element, 
HTTPJettyTransportNamespaceHandler.JETTY_TRANSPORT, "engine");
         for (Element engine : engines) {
             String port = engine.getAttribute("port");
             ValueMetadata keyValue = createValue(context, port);
@@ -128,4 +128,25 @@ public class JettyServerEngineFactoryParser extends 
AbstractBPBeanDefinitionPars
         }
         return new MapMetadataImpl("java.lang.String", "java.util.List", 
entries);
     }
+
+    protected Metadata parseEngineBooleanProperty(List<Element> engines,
+                                                  ComponentMetadata 
enclosingComponent,
+                                                  ParserContext context,
+                                                  String propertyName) {
+        List<MapEntry> entries = new ArrayList<MapEntry>();
+        for (Element engine : engines) {
+            String port = engine.getAttribute("port");
+            ValueMetadata keyValue = createValue(context, port);
+            Element sessionSupport = DOMUtils
+                .getFirstChildWithName(engine, 
HTTPJettyTransportNamespaceHandler.JETTY_TRANSPORT,
+                                       propertyName);
+            if (sessionSupport != null) {
+                String text = DOMUtils.getContent(sessionSupport);
+                ValueMetadata valValue = createValue(context, text);
+                entries.add(new MapEntryImpl(keyValue, valValue));
+            }
+        }
+
+        return new MapMetadataImpl("java.lang.String", "java.lang.Boolean", 
entries);
+    }
}



Reply via email to