Details
diff --git a/analytics/src/main/java/com/ning/billing/analytics/AnalyticsListener.java b/analytics/src/main/java/com/ning/billing/analytics/AnalyticsListener.java
index f58f601..653a285 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/AnalyticsListener.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/AnalyticsListener.java
@@ -38,7 +38,6 @@ public class AnalyticsListener implements IApiListener
private final IEntitlementUserApi entitlementApi;
private final IAccountUserApi accountApi;
- @Inject
public AnalyticsListener(final EventDao dao, final IEntitlementUserApi entitlementApi, final IAccountUserApi accountApi)
{
this.dao = dao;
diff --git a/beatrix/src/main/java/com/ning/billing/beatrix/glue/BeatrixModule.java b/beatrix/src/main/java/com/ning/billing/beatrix/glue/BeatrixModule.java
new file mode 100644
index 0000000..7a672c1
--- /dev/null
+++ b/beatrix/src/main/java/com/ning/billing/beatrix/glue/BeatrixModule.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2010-2011 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.beatrix.glue;
+
+import com.google.inject.AbstractModule;
+import com.ning.billing.beatrix.lifecycle.Lifecycle;
+
+public class BeatrixModule extends AbstractModule {
+
+ @Override
+ protected void configure() {
+ bind(Lifecycle.class).asEagerSingleton();
+ }
+
+}
diff --git a/beatrix/src/main/java/com/ning/billing/beatrix/lifecycle/Lifecycle.java b/beatrix/src/main/java/com/ning/billing/beatrix/lifecycle/Lifecycle.java
index 3f13baf..6abdb75 100644
--- a/beatrix/src/main/java/com/ning/billing/beatrix/lifecycle/Lifecycle.java
+++ b/beatrix/src/main/java/com/ning/billing/beatrix/lifecycle/Lifecycle.java
@@ -20,10 +20,7 @@ import java.lang.reflect.Method;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
import java.util.Set;
-import java.util.TreeSet;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArraySet;
@@ -65,6 +62,8 @@ public class Lifecycle {
}
});
this.injector = injector;
+
+ init();
}
public void init() {
@@ -101,7 +100,7 @@ public class Lifecycle {
try {
Method method = cur.getMethod();
IService target = cur.getTarget();
- log.debug("Killbill lifecycle calling handler {} for service {}", cur.getMethod().getName(), target.getName());
+ log.info("Killbill lifecycle calling handler {} for service {}", cur.getMethod().getName(), target.getName());
method.invoke(target);
} catch (Exception e) {
log.warn("Killbill lifecycle failed to invoke lifecycle handler", e);
@@ -112,14 +111,16 @@ public class Lifecycle {
private Set<? extends IService> findServices() {
- Set<IService> result = new TreeSet<IService>();
+ Set<IService> result = new HashSet<IService>();
Set<Class<? extends IService>> services = serviceFinder.getServices();
for (Class<? extends IService> cur : services) {
- log.debug("Found service {}", cur);
+ log.debug("Found service {}", cur.getName());
try {
- result.add(injector.getInstance(cur));
+ IService instance = injector.getInstance(cur);
+ log.debug("got instance {}", instance.getName());
+ result.add(instance);
} catch (Exception e) {
- log.warn("Failed to inject {}", cur.getName());
+ log.warn("Failed to inject " + cur.getName(), e);
}
}
diff --git a/beatrix/src/main/java/com/ning/billing/beatrix/lifecycle/ServiceFinder.java b/beatrix/src/main/java/com/ning/billing/beatrix/lifecycle/ServiceFinder.java
index b604276..fe3f0c5 100644
--- a/beatrix/src/main/java/com/ning/billing/beatrix/lifecycle/ServiceFinder.java
+++ b/beatrix/src/main/java/com/ning/billing/beatrix/lifecycle/ServiceFinder.java
@@ -41,7 +41,7 @@ import com.ning.billing.lifecycle.IService;
public class ServiceFinder {
- private final Logger log = LoggerFactory.getLogger(ServiceFinder.class);
+ private static final Logger log = LoggerFactory.getLogger(ServiceFinder.class);
private final ClassLoader loader;
private final Set<Class<? extends IService>> servicesTypes;
@@ -92,11 +92,12 @@ public class ServiceFinder {
}
for (int h = 0; h < classPaths.length; h++) {
+
+
Enumeration<?> files = null;
JarFile module = null;
File classPath = new File( (URL.class).isInstance(classPaths[h]) ?
((URL)classPaths[h]).getFile() : classPaths[h].toString());
-
if (classPath.isDirectory()) {
List<String> dirListing = new ArrayList<String>();
recursivelyListDir(dirListing, classPath, new StringBuffer() );
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/lifecycle/TestLifecycle.java b/beatrix/src/test/java/com/ning/billing/beatrix/lifecycle/TestLifecycle.java
index 5c0c742..f85232f 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/lifecycle/TestLifecycle.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/lifecycle/TestLifecycle.java
@@ -81,7 +81,6 @@ public class TestLifecycle {
s1 = g.getInstance(Service1.class);
s2 = g.getInstance(Service2.class);
lifecycle = g.getInstance(Lifecycle.class);
- lifecycle.init();
}
@Test