확장점 및 레지스트리

플러그인의 "번들" 측면이 런타임 플러그인 및 런타임 도구와 연관되더라도 플러그인은 플러그인에서 정의한 확장점 및 플러그인에서 제공하는 확장과 관련이 있다는 것이 훨씬 더 일반적입니다. 이 정보는 플랫폼 확장 레지스트리인 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, IExtensionPointIExtension에 정의된 프로토콜을 사용하여 찾을 수 있습니다. 이러한 클래스의 javadoc은 레지스트리 프로토콜에 대한 자세한 정보를 제공합니다.

관심이 있는 확장 정의를 찾았으면 IConfigurationElement의 프로토콜을 사용하여 확장의 개별 속성을 확인할 수 있습니다.