killbill-memoizeit

meter: move the module to osgi bundle Even though usage should

2/1/2013 12:33:23 AM

Changes

beatrix/pom.xml 4(+0 -4)

pom.xml 11(+5 -6)

server/pom.xml 4(+0 -4)

server/src/test/java/com/ning/billing/jaxrs/TestMeter.java 93(+0 -93)

Details

beatrix/pom.xml 4(+0 -4)

diff --git a/beatrix/pom.xml b/beatrix/pom.xml
index 071d650..4892296 100644
--- a/beatrix/pom.xml
+++ b/beatrix/pom.xml
@@ -46,10 +46,6 @@
         </dependency>
         <dependency>
             <groupId>com.ning.billing</groupId>
-            <artifactId>killbill-meter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.ning.billing</groupId>
             <artifactId>killbill-osgi</artifactId>
         </dependency>
         <dependency>
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java
index 956b28e..8754b9d 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java
@@ -50,7 +50,6 @@ import com.ning.billing.invoice.api.InvoiceService;
 import com.ning.billing.invoice.glue.DefaultInvoiceModule;
 import com.ning.billing.junction.glue.DefaultJunctionModule;
 import com.ning.billing.lifecycle.KillbillService;
-import com.ning.billing.meter.glue.MeterModule;
 import com.ning.billing.osgi.DefaultOSGIService;
 import com.ning.billing.osgi.glue.DefaultOSGIModule;
 import com.ning.billing.overdue.OverdueService;
@@ -125,7 +124,6 @@ public class BeatrixIntegrationModule extends AbstractModule {
         install(new DefaultJunctionModule());
         install(new IntegrationTestOverdueModule());
         install(new AuditModule());
-        install(new MeterModule());
         install(new UsageModule());
         install(new TenantModule());
         install(new ExportModule());
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/JaxrsResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/JaxrsResource.java
index 1be8fd9..ee4e833 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/JaxrsResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/JaxrsResource.java
@@ -79,14 +79,6 @@ public interface JaxrsResource {
 
     public static final String QUERY_NOTIFICATION_CALLBACK = "cb";
 
-    public static final String QUERY_METER_WITH_CATEGORY_AGGREGATE = "withCategoryAggregate";
-    public static final String QUERY_METER_TIME_AGGREGATION_MODE = "timeAggregationMode";
-    public static final String QUERY_METER_TIMESTAMP = "timestamp";
-    public static final String QUERY_METER_FROM = "from";
-    public static final String QUERY_METER_TO = "to";
-    public static final String QUERY_METER_CATEGORY = "category";
-    public static final String QUERY_METER_CATEGORY_AND_METRIC = "category_and_metric";
-
     public static final String ACCOUNTS = "accounts";
     public static final String ACCOUNTS_PATH = PREFIX + "/" + ACCOUNTS;
 
@@ -142,7 +134,4 @@ public interface JaxrsResource {
     public static final String EXPORT_PATH = PREFIX + "/" + EXPORT;
 
     public static final String CBA_REBALANCING = "cbaRebalancing";
-
-    public static final String METER = "meter";
-    public static final String METER_PATH = PREFIX + "/" + METER;
 }
diff --git a/osgi/src/main/java/com/ning/billing/osgi/KillbillActivator.java b/osgi/src/main/java/com/ning/billing/osgi/KillbillActivator.java
index 9030032..1367f4f 100644
--- a/osgi/src/main/java/com/ning/billing/osgi/KillbillActivator.java
+++ b/osgi/src/main/java/com/ning/billing/osgi/KillbillActivator.java
@@ -34,7 +34,6 @@ import com.ning.billing.entitlement.api.user.EntitlementUserApi;
 import com.ning.billing.invoice.api.InvoiceMigrationApi;
 import com.ning.billing.invoice.api.InvoicePaymentApi;
 import com.ning.billing.invoice.api.InvoiceUserApi;
-import com.ning.billing.meter.api.MeterUserApi;
 import com.ning.billing.osgi.api.config.PluginConfigServiceApi;
 import com.ning.billing.overdue.OverdueUserApi;
 import com.ning.billing.payment.api.PaymentApi;
@@ -58,7 +57,6 @@ public class KillbillActivator implements BundleActivator {
     private final InvoiceMigrationApi invoiceMigrationApi;
     private final InvoicePaymentApi invoicePaymentApi;
     private final InvoiceUserApi invoiceUserApi;
-    private final MeterUserApi meterUserApi;
     private final OverdueUserApi overdueUserApi;
     private final PaymentApi paymentApi;
     private final TenantUserApi tenantUserApi;
@@ -107,7 +105,6 @@ public class KillbillActivator implements BundleActivator {
                              final InvoiceMigrationApi invoiceMigrationApi,
                              final InvoicePaymentApi invoicePaymentApi,
                              final InvoiceUserApi invoiceUserApi,
-                             final MeterUserApi meterUserApi,
                              final OverdueUserApi overdueUserApi,
                              final PaymentApi paymentApi,
                              final TenantUserApi tenantUserApi,
@@ -129,7 +126,6 @@ public class KillbillActivator implements BundleActivator {
         this.invoiceMigrationApi = invoiceMigrationApi;
         this.invoicePaymentApi = invoicePaymentApi;
         this.invoiceUserApi = invoiceUserApi;
-        this.meterUserApi = meterUserApi;
         this.overdueUserApi = overdueUserApi;
         this.paymentApi = paymentApi;
         this.tenantUserApi = tenantUserApi;
@@ -159,7 +155,6 @@ public class KillbillActivator implements BundleActivator {
         invoiceMigrationApiRegistration = context.registerService(InvoiceMigrationApi.class.getName(), invoiceMigrationApi, null);
         invoicePaymentApiRegistration = context.registerService(InvoicePaymentApi.class.getName(), invoicePaymentApi, null);
         invoiceUserApiRegistration = context.registerService(InvoiceUserApi.class.getName(), invoiceUserApi, null);
-        meterUserApiRegistration = context.registerService(MeterUserApi.class.getName(), meterUserApi, null);
         overdueUserApiRegistration = context.registerService(OverdueUserApi.class.getName(), overdueUserApi, null);
         paymentApiRegistration = context.registerService(PaymentApi.class.getName(), paymentApi, null);
         tenantUserApiRegistration = context.registerService(TenantUserApi.class.getName(), tenantUserApi, null);
diff --git a/osgi-bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/Activator.java b/osgi-bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/Activator.java
index a8e99eb..a8bb391 100644
--- a/osgi-bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/Activator.java
+++ b/osgi-bundles/jruby/src/main/java/com/ning/billing/osgi/bundles/jruby/Activator.java
@@ -39,7 +39,6 @@ import com.ning.billing.entitlement.api.user.EntitlementUserApi;
 import com.ning.billing.invoice.api.InvoiceMigrationApi;
 import com.ning.billing.invoice.api.InvoicePaymentApi;
 import com.ning.billing.invoice.api.InvoiceUserApi;
-import com.ning.billing.meter.api.MeterUserApi;
 import com.ning.billing.osgi.api.config.PluginConfig.PluginType;
 import com.ning.billing.osgi.api.config.PluginConfigServiceApi;
 import com.ning.billing.osgi.api.config.PluginRubyConfig;
@@ -131,7 +130,6 @@ public class Activator implements BundleActivator {
         killbillUserApis.put("invoice_migration_api", retrieveApi(context, InvoiceMigrationApi.class));
         killbillUserApis.put("invoice_payment_api", retrieveApi(context, InvoicePaymentApi.class));
         killbillUserApis.put("invoice_user_api", retrieveApi(context, InvoiceUserApi.class));
-        killbillUserApis.put("meter_user_api", retrieveApi(context, MeterUserApi.class));
         killbillUserApis.put("overdue_user_api", retrieveApi(context, OverdueUserApi.class));
         killbillUserApis.put("payment_api", retrieveApi(context, PaymentApi.class));
         killbillUserApis.put("tenant_user_api", retrieveApi(context, TenantUserApi.class));
diff --git a/osgi-bundles/meter/src/main/java/com/ning/billing/meter/osgi/MeterActivator.java b/osgi-bundles/meter/src/main/java/com/ning/billing/meter/osgi/MeterActivator.java
new file mode 100644
index 0000000..1918788
--- /dev/null
+++ b/osgi-bundles/meter/src/main/java/com/ning/billing/meter/osgi/MeterActivator.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2010-2013 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.meter.osgi;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+import com.ning.billing.meter.DefaultMeterService;
+import com.ning.billing.meter.MeterService;
+import com.ning.billing.meter.glue.MeterModule;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Stage;
+
+public class MeterActivator implements BundleActivator {
+
+    private DefaultMeterService meterService = null;
+
+    @Override
+    public void start(final BundleContext context) throws Exception {
+        final Injector injector = Guice.createInjector(Stage.PRODUCTION, new MeterModule());
+        meterService = (DefaultMeterService) injector.getInstance(MeterService.class);
+        meterService.start();
+    }
+
+    @Override
+    public void stop(final BundleContext context) throws Exception {
+        if (meterService != null) {
+            meterService.stop();
+        }
+    }
+}
diff --git a/osgi-bundles/pom.xml b/osgi-bundles/pom.xml
index 113b569..8d3b142 100644
--- a/osgi-bundles/pom.xml
+++ b/osgi-bundles/pom.xml
@@ -29,5 +29,6 @@
     <modules>
         <module>hello</module>
         <module>jruby</module>
+        <module>meter</module>
     </modules>
 </project>

pom.xml 11(+5 -6)

diff --git a/pom.xml b/pom.xml
index 3fa3815..da23953 100644
--- a/pom.xml
+++ b/pom.xml
@@ -48,7 +48,6 @@
         <module>entitlement</module>
         <module>invoice</module>
         <module>junction</module>
-        <module>meter</module>
         <module>overdue</module>
         <module>payment</module>
         <module>usage</module>
@@ -215,11 +214,6 @@
             </dependency>
             <dependency>
                 <groupId>com.ning.billing</groupId>
-                <artifactId>killbill-meter</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.ning.billing</groupId>
                 <artifactId>killbill-overdue</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -258,6 +252,11 @@
                 <version>${project.version}</version>
             </dependency>
             <dependency>
+                <groupId>com.ning.billing</groupId>
+                <artifactId>killbill-osgi-bundles-meter</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>com.jolbox</groupId>
                 <artifactId>bonecp</artifactId>
                 <version>0.7.1.RELEASE</version>

server/pom.xml 4(+0 -4)

diff --git a/server/pom.xml b/server/pom.xml
index af110d0..16f129d 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -197,10 +197,6 @@
         </dependency>
         <dependency>
             <groupId>com.ning.billing</groupId>
-            <artifactId>killbill-meter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.ning.billing</groupId>
             <artifactId>killbill-overdue</artifactId>
         </dependency>
         <dependency>
diff --git a/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java b/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
index 86779b0..cc19eba 100644
--- a/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
+++ b/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
@@ -29,7 +29,6 @@ import com.ning.billing.jaxrs.resources.AccountResource;
 import com.ning.billing.jaxrs.resources.BundleResource;
 import com.ning.billing.jaxrs.resources.CatalogResource;
 import com.ning.billing.jaxrs.resources.InvoiceResource;
-import com.ning.billing.jaxrs.resources.MeterResource;
 import com.ning.billing.jaxrs.resources.PaymentMethodResource;
 import com.ning.billing.jaxrs.resources.PaymentResource;
 import com.ning.billing.jaxrs.resources.RefundResource;
@@ -38,7 +37,6 @@ import com.ning.billing.jaxrs.resources.TagResource;
 import com.ning.billing.jaxrs.resources.TenantResource;
 import com.ning.billing.jaxrs.util.KillbillEventHandler;
 import com.ning.billing.junction.glue.DefaultJunctionModule;
-import com.ning.billing.meter.glue.MeterModule;
 import com.ning.billing.overdue.glue.DefaultOverdueModule;
 import com.ning.billing.payment.glue.PaymentModule;
 import com.ning.billing.server.DefaultServerService;
@@ -97,7 +95,6 @@ public class KillbillServerModule extends AbstractModule {
         bind(PaymentResource.class).asEagerSingleton();
         bind(RefundResource.class).asEagerSingleton();
         bind(TenantResource.class).asEagerSingleton();
-        bind(MeterResource.class).asEagerSingleton();
         bind(KillbillEventHandler.class).asEagerSingleton();
     }
 
@@ -126,7 +123,6 @@ public class KillbillServerModule extends AbstractModule {
         install(new DefaultOverdueModule());
         install(new TenantModule());
         install(new ExportModule());
-        install(new MeterModule());
         install(new TagStoreModule());
         install(new NonEntityDaoModule());
         installClock();
diff --git a/server/src/test/java/com/ning/billing/jaxrs/KillbillClient.java b/server/src/test/java/com/ning/billing/jaxrs/KillbillClient.java
index 238af51..956d40d 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/KillbillClient.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/KillbillClient.java
@@ -806,27 +806,6 @@ public abstract class KillbillClient extends ServerTestSuiteWithEmbeddedDB {
     }
 
     //
-    // METERING
-    //
-
-    protected void recordMeteringUsage(final String source, final String category, final String metric, final DateTime timestamp) throws IOException {
-        final String meterURI = JaxrsResource.METER_PATH + "/" + source + "/" + category + "/" + metric;
-        final Response meterResponse = doPost(meterURI, null, ImmutableMap.<String, String>of(JaxrsResource.QUERY_METER_WITH_CATEGORY_AGGREGATE, "true",
-                                                                                              JaxrsResource.QUERY_METER_TIMESTAMP, timestamp.toString()), DEFAULT_HTTP_TIMEOUT_SEC);
-        assertEquals(meterResponse.getStatusCode(), Status.OK.getStatusCode());
-    }
-
-    protected List<Map<String, Object>> getMeteringAggregateUsage(final String source, final String category, final DateTime from, final DateTime to) throws IOException {
-        final String meterURI = JaxrsResource.METER_PATH + "/" + source;
-        final Response meterResponse = doGet(meterURI, ImmutableMap.<String, String>of(JaxrsResource.QUERY_METER_CATEGORY, category,
-                                                                                       JaxrsResource.QUERY_METER_FROM, from.toString(),
-                                                                                       JaxrsResource.QUERY_METER_TO, to.toString()), DEFAULT_HTTP_TIMEOUT_SEC);
-        assertEquals(meterResponse.getStatusCode(), Status.OK.getStatusCode());
-
-        return mapper.readValue(meterResponse.getResponseBody(), new TypeReference<List<Map<String, Object>>>() {});
-    }
-
-    //
     // HTTP CLIENT HELPERS
     //
     protected Response doPost(final String uri, @Nullable final String body, final Map<String, String> queryParams, final int timeoutSec) {
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
index d8dca6b..52cf885 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
@@ -47,7 +47,6 @@ import com.ning.billing.invoice.api.InvoiceNotifier;
 import com.ning.billing.invoice.glue.DefaultInvoiceModule;
 import com.ning.billing.invoice.notification.NullInvoiceNotifier;
 import com.ning.billing.junction.glue.DefaultJunctionModule;
-import com.ning.billing.meter.glue.MeterModule;
 import com.ning.billing.overdue.glue.DefaultOverdueModule;
 import com.ning.billing.payment.glue.PaymentModule;
 import com.ning.billing.payment.provider.MockPaymentProviderPluginModule;
@@ -189,7 +188,6 @@ public class TestJaxrsBase extends KillbillClient {
             install(new DefaultOverdueModule());
             install(new TenantModule());
             install(new ExportModule());
-            install(new MeterModule());
             installClock();
         }