Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2010-2013 Ning, Inc.
   * Copyright 2014 Groupon, Inc
   * Copyright 2014 The Billing Project, LLC
   *
   * The Billing Project 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.killbill.billing.platform.test;
 
 
 
 
 
 public class PlatformDBTestingHelper {
 
     private static final Logger log = LoggerFactory.getLogger(PlatformDBTestingHelper.class);
     private static final String TEST_DATA_SOURCE_ID = "test";
 
     protected EmbeddedDB instance;
 
     private static PlatformDBTestingHelper dbTestingHelper = null;
 
     public static synchronized PlatformDBTestingHelper get() {
         if ( == null) {
              = new PlatformDBTestingHelper();
         }
         return ;
     }
 
     protected PlatformDBTestingHelper() {
         if ("true".equals(System.getProperty("org.killbill.billing.dbi.test.h2"))) {
             .info("Using h2 as the embedded database");
              = new H2EmbeddedDB();
         } else {
             if (isUsingLocalInstance()) {
                 .info("Using MySQL local database");
                 final String databaseName = System.getProperty("org.killbill.billing.dbi.test.localDb.database""killbill");
                 final String username = System.getProperty("org.killbill.billing.dbi.test.localDb.password""root");
                 final String password = System.getProperty("org.killbill.billing.dbi.test.localDb.username""root");
                  = new MySQLStandaloneDB(databaseNameusernamepassword);
             } else {
                 .info("Using MySQL as the embedded database");
                  = new MySQLEmbeddedDB();
             }
         }
     }
 
     public EmbeddedDB getInstance() {
         return ;
     }
 
     public synchronized IDBI getDBI() throws IOException {
 
         final DataSource dataSource = getDataSource();
         return new DBIProvider(nulldataSourcenull).get();
     }
 
     public DataSource getDataSource() throws IOException {
         final DataSource realDataSource = .getDataSource();
         return new ReferenceableDataSourceSpy(realDataSource);
     }
 
     public synchronized void start() throws IOException {
         .initialize();
         .start();
 
         if (isUsingLocalInstance()) {
             return;
         }
 
         executePostStartupScripts();
 
        .refreshTableNames();
    }
    protected synchronized void executePostStartupScripts() throws IOException {
        final String ddl = streamToString(Resources.getResource("org/killbill/billing/beatrix/ddl.sql").openStream());
        .executeScript(ddl);
    }
    protected String streamToString(final InputStream inputStreamthrows IOException {
        final InputSupplier<InputStreaminputSupplier = new InputSupplier<InputStream>() {
            @Override
            public InputStream getInput() throws IOException {
                return inputStream;
            }
        };
        return CharStreams.toString(CharStreams.newReaderSupplier(inputSupplier.));
    }
    private boolean isUsingLocalInstance() {
        return (System.getProperty("org.killbill.billing.dbi.test.useLocalDb") != null);
    }
New to GrepCode? Check out our FAQ X