All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.rhq.bindings.client.RhqManagers Maven / Gradle / Ivy

Go to download

Abstraction of different facilities and default configurations for script bindings

The newest version!
package org.rhq.bindings.client;

import org.rhq.enterprise.server.alert.AlertDefinitionManagerRemote;
import org.rhq.enterprise.server.alert.AlertManagerRemote;
import org.rhq.enterprise.server.auth.SubjectManagerRemote;
import org.rhq.enterprise.server.authz.RoleManagerRemote;
import org.rhq.enterprise.server.bundle.BundleManagerRemote;
import org.rhq.enterprise.server.cloud.StorageNodeManagerRemote;
import org.rhq.enterprise.server.configuration.ConfigurationManagerRemote;
import org.rhq.enterprise.server.content.ContentManagerRemote;
import org.rhq.enterprise.server.content.RepoManagerRemote;
import org.rhq.enterprise.server.discovery.DiscoveryBossRemote;
import org.rhq.enterprise.server.drift.DriftManagerRemote;
import org.rhq.enterprise.server.drift.DriftTemplateManagerRemote;
import org.rhq.enterprise.server.event.EventManagerRemote;
import org.rhq.enterprise.server.install.remote.RemoteInstallManagerRemote;
import org.rhq.enterprise.server.measurement.AvailabilityManagerRemote;
import org.rhq.enterprise.server.measurement.CallTimeDataManagerRemote;
import org.rhq.enterprise.server.measurement.MeasurementBaselineManagerRemote;
import org.rhq.enterprise.server.measurement.MeasurementDataManagerRemote;
import org.rhq.enterprise.server.measurement.MeasurementDefinitionManagerRemote;
import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerRemote;
import org.rhq.enterprise.server.operation.OperationManagerRemote;
import org.rhq.enterprise.server.report.DataAccessManagerRemote;
import org.rhq.enterprise.server.resource.ResourceFactoryManagerRemote;
import org.rhq.enterprise.server.resource.ResourceManagerRemote;
import org.rhq.enterprise.server.resource.ResourceTypeManagerRemote;
import org.rhq.enterprise.server.resource.group.ResourceGroupManagerRemote;
import org.rhq.enterprise.server.resource.group.definition.GroupDefinitionManagerRemote;
import org.rhq.enterprise.server.search.SavedSearchManagerRemote;
import org.rhq.enterprise.server.support.SupportManagerRemote;
import org.rhq.enterprise.server.sync.SynchronizationManagerRemote;
import org.rhq.enterprise.server.system.SystemManagerRemote;
import org.rhq.enterprise.server.tagging.TagManagerRemote;

/**
 * @author Lukas Krejci
 *
 * @deprecated since 4.10 do not use this. Use {@link RhqManager} instead.
 */
@Deprecated
public enum RhqManagers {
    AlertManager(AlertManagerRemote.class, "${AlertManager}"), //
    AlertDefinitionManager(AlertDefinitionManagerRemote.class, "${AlertDefinitionManager}"), //
    AvailabilityManager(AvailabilityManagerRemote.class, "${AvailabilityManager}"), //
    BundleManager(BundleManagerRemote.class, "${BundleManager}"), //
    CallTimeDataManager(CallTimeDataManagerRemote.class, "${CallTimeDataManager}"), //
    RepoManager(RepoManagerRemote.class, "${RepoManager}"), //
    ConfigurationManager(ConfigurationManagerRemote.class, "${ConfigurationManager}"), //
    ContentManager(ContentManagerRemote.class, "${ContentManager}"), //
    DataAccessManager(DataAccessManagerRemote.class, "${DataAccessManager}"), //
    DriftManager(DriftManagerRemote.class, "${DriftManager}"), //
    DriftTemplateManager(DriftTemplateManagerRemote.class, "${DriftTemplateManager}"), //
    DiscoveryBoss(DiscoveryBossRemote.class, "${DiscoveryBoss}"), //
    EventManager(EventManagerRemote.class, "${EventManager}"), //
    GroupDefinitionManager(GroupDefinitionManagerRemote.class, "${GroupDefinitionManager}"), //
    MeasurementBaselineManager(MeasurementBaselineManagerRemote.class, "${MeasurementBaselineManager}"), //
    MeasurementDataManager(MeasurementDataManagerRemote.class, "${MeasurementDataManager}"), //
    MeasurementDefinitionManager(MeasurementDefinitionManagerRemote.class, "${MeasurementDefinitionManager}"), //
    MeasurementScheduleManager(MeasurementScheduleManagerRemote.class, "${MeasurementScheduleManager}"), //
    OperationManager(OperationManagerRemote.class, "${OperationManager}"), //
    ResourceManager(ResourceManagerRemote.class, "${ResourceManager}"), //
    ResourceFactoryManager(ResourceFactoryManagerRemote.class, "${ResourceFactoryManager}"), //
    ResourceGroupManager(ResourceGroupManagerRemote.class, "${ResourceGroupManager}"), //
    ResourceTypeManager(ResourceTypeManagerRemote.class, "${ResourceTypeManager}"), //
    RoleManager(RoleManagerRemote.class, "${RoleManager}"), //
    SavedSearchManager(SavedSearchManagerRemote.class, "${SavedSearchManager}"), //
    StorageNodeManager(StorageNodeManagerRemote.class, "${StorageNodeManager}"), //
    SubjectManager(SubjectManagerRemote.class, "${SubjectManager}"), //
    SupportManager(SupportManagerRemote.class, "${SupportManager}"), //
    SystemManager(SystemManagerRemote.class, "${SystemManager}"), //
    RemoteInstallManager(RemoteInstallManagerRemote.class, "${RemoteInstallManager}"), //
    TagManager(TagManagerRemote.class, "${TagManager}"), //
    SynchronizationManager(SynchronizationManagerRemote.class, "${SynchronizationManager}");

    private Class remote;
    private String localInterfaceClassName;
    private String beanName;
    private boolean enabled;


    private RhqManagers(Class remote, String enable) {
        this.remote = remote;
        this.beanName = this.name() + "Bean";
        localInterfaceClassName = getLocalInterfaceClassName(remote);

        //defaults and evaluates to TRUE unless the string contains "false". Done to defend against
        //possible errors in string replacement during rhq build.
        this.enabled = true;
        if ((enable != null) && (enable.trim().length() > 0)) {
            this.enabled = (enable.trim().equalsIgnoreCase("false")) ? Boolean.FALSE : Boolean.TRUE;
        }
    }

    public static RhqManagers forInterface(Class iface) {
        for (RhqManagers m : values()) {
            if (m.remote().equals(iface)) {
                return m;
            }
        }

        return null;
    }

    public Class remote() {
        return this.remote;
    }

    /**
     * @deprecated since 4.6.0, use the {@link #remote()} method instead
     * @return the class name of the remote interface
     */
    @Deprecated
    public String remoteName() {
        return this.remote.getName();
    }

    public String localInterfaceClassName() {
        return localInterfaceClassName;
    }

    public String beanName() {
        return this.beanName;
    }

    public boolean enabled() {
        return this.enabled;
    }

    private static String getLocalInterfaceClassName(Class remoteIface) {
        String ifaceName = remoteIface.getName();
        if (!ifaceName.endsWith("Remote")) {
            throw new AssertionError("Inconsistent SLSB naming in RHQ! Remote interface '" + remoteIface.getName()
                + "' does not follow the established naming convention. This is a bug, please report it.");
        }

        return (ifaceName.substring(0, ifaceName.lastIndexOf("Remote")) + "Local");
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy