2009-05-27 23 views
11

Chúng tôi đang xem xét sử dụng Dịch vụ quản trị cấu hình làm API chính để định cấu hình các thành phần trong ứng dụng dựa trên OSGi của chúng tôi. Sẽ tốt hơn nếu chúng ta có thể tái sử dụng một số việc triển khai hiện có, vì vậy tôi đang cố gắng điều tra và đánh giá những cái phổ biến nhất. Tôi biết có là:Triển khai hiện tại của Dịch vụ quản trị cấu hình OSGi?

Có bất kỳ hiện thực khác để được xem xét?

Ngoài ra, tôi không thể tìm thấy bất kỳ tài liệu hay nào cho các triển khai này. Tôi sẽ chủ yếu quan tâm đến các chi tiết thực hiện cụ thể. Ví dụ tôi đã tự hỏi làm thế nào các triển khai khác nhau tồn tại dữ liệu cấu hình (ví dụ: nhiều tệp thuộc tính? Tệp XML? Nhiều tệp XML? Cơ sở dữ liệu ?, ...).

Trả lời

6

Ba triển khai công tôi biết là

Equinox của dịch vụ xuất hiện không hỗ trợ kiểm soát tốt chính sách kiên trì, như Felix đã làm, và việc thực hiện Knopflerfish trông (tôi chỉ đọc nguồn ngắn gọn) tương tự như của Equinox.

Biểu tượng Felix dường như được cập nhật gần đây nhất và đáng tin cậy nhất.

Hiện tại đây là những người duy nhất tôi có thể tìm thấy; tại dm Server, chúng tôi đưa ra quyết định sử dụng gói của Felix, và điều này hiện có thể lấy từ SpringSource Enterprise Bundle Repository, nơi bạn có thể tìm kiếm nhanh Apache Felix hoặc ConfigAdmin.

+0

Cảm ơn bạn đã xác nhận, chúng tôi đã quyết định sử dụng triển khai Felix Config Admin (cùng với chiến lược kiên trì của chính chúng tôi). –

7

Quản trị cấu hình của Felix có một số default implementation vẫn còn tồn tại cho hệ thống tệp nhưng chúng xác định giao diện dịch vụ (org.apache.felix.cm.PersistenceManager) cho các chương trình phụ trợ thay thế mà bạn có thể cắm vào thay thế.

Việc thực hiện mặc định nào sau đây:

Các dữ liệu cấu hình cửa hàng lớp FilePersistenceManager trong các tập tin thuộc tính giống như bên trong một thư mục nhất định. Tất cả các tệp cấu hình là nằm trong cùng một thư mục.

Tệp cấu hình được tạo trong thư mục cấu hình bằng cách thêm phần mở rộng ".config" vào PID của cấu hình. PID được chuyển đổi thành tên đường dẫn tương đối bằng cách thay thế các dấu chấm được đính kèm thành dấu gạch chéo. Ký tự không phải ký hiệu trong PID được mã hóa với mã ký tự Unicode trong hệ thập lục phân.

1

Chỉ cần hoàn thành câu trả lời thêm: Cá nhân tôi cũng thích việc triển khai Felix.Ví dụ về cách thay đổi cách lưu trữ xảy ra ở phía sau bằng cách sử dụng PersistenceManager, xem thêm this triển khai sử dụng các tệp thuộc tính Java chuẩn làm bộ đệm sao lưu. Có một số hạn chế, nhưng ít nhất cho phép bạn lưu trữ cấu hình của bạn với ứng dụng của bạn và ngoài việc triển khai khung công tác OSGi của bạn.

Các vấn đề liên quan