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);
> +    }
> }
> 

-- 
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to