확장 포인트를 제공하는 기존 Eclipse 플러그인이 있습니다. 플러그인은 표준 Eclipse 메커니즘을 사용하여 확장을 찾습니다. 이 플러그인의 코드에서 다음 코드를 사용하여 확장 프로그램을 가져옵니다.기존 Eclipse 플러그인 확장자 덮어 쓰기
IConfigurationElement[] config = Platform.getExtensionRegistry()
.getConfigurationElementsFor(extensionPoint);
if (config.length > 0) {
return config[0];
}
코드에서 볼 수있는 것처럼 처음 발견 된 확장 프로그램 만 사용됩니다. 이 플러그인은 이미 확장 기능을 제공하며이 확장 기능은 기본 경우에 사용됩니다.
이제 기본 확장 기능의 동작을 재정의해야하므로 새 플러그인을 만들고 동일한 확장 점을 확장합니다. 그러나 기본 확장자는 항상 IConfigurationElement
배열의 첫 번째 확장이므로 항상 선택됩니다.
발견 된 IConfigurationElement
배열에 내 자신의 플러그인을 먼저 표시하려면 어떻게해야합니까? 그러면 기본 플러그인 대신 내 자신의 플러그인이 사용됩니까?
기존 플러그인은 다른 사람들이 작성했으며 절대적으로 필요하기 전까지는 변경하지 않으려합니다.
ExtensionRegistry는 비 결정적인 방식으로 확장을 반환합니다. 즉 다른 컴퓨터에 다른 순서로 플러그인을 설치하면 먼저 우선 적용이 반환 될 수 있지만 보장 할 수는 없습니다. 소비자가 원하는 확장 기능을 정렬/우선 순위 지정/선택하는 것은 고객의 업무입니다. –