2014-10-09 3 views
2

코어 Java 응용 프로그램에서 java -ea xxx을 사용하여 어설 션을 활성화하고 명령 행 옵션을 변경하여 어설 션을 활성화하는 방법을 알고 있습니다.CQ5/OSGi 번들 (Java)에서 어설 션을 활성화하는 방법은 무엇입니까?

그러나 OSGi 번들에서 어설 션을 활성화하는 방법. 나는 assertions가 활성화 된 상태에서 테스트하고 싶은 번들을 가지고 있으며 배포 할 때 assertion을 비활성화하려고합니다 (비활성화는 assert가 기본적으로 비활성화되어 있으므로 쉽습니다). 그러나 그것을 가능하게하는 방법?

답변

2

ClassLoader#setDefaultAssertionStatus(Boolean) 메서드를 사용할 수 있습니다. 아직로드되지 않은 클래스에 대해서만 어설 션 상태를 설정합니다. 그래서 할 필요가 없습니다

<project> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.felix</groupId> 
     <artifactId>maven-bundle-plugin</artifactId> 
     <configuration> 
      <instructions> 
      <Bundle-Activator>my.project.Activator</Bundle-Activator> 
... 
+0

그럼 내가 CRXDE Eclipse를 사용

public class Activator implements BundleActivator { @Override public void start(BundleContext bundleContext) throws Exception { getClass().getClassLoader().setDefaultAssertionStatus(true); } @Override public void stop(BundleContext context) throws Exception { } } 

하면 maven-bundle-plugin 구성에서 활성을 등록하는 것을 잊지 마십시오 : 따라서,이 문을 넣을 수있는 가장 좋은 장소는 번들 활성화 될 것 등록 액티베이터. 내 활성 기가 항상 활성화됩니다. 나는 이것을 시도하고 알려주지. – Oliver

관련 문제