Search in sources :

Example 1 with DefaultClusterPeerFactory

use of com.bluenimble.platform.cluster.impls.DefaultClusterPeerFactory in project serverless by bluenimble.

the class FileSystemApiServer method start.

@Override
public void start() throws ServerStartupException {
    long startTime = System.currentTimeMillis();
    // check under tenant
    File keysFile = null;
    if (tenantHome != null) {
        keysFile = new File(tenantHome, ConfigKeys.RootKeysFile);
    }
    if (keysFile == null || !keysFile.isFile() || !keysFile.exists()) {
        // check under the runtime home
        keysFile = new File(runtimeHome, ConfigKeys.RootKeysFile);
    }
    if (!keysFile.exists()) {
        // check under the install home
        keysFile = new File(installHome, ConfigKeys.RootKeysFile);
    }
    ClassLoader bluenimbleClassLoader = FileSystemApiServer.class.getClassLoader();
    try {
        boolean rootKeysEncrypted = Json.getBoolean(descriptor, ConfigKeys.RootKeysEncrypted, true);
        // exit if not found
        if (!keysFile.exists()) {
            // create
            keys = JsonKeyPair.create();
            ((JsonKeyPair) keys).store(new File(installHome, ConfigKeys.RootKeysFile), rootKeysEncrypted);
        }
        setup();
        if (keys == null) {
            keys = new JsonKeyPair(keysFile, rootKeysEncrypted);
        }
        Runtime.getRuntime().addShutdownHook(new Thread() {

            @Override
            public void run() {
                FileSystemApiServer.this.stop();
            }
        });
        // messages
        File mFile = new File(installHome, ConfigKeys.DefaultMessages);
        if (mFile.exists()) {
            messages.putAll(Json.load(mFile));
        }
        pluginsRegistry = (PluginsRegistry) BeanUtils.create(bluenimbleClassLoader, Json.getObject(descriptor, ConfigKeys.PluginsRegistry));
        pluginsRegistry.init(this, new File(installHome, ConfigKeys.Folders.Plugins));
        // init tracer
        JsonObject oTracer = Json.getObject(descriptor, ConfigKeys.Tracer);
        if (!Json.isNullOrEmpty(oTracer)) {
            tracer = (Tracer) BeanUtils.create(bluenimbleClassLoader, oTracer, pluginsRegistry);
        }
        if (tracer != null) {
            tracer.onInstall(this);
        } else {
            tracer = NoTracing.Instance;
        }
        tracer.log(Tracer.Level.Info, "Instance Config:\n{0}", descriptor);
        mapProvider = (MapProvider) BeanUtils.create(bluenimbleClassLoader, Json.getObject(descriptor, ConfigKeys.MapProvider), pluginsRegistry);
        if (mapProvider == null) {
            mapProvider = new DefaultMapProvider();
        }
        ClusterPeerFactory clusterPeerFactory = (ClusterPeerFactory) BeanUtils.create(bluenimbleClassLoader, Json.getObject(descriptor, ConfigKeys.ClusterPeerFactory), pluginsRegistry);
        if (clusterPeerFactory == null) {
            clusterPeerFactory = new DefaultClusterPeerFactory();
        }
        peer = clusterPeerFactory.create();
        interceptor = (ApiInterceptor) BeanUtils.create(bluenimbleClassLoader, Json.getObject(descriptor, ConfigKeys.Interceptor), pluginsRegistry);
        if (interceptor == null) {
            interceptor = new DefaultApiInterceptor();
        }
        interceptor.init(this);
        serviceValidator = (ApiServiceValidator) BeanUtils.create(bluenimbleClassLoader, Json.getObject(descriptor, ConfigKeys.ServiceValidator), pluginsRegistry);
        if (serviceValidator == null) {
            serviceValidator = new DefaultApiServiceValidator();
        }
        requestSigner = (ApiRequestSigner) BeanUtils.create(bluenimbleClassLoader, Json.getObject(descriptor, ConfigKeys.RequestSigner), pluginsRegistry);
        if (requestSigner == null) {
            requestSigner = new DefaultApiRequestSigner();
        }
        requestVisitor = (ApiRequestVisitor) BeanUtils.create(bluenimbleClassLoader, Json.getObject(descriptor, ConfigKeys.RequestVisitor), pluginsRegistry);
        if (requestVisitor == null) {
            requestVisitor = new DefaultApiRequestVisitor();
        }
        pluginsRegistry.start();
    } catch (Throwable th) {
        throw new ServerStartupException(th.getMessage(), th);
    }
    installSpaces();
    if (keyStoreManager != null) {
        keyStoreManager.start();
    }
    tracer.log(Tracer.Level.Info, "Instance started @ {0} - in {1} Millis", new Date(), String.valueOf(System.currentTimeMillis() - startTime));
    tracer.log(Tracer.Level.Info, "With Root Keys   {0}  [{1}]", keys.accessKey(), keys.expiryDate() == null ? "Never Expires" : Lang.toString(keys.expiryDate(), Lang.DEFAULT_DATE_FORMAT));
    if (!failed.isEmpty()) {
        Iterator<String> names = failed.keySet().iterator();
        while (names.hasNext()) {
            String name = names.next();
            printFailed(name, failed.get(name));
        }
    }
    // clear failed exceptions
    failed.clear();
}
Also used : JsonObject(com.bluenimble.platform.json.JsonObject) DefaultApiRequestVisitor(com.bluenimble.platform.server.impls.DefaultApiRequestVisitor) Date(java.util.Date) DefaultClusterPeerFactory(com.bluenimble.platform.cluster.impls.DefaultClusterPeerFactory) DefaultApiServiceValidator(com.bluenimble.platform.validation.impls.DefaultApiServiceValidator) JsonKeyPair(com.bluenimble.platform.security.impls.JsonKeyPair) ClusterPeerFactory(com.bluenimble.platform.cluster.ClusterPeerFactory) DefaultClusterPeerFactory(com.bluenimble.platform.cluster.impls.DefaultClusterPeerFactory) ServerStartupException(com.bluenimble.platform.server.ServerStartupException) DefaultMapProvider(com.bluenimble.platform.server.maps.impls.DefaultMapProvider) DefaultApiInterceptor(com.bluenimble.platform.server.interceptor.impls.DefaultApiInterceptor) DefaultApiRequestSigner(com.bluenimble.platform.server.security.impls.DefaultApiRequestSigner) File(java.io.File)

Aggregations

ClusterPeerFactory (com.bluenimble.platform.cluster.ClusterPeerFactory)1 DefaultClusterPeerFactory (com.bluenimble.platform.cluster.impls.DefaultClusterPeerFactory)1 JsonObject (com.bluenimble.platform.json.JsonObject)1 JsonKeyPair (com.bluenimble.platform.security.impls.JsonKeyPair)1 ServerStartupException (com.bluenimble.platform.server.ServerStartupException)1 DefaultApiRequestVisitor (com.bluenimble.platform.server.impls.DefaultApiRequestVisitor)1 DefaultApiInterceptor (com.bluenimble.platform.server.interceptor.impls.DefaultApiInterceptor)1 DefaultMapProvider (com.bluenimble.platform.server.maps.impls.DefaultMapProvider)1 DefaultApiRequestSigner (com.bluenimble.platform.server.security.impls.DefaultApiRequestSigner)1 DefaultApiServiceValidator (com.bluenimble.platform.validation.impls.DefaultApiServiceValidator)1 File (java.io.File)1 Date (java.util.Date)1