You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2013/07/07 07:39:30 UTC
[15/17] removing billing,
payment and sso-mgt components since they are not going to use Apache
Stratos
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/handlers/InvoiceCalculationHandler.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/handlers/InvoiceCalculationHandler.java b/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/handlers/InvoiceCalculationHandler.java
deleted file mode 100644
index d745d8a..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/handlers/InvoiceCalculationHandler.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Copyright (c) 2008, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * Licensed 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 org.wso2.carbon.billing.core.handlers;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.billing.core.*;
-import org.wso2.carbon.billing.core.dataobjects.*;
-import org.wso2.carbon.billing.core.internal.Util;
-
-import java.text.NumberFormat;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Calculates overusage charges, CF value, total payments etc.
- */
-public class InvoiceCalculationHandler implements BillingHandler {
-
- Log log = LogFactory.getLog(InvoiceCalculationHandler.class);
- Map<Integer, Discount> discountMap = new HashMap<Integer, Discount>();
-
- public void init(Map<String, String> handlerConfig) throws BillingException {
- //we are getting the discount list and put them in to a map
- List<Discount> discountList = BillingManager.getInstance().getDataAccessObject().getAllActiveDiscounts();
- for(Discount discount : discountList){
- discountMap.put(discount.getTenantId(), discount);
- }
- }
-
- public void execute(BillingEngineContext handlerContext) throws BillingException {
- // calculate the bill
- calculateInvoice(handlerContext);
- }
-
- private void calculateInvoice(BillingEngineContext handlerContext) throws BillingException {
- List<Subscription> subscriptions = handlerContext.getSubscriptions();
- Map<Integer, Invoice> invoiceMap = new HashMap<Integer, Invoice>();
-
- for (Subscription subscription : subscriptions) {
- Customer customer = subscription.getCustomer();
-
- // invoice should be already set..
- Invoice invoice = customer.getActiveInvoice();
- Cash totalCost = invoice.getTotalCost();
- if (totalCost == null) {
- totalCost = new Cash("$0");
- }
-
- Item item = subscription.getItem();
- //prorate the subscription cost
- //prorateItemCosts(item, invoice, subscription);
- calculateItemCost(item, invoice, subscription);
- Cash itemCost = getItemCost(item);
- totalCost = Cash.add(totalCost, itemCost);
- invoice.setTotalCost(totalCost);
- if (invoiceMap.get(customer.getId()) == null) {
- invoiceMap.put(customer.getId(), invoice);
- }
- }
-
- // from the invoice set we are calculating the payments purchase orders
- for (Invoice invoice : invoiceMap.values()) {
- Cash totalPayment = invoice.getTotalPayment();
- if (totalPayment == null) {
- totalPayment = new Cash("$0");
- }
- List<Payment> payments = invoice.getPayments();
- if (payments != null) {
- for (Payment payment : payments) {
- Cash paymentCash = payment.getAmount();
- totalPayment = Cash.add(paymentCash, totalPayment);
- }
- }
- invoice.setTotalPayment(totalPayment);
-
- // setting the carried forward
- Cash boughtForward = invoice.getBoughtForward();
- if (boughtForward == null) {
- boughtForward = new Cash("$0");
- }
- Cash totalCost = invoice.getTotalCost();
- Cash carriedForward = Cash.subtract(Cash.add(boughtForward, totalCost), totalPayment);
- invoice.setCarriedForward(carriedForward);
- }
-
- log.info("Invoice calculation phase completed. " + invoiceMap.size() + " invoices were calculated");
- }
-
- private Cash getItemCost(Item item) throws BillingException {
- Cash itemCost = item.getCost();
- if (itemCost == null) {
- itemCost = new Cash("$0");
- }
- if (item.getChildren() != null) {
- // and iterate through all the item children
- for (Item subItem : item.getChildren()) {
- Cash subItemCost = subItem.getCost();
- if (subItemCost != null) {
- itemCost = Cash.add(itemCost, subItemCost);
- }
- }
- }
- return itemCost;
- }
-
- private void calculateItemCost(Item item, Invoice invoice, Subscription subscription) throws BillingException {
- if(item.getChildren()!=null){
- for(Item subItem : item.getChildren()){
- if((BillingConstants.BANDWIDTH_SUBITEM.equals(subItem.getName()) ||
- BillingConstants.STORAGE_SUBITEM.equals(subItem.getName()) ||
- BillingConstants.CARTRIDGE_SUBITEM.equals(subItem.getName())) && subscription.isActive()){
- calculateOverUseCharges(item, subItem, subscription);
- }else if(BillingConstants.SUBSCRIPTION_SUBITEM.equals(subItem.getName())){
- prorateItemCosts(subItem, invoice, subscription);
- }
- }
- }
- }
-
- private void calculateOverUseCharges(Item item, Item subItem, Subscription subscription) throws BillingException {
- //calculating cost for bandwidth overuse
- if(BillingConstants.BANDWIDTH_SUBITEM.equals(subItem.getName())){
- long bandwidthUsage = subscription.getCustomer().getTotalBandwidth()/(1024 * 1024L);
- long bandwidthOveruse = 0;
- if(bandwidthUsage > item.getBandwidthLimit()){
- bandwidthOveruse = bandwidthUsage - item.getBandwidthLimit();
- subItem.setCost(item.getBandwidthOveruseCharge().multiply(bandwidthOveruse));
- }
- StringBuffer description = new StringBuffer();
- description.append(subItem.getDescription());
- description.append(": ").append(bandwidthOveruse).append("MB");
- subItem.setDescription(description.toString());
- //calculating cost for storage overuse
- }else if(BillingConstants.STORAGE_SUBITEM.equals(subItem.getName())){
- long storageUsage = subscription.getCustomer().getTotalStorage()/(1024 * 1024L);
- long storageOveruse = 0;
- if(storageUsage > item.getResourceVolumeLimit()){
- storageOveruse = storageUsage - item.getResourceVolumeLimit();
- subItem.setCost(item.getResourceVolumeOveruseCharge().multiply(storageOveruse));
- }
- StringBuffer description = new StringBuffer();
- description.append(subItem.getDescription());
- description.append(": ").append(storageOveruse).append("MB");
- subItem.setDescription(description.toString());
- //calculating the cost for cartridge overuse
- }else if(BillingConstants.CARTRIDGE_SUBITEM.equals(subItem.getName())){
- long cartridgeCpuUsage = subscription.getCustomer().getTotalCartridgeCPUHours();
- long cartridgeCpuOveruse = 0;
- if(cartridgeCpuUsage > item.getCartridgeCPUHourLimit()){
- cartridgeCpuOveruse = cartridgeCpuUsage - item.getCartridgeCPUHourLimit();
- subItem.setCost(item.getCartridgeCPUOveruseCharge().multiply(cartridgeCpuOveruse));
- }
-
- StringBuffer description = new StringBuffer();
- description.append(subItem.getDescription());
- description.append(": ").append(cartridgeCpuOveruse).append("Hours");
- subItem.setDescription(description.toString());
- }
-
- }
-
- //by looking at the start and end dates of the invoice, subscription item's cost is interpolated
- private void prorateItemCosts(Item subItem, Invoice invoice, Subscription subscription) throws BillingException {
- long milisecondsPerDay = 24*60*60*1000L;
- NumberFormat nf = NumberFormat.getInstance();
- nf.setMaximumFractionDigits(2);
-
- int tenantId = invoice.getCustomer().getId();
- Discount discount = discountMap.get(tenantId);
-
- long period;
- long days;
-
- if(subscription.isActive()){
- if(subscription.getActiveSince().before(invoice.getStartDate())){
- period = invoice.getEndDate().getTime() - invoice.getStartDate().getTime();
- }else{
- period = invoice.getEndDate().getTime() - subscription.getActiveSince().getTime();
- }
- }else{
- if(subscription.getActiveSince().before(invoice.getStartDate())){
- period = subscription.getActiveUntil().getTime() - invoice.getStartDate().getTime();
- }else{
- period = subscription.getActiveUntil().getTime() - subscription.getActiveSince().getTime();
- }
- }
-
- //I am considering 28 days or more as a complete month
- days = period/milisecondsPerDay;
- if(days<28){
- float multiplyingFactor = (float)days/30;
- multiplyingFactor = Float.parseFloat(nf.format(multiplyingFactor));
-
- //prorate the subscription fee...
- if(subItem.getCost()!=null){
- subItem.setCost(subItem.getCost().multiply(multiplyingFactor));
- }
-
- //prorating the discount too (if the discount is defined as a raw amount)...
- if(discount!=null && !discount.isPercentageType()){
- discount.setAmount(Float.parseFloat(nf.format(discount.getAmount()*multiplyingFactor)));
- }
- }
-
- //Check whether the customer is offered any discounts and reduce the subscription fee
-
- if(discount!=null){
-
- if(discount.isPercentageType()){
- subItem.setCost(subItem.getCost().multiply(1 - (discount.getPercentage()/100)));
- subItem.setDescription(subItem.getDescription() + " (with " + discount.getPercentage() + "% discount)");
- log.info("Customer: " + tenantId + " was qualified for a discount of " +
- discount.getPercentage() + "% for subscription:" + subscription.getSubscriptionPlan() +
- " which started from:" + subscription.getActiveSince().toString());
- }else{
- subItem.setCost(Cash.subtract(subItem.getCost(), new Cash(String.valueOf(discount.getAmount()))));
- subItem.setDescription(subItem.getDescription() + " (with " + new Cash(String.valueOf(discount.getAmount())).toString() + " discount)");
- log.info("Customer: " + tenantId + " was qualified for a discount of " +
- new Cash(String.valueOf(discount.getAmount())).toString() + " for subscription:" + subscription.getSubscriptionPlan() +
- " which started from:" + subscription.getActiveSince().toString());
- }
-
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/handlers/RuleHandler.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/handlers/RuleHandler.java b/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/handlers/RuleHandler.java
deleted file mode 100644
index 630db9f..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/handlers/RuleHandler.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (c) 2008, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * Licensed 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 org.wso2.carbon.billing.core.handlers;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.billing.core.BillingEngineContext;
-import org.wso2.carbon.billing.core.BillingException;
-import org.wso2.carbon.billing.core.BillingHandler;
-import org.wso2.carbon.billing.core.dataobjects.*;
-import org.wso2.carbon.billing.core.internal.Util;
-import org.wso2.carbon.rule.common.Rule;
-import org.wso2.carbon.rule.common.RuleSet;
-import org.wso2.carbon.rule.common.exception.RuleConfigurationException;
-import org.wso2.carbon.rule.common.exception.RuleRuntimeException;
-import org.wso2.carbon.rule.common.util.Constants;
-import org.wso2.carbon.rule.kernel.backend.RuleBackendRuntime;
-import org.wso2.carbon.rule.kernel.backend.RuleBackendRuntimeFactory;
-import org.wso2.carbon.rule.kernel.backend.Session;
-import org.wso2.carbon.rule.kernel.config.RuleEngineProvider;
-import org.wso2.carbon.utils.CarbonUtils;
-
-import java.io.File;
-import java.util.*;
-
-/**
- * Runs the billing rules against each subscription
- * At the moment only the subscription fee is calculated by
- * these rules. Overusage charges are calculated by InvoiceCalculationHandler
- */
-public class RuleHandler implements BillingHandler {
-
- private static Log log = LogFactory.getLog(RuleHandler.class);
- private Session ruleSession;
-
- public void init(Map<String, String> handlerConfig) throws BillingException {
-
- //create a rule run time to execute rules.
-
- RuleEngineProvider ruleEngineProvider = Util.getRuleEngineConfigService().getRuleConfig().getRuleEngineProvider();
-
- Class ruleBackendRuntimeFactoryClass;
-
- try {
- ruleBackendRuntimeFactoryClass = Class.forName(ruleEngineProvider.getClassName());
- RuleBackendRuntimeFactory ruleBackendRuntimeFactory =
- (RuleBackendRuntimeFactory) ruleBackendRuntimeFactoryClass.newInstance();
- RuleBackendRuntime ruleBackendRuntime =
- ruleBackendRuntimeFactory.getRuleBackendRuntime(ruleEngineProvider.getProperties(),
- Thread.currentThread().getContextClassLoader());
-
- // create a rule set to add
- RuleSet ruleSet = new RuleSet();
- Rule rule = new Rule();
- rule.setResourceType(Constants.RULE_RESOURCE_TYPE_REGULAR);
-
- rule.setSourceType(Constants.RULE_SOURCE_TYPE_URL);
-
- String ruleFile = handlerConfig.get("file");
- ruleFile = CarbonUtils.getCarbonConfigDirPath() + File.separator + ruleFile;
- rule.setValue("file://" + ruleFile);
- log.info("Rule: " + rule.getValue());
-
- ruleSet.addRule(rule);
-
- ruleBackendRuntime.addRuleSet(ruleSet);
-
- this.ruleSession = ruleBackendRuntime.createSession(Constants.RULE_STATEFUL_SESSION);
-
- } catch (Exception e) {
- String msg = "Error occurred while initializing the rule executing environment: " +
- e.getMessage();
- log.error(msg);
- throw new BillingException(msg, e);
- }
- }
-
- public void execute(BillingEngineContext handlerContext) throws BillingException {
- List<Subscription> subscriptions = handlerContext.getSubscriptions();
-
- List<Object> rulesInput = new ArrayList<Object>();
- Set<Integer> customerSet = new HashSet<Integer>();
-
- for (Subscription subscription : subscriptions) {
- // add the subscriptions
- rulesInput.add(subscription);
-
- // add the customers
- Customer customer = subscription.getCustomer();
- if (!customerSet.contains(customer.getId())) {
- customerSet.add(customer.getId());
- rulesInput.add(customer);
-
- // add the invoice too
- Invoice invoice = customer.getActiveInvoice();
- rulesInput.add(invoice);
-
- // add each purchases
- List<Payment> payments = invoice.getPayments();
- if (payments != null) {
- for (Payment payment : payments) {
- rulesInput.add(payment);
- }
- }
- }
-
- // add the items
- Item item = subscription.getItem();
- rulesInput.add(item);
-
- List<? extends Item> children = item.getChildren();
- if (children != null) {
- for (Item subItem : item.getChildren()) {
- rulesInput.add(subItem);
- }
- }
- }
-
- try {
- this.ruleSession.execute(rulesInput);
- } catch (RuleRuntimeException e) {
- String msg = "Error occurred while executing rules during the bill generation: " +
- e.getMessage();
- log.error(msg);
- throw new BillingException(msg, e);
- }
- log.info("Rule execution phase completed.");
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/handlers/SubscriptionTreeBuildingHandler.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/handlers/SubscriptionTreeBuildingHandler.java b/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/handlers/SubscriptionTreeBuildingHandler.java
deleted file mode 100644
index 131430f..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/handlers/SubscriptionTreeBuildingHandler.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) 2008, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * Licensed 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 org.wso2.carbon.billing.core.handlers;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.billing.core.BillingEngineContext;
-import org.wso2.carbon.billing.core.BillingException;
-import org.wso2.carbon.billing.core.BillingHandler;
-import org.wso2.carbon.billing.core.BillingManager;
-import org.wso2.carbon.billing.core.dataobjects.Cash;
-import org.wso2.carbon.billing.core.dataobjects.Customer;
-import org.wso2.carbon.billing.core.dataobjects.Invoice;
-import org.wso2.carbon.billing.core.dataobjects.Payment;
-import org.wso2.carbon.billing.core.dataobjects.Subscription;
-import org.wso2.carbon.billing.core.jdbc.DataAccessObject;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Subscriptions found in the subscription feeding handler are
- * added to relevant invoices via this class
- */
-public class SubscriptionTreeBuildingHandler implements BillingHandler {
-
- private static Log log = LogFactory.getLog(SubscriptionTreeBuildingHandler.class);
-
- public void init(Map<String, String> handlerConfig) throws BillingException {
- // nothing to initialize
- }
-
- public void execute(BillingEngineContext handlerContext) throws BillingException {
- buildSubscriptionTree(handlerContext);
- }
-
- /**
- * Creates maps of <customer, list of subscriptions>. Then creates
- * invoices for each customers.
- * @param handlerContext this is the BillingEngineContext
- * @throws BillingException throws a BillingException
- */
- private void buildSubscriptionTree(BillingEngineContext handlerContext) throws BillingException {
- DataAccessObject dataAccessObject = BillingManager.getInstance().getDataAccessObject();
-
- // get the subscription from handler context
- List<Subscription> subscriptions = handlerContext.getSubscriptions();
-
- Map<Customer, List<Subscription>> customersSubscriptions = new HashMap<Customer, List<Subscription>>();
-
- for (Subscription subscription : subscriptions) {
- Customer customer = subscription.getCustomer();
- List<Subscription> customerSubscriptions = customersSubscriptions.get(customer);
- if (customerSubscriptions == null) {
- customerSubscriptions = new ArrayList<Subscription>();
- }
- customerSubscriptions.add(subscription);
- customersSubscriptions.put(customer, customerSubscriptions);
- }
-
- // so iterating all the customers
- for (Map.Entry<Customer, List<Subscription>> entry : customersSubscriptions.entrySet()) {
- Customer customer = entry.getKey();
- List<Subscription> customerSubscriptions = entry.getValue();
-
- // create an empty invoice
- Invoice invoice = new Invoice();
-
- // get the last invoice for the customer
- Invoice lastInvoice = dataAccessObject.getLastInvoice(customer);
-
- if (lastInvoice != null) {
- invoice.setBoughtForward(lastInvoice.getCarriedForward());
- long lastInvoiceEnd = lastInvoice.getEndDate().getTime();
- long currentInvoiceStart = lastInvoiceEnd + 1000; //one second after
- // the last invoice
- invoice.setStartDate(new Date(currentInvoiceStart));
- } else {
- invoice.setBoughtForward(new Cash("$0"));
- // the earliest of the subscriptions
- long earliestSubscriptionStart = -1;
- for (Subscription subscription : customerSubscriptions) {
- long subscriptionStartDate = subscription.getActiveSince().getTime();
- if (earliestSubscriptionStart == -1 ||
- subscriptionStartDate < earliestSubscriptionStart) {
- earliestSubscriptionStart = subscriptionStartDate;
- }
- }
- invoice.setStartDate(new Date(earliestSubscriptionStart));
- }
-
- Date currentDate = new Date();
- invoice.setEndDate(currentDate);
- // this is the date the billing is initialized, this can be probably overwritten
- invoice.setDate(currentDate);
-
- // and we will count for the subscriptions for the invoice
- invoice.setSubscriptions(customerSubscriptions);
-
- // and then we will count on the un-billed purchases of all the subscriptions of the
- // customer
- Map<Integer, Payment> purchaseOrders = new HashMap<Integer, Payment>();
- for (Subscription subscription : customerSubscriptions) {
- dataAccessObject.fillUnbilledPayments(subscription, purchaseOrders, invoice );
- }
- for (Payment payment : purchaseOrders.values()) {
- invoice.addPayment(payment);
- }
-
- customer.setActiveInvoice(invoice);
- invoice.setCustomer(customer);
- }
-
- log.info("Subscription-tree building phase completed");
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/internal/BillingServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/internal/BillingServiceComponent.java b/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/internal/BillingServiceComponent.java
deleted file mode 100644
index ad697e9..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/internal/BillingServiceComponent.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
-* Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
-*
-* WSO2 Inc. 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 org.wso2.carbon.billing.core.internal;
-
-import org.wso2.carbon.billing.core.BillingHandler;
-import org.wso2.carbon.billing.core.BillingTenantMgtListenerImpl;
-import org.wso2.carbon.billing.core.conf.BillingTaskConfiguration;
-import org.wso2.carbon.billing.core.scheduler.ScheduleHelper;
-import org.wso2.carbon.ndatasource.core.DataSourceService;
-import org.wso2.carbon.registry.core.service.RegistryService;
-import org.wso2.carbon.rule.kernel.config.RuleEngineConfigService;
-import org.wso2.carbon.stratos.common.listeners.TenantMgtListener;
-import org.wso2.carbon.stratos.common.util.CommonUtil;
-import org.wso2.carbon.stratos.common.util.StratosConfiguration;
-import org.wso2.carbon.user.core.service.RealmService;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.osgi.service.component.ComponentContext;
-
-/**
- * @scr.component name="org.wso2.carbon.billing.core" immediate="true"
- * @scr.reference name="registry.service"
- * interface=
- * "org.wso2.carbon.registry.core.service.RegistryService"
- * cardinality="1..1"
- * policy="dynamic" bind="setRegistryService"
- * unbind="unsetRegistryService"
- * @scr.reference name="user.realmservice.default"
- * interface="org.wso2.carbon.user.core.service.RealmService"
- * cardinality="1..1"
- * policy="dynamic" bind="setRealmService"
- * unbind="unsetRealmService"
- * @scr.reference name="org.wso2.carbon.billing.core.billing.handler.service"
- * interface="org.wso2.carbon.billing.core.BillingHandler"
- * cardinality="0..n"
- * policy="dynamic" bind="setBillingHandlerService"
- * unbind="unsetBillingHandlerService"
- * @scr.reference name="org.wso2.carbon.billing.core.task.schedule.helper.service"
- * interface="org.wso2.carbon.billing.core.scheduler.ScheduleHelper"
- * cardinality="0..n"
- * policy="dynamic" bind="setScheduleHelperService"
- * unbind="unsetScheduleHelperService"
- * @scr.reference name="rule.engine.config.server.component"
- * interface="org.wso2.carbon.rule.kernel.config.RuleEngineConfigService"
- * cardinality="1..1"
- * policy="dynamic" bind="setRuleEngineConfigService"
- * unbind="unsetRuleEngineConfigService"
- * @scr.reference name="org.wso2.carbon.tenant.mgt.listener.service"
- * interface="org.wso2.carbon.stratos.common.listeners.TenantMgtListener"
- * cardinality="0..n" policy="dynamic"
- * bind="setTenantMgtListenerService"
- * unbind="unsetTenantMgtListenerService"
- * @scr.reference name="datasources.service"
- * interface="org.wso2.carbon.ndatasource.core.DataSourceService"
- * cardinality="1..1" policy="dynamic"
- * bind="setDataSourceService" unbind="unsetDataSourceService"
- */
-public class BillingServiceComponent {
- private static Log log = LogFactory.getLog(BillingServiceComponent.class);
-
- protected void activate(ComponentContext context) {
- try {
- if(CommonUtil.getStratosConfig()==null){
- StratosConfiguration stratosConfig = CommonUtil.loadStratosConfiguration();
- CommonUtil.setStratosConfig(stratosConfig);
- }
- Util.initBillingManager(context.getBundleContext());
- Util.initDataAccessManager();
-
- BillingTenantMgtListenerImpl billingTenantMgtListener = new BillingTenantMgtListenerImpl();
- context.getBundleContext().registerService(
- org.wso2.carbon.stratos.common.listeners.TenantMgtListener.class.getName(),
- billingTenantMgtListener, null);
- if (log.isDebugEnabled()) {
- log.debug("******* Billing bundle is activated ******* ");
- }
- } catch (Throwable e) {
- log.error("******* Billing bundle failed activating ****", e);
- }
- }
-
- @SuppressWarnings("unused")
- protected void deactivate(ComponentContext context) {
- Util.cleanBillingManager();
- log.debug("******* Billing is deactivated ******* ");
- }
-
- protected void setRegistryService(RegistryService registryService) {
- Util.setRegistryService(registryService);
- }
-
- @SuppressWarnings("unused")
- protected void unsetRegistryService(RegistryService registryService) {
- Util.setRegistryService(null);
- }
-
- protected void setRealmService(RealmService realmService) {
- Util.setRealmService(realmService);
- }
-
- @SuppressWarnings("unused")
- protected void unsetRealmService(RealmService realmService) {
- Util.setRealmService(null);
- }
-
- protected void setBillingHandlerService(BillingHandler billingHandler) {
- BillingTaskConfiguration.addBillingHandler(billingHandler);
- }
-
- @SuppressWarnings("unused")
- protected void unsetBillingHandlerService(BillingHandler billingHandler) {
- // we are not dynamically removing billing handlers
- }
-
- protected void setScheduleHelperService(ScheduleHelper scheduleHelper) {
- BillingTaskConfiguration.addScheduleHelper(scheduleHelper);
- }
-
- @SuppressWarnings("unused")
- protected void unsetScheduleHelperService(ScheduleHelper scheduleHelper) {
- // we are not dynamically removing schedule helpers
- }
-
- protected void setRuleEngineConfigService(RuleEngineConfigService ruleEngineConfigService) {
- Util.setRuleEngineConfigService(ruleEngineConfigService);
- }
-
- @SuppressWarnings("unused")
- protected void unsetRuleEngineConfigService(RuleEngineConfigService ruleEngineConfigService) {
- Util.setRuleEngineConfigService(null);
- }
-
- protected void setTenantMgtListenerService(TenantMgtListener tenantMgtListener) {
- Util.addTenantMgtListenerService(tenantMgtListener);
- }
-
- protected void unsetTenantMgtListenerService(TenantMgtListener tenantMgtListener) {
- Util.removeTenantMgtListenerService(tenantMgtListener);
- }
-
- protected void setDataSourceService(DataSourceService dataSourceService) {
- if (log.isDebugEnabled()) {
- log.debug("Setting the Data Sources Service");
- }
- Util.setDataSourceService(dataSourceService);
- }
-
- protected void unsetDataSourceService(DataSourceService dataSourceService) {
- if (log.isDebugEnabled()) {
- log.debug("Unsetting the Data Sources Service");
- }
- Util.setDataSourceService(null);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/internal/Util.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/internal/Util.java b/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/internal/Util.java
deleted file mode 100644
index b6a0951..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.core/2.1.3/src/main/java/org/wso2/carbon/billing/core/internal/Util.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) 2005-2008, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. 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 org.wso2.carbon.billing.core.internal;
-
-import org.osgi.framework.BundleContext;
-import org.wso2.carbon.billing.core.BillingConstants;
-import org.wso2.carbon.billing.core.BillingException;
-import org.wso2.carbon.billing.core.BillingManager;
-import org.wso2.carbon.billing.core.DataAccessManager;
-import org.wso2.carbon.billing.core.conf.BillingConfiguration;
-import org.wso2.carbon.ndatasource.core.DataSourceService;
-import org.wso2.carbon.registry.core.service.RegistryService;
-import org.wso2.carbon.rule.kernel.config.RuleEngineConfigService;
-import org.wso2.carbon.stratos.common.exception.StratosException;
-import org.wso2.carbon.stratos.common.listeners.TenantMgtListener;
-import org.wso2.carbon.user.core.service.RealmService;
-import org.wso2.carbon.utils.CarbonUtils;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-public class Util {
- private static RegistryService registryService;
- private static RealmService realmService;
- private static RuleEngineConfigService ruleEngineConfigService;
- private static List<TenantMgtListener> tenantMgtListeners = new ArrayList<TenantMgtListener>();
- private static DataAccessManager dataAccessManager;
- private static DataSourceService dataSourceService;
-
- public static synchronized void setRegistryService(RegistryService service) {
- if (registryService == null) {
- registryService = service;
- }
- }
-
- public static synchronized void setRealmService(RealmService service) {
- if (realmService == null) {
- realmService = service;
- }
- }
-
- public static RealmService getRealmService(){
- return Util.realmService;
- }
-
- public static void setRuleEngineConfigService(RuleEngineConfigService ruleServerManagerService) {
- Util.ruleEngineConfigService = ruleServerManagerService;
- }
-
- public static RuleEngineConfigService getRuleEngineConfigService() {
- return Util.ruleEngineConfigService;
- }
-
- public static void initBillingManager(BundleContext bundleContext) throws BillingException {
- // load the configuration and initialize the billing engine + do the
- // necessary scheduling.
- String configFile =
- CarbonUtils.getCarbonConfigDirPath() + File.separator + BillingConstants.BILLING_CONFIG;
- BillingConfiguration billingConfiguration = new BillingConfiguration(configFile);
- BillingManager billingManager = new BillingManager(billingConfiguration);
-
- bundleContext.registerService(BillingManager.class.getName(), billingManager, null);
- }
-
- public static void initDataAccessManager() throws BillingException{
- Util.dataAccessManager = new DataAccessManager(BillingManager.getInstance().getDataAccessObject());
- }
-
- public static DataAccessManager getDataAccessManager(){
- return dataAccessManager;
- }
-
- public static void cleanBillingManager() {
- BillingManager.destroyInstance();
- }
-
- public static void addTenantMgtListenerService(TenantMgtListener tenantMgtListener) {
- tenantMgtListeners.add(tenantMgtListener);
- sortTenantMgtListeners();
- }
-
- public static void removeTenantMgtListenerService(TenantMgtListener tenantMgtListener) {
- tenantMgtListeners.remove(tenantMgtListener);
- sortTenantMgtListeners();
- }
-
- public static void setDataSourceService(DataSourceService service) {
- if (dataSourceService == null) {
- dataSourceService = service;
- }
- }
-
- public static DataSourceService getDataSourceService(){
- return dataSourceService;
- }
-
- private static void sortTenantMgtListeners() {
- Collections.sort(tenantMgtListeners, new Comparator<TenantMgtListener>() {
- public int compare(TenantMgtListener o1, TenantMgtListener o2) {
- return o1.getListenerOrder() - o2.getListenerOrder();
- }
- });
- }
-
- public static void alertTenantSubscriptionPlanChange(int tenantId, String oldSubscriptionPlan,
- String newSubscriptionPlan) throws StratosException {
-
- for (TenantMgtListener tenantMgtLister : tenantMgtListeners) {
- tenantMgtLister.onSubscriptionPlanChange(
- tenantId, oldSubscriptionPlan, newSubscriptionPlan);
- }
- }
-}