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

com.siemensqms.qmsplus.sdk.runner.TriggerEndpointInitRunner Maven / Gradle / Ivy

The newest version!
package com.siemensqms.qmsplus.sdk.runner;

import com.siemensqms.qmsplus.sdk.receive.IAdapterInit;
import com.siemensqms.qmsplus.sdk.util.ClassUtils;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;

import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

/**
 * This class provides an initialization trigger endpoint.
 * when developer implements interface of {@link IAdapterInit},
 * this class can perform the related initialization business.
 *
 * @author jiang
 */
@Component
@Order(value = 3)
public class TriggerEndpointInitRunner implements CommandLineRunner {
  private static final Logger logger = LoggerFactory.getLogger(TriggerEndpointInitRunner.class);

  @Override
  public void run(String... args) {
    Class[] classes = ClassUtils.findAllImplementsClasses(IAdapterInit.class, "com.*");
    for (Class c : classes) {
      IAdapterInit adapterInit;
      try {
        adapterInit = (IAdapterInit) c.newInstance();
      } catch (Exception e) {
        logger.error("The {}  can not be instantiated with default constructor!", c, e);
        continue;
      }
      try {
        adapterInit.init();
      } catch (Exception e) {
        logger.error("Attention ! init function of {} happen  logic error ,"
            + "Initialization of trigger point  failed", c, e);
      }
    }

  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy