Example usage for org.apache.shiro.spring.remoting SecureRemoteInvocationExecutor SecureRemoteInvocationExecutor

List of usage examples for org.apache.shiro.spring.remoting SecureRemoteInvocationExecutor SecureRemoteInvocationExecutor

Introduction

In this page you can find the example usage for org.apache.shiro.spring.remoting SecureRemoteInvocationExecutor SecureRemoteInvocationExecutor.

Prototype

SecureRemoteInvocationExecutor

Source Link

Usage

From source file:de.scoopgmbh.copper.monitoring.example.MonitoringExampleMain.java

License:Apache License

public MonitoringExampleMain start(String[] args) {
    boolean unsecure = Boolean.getBoolean("unsecureCopperMonitoring");
    LogManager.getRootLogger().setLevel(Level.INFO);
    System.out.println("Copper monitoring using " + (unsecure ? "un" : "") + "secure remote invocation.");

    FileBasedWorkflowRepository wfRepository = new FileBasedWorkflowRepository();
    wfRepository.setTargetDir("build/classes/test");

    System.out.println(new File(".").getAbsolutePath());
    File srcDir = new File("src/main/java"); //eclipse
    if (!srcDir.exists()) {
        srcDir = new File("./projects/copper-monitoring/copper-monitoring-example/src/main/java");//idea
    }//from  w  w w  . j  a va  2 s . co m
    System.out.println(srcDir.getAbsolutePath());
    wfRepository.setSourceDirs(Arrays.asList(srcDir.getAbsolutePath()));
    wfRepository.start();
    //wfRepository.shutdown

    LoggingStatisticCollector runtimeStatisticsCollector = new LoggingStatisticCollector();
    runtimeStatisticsCollector.start();
    //statisticsCollector.shutdown();

    DatabaseData databaseData = setupDerbyDatabase(wfRepository, runtimeStatisticsCollector);
    //      DatabaseData databaseData = setupOracleDatabase(wfRepository,runtimeStatisticsCollector);

    BatcherImpl batcher = new BatcherImpl(3);
    batcher.setStatisticsCollector(runtimeStatisticsCollector);

    @SuppressWarnings("rawtypes")
    RetryingTxnBatchRunner batchRunner = new RetryingTxnBatchRunner();
    batchRunner.setDataSource(databaseData.dataSource);
    batcher.setBatchRunner(batchRunner);
    batcher.startup();
    //batcherImpl.shutdown();

    CopperTransactionController txnController = new CopperTransactionController();
    txnController.setDataSource(databaseData.dataSource);

    ScottyDBStorage persistentdbStorage = new ScottyDBStorage();
    persistentdbStorage.setTransactionController(txnController);
    persistentdbStorage.setDialect(databaseData.databaseDialect);
    persistentdbStorage.setBatcher(batcher);
    persistentdbStorage.setCheckDbConsistencyAtStartup(true);

    PersistentPriorityProcessorPool persistentPriorityProcessorPool = new PersistentPriorityProcessorPool(
            PersistentProcessorPool.DEFAULT_POOL_ID, txnController);

    PersistentScottyEngine persistentengine = new PersistentScottyEngine();
    persistentengine.setIdFactory(new JdkRandomUUIDFactory());
    persistentengine.setDbStorage(persistentdbStorage);
    persistentengine.setWfRepository(wfRepository);
    persistentengine.setEngineIdProvider(ENGINE_ID_PROVIDER);
    persistentengine.setStatisticsCollector(runtimeStatisticsCollector);

    DefaultProcessorPoolManager<PersistentPriorityProcessorPool> defaultProcessorPoolManager = new DefaultProcessorPoolManager<PersistentPriorityProcessorPool>();
    defaultProcessorPoolManager.setProcessorPools(Arrays.asList(persistentPriorityProcessorPool));
    defaultProcessorPoolManager.setEngine(persistentengine);

    persistentengine.setProcessorPoolManager(defaultProcessorPoolManager);
    //persistentengine.shutdown();

    BatchingAuditTrail auditTrail = new BatchingAuditTrail();
    auditTrail.setBatcher(batcher);
    auditTrail.setDataSource(databaseData.dataSource);
    auditTrail.setMessagePostProcessor(new CompressedBase64PostProcessor());
    try {
        auditTrail.startup();
    } catch (Exception e) {
        throw new RuntimeException(e);
    }

    PojoDependencyInjector dependyInjector = new PojoDependencyInjector();
    MonitoringDataStorage monitoringDataStorage;
    try {
        monitoringDataStorage = new MonitoringDataStorage(File.createTempFile("test", ".tmp").getParentFile(),
                "copperMonitorLog");
    } catch (IOException e1) {
        throw new RuntimeException(e1);
    }
    final MonitoringDataAccessQueue monitoringQueue = new MonitoringDataAccessQueue(
            new MonitoringDataAccesor(monitoringDataStorage), new MonitoringDataAdder(monitoringDataStorage));

    final MonitoringDataCollector monitoringDataCollector = new MonitoringDataCollector(monitoringQueue);
    MonitoringDependencyInjector monitoringDependencyInjector = new MonitoringDependencyInjector(
            dependyInjector, monitoringDataCollector);
    BillAdapterImpl billAdapterImpl = new BillAdapterImpl(monitoringDataCollector);
    billAdapterImpl.initWithEngine(
            new MonitoringAdapterProcessingEngine(billAdapterImpl, persistentengine, monitoringDataCollector));
    dependyInjector.register("billAdapter", billAdapterImpl);
    dependyInjector.register("auditTrail", auditTrail);

    persistentengine.setDependencyInjector(monitoringDependencyInjector);
    persistentengine.startup();

    try {
        persistentengine.run("BillWorkflow", "");
    } catch (CopperException e) {
        throw new RuntimeException(e);
    }

    List<ProcessingEngineMXBean> engines = new ArrayList<ProcessingEngineMXBean>();
    engines.add(persistentengine);

    WorkflowInstanceIntrospector introspector = new WorkflowInstanceIntrospector(persistentdbStorage,
            wfRepository);

    final MonitoringLogbackDataProvider monitoringLogbackDataProvider = new MonitoringLogbackDataProvider(
            monitoringDataCollector);
    final MonitoringDataProviderManager monitoringDataProviderManager = new MonitoringDataProviderManager(
            new SystemRessourceDataProvider(monitoringDataCollector), monitoringLogbackDataProvider,
            new GcDataProvider(monitoringDataCollector));
    monitoringDataProviderManager.startAll();
    CopperMonitoringService copperMonitoringService = new DefaultCopperMonitoringService(
            new MonitoringDbStorage(txnController,
                    new DerbyMonitoringDbDialect(new StandardJavaSerializer(),
                            new CompressedBase64PostProcessor(), auditTrail)),
            runtimeStatisticsCollector, engines, monitoringQueue, true, introspector,
            new LogbackConfigManager(monitoringLogbackDataProvider), monitoringDataProviderManager);

    String host = (args.length > 0) ? args[0] : "localhost";
    int port = (args.length > 1) ? Integer.parseInt(args[1]) : 8080;

    CopperMonitoringService monitoringService;
    LoginService loginService;
    RemoteInvocationExecutor remoteInvocationExecutor;
    if (unsecure) {
        monitoringService = CopperMonitorServiceDefaultProxy.getServiceProxy(copperMonitoringService);
        loginService = new DefaultLoginService();
        remoteInvocationExecutor = new DefaultRemoteInvocationExecutor();
    } else {
        monitoringService = CopperMonitorServiceSecurityProxy.secure(copperMonitoringService);
        final SimpleAccountRealm realm = new SimpleAccountRealm();
        realm.addAccount("user1", "pass1");
        loginService = new SecureLoginService(realm);
        remoteInvocationExecutor = new SecureRemoteInvocationExecutor();
    }
    SpringRemotingServer springRemotingServer = new SpringRemotingServer(monitoringService, port, host,
            loginService);
    springRemotingServer.setRemoteInvocationExecutor(remoteInvocationExecutor);
    springRemotingServer.start();

    return this;
}

