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

org.opencastproject.serviceregistry.api.ServiceRegistrationInMemoryImpl Maven / Gradle / Ivy

There is a newer version: 16.6
Show newest version
/*
 * Licensed to The Apereo Foundation under one or more contributor license
 * agreements. See the NOTICE file distributed with this work for additional
 * information regarding copyright ownership.
 *
 *
 * The Apereo Foundation licenses this file to you under the Educational
 * Community License, Version 2.0 (the "License"); you may not use this file
 * except in compliance with the License. You may obtain a copy of the License
 * at:
 *
 *   http://opensource.org/licenses/ecl2.txt
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
 * License for the specific language governing permissions and limitations under
 * the License.
 *
 */

package org.opencastproject.serviceregistry.api;

import org.opencastproject.job.api.JobProducer;

import java.util.Date;

/**
 * Simple implementation of a service registration.
 */
public class ServiceRegistrationInMemoryImpl implements ServiceRegistration {

  /** Service type */
  protected String serviceType = null;

  /** Host that is running the service */
  protected String host = null;

  /** Path to the service */
  protected String path = null;

  /** The service instance */
  protected JobProducer service = null;

  /** True if this service produces jobs */
  protected boolean isJobProducer = true;

  /** True if this service is active */
  protected boolean isActive = true;

  /** True if this service is online */
  protected boolean isOnline = true;

  /** True if this service in in maintenance mode */
  protected boolean isInMaintenanceMode = true;

  /** Date from the last time the service has been put online */
  private Date onlineFrom;

  private ServiceState serviceState;

  /**
   * Creates a new service registration. The service is initially online and not in maintenance mode.
   *
   * @param type
   *          the service type
   * @param host
   *          the service host
   * @param path
   *          the path to the service
   * @param jobProducer
   *          true if the service is a job producer
   */
  public ServiceRegistrationInMemoryImpl(String type, String host, String path, boolean jobProducer) {
    this.serviceType = type;
    this.host = host;
    this.path = path;
    this.isJobProducer = jobProducer;
  }

  /**
   * Creates a new service registration. The service is initially online and not in maintenance mode.
   *
   * @param service
   *          the local service instance
   * @param host
   *          the host that the service is running on
   */
  public ServiceRegistrationInMemoryImpl(JobProducer service, String host) {
    this.service = service;
    this.serviceType = service.getJobType();
    this.isJobProducer = true;
    this.host = host;
  }

  /**
   * {@inheritDoc}
   *
   * @see org.opencastproject.serviceregistry.api.ServiceRegistration#getServiceType()
   */
  @Override
  public String getServiceType() {
    return serviceType;
  }

  /**
   * {@inheritDoc}
   *
   * @see org.opencastproject.serviceregistry.api.ServiceRegistration#getHost()
   */
  @Override
  public String getHost() {
    return host;
  }

  /**
   * {@inheritDoc}
   *
   * @see org.opencastproject.serviceregistry.api.ServiceRegistration#getPath()
   */
  @Override
  public String getPath() {
    return path;
  }

  /**
   * {@inheritDoc}
   *
   * @see org.opencastproject.serviceregistry.api.ServiceRegistration#isJobProducer()
   */
  @Override
  public boolean isJobProducer() {
    return isJobProducer;
  }

  /**
   * {@inheritDoc}
   *
   * @see org.opencastproject.serviceregistry.api.ServiceRegistration#isActive()
   */
  @Override
  public boolean isActive() {
    return isActive;
  }

  /**
   * {@inheritDoc}
   *
   * @see org.opencastproject.serviceregistry.api.ServiceRegistration#isOnline()
   */
  @Override
  public boolean isOnline() {
    return isOnline;
  }

  /**
   * {@inheritDoc}
   *
   * @see org.opencastproject.serviceregistry.api.ServiceRegistration#isInMaintenanceMode()
   */
  @Override
  public boolean isInMaintenanceMode() {
    return isInMaintenanceMode;
  }

  /**
   * Sets the service's maintenance mode.
   *
   * @param maintenance
   *          true if the service is in maintenance mode
   */
  public void setMaintenance(boolean maintenance) {
    this.isInMaintenanceMode = maintenance;
  }

  /**
   * Returns the actual service instance.
   *
   * @return the service
   */
  public JobProducer getService() {
    return service;
  }

  /**
   *
   * {@inheritDoc}
   *
   * @see org.opencastproject.serviceregistry.api.ServiceRegistration#getOnlineFrom()
   */
  @Override
  public Date getOnlineFrom() {
    return onlineFrom;
  }

  @Override
  public ServiceState getServiceState() {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public Date getStateChanged() {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public int getErrorStateTrigger() {
    // TODO Auto-generated method stub
    return 0;
  }

  @Override
  public int getWarningStateTrigger() {
    // TODO Auto-generated method stub
    return 0;
  }

  @Override
  public String toString() {
    return serviceType + "@" + host;
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy