2012-07-13 24 views
5

Tôi có một gói phân đoạn mà tôi đã tạo để truy cập một số chức năng bổ sung vào bình của bên thứ hai. Đoạn của tôi nên đăng ký một dịch vụ để trưng ra chức năng mới này. Nó dường như không hoạt động. Trước khi tôi nhận được sâu vào xử lý sự cố, tôi muốn biết nếu điều này thậm chí được cho phép? Đó là, người xem bó của Felix SCR xem xét hoặc bỏ qua các mảnh vỡ?Gói phần mềm OSGi có thể xuất bản một dịch vụ khai báo không?

Trả lời

8

Aha, tôi tự tìm thấy câu trả lời trong thông số kỹ thuật, phần 112.4.2: "Phần đầu biểu thức thành phần dịch vụ được chỉ định trong một đoạn được bỏ qua bởi SCR." Điều này phù hợp với 3.14.3: "Danh sách sau đây chứa các tiêu đề không được sử dụng trong một gói phân đoạn: Bundle-Activator"

+1

Xem thêm http://stackoverflow.com/questions/8592860/component-inside-a-fragment-never-activated, trong đó khẳng định những gì bạn vừa nói, nhưng với những thông tin nói thêm rằng kế hoạch chi tiết làm việc cho các mảnh vỡ. –

2

Có. Nhưng gói máy chủ phải mở cho điều này. Bằng cách mở, tôi có nghĩa là gói máy chủ phải có tiêu đề Service-Components được định cấu hình sao cho bất kỳ bộ mô tả nào trong đoạn sẽ được tìm thấy. Ví dụ:

Service-Components: OSGI-INF/*.xml 

sẽ tìm thấy tất cả .xml tập tin trong thư mục OSGi-INF/ của bó máy chủ tất cả các mảnh vỡ kèm theo.

Tôi thấy dự án Eclipse SmartHome sử dụng giải pháp này để làm cho giao diện người dùng của họ có thể tùy chỉnh được nhiều hơn.

Thông tin thêm: http://apache-felix.18485.x6.nabble.com/DS-amp-fragments-td5004610.html

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