You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/12/26 11:39:02 UTC

tomee git commit: allow to name parameter of static factories for ServerService

Repository: tomee
Updated Branches:
  refs/heads/develop bf44f6b0d -> 765bb1d0c


allow to name parameter of static factories for ServerService


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

Branch: refs/heads/develop
Commit: 765bb1d0c3ed7443ada05c79f14a6ddcf6dded25
Parents: bf44f6b
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Fri Dec 26 11:13:06 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Fri Dec 26 11:13:06 2014 +0100

----------------------------------------------------------------------
 .../apache/openejb/server/httpd/HttpServerFactory.java |  8 ++++----
 .../org.apache.openejb.server.ServerService/httpejbd   |  1 +
 .../java/org/apache/openejb/server/ServiceManager.java | 13 ++++++++++---
 3 files changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/765bb1d0/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpServerFactory.java
----------------------------------------------------------------------
diff --git a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpServerFactory.java b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpServerFactory.java
index bb324ed..cd74709 100644
--- a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpServerFactory.java
+++ b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpServerFactory.java
@@ -17,12 +17,12 @@
 package org.apache.openejb.server.httpd;
 
 import org.apache.openejb.server.ServerService;
+import org.apache.xbean.recipe.ParameterNames;
 
 public class HttpServerFactory {
-    private boolean useJettyIfPossible = true;
-
-    public ServerService createServerService() {
-        if (useJettyIfPossible) {
+    @ParameterNames("useJetty")
+    public static ServerService createServerService(final boolean useJetty) {
+        if (useJetty) {
             try {
                 ClassLoader cl = Thread.currentThread().getContextClassLoader();
                 cl.loadClass("org.mortbay.jetty.Connector");

http://git-wip-us.apache.org/repos/asf/tomee/blob/765bb1d0/server/openejb-http/src/main/resources/META-INF/org.apache.openejb.server.ServerService/httpejbd
----------------------------------------------------------------------
diff --git a/server/openejb-http/src/main/resources/META-INF/org.apache.openejb.server.ServerService/httpejbd b/server/openejb-http/src/main/resources/META-INF/org.apache.openejb.server.ServerService/httpejbd
index 7eb14ec..1a51b98 100644
--- a/server/openejb-http/src/main/resources/META-INF/org.apache.openejb.server.ServerService/httpejbd
+++ b/server/openejb-http/src/main/resources/META-INF/org.apache.openejb.server.ServerService/httpejbd
@@ -3,3 +3,4 @@ bind        = 127.0.0.1
 port        = 4204
 disabled    = ${openejb.profile.custom}
 threads     = 200
+useJetty    = true

http://git-wip-us.apache.org/repos/asf/tomee/blob/765bb1d0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
----------------------------------------------------------------------
diff --git a/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java b/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
index 543d12d..9a8e32f 100644
--- a/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
+++ b/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
@@ -29,6 +29,7 @@ import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.xbean.recipe.ObjectRecipe;
 import org.apache.xbean.recipe.Option;
+import org.apache.xbean.recipe.ReflectionUtil;
 
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
@@ -36,6 +37,7 @@ import java.io.File;
 import java.io.FilenameFilter;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -139,10 +141,15 @@ public abstract class ServiceManager {
                 ObjectRecipe recipe = new ObjectRecipe(serviceClass);
                 try {
                     // Do not import.  This class is not available in xbean-reflect-3.3
-                    if (org.apache.xbean.recipe.ReflectionUtil.findStaticFactory(serviceClass, "createServerService", null, null) != null) {
-                        recipe = new ObjectRecipe(serviceClass, "createServerService");
+                    final ReflectionUtil.StaticFactory factory = ReflectionUtil.findStaticFactory(
+                            serviceClass, "createServerService", null, null, serviceProperties.stringPropertyNames(), Collections.singleton(Option.NAMED_PARAMETERS));
+                    if (factory != null) {
+                        recipe.setConstructorArgNames(factory.getParameterNames()); // can throw an exception so call it before next line
+                        recipe.setFactoryMethod("createServerService");
+                    } else if (ReflectionUtil.findStaticFactory(serviceClass, "createServerService", null, null) != null) { // old behavior, remove when sure previous check is ok
+                        recipe.setFactoryMethod("createServerService");
                     }
-                } catch (Throwable e) {
+                } catch (final Throwable e) {
                     //Ignore
                 }