플러그인의 "번들" 측면이 런타임 플러그인 및 런타임 도구와 연관되더라도 플러그인은 플러그인에서 정의한 확장점 및 플러그인에서 제공하는 확장과 관련이 있다는 것이 훨씬 더 일반적입니다. 이 정보는 플랫폼 확장 레지스트리인 IExtensionRegistry에서 제공됩니다.
플러그인에서 확장이 존재하는지를 알려고 하는 이유는 무엇입니까? 구체적인 예제로 이 정보와 이 정보를 가져오는 프로토콜의 필요성을 설명할 수 있습니다.
플랫폼에 설치된 사용 가능한 모든 보기를 표시하는 Workbench 보기 표시 대화 상자를 상기해 보십시오.
제공된 모든 보기에 대한 보기 이름 및 카테고리 이름이 org.eclipse.ui.views의 확장을 제공하는 플러그인의 plugin.xml 파일에 지정되어 있음을 살펴보았습니다. 그러나 Workbench가 이 정보를 어떻게 찾을까요? 플랫폼 확장 레지스트리에서 찾습니다. 다음 코드는 보기 표시 대화 상자의 Workbench 구현을 기준으로 한 단순화된 스니펫입니다.
... IExtensionRegistry registry = Platform.getExtensionRegistry(); IExtensionPoint point = registry.getExtensionPoint("org.eclipse.ui.views"); if (point == null) return; IExtension[] extensions = point.getExtensions(); for (int i = 0; i < extensions.length; i++) readExtension(extensions[i]); //get the information about each extension ...
플랫폼 클래스에서 레지스트리를 얻을 수 있음을 위에서 확인했습니다. IExtensionRegistry의 프로토콜은 이름이 org.eclipse.ui.views인 확장점을 찾는 데 사용됩니다. 특정 확장점 또는 확장에 대한 레지스트리의 정보는 IExtensionRegistry, IExtensionPoint 및 IExtension에 정의된 프로토콜을 사용하여 찾을 수 있습니다. 이러한 클래스의 javadoc은 레지스트리 프로토콜에 대한 자세한 정보를 제공합니다.
관심이 있는 확장 정의를 찾았으면 IConfigurationElement의 프로토콜을 사용하여 확장의 개별 속성을 확인할 수 있습니다.