2017-02-17 11 views
1

비 웹 응용 프로그램에서 togglz를 사용할 수 있는지 확인하려고합니다. 일반 자바 프로젝트 또는 Java 배치 프로그램처럼 사용할 수 있습니다.비 웹 응용 프로그램에서 togglz를 사용할 수 있습니까?

독립 실행 형 응용 프로그램에서 togglz 라이브러리를 추가하고 실행 해 보았습니다.

이 내 코드입니다 -

import com.feature.MyFeature; 

public class Test { 

    public static void main(String[] args) { 

     Test t = new Test(); 
     boolean valid=t.validate("CREATE_TEAM"); 
     System.out.println(valid); 

    } 

    public boolean validate(String feature){ 

     if (MyFeature.valueOf(feature).isActive()) { 
     return true; 
     } 

     return false; 
    } 

} 

그것은 말한다 - 당신은 그것이 작동되도록 올바르게 Togglz을 구성해야합니다

Exception in thread "main" java.lang.IllegalStateException: Could not find the FeatureManager. For web applications please verify that the TogglzFilter starts up correctly. In other deployment scenarios you will typically have to implement a FeatureManagerProvider as described in the 'Advanced Configuration' chapter of the documentation. 
    at com.amdocs.switchlite.core.context.FeatureContext.getFeatureManager(FeatureContext.java:53) 
    at com.feature.MyFeature.isActive(MyFeature.java:20) 
    at Test.validate(Test.java:22) 
    at Test.main(Test.java:12) 
+0

pom.xml이있는 경우 볼 수 있습니까? 사용 된 종속성은 무엇입니까? togglz 설정을 볼 수 있습니까? –

답변

3

. 독립 실행 형 응용 프로그램에서 다음 설치를 권장합니다.

먼저 FeatureManagerBuilder을 사용하여 FeatureManager을 만듭니다. 이런 식으로 뭔가 :

FeatureManager featureManager = FeatureManagerBuilder.begin() 
     .featureEnum(Features.class) 
     .stateRepository(new InMemoryStateRepository()) 
     .userProvider(new NoOpUserProvider()) 
     .build(); 

당신의 관리자에 대한 StaticFeatureManagerProvider 알려주기 :

StaticFeatureManagerProvider.setFeatureManager(featureManager); 

이제 StaticFeatureManagerProvider 당신의 FeatureManager 모든 것이 잘 작동합니다 대한 Togglz을 말할 수있다!

Features.FOOBAR.isActive(); 
// > false 
+0

정확히 필요한대로 작동합니다. 감사합니다. @chkal –