2013-06-27 201 views
47

Tôi hơi bối rối về những gì chính xác của Apache Karaf.Chính xác thì Apache Karaf là gì?

Bạn có thể nói rằng Apache Karaf bao gồm, trong số những thứ khác:

  • Apache Felix (đó là một thực hiện các OSGi framework 4.2)
  • Apache Bạch Dương (đó là một thực hiện các tiêu chuẩn Blueprint)
+15

Tôi đã làm việc với OSGi gần mười năm và tôi cũng không nhận được điểm của Karaf ;-) –

+0

Câu hỏi liên quan http://stackoverflow.com/questions/1612120/osgi-what-are-the -differences-between-apache-felix-and-apache-karaf –

Trả lời

53

TLDR: Apache Karaf có nhiều hơn 'bao gồm pin'. Nó cũng có thể chạy trên bất kỳ thời gian chạy OSGI nào.

Apache Felix (đó là một thực hiện các OSGi khuôn khổ 4,2)

Sắp xếp của. Apache Karaf có thể sử dụng Apache Felix. Apache Karaf cũng có thể sử dụng Equinox hoặc một thời gian chạy OSGi khác. Theo mặc định, tải xuống tiêu chuẩn Apache Karaf không đi kèm với Apache Felix.

Apache Bạch Dương (đó là một thực hiện các tiêu chuẩn Blueprint)

Một lần nữa, loại. Việc tải xuống tiêu chuẩn của Apache Karaf không đi kèm với Apache Aries theo mặc định.

Bây giờ hãy nói về những gì OSGi (Apache Felix, Equinox) và những gì Apache Karaf là:

OSGI là rất đơn giản. Bạn có thể bắt đầu một thời gian chạy OSGI trong ứng dụng của bạn và thậm chí không nhận thấy nó. Vỏ, khả năng triển khai nóng từ một thư mục, cài đặt từ một repo maven, vv .. Đây là tất cả các tính năng bổ sung mà OSGI không phải làm và được cung cấp bởi các dự án bổ sung như Karaf, GOGO hoặc Pax

Bây giờ, trên Apache Karaf:

Về cơ bản, môi trường OSGI cung cấp một số tính năng bổ sung khi thực hiện OSGI chuẩn. Bởi vì Apache Karaf chỉ được xây dựng trên OSGI chuẩn, nó có thể trong lý thuyết chạy trên bất kỳ thời gian chạy OSGI nào. Điều này mang lại cho bạn một giao diện thống nhất để làm việc với các thời gian chạy OSGI.

Một số goodies Apache Karaf quy định rằng bạn sẽ không nhìn thấy trong một Apache Felix nếu không có công việc bổ sung:

  • thư mục dựa triển khai nóng
  • A (IMHO) mặc định giao diện điều khiển tốt hơn so với gogo. (org.apache.karaf.shell)
  • Truy cập SSH từ xa vào bảng điều khiển đó. (org.apache.karaf.shell.ssh)
  • Hệ thống ghi nhật ký tập trung. (org.apache.karaf.log)
  • Nó có cách riêng để cung cấp các gói và mức bắt đầu. (org.apache.karaf.features)
  • Karaf cũng có plugin bổ sung riêng của mình.

Khá nhiều thứ ở đây:

http://mvnrepository.com/search.html?query=org.apache.karaf *

tôi đã đề cập Karaf có cách riêng của nó của provisioning bó và bắt đầu cấp. Apache Karaf cũng đi kèm với một loạt những người được xác định trước để bắt đầu. Tôi biết Apache Felix cũng đi kèm với một số người, thông qua OBR, nhưng Apache Karaf có nhiều 'pin đi kèm' hơn.

28

Apache Karaf là một con dao quân đội swiss để chạy OSGi "thứ" và những thứ không phải OSGi được đóng gói như OSGi.

Felix và Bạch Dương là mặc định nhưng các khung công tác có thể cắm được, vì vậy công thức equinox cũng hoạt động.

  • "Unix như" vỏ truy cập từ CLI hoặc SSH
  • Hotdeploy của bó
  • Có thể triển khai hầu hết mọi thứ như một bó (.jar đồng bằng, mùa xuân xml, kế hoạch chi tiết, vv)
  • file WAR
  • Triển khai từ maven - bao gồm cả autowrapping không phải gói OSGi.
  • Bảng điều khiển Web
  • Tính năng của Karaf - ".kar files" bao gồm các gói/tính năng/lệnh tùy chỉnh karaf.

Một lưu ý phụ là Karaf là một phần của ServiceMix (tên ban đầu là hạt nhân ServiceMix), vì vậy nó có tích hợp rất chặt chẽ với Apache Camel, Apache CXF và Apache ActiveMQ. Biến Karaf thành ESB với những tính năng đó là tầm thường.