From source file:org.copperengine.monitoring.example.ApplicationContext.java

License:Apache License

public SpringRemotingServer createServer(String host, int port, boolean unsecure) {
    createCopperCore();//from  w ww .  j a  va2 s  .c  om
    createMonitoring();

    CopperMonitoringService copperMonitoringService = new DefaultCopperMonitoringService(
            new MonitoringDbStorage(txnController, getMonitoringDbDialect()), loggingStatisticsCollector,
            Arrays.<ProcessingEngineMXBean>asList(persistentengine), monitoringQueue, true,
            workflowInstanceIntrospector, new LogbackConfigManager(monitoringLogbackDataProvider),
            monitoringDataProviderManager);

    CopperMonitoringService monitoringService;
    LoginService loginService;
    RemoteInvocationExecutor remoteInvocationExecutor;
    if (unsecure) {
        monitoringService = CopperMonitorServiceDefaultProxy.getServiceProxy(copperMonitoringService);
        loginService = new DefaultLoginService();
        remoteInvocationExecutor = new DefaultRemoteInvocationExecutor();
    } else {
        monitoringService = CopperMonitorServiceSecurityProxy.secure(copperMonitoringService);
        final SimpleAccountRealm realm = new SimpleAccountRealm();
        realm.addAccount("user1", "pass1");
        loginService = new SecureLoginService(realm);
        remoteInvocationExecutor = new SecureRemoteInvocationExecutor();
    }
    SpringRemotingServer springRemotingServer = new SpringRemotingServer(monitoringService, port, host,
            loginService);
    springRemotingServer.setRemoteInvocationExecutor(remoteInvocationExecutor);
    return springRemotingServer;
}