그래서 어제 아침에 나는 OSGi가 무엇인지에 대한 단서가 없었습니다. OSGi 는 몇 번이고 계속해서 나타나는 유행어 였기 때문에 마침내 시간을내어 문제를 해결했습니다.
사실 꽤 멋진 것 같기 때문에 나는 (기록을 위해) 어떤 점에서든 안티 OSGi가 아니며 이것은 "OSGi-bashing"질문도 아니라고 말하면서 시작하고 싶습니다.
결국 OSGi는 본질적 으로 Java Modularity에서 JSR 277 을 해결 한 것으로 보입니다 .JAR
특정 코너 케이스에서 네임 스페이스 해결 및 클래스 로딩 문제로 이어질 수 파일 사양의 . OSGi는 또한 다른 많은 멋진 기능을 수행하지만 제가 확인할 수있는 점에서 이것이 가장 큰 장점입니다 (또는 그중 하나).
나에게는 꽤 새로운 (현재 몇 년) Java EE 개발자로서 우리가 2011 년에 있고 현재 Java 7 시대에 살고 있으며 이러한 클래스 로딩 문제가 여전히 존재한다는 사실은 정말 놀랍습니다. 특히 하나의 앱 서버에 수백 개의 JAR이있을 수있는 엔터프라이즈 환경에서 대부분은 서로 다른 버전에 따라 다르며 모두 동시에 실행됩니다.
내 질문:
내가 OSGi에 관심이있는만큼, 내 프로젝트에 유용 할 수있는 위치 / 여부를 확인하기 위해 OSGi에 대해 배우고 싶은만큼, 앉아서 그렇게 큰 것을 배울 시간이 없습니다. 적어도 지금.
그렇다면 이러한 문제가 발생할 때 OSGi가 아닌 개발자는 무엇을해야합니까? 무엇 자바 있는 경우 (오라클 / 일 / JCP) 솔루션은 현재 존재 하는가? J7에서 Jigsaw를 잘라낸 이유는 무엇입니까? Jigsaw가 내년 J8에서 구현 될 커뮤니티는 얼마나 확실합니까? 아직 Java 플랫폼의 일부가 아니지만 프로젝트에 Jigsaw를 사용할 수 있습니까?
내가 여기서 묻는 것은 공황, 음모 및 안면 손바닥의 조합입니다. 이제 마침내 OSGi가 무엇인지 이해 했으므로 Jigsaw와 같은 것이 어떻게 결실을 맺기까지 20 년 이상 걸 렸는지, 그리고 어떻게 그것이 릴리스에서 통조림 될 수 있었는지 "얻지"못합니다. 근본적인 것 같습니다.
그리고 개발자로서 저는 OSGi가 아닌 제 솔루션이 무엇인지 궁금합니다.
또한 참고 :이 질문 이 " 순수한 프로그래밍 "유형의 질문 이 아니라는 것을 알고 있지만 일부 사용자가 코를 구부리기 전에 의도적으로이 질문을 올렸다고 (다시 기록을 위해) 말하고 싶었습니다. 그래서. 그 이유는 동료 SO에 대한 존경심 밖에없고 매일 여기에 숨어있는 "IT의 신들"로부터 아키텍처 수준의 답변을 찾고 있기 때문입니다.
그러나 SO 질문이 일부 코드 세그먼트로 뒷받침되어야 한다고 절대적으로 주장 하는 사람들을 위해 :
int x = 9;
(이 OSGi / Jigsaw / classloader / namespace / JAR 지옥 물건에 무게를 둘 수있는 모든 사람에게 감사합니다!)