Search in sources :

Example 1 with ResourceChangePublisher

use of org.jboss.tools.openshift.internal.core.server.resources.ResourceChangePublisher in project jbosstools-openshift by jbosstools.

the class OpenShiftCoreActivator method start.

@Override
public void start(BundleContext context) throws Exception {
    super.start(context);
    registerDebugOptionsListener(PLUGIN_ID, new Trace(this), context);
    Collection<Connection> connections = new ConnectionPersistency().load();
    ConnectionsRegistrySingleton.getInstance().addAll(connections);
    ConnectionsRegistrySingleton.getInstance().addListener(new ConnectionsRegistryAdapter() {

        // @TODO I think we need to handle the cleanup case where a connection
        // username changes since username is what makes up part of the
        // the key that is saved which seems to apply to secure values
        // and preference values
        @Override
        public void connectionRemoved(IConnection connection) {
            if (!(connection instanceof Connection)) {
                return;
            }
            ((Connection) connection).removeSecureStoreData();
            ConnectionURL url = ConnectionURL.safeForConnection(connection);
            if (url != null) {
                OpenShiftCorePreferences.INSTANCE.removeAuthScheme(url.toString());
            }
            saveAllConnections();
        }

        @Override
        public void connectionAdded(IConnection connection) {
            if (connection instanceof Connection) {
                saveAllConnections();
            }
        }

        @Override
        public void connectionChanged(IConnection connection, String property, Object oldValue, Object newValue) {
            if (connection instanceof Connection && (oldValue instanceof Connection || newValue instanceof Connection)) {
                saveAllConnections();
            }
        }
    });
    ServerCore.addServerLifecycleListener(getServerListener());
    // A clone of the auto-publish thread implementation
    resourceChangeListener = new ResourceChangePublisher();
    ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_BUILD | IResourceChangeEvent.PRE_CLOSE | IResourceChangeEvent.PRE_DELETE);
}
Also used : Connection(org.jboss.tools.openshift.core.connection.Connection) IConnection(org.jboss.tools.openshift.common.core.connection.IConnection) ConnectionURL(org.jboss.tools.openshift.common.core.connection.ConnectionURL) ConnectionPersistency(org.jboss.tools.openshift.core.connection.ConnectionPersistency) IConnection(org.jboss.tools.openshift.common.core.connection.IConnection) ConnectionsRegistryAdapter(org.jboss.tools.openshift.common.core.connection.ConnectionsRegistryAdapter) ResourceChangePublisher(org.jboss.tools.openshift.internal.core.server.resources.ResourceChangePublisher)

Aggregations

ConnectionURL (org.jboss.tools.openshift.common.core.connection.ConnectionURL)1 ConnectionsRegistryAdapter (org.jboss.tools.openshift.common.core.connection.ConnectionsRegistryAdapter)1 IConnection (org.jboss.tools.openshift.common.core.connection.IConnection)1 Connection (org.jboss.tools.openshift.core.connection.Connection)1 ConnectionPersistency (org.jboss.tools.openshift.core.connection.ConnectionPersistency)1 ResourceChangePublisher (org.jboss.tools.openshift.internal.core.server.resources.ResourceChangePublisher)1