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:25 UTC
[10/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.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/api/DefaultTenantBilling.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/api/DefaultTenantBilling.java b/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/api/DefaultTenantBilling.java
deleted file mode 100644
index cd9b4bd..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/api/DefaultTenantBilling.java
+++ /dev/null
@@ -1,201 +0,0 @@
-package org.wso2.carbon.billing.mgt.api;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.billing.core.dataobjects.Customer;
-import org.wso2.carbon.billing.core.dataobjects.Item;
-import org.wso2.carbon.billing.core.dataobjects.Subscription;
-import org.wso2.carbon.billing.mgt.services.BillingDataAccessService;
-import org.wso2.carbon.stratos.common.TenantBillingService;
-import org.wso2.carbon.stratos.common.exception.StratosException;
-import org.wso2.carbon.stratos.common.internal.CloudCommonServiceComponent;
-import org.wso2.carbon.user.api.Tenant;
-import org.wso2.carbon.user.api.TenantManager;
-
-import java.util.Calendar;
-
-public class DefaultTenantBilling implements TenantBillingService {
-
- private static final Log log = LogFactory.getLog(DefaultTenantBilling.class);
-
- public void addUsagePlan(Tenant tenant, String usagePlan) throws StratosException {
-
- Customer customer = new Customer();
- customer.setName(tenant.getDomain());
- customer.setEmail(tenant.getEmail());
- customer.setStartedDate(tenant.getCreatedDate());
- customer.setFullName(tenant.getAdminFirstName() + " " + tenant.getAdminLastName());
-
- customer.setId(tenant.getId());
- Subscription subscription = new Subscription();
- subscription.setCustomer(customer);
- subscription.setActive(false);
- subscription.setActiveSince(Calendar.getInstance().getTime());
- Item item = new Item();
- subscription.setItem(item);
- subscription.setSubscriptionPlan(usagePlan);
- try {
- BillingDataAccessService dataAccessService = new BillingDataAccessService();
- dataAccessService.addSubscription(subscription);
- } catch (Exception e) {
- log.error("Could not add new subscription for tenant: " +
- tenant.getDomain() + " " + e.getMessage(), e);
- }
- }
-
- public String getActiveUsagePlan(String tenantDomain) throws StratosException {
- Subscription subscription;
- try {
- TenantManager tenantMan = CloudCommonServiceComponent.getRealmService().getTenantManager();
- int tenantId = tenantMan.getTenantId(tenantDomain);
- BillingDataAccessService billingDataAccessService = new BillingDataAccessService();
- subscription = billingDataAccessService.getActiveSubscriptionOfCustomerBySuperTenant(tenantId);
- } catch (Exception e) {
- String msg = "Error occurred while getting the usage plan for tenant: " +
- tenantDomain + " " + e.getMessage();
- log.error(msg);
- throw new StratosException(msg, e);
- }
-
- if(subscription!=null){
- return subscription.getSubscriptionPlan();
- }else{
- return null;
- }
- }
-
- public void updateUsagePlan(String tenantDomain, String usagePlan) throws StratosException {
- try {
- TenantManager tenantManager = CloudCommonServiceComponent.getRealmService().getTenantManager();
- int tenantId = tenantManager.getTenantId(tenantDomain);
-
- BillingDataAccessService billingDataAccessService = new BillingDataAccessService();
- Subscription currentSubscription = billingDataAccessService.
- getActiveSubscriptionOfCustomerBySuperTenant(tenantId);
-
- if (currentSubscription != null && currentSubscription.getSubscriptionPlan() != null) {
- if (!currentSubscription.getSubscriptionPlan().equals(usagePlan)) {
- boolean updated = billingDataAccessService.changeSubscriptionBySuperTenant(tenantId, usagePlan);
- if (updated) {
- log.debug("Usage plan was changed successfully from " + currentSubscription.getSubscriptionPlan() +
- " to " + usagePlan);
- } else {
- log.debug("Usage plan was not changed");
- }
- }
- }else{
- //tenant does not have an active subscription. First we have to check whether the tenant
- //is active. If he is active only we will add a new usage plan. Otherwise it is useless
- //to add a usage plan to an inactive tenant
- Tenant tenant = tenantManager.getTenant(tenantId);
- if(tenant.isActive()){
- //we add a new subscription
- Subscription subscription = new Subscription();
- subscription.setActive(true);
- subscription.setSubscriptionPlan(usagePlan);
- subscription.setActiveSince(null);
- subscription.setActiveUntil(null);
- Customer customer = new Customer();
- customer.setName(tenantDomain);
- customer.setId(tenantId);
- subscription.setCustomer(customer);
-
- int subsId = billingDataAccessService.addSubscription(subscription);
- if(subsId>0){
- log.info("Added a new " + subscription.getSubscriptionPlan() + " plan for the tenant " +
- tenantDomain);
- }
- }
- }
- } catch (Exception e) {
- String msg = "Error occurred while changing the subscription plan for tenant: " + tenantDomain;
- log.error(msg, e);
- throw new StratosException(msg, e);
- }
- }
-
- public void activateUsagePlan(String tenantDomain) throws StratosException {
- try {
- TenantManager tenantManager = CloudCommonServiceComponent.getRealmService().getTenantManager();
- int tenantId = tenantManager.getTenantId(tenantDomain);
- BillingDataAccessService dataAccessService = new BillingDataAccessService();
- Subscription subscription = dataAccessService.getActiveSubscriptionOfCustomerBySuperTenant(tenantId);
- if (subscription != null) {
- String msg = "Unable to activate the subscription for tenant: " + tenantId +
- ". An active subscription already exists";
- log.info(msg);
- } else {
- Subscription[] inactiveSubscriptions = dataAccessService.getInactiveSubscriptionsOfCustomer(tenantId);
- if (inactiveSubscriptions.length == 1) {
- //This is the scenario where the tenant has registered, but not activated yet
- subscription = inactiveSubscriptions[0];
- boolean activated = dataAccessService.activateSubscription(subscription.getId());
- if (activated) {
- log.info("Subscription was activated for tenant: " + tenantId);
- }
- }else if(inactiveSubscriptions.length > 1){
- //this is the scenario where the tenant has been deactivated by admin and
- //again activated. Here, I am adding a new active subscription which is similar to the
- //last existed one
- Subscription subscriptionToAdd = inactiveSubscriptions[0];
- subscriptionToAdd.setActive(true);
- subscriptionToAdd.setActiveSince(null);
- subscriptionToAdd.setActiveUntil(null);
-
- int subsId = dataAccessService.addSubscription(subscriptionToAdd);
- if(subsId>0){
- log.info("New subscription: " + subscriptionToAdd.getSubscriptionPlan() +
- " added and it was activated for tenant: " + tenantId);
- }
- }else{
- //this means there are no subscriptions. Lets handle this later
- }
- }
- } catch (Exception e) {
- String msg = "Error occurred while activating the subscription for tenant: " +
- tenantDomain;
- log.error(msg, e);
- throw new StratosException(msg, e);
- }
- }
-
- public void deactivateActiveUsagePlan(String tenantDomain) throws StratosException {
- try {
- TenantManager tenantMan =
- CloudCommonServiceComponent.getRealmService().getTenantManager();
- int tenantId = tenantMan.getTenantId(tenantDomain);
- BillingDataAccessService dataAccessService = new BillingDataAccessService();
-
- Subscription subscription =
- dataAccessService.getActiveSubscriptionOfCustomerBySuperTenant(tenantId);
-
- if (subscription == null) {
- String msg = "Unable to deactivate the subscription for tenant: " + tenantId +
- ". An active subscription doesn't exist";
- log.info(msg);
- } else {
- boolean deactivated =
- dataAccessService.deactivateActiveSubscriptionBySuperTenant(tenantId);
- if (deactivated) {
- log.info("Active subscription of tenant " + tenantId + " was deactivated");
- }
- }
- } catch (Exception e) {
- String msg = "Error occurred while deactivating the active subscription of tenant: " +
- tenantDomain;
- log.error(msg, e);
- throw new StratosException(msg, e);
- }
- }
-
- public void deleteBillingData(int tenantId) throws StratosException{
- try {
- BillingDataAccessService dataAccessService = new BillingDataAccessService();
- dataAccessService.deleteBillingData(tenantId);
- } catch (Exception e) {
- String msg = "Error deleting subscription for tenant: " + tenantId;
- log.error(msg, e);
- throw new StratosException(msg, e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/api/MultitenancyBillingInfo.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/api/MultitenancyBillingInfo.java b/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/api/MultitenancyBillingInfo.java
deleted file mode 100644
index eacb0d4..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/api/MultitenancyBillingInfo.java
+++ /dev/null
@@ -1,178 +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.mgt.api;
-
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.xpath.AXIOMXPath;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jaxen.JaxenException;
-import org.wso2.carbon.billing.core.BillingException;
-import org.wso2.carbon.billing.core.dataobjects.Cash;
-import org.wso2.carbon.billing.mgt.dataobjects.MultitenancyPackage;
-import org.wso2.carbon.stratos.common.constants.StratosConstants;
-import org.wso2.carbon.stratos.common.util.CommonUtil;
-import org.wso2.carbon.utils.CarbonUtils;
-
-import javax.xml.namespace.QName;
-import java.io.File;
-import java.io.FileInputStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Reads the multitenancy-packages.xml and populates the
- * multitenancy packages list
- */
-public class MultitenancyBillingInfo {
- private static Log log = LogFactory.getLog(MultitenancyBillingInfo.class);
- private static final String PACKAGE_DESCRIPTION_CONFIG_FILENAME = "multitenancy-packages.xml";
- private static final String PACKAGE_DESCRIPTION_CONFIG_NS =
- "http://wso2.com/carbon/multitenancy/billing/pacakges";
-
- List<MultitenancyPackage> multitenancyPackages = new ArrayList<MultitenancyPackage>();
-
- public MultitenancyBillingInfo() throws BillingException {
- // this should be only available to the super tenants..
- multitenancyPackages = deserializePackageDescriptionConfig();
- }
-
- public List<MultitenancyPackage> getMultitenancyPackages() {
- return multitenancyPackages;
- }
-
- /*
- * Deserialize following XML
- <packages xmlns="http://wso2.com/carbon/multitenancy/billing/pacakges">
- <package name="multitenancy-free">
- <!--<subscriptionCharge>0</subscriptionCharge>--> <!-- $ per month -->
- <users>
- <limit>5</limit>
- <charge>0</charge> <!-- charge per month -->
- </users>
- <resourceVolume>
- <limit>10</limit> <!--mb per user -->
- </resourceVolume>
- <bandwidth>
- <limit>1000</limit> <!-- mb per user -->
- <overuseCharge>0</overuseCharge> <!-- $ per user per month -->
- </bandwidth>
- </package>
- <package name="multitenancy-small">
- ...
- </package>
- </packages>
- */
- private List<MultitenancyPackage> deserializePackageDescriptionConfig() throws BillingException {
- String configFilePath = CarbonUtils.getCarbonConfigDirPath() + File.separator +
- StratosConstants.MULTITENANCY_CONFIG_FOLDER + File.separator +
- PACKAGE_DESCRIPTION_CONFIG_FILENAME;
-
- OMElement packageConfigs;
- try {
- packageConfigs = CommonUtil.buildOMElement(new FileInputStream(configFilePath));
- } catch (Exception e) {
- String msg = "Error in deserializing the packageConfigs file: " + configFilePath + ".";
- log.error(msg, e);
- throw new BillingException(msg, e);
- }
-
- Iterator packageConfigsChildsIt = packageConfigs.getChildElements();
- while (packageConfigsChildsIt.hasNext()) {
- OMElement packageConfigEle = (OMElement) packageConfigsChildsIt.next();
- if (!new QName(PACKAGE_DESCRIPTION_CONFIG_NS, "package").equals(
- packageConfigEle.getQName())) {
- continue;
- }
-
- MultitenancyPackage multitenancyPackage = new MultitenancyPackage();
- String packageName = packageConfigEle.getAttributeValue(new QName("name"));
- String subscriptionCharge = getPackageConfigValue("subscriptionCharge", packageConfigEle);
- String usersLimit = getPackageConfigValue("users.limit", packageConfigEle);
- String usersCharge = getPackageConfigValue("users.charge", packageConfigEle);
-
- String resourceVolumeLimit =
- getPackageConfigValue("resourceVolume.limit", packageConfigEle);
- String resourceVolumeOveruseCharge =
- getPackageConfigValue("resourceVolume.overuseCharge", packageConfigEle);
- String bandwidthLimit = getPackageConfigValue("bandwidth.limit", packageConfigEle);
- String bandwidthOveruseCharge =
- getPackageConfigValue("bandwidth.overuseCharge", packageConfigEle);
- String cartridgeCPUHourLimit =
- getPackageConfigValue("cartridge.hourLimit", packageConfigEle);
- String cartridgeCPUHourOverUsageCharge =
- getPackageConfigValue("cartridge.overUsageCharge", packageConfigEle);
- int usersLimitInt = -1;
- if (!usersLimit.equals("unlimited")) {
- usersLimitInt = Integer.parseInt(usersLimit);
- }
- int resourceVolumeLimitInt = -1;
- if (!resourceVolumeLimit.equals("unlimited")) {
- resourceVolumeLimitInt = Integer.parseInt(resourceVolumeLimit);
- }
- int bandwidthLimitInt = -1;
- if (!bandwidthLimit.equals("unlimited")) {
- bandwidthLimitInt = Integer.parseInt(bandwidthLimit);
- }
-
- int cartridgeCPUHourLimitInt = -1;
- if(cartridgeCPUHourLimit!=null && !cartridgeCPUHourLimit.equals("unlimited")){
- cartridgeCPUHourLimitInt = Integer.parseInt(cartridgeCPUHourLimit);
- }
-
-
- multitenancyPackage.setName(packageName);
- multitenancyPackage.setSubscriptionCharge(new Cash(subscriptionCharge));
- multitenancyPackage.setUsersLimit(usersLimitInt);
- multitenancyPackage.setChargePerUser(new Cash(usersCharge));
- multitenancyPackage.setResourceVolumeLimit(resourceVolumeLimitInt);
- multitenancyPackage.setResourceVolumeOveruseCharge(new Cash(resourceVolumeOveruseCharge));
- multitenancyPackage.setBandwidthLimit(bandwidthLimitInt);
- multitenancyPackage.setBandwidthOveruseCharge(new Cash(bandwidthOveruseCharge));
- multitenancyPackage.setCartridgeCPUHourLimit(cartridgeCPUHourLimitInt);
- multitenancyPackage.setCartridgeCPUOveruseCharge(new Cash(cartridgeCPUHourOverUsageCharge));
-
-
- multitenancyPackages.add(multitenancyPackage);
- }
- return multitenancyPackages;
- }
-
- private String getPackageConfigValue(String key, OMElement packageNode) throws BillingException {
- String qualifiedKey = "ns:" + key.replaceAll("\\.", "/ns:");
- AXIOMXPath xpathExpression;
- try {
- xpathExpression = new AXIOMXPath(qualifiedKey);
- xpathExpression.addNamespace("ns", PACKAGE_DESCRIPTION_CONFIG_NS);
- List valueNodes = xpathExpression.selectNodes(packageNode);
- if (valueNodes.isEmpty()) {
- if (log.isDebugEnabled()) {
- String msg = "No results found parsing package configuration for key: " +
- qualifiedKey + ".";
- log.debug(msg);
- }
- return null;
- }
- OMElement valueNode = (OMElement) valueNodes.get(0);
- return valueNode.getText();
- } catch (JaxenException e) {
- String msg = "Error in retrieving the key: " + qualifiedKey + ".";
- log.error(msg, e);
- throw new BillingException(msg, e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/BilledEntry.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/BilledEntry.java b/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/BilledEntry.java
deleted file mode 100644
index 8b88b99..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/BilledEntry.java
+++ /dev/null
@@ -1,41 +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.mgt.beans;
-
-/**
- * Under a subscription there are billed items. For example
- * subscription fee, bandwidth overuse charge, storage overuse charge
- */
-public class BilledEntry {
- String name;
- String cost;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getCost() {
- return cost;
- }
-
- public void setCost(String cost) {
- this.cost = cost;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/BillingPeriod.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/BillingPeriod.java b/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/BillingPeriod.java
deleted file mode 100644
index 76ff4e6..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/BillingPeriod.java
+++ /dev/null
@@ -1,60 +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.mgt.beans;
-
-import java.util.Date;
-
-/**
- * This class is used when providing available invoices to the user
- */
-public class BillingPeriod {
- private int invoiceId;
- private Date startDate;
- private Date endDate;
- private Date invoiceDate;
-
- public int getInvoiceId() {
- return invoiceId;
- }
-
- public void setInvoiceId(int invoiceId) {
- this.invoiceId = invoiceId;
- }
-
- public Date getStartDate() {
- return new Date(startDate.getTime());
- }
-
- public void setStartDate(Date startDate) {
- this.startDate = new Date(startDate.getTime());
- }
-
- public Date getEndDate() {
- return new Date(endDate.getTime());
- }
-
- public void setEndDate(Date endDate) {
- this.endDate = new Date(endDate.getTime());
- }
-
- public Date getInvoiceDate() {
- return new Date(invoiceDate.getTime());
- }
-
- public void setInvoiceDate(Date invoiceDate) {
- this.invoiceDate = new Date(invoiceDate.getTime());
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/MultitenancyInvoice.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/MultitenancyInvoice.java b/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/MultitenancyInvoice.java
deleted file mode 100644
index 994a161..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/MultitenancyInvoice.java
+++ /dev/null
@@ -1,121 +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.mgt.beans;
-
-import java.util.Arrays;
-import java.util.Date;
-
-public class MultitenancyInvoice {
- private int invoiceId;
- private Date billingDate;
- private Date startDate;
- private Date endDate;
- private String boughtForward;
- private String carriedForward;
- private String totalPayments;
- private String totalCost;
- private boolean lastInvoice;
- private MultitenancySubscription[] subscriptions;
- private MultitenancyPurchaseOrder[] purchaseOrders;
-
- public int getInvoiceId() {
- return invoiceId;
- }
-
- public void setInvoiceId(int invoiceId) {
- this.invoiceId = invoiceId;
- }
-
- public Date getBillingDate() {
- return new Date(billingDate.getTime());
- }
-
- public void setBillingDate(Date billingDate) {
- this.billingDate = new Date(billingDate.getTime());
- }
-
- public Date getStartDate() {
- return new Date(startDate.getTime());
- }
-
- public void setStartDate(Date startDate) {
- this.startDate = new Date(startDate.getTime());
- }
-
- public Date getEndDate() {
- return new Date(endDate.getTime());
- }
-
- public void setEndDate(Date endDate) {
- this.endDate = new Date(endDate.getTime());
- }
-
- public String getBoughtForward() {
- return boughtForward;
- }
-
- public void setBoughtForward(String boughtForward) {
- this.boughtForward = boughtForward;
- }
-
- public String getCarriedForward() {
- return carriedForward;
- }
-
- public void setCarriedForward(String carriedForward) {
- this.carriedForward = carriedForward;
- }
-
- public String getTotalPayments() {
- return totalPayments;
- }
-
- public void setTotalPayments(String totalPayments) {
- this.totalPayments = totalPayments;
- }
-
- public String getTotalCost() {
- return totalCost;
- }
-
- public void setTotalCost(String totalCost) {
- this.totalCost = totalCost;
- }
-
- public boolean isLastInvoice() {
- return lastInvoice;
- }
-
- public void setLastInvoice(boolean lastInvoice) {
- this.lastInvoice = lastInvoice;
- }
-
- public MultitenancySubscription[] getSubscriptions() {
- return Arrays.copyOf(subscriptions, subscriptions.length);
- }
-
- public void setSubscriptions(MultitenancySubscription[] subscriptions) {
- this.subscriptions = Arrays.copyOf(subscriptions, subscriptions.length);
- }
-
- public MultitenancyPurchaseOrder[] getPurchaseOrders() {
- return Arrays.copyOf(purchaseOrders, purchaseOrders.length);
- }
-
- public void setPurchaseOrders(MultitenancyPurchaseOrder[] purchaseOrders) {
- this.purchaseOrders = Arrays.copyOf(purchaseOrders, purchaseOrders.length);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/MultitenancyPurchaseOrder.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/MultitenancyPurchaseOrder.java b/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/MultitenancyPurchaseOrder.java
deleted file mode 100644
index ffddda0..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/MultitenancyPurchaseOrder.java
+++ /dev/null
@@ -1,60 +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.mgt.beans;
-
-import java.util.Date;
-
-/**
- * Payment record details
- */
-public class MultitenancyPurchaseOrder {
- private Date paymentDate;
- private String payment;
- private int id;
- private String transactionId;
-
- public Date getPaymentDate() {
- return new Date(paymentDate.getTime());
- }
-
- public void setPaymentDate(Date paymentDate) {
- this.paymentDate = new Date(paymentDate.getTime());
- }
-
- public String getPayment() {
- return payment;
- }
-
- public void setPayment(String payment) {
- this.payment = payment;
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getTransactionId() {
- return transactionId;
- }
-
- public void setTransactionId(String transactionId) {
- this.transactionId = transactionId;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/MultitenancySubscription.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/MultitenancySubscription.java b/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/MultitenancySubscription.java
deleted file mode 100644
index 5490e9f..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/beans/MultitenancySubscription.java
+++ /dev/null
@@ -1,67 +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.mgt.beans;
-
-import java.util.Arrays;
-import java.util.Date;
-
-public class MultitenancySubscription {
- String subscribedPackage;
- BilledEntry[] billedEntries;
- Date activeSince;
- Date activeUntil;
- boolean isActive;
-
- public String getSubscribedPackage() {
- return subscribedPackage;
- }
-
- public void setSubscribedPackage(String subscribedPackage) {
- this.subscribedPackage = subscribedPackage;
- }
-
- public BilledEntry[] getBilledEntries() {
- return Arrays.copyOf(billedEntries, billedEntries.length);
- }
-
- public void setBilledEntries(BilledEntry[] billedEntries) {
- this.billedEntries = Arrays.copyOf(billedEntries, billedEntries.length);
- }
-
- public Date getActiveSince() {
- return new Date(activeSince.getTime());
- }
-
- public void setActiveSince(Date activeSince) {
- this.activeSince = new Date(activeSince.getTime());
- }
-
- public Date getActiveUntil() {
- return new Date(activeUntil.getTime());
- }
-
- public void setActiveUntil(Date activeUntil) {
- this.activeUntil = new Date( activeUntil.getTime());
- }
-
- public boolean isActive() {
- return isActive;
- }
-
- public void setActive(boolean active) {
- isActive = active;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/dataobjects/MultitenancyCustomer.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/dataobjects/MultitenancyCustomer.java b/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/dataobjects/MultitenancyCustomer.java
deleted file mode 100644
index 5d8aea6..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/dataobjects/MultitenancyCustomer.java
+++ /dev/null
@@ -1,135 +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.mgt.dataobjects;
-
-import org.wso2.carbon.billing.core.dataobjects.Customer;
-import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
-
-/**
- * Multitenancy customer class
- */
-public class MultitenancyCustomer extends Customer {
-
- private int numberOfUsers;
- private long incomingBandwidth;
- private long outgoingBandwidth;
- private long totalBandwidth;
- private long currentStorage;
- private long historyStorage;
- private long totalStorage;
- private long cartridgeCPUHours;
- private int tenantId = MultitenantConstants.INVALID_TENANT_ID;
-
- public int getTenantId() {
- return tenantId;
- }
-
- public void setTenantId(int tenantId) {
- this.tenantId = tenantId;
- }
-
- public int getNumberOfUsers() {
- return numberOfUsers;
- }
-
- public void setNumberOfUsers(int numberOfUsers) {
- this.numberOfUsers = numberOfUsers;
- }
-
- public long getIncomingBandwidth() {
- return incomingBandwidth;
- }
-
- public void setIncomingBandwidth(long incomingBandwidth) {
- this.incomingBandwidth = incomingBandwidth;
- }
-
- public long getOutgoingBandwidth() {
- return outgoingBandwidth;
- }
-
- public void setOutgoingBandwidth(long outgoingBandwidth) {
- this.outgoingBandwidth = outgoingBandwidth;
- }
-
- public long getTotalBandwidth() {
- return totalBandwidth;
- }
-
- public void setTotalBandwidth(long totalBandwidth) {
- this.totalBandwidth = totalBandwidth;
- }
-
- public long getCurrentStorage() {
- return currentStorage;
- }
-
- public void setCurrentStorage(long currentStorage) {
- this.currentStorage = currentStorage;
- }
-
- public long getHistoryStorage() {
- return historyStorage;
- }
-
- public void setHistoryStorage(long historyStorage) {
- this.historyStorage = historyStorage;
- }
-
- public long getTotalStorage() {
- return totalStorage;
- }
-
- public void setTotalStorage(long totalStorage) {
- this.totalStorage = totalStorage;
- }
-
- public long getCartridgeCPUHours() {
- return cartridgeCPUHours;
- }
-
- public void setCartridgeCPUHours(long cartridgeCPUHours) {
- this.cartridgeCPUHours = cartridgeCPUHours;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
- if (!super.equals(o)) {
- return false;
- }
-
- MultitenancyCustomer that = (MultitenancyCustomer) o;
-
- if (tenantId != that.tenantId) {
- return false;
- }
-
- return true;
- }
-
- @Override
- public int hashCode() {
- int result = super.hashCode();
- result = 31 * result + tenantId;
- return result;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/dataobjects/MultitenancyPackage.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/dataobjects/MultitenancyPackage.java b/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/dataobjects/MultitenancyPackage.java
deleted file mode 100644
index 346b3ca..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/dataobjects/MultitenancyPackage.java
+++ /dev/null
@@ -1,152 +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.mgt.dataobjects;
-
-import org.wso2.carbon.billing.core.dataobjects.Cash;
-import org.wso2.carbon.billing.core.dataobjects.Item;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class MultitenancyPackage extends Item {
- public static final String SUBSCRIPTION_SUB_ITEM_NAME = "subscription";
- public static final String BW_OVERUSE_SUB_ITEM_NAME = "bwOveruse";
- public static final String STORAGE_OVERUSE_SUB_ITEM_NAME = "storageOveruse";
- public static final String CARTRIDGE_OVERUSE_SUB_ITEM_NAME = "cartridgeOveruse";
-
- private int usersLimit;
- private Cash subscriptionCharge;
- private Cash chargePerUser;
- //private int resourceVolumeLimit;
- //private int bandwidthLimit;
- //private Cash bandwidthOveruseCharge;
- private List<MultitenancyPackageSubItem> subItems;
-
- public MultitenancyPackage() {
- subItems = new ArrayList<MultitenancyPackageSubItem>();
- // adding subscription sub item
- MultitenancyPackageSubItem subscriptionSubItem = new MultitenancyPackageSubItem();
- subscriptionSubItem.setName(SUBSCRIPTION_SUB_ITEM_NAME);
- subscriptionSubItem.setDescription("Subscription for package");
- subscriptionSubItem.setParent(this);
- subItems.add(subscriptionSubItem);
-
- // adding bandwidth overuse sub item
- MultitenancyPackageSubItem bandwdithOverUseSubItem = new MultitenancyPackageSubItem();
- bandwdithOverUseSubItem.setName(BW_OVERUSE_SUB_ITEM_NAME);
- bandwdithOverUseSubItem.setDescription("Bandwidth overuse");
- bandwdithOverUseSubItem.setParent(this);
- subItems.add(bandwdithOverUseSubItem);
-
- // adding storage overuse sub item
- MultitenancyPackageSubItem storageOverUseSubItem = new MultitenancyPackageSubItem();
- storageOverUseSubItem.setName(STORAGE_OVERUSE_SUB_ITEM_NAME);
- storageOverUseSubItem.setDescription("Storage overuse");
- storageOverUseSubItem.setParent(this);
- subItems.add(storageOverUseSubItem);
-
- // adding cartridge overuse sub item
- MultitenancyPackageSubItem cartridgeOverUseSubItem = new MultitenancyPackageSubItem();
- cartridgeOverUseSubItem.setName(CARTRIDGE_OVERUSE_SUB_ITEM_NAME);
- cartridgeOverUseSubItem.setDescription("Cartridge overuse");
- cartridgeOverUseSubItem.setParent(this);
- subItems.add(cartridgeOverUseSubItem);
-
- }
-
- public MultitenancyPackage(MultitenancyPackage staticMtPackage, boolean isSubscriptionActive) {
- usersLimit = staticMtPackage.getUsersLimit();
- chargePerUser = staticMtPackage.getChargePerUser();
- subscriptionCharge = staticMtPackage.getSubscriptionCharge();
- super.setResourceVolumeLimit(staticMtPackage.getResourceVolumeLimit());
- super.setResourceVolumeOveruseCharge(staticMtPackage.getResourceVolumeOveruseCharge());
- super.setBandwidthLimit(staticMtPackage.getBandwidthLimit());
- super.setBandwidthOveruseCharge(staticMtPackage.getBandwidthOveruseCharge());
- super.setCartridgeCPUHourLimit(staticMtPackage.getCartridgeCPUHourLimit());
- super.setCartridgeCPUOveruseCharge(staticMtPackage.getCartridgeCPUOveruseCharge());
- setId(staticMtPackage.getId());
- setName(staticMtPackage.getName());
- setCost(staticMtPackage.getCost());
- setDescription(staticMtPackage.getDescription());
-
- subItems = new ArrayList<MultitenancyPackageSubItem>();
- for (Item subItem : staticMtPackage.getChildren()) {
- //Storage overuse and Bandwidth overuse sub items will be added only to active subscription
- if(isSubscriptionActive || (!isSubscriptionActive && SUBSCRIPTION_SUB_ITEM_NAME.equals(subItem.getName()))){
-
- MultitenancyPackageSubItem subscriptionSubItem = new MultitenancyPackageSubItem();
- subscriptionSubItem.setId(subItem.getId());
- subscriptionSubItem.setName(subItem.getName());
- subscriptionSubItem.setDescription(subItem.getDescription());
- subscriptionSubItem.setParent(this);
- subItems.add(subscriptionSubItem);
- }
- }
- }
-
- public int getUsersLimit() {
- return usersLimit;
- }
-
- public void setUsersLimit(int usersLimit) {
- this.usersLimit = usersLimit;
- }
-
- public Cash getChargePerUser() {
- return chargePerUser;
- }
-
- public void setChargePerUser(Cash chargePerUser) {
- this.chargePerUser = chargePerUser;
- }
-
- public Cash getSubscriptionCharge() {
- return subscriptionCharge;
- }
-
- public void setSubscriptionCharge(Cash subscriptionCharge) {
- this.subscriptionCharge = subscriptionCharge;
- }
-
- /*public int getResourceVolumeLimit() {
- return resourceVolumeLimit;
- }
-
- public void setResourceVolumeLimit(int resourceVolumeLimit) {
- this.resourceVolumeLimit = resourceVolumeLimit;
- }
- */
- /*public int getBandwidthLimit() {
- return bandwidthLimit;
- }
-
- public void setBandwidthLimit(int bandwidthLimit) {
- this.bandwidthLimit = bandwidthLimit;
- }
-
- public Cash getBandwidthOveruseCharge() {
- return bandwidthOveruseCharge;
- }
-
- public void setBandwidthOveruseCharge(Cash bandwidthOveruseCharge) {
- this.bandwidthOveruseCharge = bandwidthOveruseCharge;
- }*/
-
- @Override
- public List<? extends Item> getChildren() {
- return subItems;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/dataobjects/MultitenancyPackageSubItem.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/dataobjects/MultitenancyPackageSubItem.java b/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/dataobjects/MultitenancyPackageSubItem.java
deleted file mode 100644
index 7245a2a..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/dataobjects/MultitenancyPackageSubItem.java
+++ /dev/null
@@ -1,22 +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.mgt.dataobjects;
-
-import org.wso2.carbon.billing.core.dataobjects.Item;
-
-public class MultitenancyPackageSubItem extends Item {
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/handlers/MultitenancySubscriptionFeedingHandler.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/handlers/MultitenancySubscriptionFeedingHandler.java b/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/handlers/MultitenancySubscriptionFeedingHandler.java
deleted file mode 100644
index 187c261..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/handlers/MultitenancySubscriptionFeedingHandler.java
+++ /dev/null
@@ -1,234 +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.mgt.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.Customer;
-import org.wso2.carbon.billing.core.dataobjects.Item;
-import org.wso2.carbon.billing.core.dataobjects.Subscription;
-import org.wso2.carbon.billing.core.jdbc.DataAccessObject;
-import org.wso2.carbon.billing.core.utilities.CustomerUtils;
-import org.wso2.carbon.billing.mgt.api.MultitenancyBillingInfo;
-import org.wso2.carbon.billing.mgt.dataobjects.MultitenancyCustomer;
-import org.wso2.carbon.billing.mgt.dataobjects.MultitenancyPackage;
-import org.wso2.carbon.billing.mgt.util.Util;
-import org.wso2.carbon.stratos.common.util.CommonUtil;
-import org.wso2.carbon.usage.beans.TenantUsage;
-
-import java.util.*;
-
-/**
- * Gets subscriptions and feeds them to the Billing Engine context
- */
-public class MultitenancySubscriptionFeedingHandler implements BillingHandler {
- private static final Log log = LogFactory.getLog(MultitenancySubscriptionFeedingHandler.class);
-
- private Map<Integer, MultitenancyPackage> multitenancyPackagesMap = new HashMap<Integer, MultitenancyPackage>();
-
- public void init(Map<String, String> handlerConfig) throws BillingException {
- DataAccessObject dataAccessObject = Util.getBillingManager().getDataAccessObject();
- MultitenancyBillingInfo billingInfo = Util.getMultitenancyBillingInfo();
-
- // here we are initializing the packages
- List<MultitenancyPackage> multitenancyPackages = billingInfo.getMultitenancyPackages();
- try {
- dataAccessObject.beginTransaction();
- for (MultitenancyPackage multitenancyPackage : multitenancyPackages) {
- // check the package existence in the database; If not available, insert it
- int itemId = dataAccessObject.getItemIdWithName(multitenancyPackage.getName());
- if (itemId == DataAccessObject.INVALID) {
- itemId = dataAccessObject.addItem(multitenancyPackage);
- }
- multitenancyPackage.setId(itemId);
- multitenancyPackagesMap.put(itemId, multitenancyPackage);
- // and add all the sub items too
- for (Item subItem : multitenancyPackage.getChildren()) {
- int subItemId = dataAccessObject.getItemId(subItem.getName(), itemId);
- if (subItemId == DataAccessObject.INVALID) {
- subItemId = dataAccessObject.addItem(subItem);
- }
- subItem.setId(subItemId);
- }
- }
- dataAccessObject.commitTransaction();
- }catch (Exception e){
- dataAccessObject.rollbackTransaction();
- log.error(e.getMessage());
- throw new BillingException(e.getMessage(), e);
- }
- }
-
- public void execute(BillingEngineContext handlerContext) throws BillingException {
- feedSubscriptions(handlerContext);
- }
-
- private void feedSubscriptions(BillingEngineContext handlerContext) throws BillingException {
- // get the subscriptions of the customer.
- Customer customer = handlerContext.getCustomer();
- List<Subscription> subscriptions = getSubscriptions(null, customer); //if the customer is null
- // this will get subscriptions
- // of all customers
-
- //Filtering out the subscription entries of customers who has not activated their accounts
- //This will avoid an invoice being generated for such customers
- Date endDate = new Date();
-
- Iterator iterator = subscriptions.iterator();
- while(iterator.hasNext()){
- Subscription subscription = (Subscription) iterator.next();
- if(!subscription.isActive() && subscription.getActiveUntil().after(endDate)){
- iterator.remove();
- }
- }
-
- // prepare the handler context
- handlerContext.setSubscriptions(subscriptions);
- String infoMsg = "Subscription feeding phase completed. ";
- if (subscriptions!=null){
- infoMsg += subscriptions.size() + " subscriptions fed. ";
- }else{
- infoMsg += "0 subscriptions fed. ";
- }
- log.info(infoMsg);
- // resetting the single customer back from the fed data
- // this is applicable in the interim invoice scenario
- //If this is not done, the customer object in the BillingEngine context will have
- //a null invoice
- if (customer != null && subscriptions != null && subscriptions.size() > 0) {
- Subscription subscription = subscriptions.get(0);
- handlerContext.setCustomer(subscription.getCustomer());
- }
- }
-
- /**
- *
- * @param itemId
- * @param isSubscriptionActive subitems for bw_overuse and storage_overuse
- * will be added only for the active subscription
- * @return
- */
- private Item getItem(int itemId, boolean isSubscriptionActive) {
- return new MultitenancyPackage(multitenancyPackagesMap.get(itemId), isSubscriptionActive);
- }
-
- /**
- * Retrieving tenant info and filling the customer object
- * @param customerId
- * @return
- * @throws BillingException
- */
- private Customer getCustomer(int customerId) throws BillingException {
- MultitenancyCustomer customer = new MultitenancyCustomer();
- CustomerUtils.fillCustomerData(customerId, customer);
- customer.setTenantId(customerId);
-
- fillTenantUsage(customer);
- return customer;
- }
-
- /**
- * Fill usage data of the customer
- * @param customer
- * @throws BillingException
- */
- private void fillTenantUsage(MultitenancyCustomer customer) throws BillingException {
- // first get the current month string
- Calendar calendar = Calendar.getInstance();
- String monthString = CommonUtil.getMonthString(calendar);
- try {
- int tenantId = customer.getTenantId();
- TenantUsage usage =
- Util.getTenantUsageRetriever().getTenantUsage(tenantId, monthString);
-
- long currentDataCapacity = usage.getRegistryContentCapacity();
- long historyDataCapacity = usage.getRegistryContentHistoryCapacity();
- customer.setCurrentStorage(currentDataCapacity);
- customer.setHistoryStorage(historyDataCapacity);
- customer.setTotalStorage(currentDataCapacity + historyDataCapacity);
-
- long incomingBW = usage.getTotalIncomingBandwidth();
- long outgoingBW = usage.getTotalOutgoingBandwidth();
- customer.setIncomingBandwidth(incomingBW);
- customer.setOutgoingBandwidth(outgoingBW);
- customer.setTotalBandwidth(incomingBW + outgoingBW);
-
- //Getting the cartridge hours and setting it to the customer
- customer.setTotalCartridgeCPUHours(usage.getTotalCartridgeHours().getCartridgeHours());
-
- log.debug("Customer: " + customer.getTenantId() + " - Data Capacity: " + customer.getTotalStorage());
-
- customer.setNumberOfUsers(usage.getNumberOfUsers());
- } catch (Exception e) {
- String msg = "Error in getting the tenant usage for customer name: "
- + customer.getName() + ".";
- log.error(msg);
- throw new BillingException(msg, e);
- }
- }
-
- /**
- * Gets subscriptions of customer(s)
- * @param filter currently there is a filter "multitenancy" defined in the billing-config.xml
- * This will be removed in the future trunk
- * @param customer if the customer is null it gets subscriptions of all customers
- * @return
- * @throws BillingException
- */
- private List<Subscription> getSubscriptions(String filter,
- Customer customer)throws BillingException {
- DataAccessObject dataAccessObject = Util.getBillingManager().getDataAccessObject();
- List<Subscription> subscriptions = null;
- Map<Integer, Customer> customersCache = new HashMap<Integer, Customer>();
- try {
- dataAccessObject.beginTransaction();
- if (customer == null) {
- subscriptions = dataAccessObject.getFilteredActiveSubscriptions(filter);
- } else {
- subscriptions = dataAccessObject.getFilteredActiveSubscriptionsForCustomer(filter, customer);
- }
- if(subscriptions!=null && subscriptions.size()>0){
- for (Subscription subscription : subscriptions) {
- Customer dummyCustomer = subscription.getCustomer();
- int customerId = dummyCustomer.getId();
- Customer correctCustomer = customersCache.get(customerId);
- if (correctCustomer == null) {
- correctCustomer = getCustomer(customerId);
- customersCache.put(customerId, correctCustomer);
- }
- subscription.setCustomer(correctCustomer);
-
- Item dummyItem = subscription.getItem();
- Item correctItem = getItem(dummyItem.getId(), subscription.isActive());
- subscription.setItem(correctItem);
- }
- }
- dataAccessObject.commitTransaction();
- }catch (Exception e){
- dataAccessObject.rollbackTransaction();
- String msg = "Error occurred while getting subscriptions";
- if(customer != null) {
- msg = msg + " for customer: " + customer.getName();
- }
- log.error(msg);
- throw new BillingException(msg, e);
- }
- return subscriptions;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/internal/MultitenancyBillingServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/internal/MultitenancyBillingServiceComponent.java b/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/internal/MultitenancyBillingServiceComponent.java
deleted file mode 100644
index d30e3f9..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/internal/MultitenancyBillingServiceComponent.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
-* Copyright (c) 2005-2011, 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.mgt.internal;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.osgi.service.component.ComponentContext;
-import org.wso2.carbon.billing.core.BillingManager;
-import org.wso2.carbon.billing.mgt.util.Util;
-import org.wso2.carbon.registry.core.service.RegistryService;
-import org.wso2.carbon.usage.api.TenantUsageRetriever;
-import org.wso2.carbon.user.core.service.RealmService;
-import org.wso2.carbon.utils.ConfigurationContextService;
-
-/**
- * @scr.component name="org.wso2.carbon.billing.mgt"
- * 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="billingManager.service"
- * interface="org.wso2.carbon.billing.core.BillingManager" cardinality="1..1"
- * policy="dynamic" bind="setBillingManager" unbind="unsetBillingManager"
- * @scr.reference name="tenant.usage.retriever.service"
- * interface="org.wso2.carbon.usage.api.TenantUsageRetriever" cardinality="1..1"
- * policy="dynamic" bind="setTenantUsageRetriever" unbind="unsetTenantUsageRetriever"
- */
-public class MultitenancyBillingServiceComponent {
- private static Log log = LogFactory.getLog(MultitenancyBillingServiceComponent.class);
- private static ConfigurationContextService contextService;
-
- protected void activate(ComponentContext context) {
- try {
- Util.registerSubscriptionFeedingHandlers(context.getBundleContext());
- Util.scheduleBilling();
- Util.registerBillingInfo(context.getBundleContext());
- Util.initDataAccessManager();
- Util.initializeThrottling(context.getBundleContext());
- Util.registerTenantBillingService(context.getBundleContext());
- log.debug("******* Multitenancy Billing bundle is activated ******* ");
- } catch (Throwable e) {
- log.error("******* Multitenancy Billing bundle failed activating ****", e);
- }
- }
-
- @SuppressWarnings("unused")
- protected void deactivate(ComponentContext context) {
- log.debug("******* Multitenancy 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);
- }
-
- public void setBillingManager(BillingManager billingManager) {
- log.debug("Receiving billingManager service");
- Util.setBillingManager(billingManager);
- }
-
- @SuppressWarnings("unused")
- public void unsetBillingManager(BillingManager billingManager) {
- log.debug("Unsetting billingManager service");
- Util.setBillingManager(null);
- }
-
- public void setTenantUsageRetriever(TenantUsageRetriever tenantUsageRetriever) {
- log.debug("Setting Tenant Usage Retriever service");
- Util.setTenantUsageRetriever(tenantUsageRetriever);
- }
-
- @SuppressWarnings("unused")
- public void unsetTenantUsageRetriever(TenantUsageRetriever tenantUsageRetriever) {
- log.debug("Unsetting Tenant Usage Retriever service");
- Util.setBillingManager(null);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45ae532f/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/services/BillingDataAccessService.java
----------------------------------------------------------------------
diff --git a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/services/BillingDataAccessService.java b/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/services/BillingDataAccessService.java
deleted file mode 100644
index 0298c4d..0000000
--- a/components/stratos/billing/org.apache.stratos.billing.mgt/2.1.3/src/main/java/org/wso2/carbon/billing/mgt/services/BillingDataAccessService.java
+++ /dev/null
@@ -1,281 +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.mgt.services;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.billing.core.DataAccessManager;
-import org.wso2.carbon.billing.core.dataobjects.Customer;
-import org.wso2.carbon.billing.core.dataobjects.Subscription;
-import org.wso2.carbon.billing.mgt.util.Util;
-import org.wso2.carbon.core.AbstractAdmin;
-import org.wso2.carbon.registry.core.session.UserRegistry;
-import org.wso2.carbon.user.core.tenant.TenantManager;
-
-import java.util.List;
-
-/**
- * This service allows other components to access billing related data
- * without going through a billing manager
- */
-public class BillingDataAccessService extends AbstractAdmin {
- private static Log log = LogFactory.getLog(BillingDataAccessService.class);
-
- /**
- * Add a new subscription to the BC_SUBSCRIPTION table
- * @param subscription object with subscription info
- * @return the subscription id of the added subscription
- * @throws Exception Exception
- */
- public int addSubscription(Subscription subscription) throws Exception {
- DataAccessManager dataAccessManager = Util.getDataAccessManager();
- return dataAccessManager.addSubscription(subscription);
- }
-
- /**
- * Delete a particular tenants subscription and all related data
- * @param tenantId id of the tenant whose billing details should be deleted
- * @throws Exception thorwn if an error is occured while deleting data
- */
- public void deleteBillingData(int tenantId) throws Exception {
- DataAccessManager dataAccessManager = Util.getDataAccessManager();
- dataAccessManager.deleteBillingData(tenantId);
- }
-
- /**
- * Finds the customer with a given tenant domain
- * @param customerName is the tenant domain
- * @return a customer object
- * @throws Exception Exception
- */
- public Customer getCustomerWithName(String customerName) throws Exception {
-
- //This is invoked by tenants only. Therefore securing this by checking
- //whether the string passed is actually the domain of current tenant
- UserRegistry userRegistry = (UserRegistry) getGovernanceUserRegistry();
- int currentTenantId = userRegistry.getTenantId();
-
- TenantManager tenantManager = Util.getRealmService().getTenantManager();
- String currentTenantDomain = tenantManager.getDomain(currentTenantId);
-
- if(!customerName.equals(currentTenantDomain)){
- String msg = "Tenant: " + currentTenantDomain + " is trying to get customer object of tenant: " +
- customerName + ".";
- log.error(msg);
- throw new Exception(msg);
- }
-
- DataAccessManager dataAccessManager = Util.getDataAccessManager();
- Customer customer = null;
- List<Customer> customers = dataAccessManager.getCustomersWithName(customerName);
- if (customers.size() > 0) {
- customer = customers.get(0);
- }
- return customer;
- }
-
- /**
- * Get a subscription with a given id
- * @param subscriptionId subscription id
- * @return a subscription object
- * @throws Exception Exception
- */
- public Subscription getSubscription(int subscriptionId) throws Exception {
- DataAccessManager dataAccessManager = Util.getDataAccessManager();
- return dataAccessManager.getSubscription(subscriptionId);
- }
-
-
- /**
- * Method called by super-tenant to get the active subscription of a tenant
- * @param tenantId Tenant Id
- * @return subscription details
- * @throws Exception Exception
- */
- public Subscription getActiveSubscriptionOfCustomerBySuperTenant(int tenantId) throws Exception{
- return getActiveSubscriptionOfCustomer(tenantId);
- }
-
- /**
- * Method called by tenant to get the active subscription
- * @return subscription details
- * @throws Exception Exception
- */
- public Subscription getActiveSubscriptionOfCustomerByTenant() throws Exception{
- UserRegistry userRegistry = (UserRegistry) getGovernanceUserRegistry();
- int tenantId = userRegistry.getTenantId();
-
- return getActiveSubscriptionOfCustomer(tenantId);
- }
-
-
- /**
- * Gets the item id for a given item name and a parent id
- * For example "subscription" item id of Demo subscription
- * @param name e.g. "subscription", "bwOveruse", "storageOveruse"
- * @param parentId there is a parent item in BC_ITEM
- * @return the item id from the BC_ITEM table
- * @throws Exception Exception
- */
- public int getItemIdWithName(String name, int parentId) throws Exception {
- DataAccessManager dataAccessManager = Util.getDataAccessManager();
- return dataAccessManager.getItemIdWithName(name, parentId);
- }
-
- /**
- * This is used by the tenants
- * @param subscriptionPlan new Usage plan name that user expect to go
- * @return whether the operation was successful or not
- * @throws Exception Exception
- */
- public boolean changeSubscriptionByTenant(String subscriptionPlan) throws Exception {
-
- UserRegistry userRegistry = (UserRegistry) getGovernanceUserRegistry();
- int tenantId = userRegistry.getTenantId();
-
- return changeSubscription(tenantId, subscriptionPlan);
-
- }
-
- /**
- * This is used by the super tenant
- * @param customerId this is the tenant id
- * @param subscriptionPlan new usage plan name
- * @return whether the operation was successful or not
- * @throws Exception Exception
- */
- public boolean changeSubscriptionBySuperTenant(int customerId, String subscriptionPlan) throws Exception {
-
- return changeSubscription(customerId, subscriptionPlan);
- }
-
- /**
- * Gets the inactive subscriptions of a customer ordered by ACTIVE_SINCE time
- * in the descending order (i.e. latest ones first)
- * @param customerId this is the tenant id
- * @return an array of subscriptions
- * @throws Exception Exception
- */
- public Subscription[] getInactiveSubscriptionsOfCustomer(int customerId) throws Exception {
- DataAccessManager dataAccessManager = Util.getDataAccessManager();
- List<Subscription> subscriptions = dataAccessManager.getInactiveSubscriptionsOfCustomer(customerId);
- Subscription[] subscriptionArray;
- if (subscriptions != null && subscriptions.size() > 0) {
- subscriptionArray = subscriptions.toArray(new Subscription[subscriptions.size()]);
- } else {
- subscriptionArray = new Subscription[0];
- }
- return subscriptionArray;
- }
-
- /**
- * Activate a subscription with a given id
- * @param subscriptionId is the id of subscription which needs to be activated
- * @return true or false based on whether the operation was successful or not
- * @throws Exception Exception
- */
- public boolean activateSubscription(int subscriptionId) throws Exception {
- DataAccessManager dataAccessManager = Util.getDataAccessManager();
- return dataAccessManager.activateSubscription(subscriptionId);
- }
-
- /**
- * Method called by tenants when deactivating the active subscriptions
- * @return true | false based on whether the operation was successful or not
- * @throws Exception Exception
- */
- public boolean deactivateActiveSubscriptionByTenant() throws Exception{
- UserRegistry registry = (UserRegistry) getGovernanceUserRegistry();
- int currentTenantId = registry.getTenantId();
-
- return deactivateActiveSubscription(currentTenantId);
- }
-
-
- /**
- * Method called by super-tenant
- * @param tenantId Tenant Id
- * @return true | false based on whether the operation was successful or not
- * @throws Exception Exception
- */
- public boolean deactivateActiveSubscriptionBySuperTenant(int tenantId) throws Exception{
- return deactivateActiveSubscription(tenantId);
- }
-
-
-
- /**
- * This is the private method called by tenant or super tenant operations when
- * changing(updating) the subscription plan
- * @param tenantId Tenant ID
- * @param subscriptionPlan new usage plan (subscription plan) name
- * @return true or false based on whether the operation was successful
- * @throws Exception Exception
- */
- private boolean changeSubscription(int tenantId, String subscriptionPlan) throws Exception {
-
- DataAccessManager dataAccessManager = Util.getDataAccessManager();
- if (dataAccessManager.changeSubscription(tenantId, subscriptionPlan)) {
- try {
- Util.executeThrottlingRules(tenantId);
- }
- catch (Exception e) {
- log.error("Error occurred executing throttling rules after updating the subscription " +
- "to " + subscriptionPlan + ". " + e.toString());
- }
- //send mail
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * Gets the active subscription of a customer. There can be only one active
- * subscription for a customer at a given time
- * @param tenantId Tenant Id
- * @return a subscription object
- * @throws Exception Exception
- */
- private Subscription getActiveSubscriptionOfCustomer(int tenantId) throws Exception {
- DataAccessManager dataAccessManager = Util.getDataAccessManager();
- return dataAccessManager.getActiveSubscriptionOfCustomer(tenantId);
- }
-
- /**
- * Deactivates the active subscription of a customer
- * @param tenantId is the customer id (both have the same meaning)
- * @return true or false based on whether the operation was successful or not
- * @throws Exception Exception
- */
- private boolean deactivateActiveSubscription(int tenantId) throws Exception {
- DataAccessManager dataAccessManager = Util.getDataAccessManager();
- return dataAccessManager.deactivateActiveSubscription(tenantId);
- }
-
- /**
- * This method is used to update the usage plan when updating the from Demo to a paying plan
- * @param subscriptionPlan new Usage plan name that user expect to go
- * @param tenantDomain the domain of the tenant that should be updated
- * @return whether the operation was successful or not
- * @throws Exception Exception
- */
- public boolean changeSubscriptionForTenant(String subscriptionPlan, String tenantDomain) throws Exception {
- int tenantId = Util.getRealmService().getTenantManager().getTenantId(tenantDomain);
- return changeSubscription(tenantId, subscriptionPlan);
- }
-
-}