팀 저장소 제공자

org.eclipse.team.core.repository

2.0

팀 플러그인에는 저장소의 개념이 있습니다. 저장소 작업은 팀 구성원 간에 자원을 공유할 수 있도록 지원하는 것입니다. 저장소는 한 프로젝트를 기반으로 구성됩니다. 한번에 한 저장소만 프로젝트에 맵핑될 수 있습니다.

이 확장점을 확장하는 저장소는 자원 수정, 이동 및 삭제에 해당하는 공통 저장소 특정 규칙의 구현을 제공할 수 있습니다. IFileModificationValidatorMoveDeleteHook의 자세한 내용은 다음 인터페이스를 참조하십시오.

또한 저장소 유형은 org.eclipse.team.core.ProjectSetCapability와 같은 프로젝트가 아닌 특정 기능을 제공하도록 지정될 수 있습니다.

선택적으로 저장소 제공자 유형이 두 번째 제공자의 플러그인을 현재 설치에서 사용할 수 없는 경우 두 번째 제공자로부터 프로젝트를 가져올 수 있도록 지정할 수 있습니다. 이것은 두 제공자에 대해 동일한 ID의 재사용이 불가능한 경우에 한 제공자 구현에서 다른 제공자 구현으로의 이주를 지원하기 위한 수단으로 제공됩니다.

저장소 제공자 유형은 또한 상위 컨테이너에 관련된 하나 이상의 메타파일 경로(쉼표로 구분)를 지정할 수도 있습니다. 공유되지 않은 프로젝트 또는 폴더에 저장소 정의와 연관된 모든 메타파일 경로와 일치하는 파일이 들어 있는 경우, RepositoryProviderType#metaFilesDetected 메소드가 상위 컨테이너를 인수로 갖고 호출됩니다. 이것은 저장소 유형에 파일을 팀 전용으로 표시하는 기회를 제공하고 선택적으로 프로젝트를 공유하기 위해 수행됩니다. 자세한 내용은 위에서 언급된 메소드의 javadoc를 참조하십시오.

<!ELEMENT extension (repository)>

<!ATTLIST extension

point CDATA #REQUIRED>


<!ELEMENT repository EMPTY>

<!ATTLIST repository

id            CDATA #IMPLIED

class         CDATA #REQUIRED

typeClass     CDATA #IMPLIED

canImportId   CDATA #IMPLIED

metaFilePaths CDATA #IMPLIED>


<extension point=

"org.eclipse.team.core.repository"

>

<repository class=

"org.eclipse.myprovider.MyRepositoryProvider"

typeClass=

"org.eclipse.myprovider.MyRepositoryProvider"

id=

"org.eclipse.myprovider.myProviderID"

canImportId=

"org.eclipse.myprovider.myOldProviderID"

metaFilePaths=

".meta/files,.meta/version"

>

</repository>

</extension>

클래스 속성 값은 org.eclipse.team.core.RepositoryProvider의 서브클래스를 표시해야 하며 typeClass 속성 값이 org.eclipse.team.core.RepositoryProviderType의 서브클래스를 표시해야 합니다.

RepositoryProvider의 제공된 구현은 프로젝트에 대한 제공자 맵핑 및 맵핑 해제에 필요한 공통 코드 및 헬퍼 메소드를 제공합니다. 선택적 RepositoryProviderType은 ProjectSetCapability를 통해 프로젝트 세트 가져오기 및 내보내기를 제공합니다.