killbill-uncached

pom.xml: remove dependency on commons-io, commons-lang and

6/17/2012 9:14:46 PM

Changes

account/pom.xml 5(+0 -5)

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

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

invoice/pom.xml 5(+0 -5)

junction/pom.xml 5(+0 -5)

overdue/pom.xml 5(+0 -5)

payment/pom.xml 13(+0 -13)

pom.xml 17(+1 -16)

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

util/pom.xml 9(+0 -9)

Details

account/pom.xml 5(+0 -5)

diff --git a/account/pom.xml b/account/pom.xml
index f6f9620..353c3c1 100644
--- a/account/pom.xml
+++ b/account/pom.xml
@@ -89,11 +89,6 @@
             <artifactId>testng</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
     <build>
         <plugins>
diff --git a/account/src/test/java/com/ning/billing/account/dao/AccountDaoTestBase.java b/account/src/test/java/com/ning/billing/account/dao/AccountDaoTestBase.java
index 1d51373..0635c4e 100644
--- a/account/src/test/java/com/ning/billing/account/dao/AccountDaoTestBase.java
+++ b/account/src/test/java/com/ning/billing/account/dao/AccountDaoTestBase.java
@@ -18,7 +18,6 @@ package com.ning.billing.account.dao;
 
 import java.io.IOException;
 
-import org.apache.commons.io.IOUtils;
 import org.skife.jdbi.v2.Handle;
 import org.skife.jdbi.v2.IDBI;
 import org.skife.jdbi.v2.TransactionCallback;
@@ -38,6 +37,7 @@ import com.ning.billing.util.callcontext.DefaultCallContextFactory;
 import com.ning.billing.util.callcontext.UserType;
 import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.clock.ClockMock;
+import com.ning.billing.util.io.IOUtils;
 import com.ning.billing.util.tag.api.user.TagEventBuilder;
 
 import static org.testng.Assert.fail;
diff --git a/analytics/pom.xml b/analytics/pom.xml
index 5c36e41..3a4b2bb 100644
--- a/analytics/pom.xml
+++ b/analytics/pom.xml
@@ -39,11 +39,6 @@
             <artifactId>killbill-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-simple</artifactId>
             <scope>test</scope>
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockAccountUserApi.java b/analytics/src/test/java/com/ning/billing/analytics/MockAccountUserApi.java
index d271737..982f68e 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockAccountUserApi.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockAccountUserApi.java
@@ -19,8 +19,6 @@ package com.ning.billing.analytics;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.NotImplementedException;
-
 import com.ning.billing.account.api.Account;
 import com.ning.billing.account.api.AccountApiException;
 import com.ning.billing.account.api.AccountData;
@@ -105,6 +103,6 @@ public class MockAccountUserApi implements AccountUserApi {
     @Override
     public void updateAccount(final UUID accountId, final AccountData accountData, final CallContext context)
             throws AccountApiException {
-        throw new NotImplementedException();
+        throw new UnsupportedOperationException();
     }
 }
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockDuration.java b/analytics/src/test/java/com/ning/billing/analytics/MockDuration.java
index b39c93f..6810e0e 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockDuration.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockDuration.java
@@ -16,7 +16,6 @@
 
 package com.ning.billing.analytics;
 
-import org.apache.commons.lang.NotImplementedException;
 import org.joda.time.DateTime;
 import org.joda.time.Period;
 
