// Path: bitcoin-neo4j/project-back-end/src/main/java/com/oakinvest/b2g/util/providers/RepositoriesProvider.java
// @SuppressWarnings("unused")
// @Component
// public class RepositoriesProvider {
// 
//     /**
//      * Bitcoin address repository.
//      */
//     private final AddressRepository addressRepository;
// 
//     /**
//      * Bitcoin block repository.
//      */
//     private final BlockRepository blockRepository;
// 
//     /**
//      * Bitcoin transaction repository.
//      */
//     private final TransactionRepository bitcoinTransactionRepository;
// 
//     /**
//      * Bitcoin transaction input repository.
//      */
//     private final TransactionInputRepository bitcoinTransactionInputRepository;
// 
//     /**
//      * Bitcoin transaction output repository.
//      */
//     private final TransactionOutputRepository bitcoinTransactionOutputRepository;
// 
//     /**
//      * Constructor.
//      * @param newAddressRepository Bitcoin address repository
//      * @param newBlockRepository Bitcoin block repository
//      * @param newBitcoinTransactionRepository Bitcoin transaction repository
//      * @param newBitcoinTransactionInputRepository Bitcoin transaction input repository
//      * @param newBitcoinTransactionOutputRepository Bitcoin transaction output repository
//      */
//     public RepositoriesProvider(final AddressRepository newAddressRepository, final BlockRepository newBlockRepository, final TransactionRepository newBitcoinTransactionRepository, final TransactionInputRepository newBitcoinTransactionInputRepository, final TransactionOutputRepository newBitcoinTransactionOutputRepository) {
//         this.addressRepository = newAddressRepository;
//         this.blockRepository = newBlockRepository;
//         this.bitcoinTransactionRepository = newBitcoinTransactionRepository;
//         this.bitcoinTransactionInputRepository = newBitcoinTransactionInputRepository;
//         this.bitcoinTransactionOutputRepository = newBitcoinTransactionOutputRepository;
//     }
// 
//     /**
//      * Getter.
//      * @return bitcoin address repository
//      */
//     public final AddressRepository getAddressRepository() {
//         return addressRepository;
//     }
// 
//     /**
//      * Getter.
//      * @return bitcoin block repository
//      */
//     public final BlockRepository getBlockRepository() {
//         return blockRepository;
//     }
// 
//     /**
//      * Getter.
//      * @return bitcoin transaction repository
//      */
//     public final TransactionRepository getBitcoinTransactionRepository() {
//         return bitcoinTransactionRepository;
//     }
// 
//     /**
//      * Getter.
//      * @return bitcoin transaction input repository
//      */
//     public final TransactionInputRepository getBitcoinTransactionInputRepository() {
//         return bitcoinTransactionInputRepository;
//     }
// 
//     /**
//      * Getter.
//      * @return Bitcoin transaction output repository
//      */
//     public final TransactionOutputRepository getBitcoinTransactionOutputRepository() {
//         return bitcoinTransactionOutputRepository;
//     }
// 
// }


import com.oakinvest.b2g.util.providers.RepositoriesProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Component;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
package com.oakinvest.b2g.util.benchmark;



/**
 * Benchmark Launcher.
 *
 * @author straumat
 */
@Component
public class BenchmarkLauncher implements Runnable {

    /**
     * Logger.
     */
    private final Logger log = LoggerFactory.getLogger(BenchmarkLauncher.class);

    /**
     * Mail server host.
     */
    private static final String SPRING_MAIL_HOST_PARAMETER = "SPRING_MAIL_HOST";

    /**
     * Mail server port.
     */
    private static final String SPRING_MAIL_PORT_PARAMETER = "SPRING_MAIL_PORT";

    /**
     * Mail server username.
     */
    private static final String SPRING_MAIL_USERNAME_PARAMETER = "SPRING_MAIL_USERNAME";

    /**
     * Mail server password.
     */
    private static final String SPRING_MAIL_PASSWORD_PARAMETER = "SPRING_MAIL_PASSWORD";

    /**
     * Build number from continuous integration.
     */
    private static final String BUILD_NUMBER_PARAMETER = "BUILD_NUMBER";

    /**
     * BenchmarkLauncher duration (1 day).
     */
    private static final long BENCHMARK_DURATION = TimeUnit.DAYS.toMillis(1);

    /**
     * Repositories.
     */
    private final RepositoriesProvider repositories;

    /**
     * Application context.
     */
    private final ApplicationContext context;

