2017-03-20 3 views
1

우리는 조직 사용자의 정보를 저장하기 위해 몇 가지 사용자 지정 주석, 요청 필터 및 JPA 엔터티를 포함하는 내부 사용을위한 SDK를 개발하고 있습니다 . SDK는 maven 아티팩트이며 사용자 정보 엔티티를 보유하는 지속성 단위의 정의를 포함합니다.두 개의 Java EE 응용 프로그램이 동일한 영구 단위 및 데이터 소스를 공유 할 수 있습니까

문제는 다음과 같습니다. 동일한 컨테이너 또는 자체 컨테이너에 배포되는 SDK를 사용하여 여러 응용 프로그램을 지원해야합니다. (SDK의 지속성 구성 요소는 자체 마이크로 서비스로 리팩토링 될 수 없습니다.)

우리의 인증 구성 요소가 사용하는 영구 유닛은 SDK에 정의되어 있으므로 동일한 컨테이너에서 실행되는 여러 Java 프로젝트에 문제가 발생합니다. 동일한 데이터 소스/영속성 유닛 조합을 참조 하시겠습니까? 아니면 우리가 구현할 수 있고 구현해야 할 방법이 있습니까?

+0

내가 생각할 수있는 한 가지 해결책은 모든 프로젝트가 일반적인 Maven 종속성으로 SDK를 추가하지만 각 응용 프로그램에는 SDK가 참조되는 자체 persistence.xml이 있고 my-sdk.jar simdevmon

+0

그건 올바른 방법으로 들리지 않습니다. 우리는 복잡성을 단일 Maven 종속성으로 줄이기 위해 노력하고 있습니다. git의 파일을 체크 아웃하고 프로젝트의 파일을 수동으로 수정하여 작업을 수행 할 수 있지만 프로젝트에서는 Maven의 포함으로 축소하는 프로젝트입니다. – KG6ZVP

답변

0

내가 생각할 수있는 한 가지 방법은 sdk의 자리 표시자를 필요로하는 개별 응용 프로그램을 빌드하는 동안 pu 실행 이름을 제외한 모든 구성을 가지는 persistence.xml에 대한 템플릿을 만드는 것입니다. 자바 클래스가되어야합니다.) sdk는 앱의 속성 파일에서 프로젝트 고유의 pu 이름을 가져 와서 템플릿의 pu 자리 표시자를 대체하여 앱의 persistence.xml 파일을 만듭니다.