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
}