2009-08-23 3 views
1

플러그인 공통점이있는 경우 플러그인 A와 B가 별도의 플러그인/제품으로 사용되며 플러그인 공통에 따라 다릅니다.다운 스트림 플러그인에서 외부화 된 plugin.xml 문자열을 사용할 수 있습니까?

공통적 인 플러그인에서 plugin.xml의 문자열을 외부화합니다. 이는 % bundle-vendor = "My Company Name"을 제공합니다.

다운 스트림 플러그인 A 및 B에서 공급 업체에 공통적 인 bundle-vendor 속성을 사용할 수 있습니까? 나는 일반적인 플러그인 id를 prepending하려고 시도했지만 작동하지 않았다. 이것이 가능한가?

답변

0

필자는 plugin.properties를 플러그인 외부에서 사용할 수 없다고 회상합니다. 그러나 특성 유형 (org.eclipse.osgi.util.NLS 확장)을 정의하여 특성 파일을 자동으로로드하고 다른 플러그인에 노출시킬 수 있습니다.

형식의 각 정적 String 속성은 NLS 규칙에 따라 속성 파일에서 처리되어 사용 가능하게됩니다. 여기

는 특성 파일을로드하고, 클래스를로드 할 때 정적 변수를 some_propertysome_other_property를 채울 사소한 예이다.

public class ContentMessages extends NLS { 

    private static final String BUNDLE_NAME = 
     "name.seller.rich.content.messages"; //$NON-NLS-1$ 

    public static String some_property; 
    public static String some_other_property; 

    static { 
     // load message values from bundle file 
     reloadMessages(); 
    } 

    public static void reloadMessages() { 
     NLS.initializeMessages(BUNDLE_NAME, ContentMessages.class); 
    } 
} 
0

위대한 답변 Rich. 추가 할 수있는 유일한 방법은 다른 번들이 패키지/클래스를 액세스 할 수 있도록 패키지/클래스를 번들 매니페스트에 표시하는 것입니다.