Eclipse 3.0 플러그인 이주 FAQ

Eclipse API가 2.1과 3.0 사이에서 비호환 방식으로 변경된 이유는 무엇입니까?

Eclipse 3.0은 Eclipse 2.1에서 발전된 버전입니다. 전반적으로 완벽한 호환성을 유지하지만 Eclipse를 발전시킬 수 없는 몇 개의 영역이 있습니다. 호환되지 않는 네 개의 기본 소스는 다음과 같습니다.

특정 비호환성 목록.

Eclipse 3.0에서 2.1 플러그인이 작동합니까?

몇 가지 경우를 제외하고는 작동합니다. 플러그인이 Eclipse 2.1 API에만 의존하는 경우, 3.0에서 계속 작동합니다. 극소수의 예외는 2.1과 3.0 간의 변경을 호환 가능한 방법으로 수행할 수 없는 API에서 입니다. 플러그인이 이 중 하나를 사용하는 경우에는 작동하지 않습니다.

2.1 플러그인이 내부 패키지의 클래스를 사용합니다. Eclipse 3.0에서도 여전히 작동합니까?

플러그인이 Eclipse 2.1 API에 지정되지 않은 동작 또는 내부 클래스에 의존하는 경우, 플러그인이 3.0에서 작동할 수 있는지 여부를 단정하는 것은 불가능합니다. 사용자가 사용해 봐야 합니다.

Eclipse 3.0에서 플러그인을 손상시키지 않고 어떻게 실행합니까?

Eclipse 3.0 기반 제품의 eclipse/plugins/ 서브디렉토리에 2.1 플러그인을 설치하고 Eclipse를 다시 시작하십시오. Eclipse는 plugin.xml의 헤더에 의해 플러그인이 변환되지 않은 2.1 플러그인임을 인식하고 플랫폼 플러그인 종속성 및 이름이 바뀐 플랫폼 확장점에 대한 변경사항을 보상하도록 자동으로 조정합니다.

Eclipse 3.0에서 올바로 컴파일하려면 2.1 플러그인을 변경해야 합니까?

모든 경우에 그렇습니다. Eclipse 2.1과 3.0 간에는 모든 플러그인에 대한 변경을 수반하는 특정 차이점이 있습니다. 2.1용으로 작성된 플러그인이 있고 이를 다시 컴파일하려는 경우, 3.0으로 이주해야 3.0용으로 플러그인을 발전시킬 수 있습니다.

플러그인을 Eclipse 3.0으로 어떻게 이주합니까?

플러그인 프로젝트를 Eclipse 3.0 작업공간으로 로드하거나 가져오고 PDE 도구 > 3.0으로 이주(프로젝트 컨텍스트 메뉴)를 사용하여 플러그인의 Manifest를 3.0 형식으로 변환하고 필수 플랫폼 플러그인 목록 및 이름이 바뀐 플랫폼 확장점에 대한 참조를 자동으로 조정하십시오. 대부분의 경우, 플러그인의 코드를 컴파일하고 실행해야 합니다. 그런 다음, 플러그인의 코드를 검토하여 호환되지 않은 API 변경 영역 중 하나에 종속되지 않는지 확인해야 합니다.

플러그인이 호환되지 않게 변경된 API에 의존하는 경우 컴파일 오류 또는 경고를 신뢰할 수 있습니까?

아니오. Java 컴파일러에서 플래그되지 않는 일부 호환되지 않는 변경 영역이 있습니다.

지원되지 않는 API 사용으로 인해 발생하는 코드에서의 경고를 무시해도 안전합니까?

단기적으로는 무시할 수 있습니다. 가능한 어디서든 폐기된 API는 명백히 삭제되지 않고 지원되지 않는 것으로 표시되며 제한된 조건에서만 계속 작동합니다. 따라서 보통 지원되지 않는 API를 긴급히 제거해야 할 필요성이 없다면 지금 폐기된 것으로 간주된다는 사실은 이제 무언가 수행할 더 나은 방법이 있음을 의미합니다. 플러그인은 지원되지 않는 API에 대한 모든 사용을 조속히 근절해야 합니다.

플러그인을 Eclipse 3.0으로 이주하면 Eclipse 2.1에 결과 2진 플러그인을 계속 설치하고 실행할 수 있습니까?

아니오. 이는 지원되지 않으며, 이름이 바뀐 확장점으로 인해 작동하지 않습니다.

org.eclipse.core.runtime.compatibility의 용도는 무엇입니까?

3.0에서 OSGi 기반 런타임으로의 이동으로 인해 일부 기존 코어 런타임 API가 쓸모없게 되었습니다. 거의 모든 곳에서 org.eclipse.core.runtime.* packages에서 폐기된 API는 이면 구현과 함께 org.eclipse.core.runtime 플러그인에서 새 org.eclipse.core.runtime.compatibility 플러그인으로 이동되었습니다. 기본적으로, 새로 작성된 플러그인은 org.eclipse.core.runtime에 의존하며 지원되는 런타임 API만 사용하게 됩니다. 반면에, 2.1에서 이주되는 기존 플러그인은 기본적으로 org.eclipse.core.runtime.compatibility에 의존하며 이전 API도 사용할 수 있습니다(org.eclipse.core.runtime.compatibility 플러그인은 org.eclipse.core.runtime의 API를 다시 내보냄). org.eclipse.core.runtime.compatibility 플러그인이 Eclipse IDE 구성에 포함될 가능성은 높지만 RCP 구성을 기반으로 하는 제품에는 포함되지 않을 가능성이 높습니다.

org.eclipse.ui.workbench.compatibility의 용도는 무엇입니까?

org.eclipse.ui.workbench.compatibility는 Eclipse 3.0 기반 제품에서 실행되는 2.1 플러그인에 향상된 2진 호환성을 제공합니다. 3.0에서는 Workbench와 작업공간 및 자원을 명확히 분리하기 위해 IFile 또는 IMarker에 명시적으로 종속된 여섯 개의 메소드가 org.eclipse.ui.IWorkbenchPage 인터페이스에서 이동되었습니다. org.eclipse.ui.workbench.compatibility 단편은 기존 2.1 플러그인을 수정하지 않고 실행할 수 있도록 이러한 메소드를 다시 추가하도록 배열합니다. 그러나 이동된 메소드를 참조하는 3.0으로 이주한 플러그인은 이제 org.eclipse.ui.ide.IDE에 위치한 교체 메소드를 호출해야만 해결할 수 있는 컴파일 오류를 보게 됨에 유의하십시오.

해당 IWorkbenchPage 메소드는 openEditor(IFile), openEditor(IFile, String), openEditor(IFile, String, boolean), openEditor(IMarker), openEditor(IMarker, boolean) 및 openSystemEditor(IFile)입니다.