@@ -38,7 +37,7 @@ public class MockDuration {
 
             @Override
             public DateTime addToDateTime(final DateTime dateTime) {
-                throw new NotImplementedException();
+                throw new UnsupportedOperationException();
             }
 
             @Override
@@ -62,7 +61,7 @@ public class MockDuration {
 
             @Override
             public DateTime addToDateTime(final DateTime dateTime) {
-                throw new NotImplementedException();
+                throw new UnsupportedOperationException();
             }
 
             @Override
@@ -86,7 +85,7 @@ public class MockDuration {
 
             @Override
             public DateTime addToDateTime(final DateTime dateTime) {
-                throw new NotImplementedException();
+                throw new UnsupportedOperationException();
             }
 
             @Override
diff --git a/analytics/src/test/java/com/ning/billing/analytics/TestWithEmbeddedDB.java b/analytics/src/test/java/com/ning/billing/analytics/TestWithEmbeddedDB.java
index ad99469..8feb144 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/TestWithEmbeddedDB.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/TestWithEmbeddedDB.java
@@ -20,13 +20,13 @@ import java.io.IOException;
 import java.net.URISyntaxException;
 import java.sql.SQLException;
 
-import org.apache.commons.io.IOUtils;
 import org.testng.annotations.AfterSuite;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.BeforeSuite;
 
 import com.google.common.io.Resources;
 import com.ning.billing.dbi.MysqlTestingHelper;
+import com.ning.billing.util.io.IOUtils;
 
 public abstract class TestWithEmbeddedDB extends AnalyticsTestSuite {
     protected static final MysqlTestingHelper helper = new MysqlTestingHelper();

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

diff --git a/api/pom.xml b/api/pom.xml
index 1b390e4..416cc76 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -50,10 +50,6 @@
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-annotations</artifactId>
         </dependency>
-        <dependency>
-            <groupId>commons-lang</groupId>
-            <artifactId>commons-lang</artifactId>
-        </dependency>
     </dependencies>
     <build>
     </build>

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

diff --git a/beatrix/pom.xml b/beatrix/pom.xml
index b55a633..7e7b214 100644
--- a/beatrix/pom.xml
+++ b/beatrix/pom.xml
@@ -123,11 +123,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>com.ning.billing</groupId>
             <artifactId>killbill-util</artifactId>
             <type>test-jar</type>
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
index 104928f..43ccf5d 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
@@ -21,8 +21,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.RandomStringUtils;
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 import org.skife.jdbi.v2.IDBI;
@@ -64,6 +62,7 @@ import com.ning.billing.util.callcontext.CallOrigin;
 import com.ning.billing.util.callcontext.DefaultCallContextFactory;
 import com.ning.billing.util.callcontext.UserType;
 import com.ning.billing.util.clock.ClockMock;
+import com.ning.billing.util.io.IOUtils;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
@@ -71,7 +70,6 @@ import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
 
 public class TestIntegrationBase implements TestListenerStatus {
-
     protected static final int NUMBER_OF_DECIMALS = InvoicingConfiguration.getNumberOfDecimals();
     protected static final int ROUNDING_METHOD = InvoicingConfiguration.getRoundingMode();
 
@@ -287,8 +285,7 @@ public class TestIntegrationBase implements TestListenerStatus {
 
 
     protected AccountData getAccountData(final int billingDay) {
-
-        final String someRandomKey = RandomStringUtils.randomAlphanumeric(10);
+        final String someRandomKey = UUID.randomUUID().toString();
         return new AccountData() {
             @Override
             public String getName() {
diff --git a/entitlement/pom.xml b/entitlement/pom.xml
index 41eaeb0..1d995e0 100644
--- a/entitlement/pom.xml
+++ b/entitlement/pom.xml
@@ -42,11 +42,6 @@
             <artifactId>killbill-util</artifactId>
         </dependency>
         <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>joda-time</groupId>
             <artifactId>joda-time</artifactId>
         </dependency>
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/TestApiBase.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/TestApiBase.java
index f69b484..88d31b3 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/TestApiBase.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/TestApiBase.java
@@ -22,7 +22,6 @@ import java.net.URL;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.io.IOUtils;
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 import org.joda.time.Period;
@@ -75,19 +74,16 @@ import com.ning.billing.util.callcontext.TestCallContext;
 import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.clock.ClockMock;
 import com.ning.billing.util.glue.RealImplementation;
+import com.ning.billing.util.io.IOUtils;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
 
-
 public abstract class TestApiBase implements TestListenerStatus {
-
     protected static final Logger log = LoggerFactory.getLogger(TestApiBase.class);
 
-    protected static final long DAY_IN_MS = (24 * 3600 * 1000);
-
     protected EntitlementService entitlementService;
     protected EntitlementUserApi entitlementApi;
     protected ChargeThruApi billingApi;
@@ -282,8 +278,8 @@ public abstract class TestApiBase implements TestListenerStatus {
 
         testListener.pushExpectedEvent(NextEvent.CREATE);
         final SubscriptionData subscription = (SubscriptionData) entitlementApi.createSubscription(bundleId,
-                                                                                             new PlanPhaseSpecifier(productName, ProductCategory.BASE, term, planSet, null),
-                                                                                             requestedDate == null ? clock.getUTCNow() : requestedDate, context);
+                                                                                                   new PlanPhaseSpecifier(productName, ProductCategory.BASE, term, planSet, null),
+                                                                                                   requestedDate == null ? clock.getUTCNow() : requestedDate, context);
         assertNotNull(subscription);
         assertTrue(testListener.isCompleted(5000));
         return subscription;

invoice/pom.xml 5(+0 -5)

diff --git a/invoice/pom.xml b/invoice/pom.xml
index de1be0d..06866fb 100644
--- a/invoice/pom.xml
+++ b/invoice/pom.xml
@@ -97,11 +97,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>com.jayway.awaitility</groupId>
             <artifactId>awaitility</artifactId>
             <scope>test</scope>
diff --git a/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java b/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java
index a1e17e1..64ee7ac 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java
@@ -21,7 +21,6 @@ import java.util.Collection;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.io.IOUtils;
 import org.joda.time.DateTime;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -69,6 +68,7 @@ import com.ning.billing.util.callcontext.UserType;
 import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.clock.ClockMock;
 import com.ning.billing.util.globallocker.GlobalLocker;
+import com.ning.billing.util.io.IOUtils;
 
 @Guice(modules = {MockModuleNoEntitlement.class})
 public class TestDefaultInvoiceMigrationApi extends InvoicingTestBase {
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTestBase.java b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTestBase.java
index f7aa751..637dd5a 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTestBase.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTestBase.java
@@ -18,7 +18,6 @@ package com.ning.billing.invoice.dao;
 
 import java.io.IOException;
 
-import org.apache.commons.io.IOUtils;
 import org.skife.jdbi.v2.Handle;
 import org.skife.jdbi.v2.IDBI;
 import org.skife.jdbi.v2.TransactionCallback;
@@ -41,6 +40,7 @@ import com.ning.billing.util.callcontext.CallContext;
 import com.ning.billing.util.callcontext.TestCallContext;
 import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.clock.ClockMock;
+import com.ning.billing.util.io.IOUtils;
 import com.ning.billing.util.tag.api.DefaultTagUserApi;
 import com.ning.billing.util.tag.api.user.TagEventBuilder;
 import com.ning.billing.util.tag.dao.AuditedTagDao;
diff --git a/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java b/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
index 8ff7f7e..f1f7614 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
@@ -21,7 +21,6 @@ import java.sql.SQLException;
 import java.util.UUID;
 import java.util.concurrent.Callable;
 
-import org.apache.commons.io.IOUtils;
 import org.joda.time.DateTime;
 import org.skife.config.ConfigurationObjectFactory;
 import org.skife.jdbi.v2.IDBI;
@@ -61,6 +60,7 @@ import com.ning.billing.util.email.templates.TemplateModule;
 import com.ning.billing.util.glue.BusModule;
 import com.ning.billing.util.glue.BusModule.BusType;
 import com.ning.billing.util.glue.NotificationQueueModule;
+import com.ning.billing.util.io.IOUtils;
 import com.ning.billing.util.notificationq.DummySqlTest;
 import com.ning.billing.util.notificationq.NotificationQueueService;
 import com.ning.billing.util.notificationq.dao.NotificationSqlDao;
@@ -77,7 +77,6 @@ public class TestNextBillingDateNotifier {
     private InvoiceListenerMock listener;
     private NotificationQueueService notificationQueueService;
 
-
     private static final class InvoiceListenerMock extends InvoiceListener {
         int eventCount = 0;
         UUID latestSubscriptionId = null;
diff --git a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
index f864108..88401ec 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
@@ -20,7 +20,6 @@ import java.math.BigDecimal;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.io.IOUtils;
 import org.joda.time.DateTime;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -63,6 +62,7 @@ import com.ning.billing.util.callcontext.DefaultCallContextFactory;
 import com.ning.billing.util.callcontext.UserType;
 import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.globallocker.GlobalLocker;
+import com.ning.billing.util.io.IOUtils;
 
 @Test(groups = "slow")
 @Guice(modules = {MockModule.class})

junction/pom.xml 5(+0 -5)

diff --git a/junction/pom.xml b/junction/pom.xml
index 4bafd6c..28e5021 100644
--- a/junction/pom.xml
+++ b/junction/pom.xml
@@ -50,11 +50,6 @@
             <artifactId>testng</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <scope>test</scope>
-        </dependency>
         <!-- TEST SCOPE -->
         <dependency>
             <groupId>org.slf4j</groupId>
diff --git a/junction/src/test/java/com/ning/billing/junction/api/blocking/TestBlockingApi.java b/junction/src/test/java/com/ning/billing/junction/api/blocking/TestBlockingApi.java
index d8b9ae9..b8f4343 100644
--- a/junction/src/test/java/com/ning/billing/junction/api/blocking/TestBlockingApi.java
+++ b/junction/src/test/java/com/ning/billing/junction/api/blocking/TestBlockingApi.java
@@ -20,7 +20,6 @@ import java.io.IOException;
 import java.util.SortedSet;
 import java.util.UUID;
 
-import org.apache.commons.io.IOUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.Assert;
@@ -43,6 +42,7 @@ import com.ning.billing.mock.BrainDeadProxyFactory;
 import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
 import com.ning.billing.mock.glue.MockEntitlementModule;
 import com.ning.billing.util.clock.ClockMock;
+import com.ning.billing.util.io.IOUtils;
 
 @Guice(modules = {MockModule.class, MockEntitlementModule.class})
 public class TestBlockingApi {
@@ -65,7 +65,6 @@ public class TestBlockingApi {
 
         helper.startMysql();
         helper.initDb(utilDdl);
-
     }
 
     @BeforeMethod(groups = {"slow"})
diff --git a/junction/src/test/java/com/ning/billing/junction/dao/TestBlockingDao.java b/junction/src/test/java/com/ning/billing/junction/dao/TestBlockingDao.java
index d4a2028..4659778 100644
--- a/junction/src/test/java/com/ning/billing/junction/dao/TestBlockingDao.java
+++ b/junction/src/test/java/com/ning/billing/junction/dao/TestBlockingDao.java
@@ -20,7 +20,6 @@ import java.io.IOException;
 import java.util.SortedSet;
 import java.util.UUID;
 
-import org.apache.commons.io.IOUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.Assert;
@@ -40,6 +39,7 @@ import com.ning.billing.mock.BrainDeadProxyFactory;
 import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
 import com.ning.billing.mock.glue.MockEntitlementModule;
 import com.ning.billing.util.clock.ClockMock;
+import com.ning.billing.util.io.IOUtils;
 
 @Guice(modules = {MockModule.class, MockEntitlementModule.class})
 public class TestBlockingDao {
@@ -59,7 +59,6 @@ public class TestBlockingDao {
 
         helper.startMysql();
         helper.initDb(utilDdl);
-
     }
 
     @AfterClass(groups = "slow")

overdue/pom.xml 5(+0 -5)

diff --git a/overdue/pom.xml b/overdue/pom.xml
index c00435a..e97cd9f 100644
--- a/overdue/pom.xml
+++ b/overdue/pom.xml
@@ -56,11 +56,6 @@
             <artifactId>testng</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <scope>test</scope>
-        </dependency>
 
         <dependency>
             <groupId>com.ning.billing</groupId>
diff --git a/overdue/src/test/java/com/ning/billing/overdue/applicator/ApplicatorMockJunctionModule.java b/overdue/src/test/java/com/ning/billing/overdue/applicator/ApplicatorMockJunctionModule.java
index 889cd06..a309949 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/applicator/ApplicatorMockJunctionModule.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/applicator/ApplicatorMockJunctionModule.java
@@ -19,7 +19,6 @@ package com.ning.billing.overdue.applicator;
 import java.util.SortedSet;
 import java.util.UUID;
 
-import org.apache.commons.lang.NotImplementedException;
 import org.joda.time.DateTime;
 
 import com.ning.billing.junction.api.Blockable;
@@ -29,7 +28,6 @@ import com.ning.billing.junction.api.BlockingState;
 import com.ning.billing.mock.glue.MockJunctionModule;
 
 public class ApplicatorMockJunctionModule extends MockJunctionModule {
-
     public static class ApplicatorBlockingApi implements BlockingApi {
         private BlockingState blockingState;
 
@@ -87,17 +85,17 @@ public class ApplicatorMockJunctionModule extends MockJunctionModule {
 
         @Override
         public BlockingState getBlockingStateFor(final UUID overdueableId) {
-            throw new NotImplementedException();
+            throw new UnsupportedOperationException();
         }
 
         @Override
         public SortedSet<BlockingState> getBlockingHistory(final Blockable overdueable) {
-            throw new NotImplementedException();
+            throw new UnsupportedOperationException();
         }
 
         @Override
         public SortedSet<BlockingState> getBlockingHistory(final UUID overdueableId) {
-            throw new NotImplementedException();
+            throw new UnsupportedOperationException();
         }
 
         @Override
@@ -110,7 +108,5 @@ public class ApplicatorMockJunctionModule extends MockJunctionModule {
     @Override
     public void installBlockingApi() {
         bind(BlockingApi.class).toInstance(new ApplicatorBlockingApi());
-
     }
-
 }
diff --git a/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java b/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java
index 1600761..a098a25 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java
@@ -21,7 +21,6 @@ import java.sql.SQLException;
 import java.util.UUID;
 import java.util.concurrent.Callable;
 
-import org.apache.commons.io.IOUtils;
 import org.joda.time.DateTime;
 import org.skife.config.ConfigurationObjectFactory;
 import org.skife.jdbi.v2.IDBI;
@@ -64,6 +63,7 @@ import com.ning.billing.util.customfield.dao.CustomFieldDao;
 import com.ning.billing.util.globallocker.GlobalLocker;
 import com.ning.billing.util.globallocker.MySqlGlobalLocker;
 import com.ning.billing.util.glue.BusModule;
+import com.ning.billing.util.io.IOUtils;
 import com.ning.billing.util.notificationq.DefaultNotificationQueueService;
 import com.ning.billing.util.notificationq.NotificationQueueService;
 import com.ning.billing.util.notificationq.dao.NotificationSqlDao;
diff --git a/overdue/src/test/java/com/ning/billing/overdue/OverdueTestBase.java b/overdue/src/test/java/com/ning/billing/overdue/OverdueTestBase.java
index 6cf5e54..f68ce0a 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/OverdueTestBase.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/OverdueTestBase.java
@@ -22,7 +22,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.io.IOUtils;
 import org.joda.time.DateTime;
 import org.testng.Assert;
 import org.testng.annotations.AfterClass;
@@ -62,9 +61,9 @@ import com.ning.billing.util.bus.BusService;
 import com.ning.billing.util.clock.ClockMock;
 import com.ning.billing.util.glue.BusModule;
 import com.ning.billing.util.glue.NotificationQueueModule;
+import com.ning.billing.util.io.IOUtils;
 import com.ning.billing.util.notificationq.NotificationQueueService.NotificationQueueAlreadyExists;
 
-//@Guice(modules = {MockJunctionModule.class, MockInvoiceModule.class, DefaultOverdueModule.class})
 @Guice(modules = {DefaultOverdueModule.class, MockClockModule.class, ApplicatorMockJunctionModule.class, CatalogModule.class, MockInvoiceModule.class, MockPaymentModule.class, BusModule.class, NotificationQueueModule.class, TestDbiModule.class})
 public class OverdueTestBase {
     protected final String configXml =
@@ -151,7 +150,6 @@ public class OverdueTestBase {
         helper.initDb(utilDdl);
     }
 
-
     @BeforeClass(groups = "slow")
     public void setup() throws Exception {
 

payment/pom.xml 13(+0 -13)

diff --git a/payment/pom.xml b/payment/pom.xml
index dfe43fd..568bebb 100644
--- a/payment/pom.xml
+++ b/payment/pom.xml
@@ -66,19 +66,6 @@
             <artifactId>joda-time</artifactId>
         </dependency>
         <dependency>
-            <groupId>commons-lang</groupId>
-            <artifactId>commons-lang</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>commons-collections</groupId>
-            <artifactId>commons-collections</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </dependency>
diff --git a/payment/src/main/java/com/ning/billing/payment/glue/PaymentModule.java b/payment/src/main/java/com/ning/billing/payment/glue/PaymentModule.java
index 9980226..803b818 100644
--- a/payment/src/main/java/com/ning/billing/payment/glue/PaymentModule.java
+++ b/payment/src/main/java/com/ning/billing/payment/glue/PaymentModule.java
@@ -21,8 +21,11 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ThreadFactory;
 
+import org.skife.config.ConfigSource;
 import org.skife.config.ConfigurationObjectFactory;
+import org.skife.config.SimplePropertyConfigSource;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.inject.AbstractModule;
 import com.google.inject.name.Names;
 import com.ning.billing.config.PaymentConfig;
@@ -43,21 +46,24 @@ import com.ning.billing.payment.retry.PluginFailureRetryService;
 import com.ning.billing.payment.retry.PluginFailureRetryService.PluginFailureRetryServiceScheduler;
 
 public class PaymentModule extends AbstractModule {
-
     private static final int PLUGIN_NB_THREADS = 3;
     private static final String PLUGIN_THREAD_PREFIX = "Plugin-th-";
 
     public static final String PLUGIN_EXECUTOR_NAMED = "PluginExecutor";
 
-
-    protected final Properties props;
+    @VisibleForTesting
+    protected ConfigSource configSource;
 
     public PaymentModule() {
-        this.props = System.getProperties();
+        this(System.getProperties());
     }
 
-    public PaymentModule(final Properties props) {
-        this.props = props;
+    public PaymentModule(final ConfigSource configSource) {
+        this.configSource = configSource;
+    }
+
+    public PaymentModule(final Properties properties) {
+        this(new SimplePropertyConfigSource(properties));
     }
 
     protected void installPaymentDao() {
@@ -74,7 +80,6 @@ public class PaymentModule extends AbstractModule {
         bind(PluginFailureRetryServiceScheduler.class).asEagerSingleton();
     }
 
-
     protected void installProcessors() {
         final ExecutorService pluginExecutorService = Executors.newFixedThreadPool(PLUGIN_NB_THREADS, new ThreadFactory() {
 
@@ -93,7 +98,7 @@ public class PaymentModule extends AbstractModule {
 
     @Override
     protected void configure() {
-        final ConfigurationObjectFactory factory = new ConfigurationObjectFactory(props);
+        final ConfigurationObjectFactory factory = new ConfigurationObjectFactory(configSource);
         final PaymentConfig paymentConfig = factory.build(PaymentConfig.class);
 
         bind(PaymentConfig.class).toInstance(paymentConfig);
diff --git a/payment/src/main/java/com/ning/billing/payment/provider/DefaultNoOpPaymentInfoPlugin.java b/payment/src/main/java/com/ning/billing/payment/provider/DefaultNoOpPaymentInfoPlugin.java
index 5fbe67a..325d03d 100644
--- a/payment/src/main/java/com/ning/billing/payment/provider/DefaultNoOpPaymentInfoPlugin.java
+++ b/payment/src/main/java/com/ning/billing/payment/provider/DefaultNoOpPaymentInfoPlugin.java
@@ -29,7 +29,6 @@ public class DefaultNoOpPaymentInfoPlugin implements PaymentInfoPlugin {
     private final PaymentPluginStatus status;
     private final String error;
 
-
     public DefaultNoOpPaymentInfoPlugin(final BigDecimal amount, final DateTime effectiveDate,
                                         final DateTime createdDate, final PaymentPluginStatus status, final String error) {
         super();
diff --git a/payment/src/main/java/com/ning/billing/payment/provider/DefaultNoOpPaymentProviderPlugin.java b/payment/src/main/java/com/ning/billing/payment/provider/DefaultNoOpPaymentProviderPlugin.java
index de81197..5591937 100644
--- a/payment/src/main/java/com/ning/billing/payment/provider/DefaultNoOpPaymentProviderPlugin.java
+++ b/payment/src/main/java/com/ning/billing/payment/provider/DefaultNoOpPaymentProviderPlugin.java
@@ -24,8 +24,6 @@ import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.apache.commons.lang.RandomStringUtils;
-
 import com.google.inject.Inject;
 import com.ning.billing.account.api.Account;
 import com.ning.billing.payment.api.PaymentMethodPlugin;
@@ -37,8 +35,6 @@ import com.ning.billing.payment.plugin.api.PaymentProviderAccount;
 import com.ning.billing.util.clock.Clock;
 
 public class DefaultNoOpPaymentProviderPlugin implements NoOpPaymentPluginApi {
-
-
     private final AtomicBoolean makeNextInvoiceFailWithError = new AtomicBoolean(false);
     private final AtomicBoolean makeNextInvoiceFailWithException = new AtomicBoolean(false);
     private final AtomicBoolean makeAllInvoicesFailWithError = new AtomicBoolean(false);
@@ -109,8 +105,8 @@ public class DefaultNoOpPaymentProviderPlugin implements NoOpPaymentPluginApi {
     @Override
     public String createPaymentProviderAccount(final Account account) throws PaymentPluginApiException {
         if (account != null) {
-            final String id = String.valueOf(RandomStringUtils.randomAlphanumeric(10));
-            final String paymentMethodId = String.valueOf(RandomStringUtils.randomAlphanumeric(10));
+            final String id = UUID.randomUUID().toString();
+            final String paymentMethodId = UUID.randomUUID().toString();
             accounts.put(account.getExternalKey(),
                          new PaymentProviderAccount.Builder().setAccountKey(account.getExternalKey())
                                                              .setId(id)
diff --git a/payment/src/main/java/com/ning/billing/payment/provider/DefaultPaymentProviderPluginRegistry.java b/payment/src/main/java/com/ning/billing/payment/provider/DefaultPaymentProviderPluginRegistry.java
index 1d49b43..200eaca 100644
--- a/payment/src/main/java/com/ning/billing/payment/provider/DefaultPaymentProviderPluginRegistry.java
+++ b/payment/src/main/java/com/ning/billing/payment/provider/DefaultPaymentProviderPluginRegistry.java
@@ -20,13 +20,11 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.commons.lang.StringUtils;
-
+import com.google.common.base.Strings;
 import com.google.inject.Inject;
 import com.ning.billing.config.PaymentConfig;
 import com.ning.billing.payment.plugin.api.PaymentPluginApi;
 
-
 public class DefaultPaymentProviderPluginRegistry implements PaymentProviderPluginRegistry {
 
     private final String defaultPlugin;
@@ -44,7 +42,7 @@ public class DefaultPaymentProviderPluginRegistry implements PaymentProviderPlug
 
     @Override
     public PaymentPluginApi getPlugin(final String name) {
-        final PaymentPluginApi plugin = pluginsByName.get(StringUtils.defaultIfEmpty(name, defaultPlugin).toLowerCase());
+        final PaymentPluginApi plugin = pluginsByName.get((Strings.emptyToNull(name) == null ? defaultPlugin : name).toLowerCase());
 
         if (plugin == null) {
             throw new IllegalArgumentException("No payment provider plugin is configured for " + name);
diff --git a/payment/src/test/java/com/ning/billing/payment/dao/TestPaymentDao.java b/payment/src/test/java/com/ning/billing/payment/dao/TestPaymentDao.java
index 21ac90d..10c2ac5 100644
--- a/payment/src/test/java/com/ning/billing/payment/dao/TestPaymentDao.java
+++ b/payment/src/test/java/com/ning/billing/payment/dao/TestPaymentDao.java
@@ -21,7 +21,6 @@ import java.math.RoundingMode;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.io.IOUtils;
 import org.joda.time.DateTime;
 import org.skife.config.ConfigurationObjectFactory;
 import org.skife.jdbi.v2.IDBI;
@@ -39,12 +38,12 @@ import com.ning.billing.util.callcontext.CallContext;
 import com.ning.billing.util.callcontext.TestCallContext;
 import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.clock.DefaultClock;
+import com.ning.billing.util.io.IOUtils;
 
 import static junit.framework.Assert.assertNull;
 import static org.testng.Assert.assertEquals;
 
 public class TestPaymentDao {
-
     private static final CallContext context = new TestCallContext("PaymentTests");
 
     private PaymentDao paymentDao;
@@ -57,7 +56,6 @@ public class TestPaymentDao {
         final String paymentddl = IOUtils.toString(MysqlTestingHelper.class.getResourceAsStream("/com/ning/billing/payment/ddl.sql"));
         final String utilddl = IOUtils.toString(MysqlTestingHelper.class.getResourceAsStream("/com/ning/billing/util/ddl.sql"));
 
-
         clock = new DefaultClock();
 
         setupDb();
diff --git a/payment/src/test/java/com/ning/billing/payment/glue/PaymentTestModuleWithEmbeddedDb.java b/payment/src/test/java/com/ning/billing/payment/glue/PaymentTestModuleWithEmbeddedDb.java
index 83567d5..4937184 100644
--- a/payment/src/test/java/com/ning/billing/payment/glue/PaymentTestModuleWithEmbeddedDb.java
+++ b/payment/src/test/java/com/ning/billing/payment/glue/PaymentTestModuleWithEmbeddedDb.java
@@ -18,9 +18,6 @@ package com.ning.billing.payment.glue;
 
 import java.util.HashMap;
 
-import org.apache.commons.collections.MapUtils;
-
-import com.google.common.collect.ImmutableMap;
 import com.google.inject.Provider;
 import com.ning.billing.config.PaymentConfig;
 import com.ning.billing.mock.BrainDeadProxyFactory;
@@ -35,18 +32,7 @@ import com.ning.billing.util.notificationq.NotificationQueueService;
 import com.ning.billing.util.tag.Tag;
 
 public class PaymentTestModuleWithEmbeddedDb extends PaymentModule {
-    /*
-	public static class MockProvider implements Provider<BillingApi> {
-		@Override
-		public BillingApi get() {
-			return BrainDeadProxyFactory.createBrainDeadProxyFor(BillingApi.class);
-		}
-
-	}
-	*/
-
     public static class MockTagApiProvider implements Provider<TagUserApi> {
-
         @Override
         public TagUserApi get() {
             final TagUserApi api = BrainDeadProxyFactory.createBrainDeadProxyFor(TagUserApi.class);
@@ -56,10 +42,6 @@ public class PaymentTestModuleWithEmbeddedDb extends PaymentModule {
 
     }
 
-    public PaymentTestModuleWithEmbeddedDb() {
-        super(MapUtils.toProperties(ImmutableMap.of("killbill.payment.provider.default", "my-mock")));
-    }
-
     @Override
     protected void installPaymentProviderPlugins(final PaymentConfig config) {
         install(new MockPaymentProviderPluginModule("my-mock"));
diff --git a/payment/src/test/java/com/ning/billing/payment/glue/PaymentTestModuleWithMocks.java b/payment/src/test/java/com/ning/billing/payment/glue/PaymentTestModuleWithMocks.java
index f505f69..ca497f6 100644
--- a/payment/src/test/java/com/ning/billing/payment/glue/PaymentTestModuleWithMocks.java
+++ b/payment/src/test/java/com/ning/billing/payment/glue/PaymentTestModuleWithMocks.java
@@ -18,10 +18,12 @@ package com.ning.billing.payment.glue;
 
 import java.io.IOException;
 import java.net.URL;
+import java.util.Map;
+import java.util.Properties;
 
-import org.apache.commons.collections.MapUtils;
+import org.skife.config.ConfigSource;
+import org.skife.config.SimplePropertyConfigSource;
 
-import com.google.common.collect.ImmutableMap;
 import com.ning.billing.config.PaymentConfig;
 import com.ning.billing.mock.glue.MockInvoiceModule;
 import com.ning.billing.mock.glue.MockNotificationQueueModule;
@@ -38,16 +40,6 @@ import com.ning.billing.util.glue.TagStoreModule;
 import static org.testng.Assert.assertNotNull;
 
 public class PaymentTestModuleWithMocks extends PaymentModule {
-    /*
-	public static class MockProvider implements Provider<BillingApi> {
-		@Override
-		public BillingApi get() {
-			return BrainDeadProxyFactory.createBrainDeadProxyFor(BillingApi.class);
-		}
-
-	}
-	*/
-
     public static final String PLUGIN_TEST_NAME = "my-mock";
 
     private void loadSystemPropertiesFromClasspath(final String resource) {
@@ -55,15 +47,29 @@ public class PaymentTestModuleWithMocks extends PaymentModule {
         assertNotNull(url);
 
         try {
-            props.load(url.openStream());
+            final Properties properties = System.getProperties();
+            properties.load(url.openStream());
+
+            properties.setProperty("killbill.payment.provider.default", PLUGIN_TEST_NAME);
+            properties.setProperty("killbill.payment.engine.events.off", "false");
+
+            configSource = new SimplePropertyConfigSource(properties);
         } catch (IOException e) {
             throw new RuntimeException(e);
         }
     }
 
-    public PaymentTestModuleWithMocks() {
-        super(MapUtils.toProperties(ImmutableMap.of("killbill.payment.provider.default", PLUGIN_TEST_NAME,
-                                                    "killbill.payment.engine.events.off", "false")));
+    private static final class MapConfigSource implements ConfigSource {
+        private final Map<String, String> map;
+
+        private MapConfigSource(final Map<String, String> map) {
+            this.map = map;
+        }
+
+        @Override
+        public String getString(final String propertyName) {
+            return map.get(propertyName);
+        }
     }
 
     @Override
diff --git a/payment/src/test/java/com/ning/billing/payment/MockRecurringInvoiceItem.java b/payment/src/test/java/com/ning/billing/payment/MockRecurringInvoiceItem.java
index af6b218..534bfb2 100644
--- a/payment/src/test/java/com/ning/billing/payment/MockRecurringInvoiceItem.java
+++ b/payment/src/test/java/com/ning/billing/payment/MockRecurringInvoiceItem.java
@@ -20,7 +20,6 @@ import javax.annotation.Nullable;
 import java.math.BigDecimal;
 import java.util.UUID;
 
-import org.apache.commons.lang.NotImplementedException;
 import org.joda.time.DateTime;
 
 import com.ning.billing.catalog.api.Currency;
@@ -160,7 +159,7 @@ public class MockRecurringInvoiceItem extends EntityBase implements InvoiceItem 
 
     @Override
     public InvoiceItem asReversingItem() {
-        throw new NotImplementedException();
+        throw new UnsupportedOperationException();
     }
 
     @Override
diff --git a/payment/src/test/java/com/ning/billing/payment/TestHelper.java b/payment/src/test/java/com/ning/billing/payment/TestHelper.java
index 926729f..6a9e422 100644
--- a/payment/src/test/java/com/ning/billing/payment/TestHelper.java
+++ b/payment/src/test/java/com/ning/billing/payment/TestHelper.java
@@ -18,7 +18,6 @@ package com.ning.billing.payment;
 
 import java.util.UUID;
 
-import org.apache.commons.lang.RandomStringUtils;
 import org.joda.time.DateTime;
 
 import com.google.inject.Inject;
@@ -43,7 +42,6 @@ import com.ning.billing.util.callcontext.CallOrigin;
 import com.ning.billing.util.callcontext.UserType;
 
 public class TestHelper {
-
     protected final AccountUserApi accountUserApi;
     protected final InvoicePaymentApi invoicePaymentApi;
     protected PaymentApi paymentApi;
@@ -85,17 +83,17 @@ public class TestHelper {
 
         ((ZombieControl) invoicePaymentApi).addResult("getInvoice", invoice);
         final InvoiceCreationEvent event = new MockInvoiceCreationEvent(invoice.getId(), invoice.getAccountId(),
-                                                                  invoice.getBalance(), invoice.getCurrency(),
-                                                                  invoice.getInvoiceDate(),
-                                                                  context.getUserToken());
+                                                                        invoice.getBalance(), invoice.getCurrency(),
+                                                                        invoice.getInvoiceDate(),
+                                                                        context.getUserToken());
 
         eventBus.post(event);
         return invoice;
     }
 
     public Account createTestAccount(final String email) throws Exception {
-        final String name = "First" + RandomStringUtils.randomAlphanumeric(5) + " " + "Last" + RandomStringUtils.randomAlphanumeric(5);
-        final String externalKey = RandomStringUtils.randomAlphanumeric(10);
+        final String name = "First" + UUID.randomUUID().toString() + " " + "Last" + UUID.randomUUID().toString();
+        final String externalKey = UUID.randomUUID().toString();
 
         final Account account = BrainDeadProxyFactory.createBrainDeadProxyFor(Account.class);
         final ZombieControl zombie = (ZombieControl) account;
diff --git a/payment/src/test/java/com/ning/billing/payment/TestRetryService.java b/payment/src/test/java/com/ning/billing/payment/TestRetryService.java
index f2ba7a3..b9ab5d0 100644
--- a/payment/src/test/java/com/ning/billing/payment/TestRetryService.java
+++ b/payment/src/test/java/com/ning/billing/payment/TestRetryService.java
@@ -91,14 +91,8 @@ public class TestRetryService {
     private MockPaymentProviderPlugin mockPaymentProviderPlugin;
     private CallContext context;
 
-    @BeforeClass(groups = "fast")
-    public void initialize() throws Exception {
-
-    }
-
     @BeforeMethod(groups = "fast")
     public void setUp() throws Exception {
-
         pluginRetryService.initialize(DefaultPaymentService.SERVICE_NAME);
         pluginRetryService.start();
 
@@ -111,7 +105,6 @@ public class TestRetryService {
 
         context = new DefaultCallContext("RetryServiceTests", CallOrigin.INTERNAL, UserType.TEST, clock);
         ((ZombieControl) invoicePaymentApi).addResult("notifyOfPaymentAttempt", BrainDeadProxyFactory.ZOMBIE_VOID);
-
     }
 
     @AfterMethod(groups = "fast")
@@ -121,7 +114,6 @@ public class TestRetryService {
         eventBus.stop();
     }
 
-
     private Payment getPaymentForInvoice(final UUID invoiceId) throws PaymentApiException {
         final List<Payment> payments = paymentProcessor.getInvoicePayments(invoiceId);
         assertEquals(payments.size(), 1);
@@ -130,7 +122,6 @@ public class TestRetryService {
         return payment;
     }
 
-
     @Test(groups = "fast")
     public void testFailedPluginWithOneSuccessfulRetry() throws Exception {
         testSchedulesRetryInternal(1, FailureType.PLUGIN_EXCEPTION);
@@ -162,7 +153,6 @@ public class TestRetryService {
         testSchedulesRetryInternal(paymentConfig.getPaymentRetryDays().size() + 1, FailureType.PAYMENT_FAILURE);
     }
 
-
     private void testSchedulesRetryInternal(final int maxTries, final FailureType failureType) throws Exception {
 
         final Account account = testHelper.createTestAccount("yiyi.gmail.com");
@@ -281,5 +271,4 @@ public class TestRetryService {
             return paymentConfig.getPluginFailureRetryMaxAttempts();
         }
     }
-
 }

pom.xml 17(+1 -16)

diff --git a/pom.xml b/pom.xml
index f8ade62..287bf63 100644
--- a/pom.xml
+++ b/pom.xml
@@ -228,7 +228,7 @@
             <dependency>
                 <groupId>com.google.guava</groupId>
                 <artifactId>guava</artifactId>
-                <version>10.0.1</version>
+                <version>12.0</version>
                 <scope>provided</scope>
             </dependency>
             <dependency>
@@ -266,21 +266,6 @@
                 <version>1.2</version>
             </dependency>
             <dependency>
-                <groupId>commons-io</groupId>
-                <artifactId>commons-io</artifactId>
-                <version>2.1</version>
-            </dependency>
-            <dependency>
-                <groupId>commons-lang</groupId>
-                <artifactId>commons-lang</artifactId>
-                <version>2.6</version>
-            </dependency>
-            <dependency>
-                <groupId>commons-collections</groupId>
-                <artifactId>commons-collections</artifactId>
-                <version>3.2.1</version>
-            </dependency>
-            <dependency>
                 <groupId>joda-time</groupId>
                 <artifactId>joda-time</artifactId>
                 <version>2.0</version>

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

diff --git a/server/pom.xml b/server/pom.xml
index 4873aad..953d05d 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -230,10 +230,6 @@
             <artifactId>joda-time</artifactId>
         </dependency>
         <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-        </dependency>
-        <dependency>
             <groupId>com.ning</groupId>
             <artifactId>async-http-client</artifactId>
             <version>${async-http-client.version}</version>
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
index e9dfa5d..1b7008a 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
@@ -30,7 +30,6 @@ import java.util.Map.Entry;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.commons.io.IOUtils;
 import org.eclipse.jetty.servlet.FilterHolder;
 import org.skife.config.ConfigurationObjectFactory;
 import org.skife.jdbi.v2.IDBI;
@@ -46,7 +45,6 @@ import org.testng.annotations.BeforeSuite;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
 import com.fasterxml.jackson.datatype.joda.JodaModule;
-import com.google.common.io.Resources;
 import com.google.inject.Module;
 import com.ning.billing.account.glue.AccountModule;
 import com.ning.billing.analytics.setup.AnalyticsModule;
@@ -85,6 +83,7 @@ import com.ning.billing.util.glue.CustomFieldModule;
 import com.ning.billing.util.glue.GlobalLockerModule;
 import com.ning.billing.util.glue.NotificationQueueModule;
 import com.ning.billing.util.glue.TagStoreModule;
+import com.ning.billing.util.io.IOUtils;
 import com.ning.http.client.AsyncCompletionHandler;
 import com.ning.http.client.AsyncHttpClient;
 import com.ning.http.client.AsyncHttpClient.BoundRequestBuilder;
@@ -133,18 +132,6 @@ public class TestJaxrsBase {
         } catch (IOException e) {
             throw new RuntimeException(e);
         }
-
-        /*
-        final String catalogURI = System.getProperty("killbill.catalog.uri");
-        System.setProperty("killbill.catalog.uri", Resources.getResource(catalogURI).toExternalForm());
-
-        if (catalogURI != null) {
-            try {
-                
-            } catch (IllegalArgumentException ignored) {
-            }
-        }
-        */
     }
 
     public static class TestKillbillGuiceListener extends KillbillGuiceListener {

util/pom.xml 9(+0 -9)

diff --git a/util/pom.xml b/util/pom.xml
index ecb3dea..37c429e 100644
--- a/util/pom.xml
+++ b/util/pom.xml
@@ -74,11 +74,6 @@
             <artifactId>commons-email</artifactId>
         </dependency>
         <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
@@ -97,10 +92,6 @@
             <artifactId>jmustache</artifactId>
         </dependency>
         <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-        </dependency>
-        <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-core</artifactId>
         </dependency>
diff --git a/util/src/main/java/com/ning/billing/util/email/templates/MustacheTemplateEngine.java b/util/src/main/java/com/ning/billing/util/email/templates/MustacheTemplateEngine.java
index e641917..f6a76a3 100644
--- a/util/src/main/java/com/ning/billing/util/email/templates/MustacheTemplateEngine.java
+++ b/util/src/main/java/com/ning/billing/util/email/templates/MustacheTemplateEngine.java
@@ -18,13 +18,11 @@ package com.ning.billing.util.email.templates;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.StringWriter;
 import java.net.URISyntaxException;
 import java.util.Map;
 
-import org.apache.commons.io.IOUtils;
-
 import com.ning.billing.util.config.UriAccessor;
+import com.ning.billing.util.io.IOUtils;
 import com.samskivert.mustache.Mustache;
 import com.samskivert.mustache.Template;
 
@@ -43,8 +41,7 @@ public class MustacheTemplateEngine implements TemplateEngine {
         } catch (URISyntaxException e) {
             throw new IOException(e);
         }
-        final StringWriter writer = new StringWriter();
-        IOUtils.copy(templateStream, writer, "UTF-8");
-        return writer.toString();
+
+        return IOUtils.toString(templateStream);
     }
 }
diff --git a/util/src/main/java/com/ning/billing/util/io/IOUtils.java b/util/src/main/java/com/ning/billing/util/io/IOUtils.java
new file mode 100644
index 0000000..d8f0e31
--- /dev/null
+++ b/util/src/main/java/com/ning/billing/util/io/IOUtils.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2010-2012 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at:
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.util.io;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import com.google.common.base.Charsets;
+import com.google.common.io.CharStreams;
+import com.google.common.io.InputSupplier;
+
+public class IOUtils {
+    public static String toString(final InputStream stream) throws IOException {
+        final InputSupplier<InputStream> inputSupplier = new InputSupplier<InputStream>() {
+            @Override
+            public InputStream getInput() throws IOException {
+                return stream;
+            }
+        };
+
+        return CharStreams.toString(CharStreams.newReaderSupplier(inputSupplier, Charsets.UTF_8));
+    }
+}
diff --git a/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java b/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java
index fc621b6..f1bfc60 100644
--- a/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java
+++ b/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java
@@ -17,13 +17,13 @@
 package com.ning.billing.dbi;
 
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.net.ServerSocket;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.io.FileUtils;
 import org.skife.jdbi.v2.DBI;
 import org.skife.jdbi.v2.Handle;
 import org.skife.jdbi.v2.IDBI;
@@ -159,8 +159,8 @@ public class MysqlTestingHelper {
         try {
             if (mysqldResource != null) {
                 mysqldResource.shutdown();
-                FileUtils.deleteQuietly(dataDir);
-                FileUtils.deleteQuietly(dbDir);
+                deleteRecursive(dataDir);
+                deleteRecursive(dbDir);
                 log.info("MySQLd stopped");
             }
         } catch (Exception ex) {
@@ -191,4 +191,17 @@ public class MysqlTestingHelper {
     public String getDbName() {
         return DB_NAME;
     }
+
+    public static boolean deleteRecursive(final File path) throws FileNotFoundException {
+        if (!path.exists()) {
+            throw new FileNotFoundException(path.getAbsolutePath());
+        }
+        boolean ret = true;
+        if (path.isDirectory()) {
+            for (final File f : path.listFiles()) {
+                ret = ret && deleteRecursive(f);
+            }
+        }
+        return ret && path.delete();
+    }
 }
diff --git a/util/src/test/java/com/ning/billing/util/bus/TestPersistentEventBus.java b/util/src/test/java/com/ning/billing/util/bus/TestPersistentEventBus.java
index 41dc0ee..1b58ce1 100644
--- a/util/src/test/java/com/ning/billing/util/bus/TestPersistentEventBus.java
+++ b/util/src/test/java/com/ning/billing/util/bus/TestPersistentEventBus.java
@@ -15,8 +15,6 @@
  */
 package com.ning.billing.util.bus;
 
-
-import org.apache.commons.io.IOUtils;
 import org.skife.config.ConfigurationObjectFactory;
 import org.skife.jdbi.v2.IDBI;
 import org.testng.annotations.BeforeClass;
@@ -33,10 +31,10 @@ import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.clock.ClockMock;
 import com.ning.billing.util.glue.BusModule;
 import com.ning.billing.util.glue.BusModule.BusType;
+import com.ning.billing.util.io.IOUtils;
 
 @Guice(modules = TestPersistentEventBus.PersistentBusModuleTest.class)
 public class TestPersistentEventBus extends TestEventBusBase {
-
     @Inject
     private MysqlTestingHelper helper;
 
@@ -56,10 +54,8 @@ public class TestPersistentEventBus extends TestEventBusBase {
     }
 
     public static class PersistentBusModuleTest extends AbstractModule {
-
         @Override
         protected void configure() {
-
             //System.setProperty("com.ning.billing.dbi.test.useLocalDb", "true");
 
             bind(Clock.class).to(ClockMock.class).asEagerSingleton();
diff --git a/util/src/test/java/com/ning/billing/util/config/TestXMLSchemaGenerator.java b/util/src/test/java/com/ning/billing/util/config/TestXMLSchemaGenerator.java
index c66efe8..8eae647 100644
--- a/util/src/test/java/com/ning/billing/util/config/TestXMLSchemaGenerator.java
+++ b/util/src/test/java/com/ning/billing/util/config/TestXMLSchemaGenerator.java
@@ -20,20 +20,15 @@ import javax.xml.bind.JAXBException;
 import javax.xml.transform.TransformerException;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.StringWriter;
 
-import org.apache.commons.io.IOUtils;
 import org.testng.annotations.Test;
 
-public class TestXMLSchemaGenerator {
+import com.ning.billing.util.io.IOUtils;
 
-    @Test
+public class TestXMLSchemaGenerator {
+    @Test(groups = "fast", enabled = false)
     public void test() throws IOException, TransformerException, JAXBException {
         final InputStream stream = XMLSchemaGenerator.xmlSchema(XmlTestClass.class);
-        final StringWriter writer = new StringWriter();
-        IOUtils.copy(stream, writer);
-        final String result = writer.toString();
-
-        System.out.println(result);
+        System.out.println(IOUtils.toString(stream));
     }
 }
diff --git a/util/src/test/java/com/ning/billing/util/customfield/TestFieldStore.java b/util/src/test/java/com/ning/billing/util/customfield/TestFieldStore.java
index 96e1853..e5caad4 100644
--- a/util/src/test/java/com/ning/billing/util/customfield/TestFieldStore.java
+++ b/util/src/test/java/com/ning/billing/util/customfield/TestFieldStore.java
@@ -19,7 +19,6 @@ package com.ning.billing.util.customfield;
 import java.io.IOException;
 import java.util.UUID;
 
-import org.apache.commons.io.IOUtils;
 import org.skife.jdbi.v2.IDBI;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -37,6 +36,7 @@ import com.ning.billing.util.customfield.dao.AuditedCustomFieldDao;
 import com.ning.billing.util.customfield.dao.CustomFieldDao;
 import com.ning.billing.util.customfield.dao.CustomFieldSqlDao;
 import com.ning.billing.util.dao.ObjectType;
+import com.ning.billing.util.io.IOUtils;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.fail;
diff --git a/util/src/test/java/com/ning/billing/util/globallocker/TestMysqlGlobalLocker.java b/util/src/test/java/com/ning/billing/util/globallocker/TestMysqlGlobalLocker.java
index 8931b1f..4619b42 100644
--- a/util/src/test/java/com/ning/billing/util/globallocker/TestMysqlGlobalLocker.java
+++ b/util/src/test/java/com/ning/billing/util/globallocker/TestMysqlGlobalLocker.java
@@ -19,7 +19,6 @@ package com.ning.billing.util.globallocker;
 import java.io.IOException;
 import java.util.UUID;
 
-import org.apache.commons.io.IOUtils;
 import org.skife.jdbi.v2.Handle;
 import org.skife.jdbi.v2.IDBI;
 import org.skife.jdbi.v2.TransactionCallback;
@@ -34,6 +33,7 @@ import com.google.inject.AbstractModule;
 import com.google.inject.Inject;
 import com.ning.billing.dbi.MysqlTestingHelper;
 import com.ning.billing.util.globallocker.GlobalLocker.LockerService;
+import com.ning.billing.util.io.IOUtils;
 
 @Test(groups = "slow")
 @Guice(modules = TestMysqlGlobalLocker.TestMysqlGlobalLockerModule.class)
diff --git a/util/src/test/java/com/ning/billing/util/notificationq/dao/TestNotificationSqlDao.java b/util/src/test/java/com/ning/billing/util/notificationq/dao/TestNotificationSqlDao.java
index d4821e1..4b5ec17 100644
--- a/util/src/test/java/com/ning/billing/util/notificationq/dao/TestNotificationSqlDao.java
+++ b/util/src/test/java/com/ning/billing/util/notificationq/dao/TestNotificationSqlDao.java
@@ -21,7 +21,6 @@ import java.sql.SQLException;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.io.IOUtils;
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 import org.skife.jdbi.v2.Handle;
@@ -37,6 +36,7 @@ import org.testng.annotations.Test;
 import com.google.inject.AbstractModule;
 import com.google.inject.Inject;
 import com.ning.billing.dbi.MysqlTestingHelper;
+import com.ning.billing.util.io.IOUtils;
 import com.ning.billing.util.notificationq.DefaultNotification;
 import com.ning.billing.util.notificationq.Notification;
 import com.ning.billing.util.notificationq.dao.NotificationSqlDao.NotificationSqlMapper;
@@ -48,7 +48,6 @@ import static org.testng.Assert.assertNotNull;
 @Test(groups = "slow")
 @Guice(modules = TestNotificationSqlDao.TestNotificationSqlDaoModule.class)
 public class TestNotificationSqlDao {
-
     private static final String hostname = "Yop";
 
     @Inject
@@ -148,21 +147,21 @@ public class TestNotificationSqlDao {
             @Override
             public Notification withHandle(final Handle handle) throws Exception {
                 final Notification res = handle.createQuery("   select" +
-                                                              " record_id " +
-                                                              ", id" +
-                                                              ", notification_key" +
-                                                              ", created_date" +
-                                                              ", creating_owner" +
-                                                              ", effective_date" +
-                                                              ", queue_name" +
-                                                              ", processing_owner" +
-                                                              ", processing_available_date" +
-                                                              ", processing_state" +
-                                                              "    from notifications " +
-                                                              " where " +
-                                                              " id = '" + notificationId + "';")
-                                         .map(new NotificationSqlMapper())
-                                         .first();
+                                                                    " record_id " +
+                                                                    ", id" +
+                                                                    ", notification_key" +
+                                                                    ", created_date" +
+                                                                    ", creating_owner" +
+                                                                    ", effective_date" +
+                                                                    ", queue_name" +
+                                                                    ", processing_owner" +
+                                                                    ", processing_available_date" +
+                                                                    ", processing_state" +
+                                                                    "    from notifications " +
+                                                                    " where " +
+                                                                    " id = '" + notificationId + "';")
+                                               .map(new NotificationSqlMapper())
+                                               .first();
                 return res;
             }
         });
diff --git a/util/src/test/java/com/ning/billing/util/notificationq/TestNotificationQueue.java b/util/src/test/java/com/ning/billing/util/notificationq/TestNotificationQueue.java
index 1337504..d972537 100644
--- a/util/src/test/java/com/ning/billing/util/notificationq/TestNotificationQueue.java
+++ b/util/src/test/java/com/ning/billing/util/notificationq/TestNotificationQueue.java
@@ -25,7 +25,6 @@ import java.util.UUID;
 import java.util.concurrent.Callable;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.commons.io.IOUtils;
 import org.joda.time.DateTime;
 import org.skife.jdbi.v2.Handle;
 import org.skife.jdbi.v2.IDBI;
@@ -50,6 +49,7 @@ import com.ning.billing.config.NotificationConfig;
 import com.ning.billing.dbi.MysqlTestingHelper;
 import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.clock.ClockMock;
+import com.ning.billing.util.io.IOUtils;
 import com.ning.billing.util.notificationq.NotificationQueueService.NotificationQueueHandler;
 import com.ning.billing.util.notificationq.dao.NotificationSqlDao;
 
diff --git a/util/src/test/java/com/ning/billing/util/tag/dao/TestAuditedTagDao.java b/util/src/test/java/com/ning/billing/util/tag/dao/TestAuditedTagDao.java
index e986950..2bb6a37 100644
--- a/util/src/test/java/com/ning/billing/util/tag/dao/TestAuditedTagDao.java
+++ b/util/src/test/java/com/ning/billing/util/tag/dao/TestAuditedTagDao.java
@@ -22,7 +22,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
-import org.apache.commons.io.IOUtils;
 import org.testng.Assert;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
@@ -41,6 +40,7 @@ import com.ning.billing.util.callcontext.DefaultCallContextFactory;
 import com.ning.billing.util.callcontext.UserType;
 import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.dao.ObjectType;
+import com.ning.billing.util.io.IOUtils;
 import com.ning.billing.util.tag.MockTagStoreModuleSql;
 import com.ning.billing.util.tag.Tag;
 import com.ning.billing.util.tag.TagDefinition;
diff --git a/util/src/test/java/com/ning/billing/util/tag/dao/TestDefaultTagDefinitionDao.java b/util/src/test/java/com/ning/billing/util/tag/dao/TestDefaultTagDefinitionDao.java
index cc74c55..c895b67 100644
--- a/util/src/test/java/com/ning/billing/util/tag/dao/TestDefaultTagDefinitionDao.java
+++ b/util/src/test/java/com/ning/billing/util/tag/dao/TestDefaultTagDefinitionDao.java
@@ -21,7 +21,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.io.IOUtils;
 import org.testng.Assert;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
@@ -39,6 +38,7 @@ import com.ning.billing.util.callcontext.CallOrigin;
 import com.ning.billing.util.callcontext.DefaultCallContextFactory;
 import com.ning.billing.util.callcontext.UserType;
 import com.ning.billing.util.clock.Clock;
+import com.ning.billing.util.io.IOUtils;
 import com.ning.billing.util.tag.MockTagStoreModuleSql;
 import com.ning.billing.util.tag.TagDefinition;
 import com.ning.billing.util.tag.TestTagStore;
diff --git a/util/src/test/java/com/ning/billing/util/tag/TestTagStore.java b/util/src/test/java/com/ning/billing/util/tag/TestTagStore.java
index 69187ae..a5016a7 100644
--- a/util/src/test/java/com/ning/billing/util/tag/TestTagStore.java
+++ b/util/src/test/java/com/ning/billing/util/tag/TestTagStore.java
@@ -22,7 +22,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
-import org.apache.commons.io.IOUtils;
 import org.joda.time.DateTime;
 import org.joda.time.Seconds;
 import org.skife.jdbi.v2.Handle;
@@ -46,6 +45,7 @@ import com.ning.billing.util.callcontext.DefaultCallContextFactory;
 import com.ning.billing.util.callcontext.UserType;
 import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.dao.ObjectType;
+import com.ning.billing.util.io.IOUtils;
 import com.ning.billing.util.tag.dao.TagDao;
 import com.ning.billing.util.tag.dao.TagDefinitionDao;
 
diff --git a/util/src/test/java/com/ning/billing/util/validation/TestValidationManager.java b/util/src/test/java/com/ning/billing/util/validation/TestValidationManager.java
index e343986..204abdb 100644
--- a/util/src/test/java/com/ning/billing/util/validation/TestValidationManager.java
+++ b/util/src/test/java/com/ning/billing/util/validation/TestValidationManager.java
@@ -19,7 +19,6 @@ package com.ning.billing.util.validation;
 import java.io.IOException;
 import java.util.Collection;
 
-import org.apache.commons.io.IOUtils;
 import org.joda.time.DateTime;
 import org.skife.jdbi.v2.IDBI;
 import org.testng.annotations.AfterClass;
@@ -28,6 +27,7 @@ import org.testng.annotations.Test;
 
 import com.ning.billing.dbi.MysqlTestingHelper;
 import com.ning.billing.util.globallocker.TestMysqlGlobalLocker;
+import com.ning.billing.util.io.IOUtils;
 import com.ning.billing.util.validation.dao.DatabaseSchemaDao;
 
 import static org.testng.Assert.assertEquals;