    /**
     * Constructor.
     *
     * @param newRepositoriesProvider repositories provider.
     * @param newContext              context.
     */
// Path: bitcoin-neo4j/project-back-end/src/main/java/com/oakinvest/b2g/util/providers/RepositoriesProvider.java
// @SuppressWarnings("unused")
// @Component
// public class RepositoriesProvider {
// 
//     /**
//      * Bitcoin address repository.
//      */
//     private final AddressRepository addressRepository;
// 
//     /**
//      * Bitcoin block repository.
//      */
//     private final BlockRepository blockRepository;
// 
//     /**
//      * Bitcoin transaction repository.
//      */
//     private final TransactionRepository bitcoinTransactionRepository;
// 
//     /**
//      * Bitcoin transaction input repository.
//      */
//     private final TransactionInputRepository bitcoinTransactionInputRepository;
// 
//     /**
//      * Bitcoin transaction output repository.
//      */
//     private final TransactionOutputRepository bitcoinTransactionOutputRepository;
// 
//     /**
//      * Constructor.
//      * @param newAddressRepository Bitcoin address repository
//      * @param newBlockRepository Bitcoin block repository
//      * @param newBitcoinTransactionRepository Bitcoin transaction repository
//      * @param newBitcoinTransactionInputRepository Bitcoin transaction input repository
//      * @param newBitcoinTransactionOutputRepository Bitcoin transaction output repository
//      */
//     public RepositoriesProvider(final AddressRepository newAddressRepository, final BlockRepository newBlockRepository, final TransactionRepository newBitcoinTransactionRepository, final TransactionInputRepository newBitcoinTransactionInputRepository, final TransactionOutputRepository newBitcoinTransactionOutputRepository) {
//         this.addressRepository = newAddressRepository;
//         this.blockRepository = newBlockRepository;
//         this.bitcoinTransactionRepository = newBitcoinTransactionRepository;
//         this.bitcoinTransactionInputRepository = newBitcoinTransactionInputRepository;
//         this.bitcoinTransactionOutputRepository = newBitcoinTransactionOutputRepository;
//     }
// 
//     /**
//      * Getter.
//      * @return bitcoin address repository
//      */
//     public final AddressRepository getAddressRepository() {
//         return addressRepository;
//     }
// 
//     /**
//      * Getter.
//      * @return bitcoin block repository
//      */
//     public final BlockRepository getBlockRepository() {
//         return blockRepository;
//     }
// 
//     /**
//      * Getter.
//      * @return bitcoin transaction repository
//      */
//     public final TransactionRepository getBitcoinTransactionRepository() {
//         return bitcoinTransactionRepository;
//     }
// 
//     /**
//      * Getter.
//      * @return bitcoin transaction input repository
//      */
//     public final TransactionInputRepository getBitcoinTransactionInputRepository() {
//         return bitcoinTransactionInputRepository;
//     }
// 
//     /**
//      * Getter.
//      * @return Bitcoin transaction output repository
//      */
//     public final TransactionOutputRepository getBitcoinTransactionOutputRepository() {
//         return bitcoinTransactionOutputRepository;
//     }
// 
// }


// Path: bitcoin-neo4j/project-back-end/src/main/java/com/oakinvest/b2g/util/benchmark/BenchmarkLauncher.java
import com.oakinvest.b2g.util.providers.RepositoriesProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Component;
import java.util.Properties;
import java.util.concurrent.TimeUnit;

package com.oakinvest.b2g.util.benchmark;



/**
 * Benchmark Launcher.
 *
 * @author straumat
 */
@Component
public class BenchmarkLauncher implements Runnable {

    /**
     * Logger.
     */
    private final Logger log = LoggerFactory.getLogger(BenchmarkLauncher.class);

    /**
     * Mail server host.
     */
    private static final String SPRING_MAIL_HOST_PARAMETER = "SPRING_MAIL_HOST";

    /**
     * Mail server port.
     */
    private static final String SPRING_MAIL_PORT_PARAMETER = "SPRING_MAIL_PORT";

    /**
     * Mail server username.
     */
    private static final String SPRING_MAIL_USERNAME_PARAMETER = "SPRING_MAIL_USERNAME";

    /**
     * Mail server password.
     */
    private static final String SPRING_MAIL_PASSWORD_PARAMETER = "SPRING_MAIL_PASSWORD";

    /**
     * Build number from continuous integration.
     */
    private static final String BUILD_NUMBER_PARAMETER = "BUILD_NUMBER";

    /**
     * BenchmarkLauncher duration (1 day).
     */
    private static final long BENCHMARK_DURATION = TimeUnit.DAYS.toMillis(1);

    /**
     * Repositories.
     */
    private final RepositoriesProvider repositories;

    /**
     * Application context.
     */
    private final ApplicationContext context;

    /**
     * Constructor.
     *
     * @param newRepositoriesProvider repositories provider.
     * @param newContext              context.
     */
    public BenchmarkLauncher(final RepositoriesProvider newRepositoriesProvider, final ApplicationContext newContext) {