container/src/main/java/com/streamsets/datacollector/creation/PipelineBeanCreator.java
public InterceptorBean createInterceptor(
    StageLibraryTask stageLib,
    InterceptorDefinition definition,
    StageConfiguration stageConfiguration,
    StageDefinition stageDefinition,
    InterceptorCreatorContextBuilder contextBuilder,
    InterceptorCreator.InterceptorType interceptorType,
    List<Issue> issues
  ) {
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    InterceptorCreator.Context context = contextBuilder.buildFor(
      definition.getLibraryDefinition().getName(),
      definition.getKlass().getName(),
      stageConfiguration,
      stageDefinition,
      interceptorType
    );

    try {
      Thread.currentThread().setContextClassLoader(definition.getStageClassLoader());
      InterceptorCreator creator = definition.getDefaultCreator().newInstance();
      Interceptor interceptor = creator.create(context);

      if(interceptor == null) {
        return null;
      }

      return new InterceptorBean(
        definition,
        interceptor,
        stageLib
      );
    } catch (IllegalAccessException|InstantiationException e) {
      LOG.debug("Can't instantiate interceptor: {}", e.toString(), e);
      IssueCreator issueCreator = IssueCreator.getStage(stageDefinition.getName());
      issues.add(issueCreator.create(
        CreationError.CREATION_000, "interceptor", definition.getKlass().getName(), e.toString()
      ));
    } finally {
      Thread.currentThread().setContextClassLoader(classLoader);
    }

    return null;
  }
public InterceptorBean createInterceptor(
    StageLibraryTask stageLib,
    InterceptorDefinition definition,
    StageConfiguration stageConfiguration,
    StageDefinition stageDefinition,
    InterceptorCreatorContextBuilder contextBuilder,
    InterceptorCreator.InterceptorType interceptorType,
    List<Issue> issues
  ) {
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    InterceptorCreator.Context context = contextBuilder.buildFor(
      definition.getLibraryDefinition().getName(),
      definition.getKlass().getName(),
      stageConfiguration,
      stageDefinition,
      interceptorType
    );

    try {
      Thread.currentThread().setContextClassLoader(definition.getStageClassLoader());
      InterceptorCreator creator = definition.getDefaultCreator().newInstance();
      Interceptor interceptor = creator.create(context);

      if(interceptor == null) {
        return null;
      }

      return new InterceptorBean(
        definition,
        interceptor,
        stageLib
      );
    } catch (IllegalAccessException|InstantiationException e) {
      LOG.debug("Can't instantiate interceptor: {}", e.toString(), e);
      IssueCreator issueCreator = IssueCreator.getStage(stageDefinition.getName());
      issues.add(issueCreator.create(
        CreationError.CREATION_000, "interceptor", definition.getKlass().getName(), e.toString()
      ));
    } finally {
      Thread.currentThread().setContextClassLoader(classLoader);
    }

    return null;
  }
public InterceptorBean createInterceptor ( StageLibraryTask stageLib , InterceptorDefinition definition , StageConfiguration stageConfiguration , StageDefinition stageDefinition , InterceptorCreatorContextBuilder contextBuilder , InterceptorCreator . InterceptorType interceptorType , List < Issue > issues ) { ClassLoader classLoader = Thread . currentThread ( ) . getContextClassLoader ( ) ; InterceptorCreator . Context context = contextBuilder . buildFor ( definition . getLibraryDefinition ( ) . getName ( ) , definition . getKlass ( ) . getName ( ) , stageConfiguration , stageDefinition , interceptorType ) ; try { Thread . currentThread ( ) . setContextClassLoader ( definition . getStageClassLoader ( ) ) ; InterceptorCreator creator = definition . getDefaultCreator ( ) . newInstance ( ) ; Interceptor interceptor = creator . create ( context ) ; if ( interceptor == null ) { return null ; } return new InterceptorBean ( definition , interceptor , stageLib ) ; } catch ( IllegalAccessException | InstantiationException e ) { LOG . debug ( "Can't instantiate interceptor: {}" , e . toString ( ) , e ) ; IssueCreator issueCreator = IssueCreator . getStage ( stageDefinition . getName ( ) ) ; issues . add ( issueCreator . create ( CreationError . CREATION_000 , "interceptor" , definition . getKlass ( ) . getName ( ) , e . toString ( ) ) ) ; } finally { Thread . currentThread ( ) . setContextClassLoader ( classLoader ) ; } return null ; }
Create a default interceptor for given InterceptorDefinition. This method might
return null as the underlying interface for default creation allows it as well -
in such case no interceptor is needed.
Create a default interceptor for given InterceptorDefinition . This method might return null as the underlying interface for default creation allows it as well - in such case no interceptor is needed .