Tôi đang làm việc trên một gói OSGi thực hiện dịch vụ dưới dạng trình bao bọc xung quanh một tệp thực thi gốc. Nghĩa là dịch vụ chạy tệp thi hành với ProcessBuilder
, cấp dữ liệu cho một số dữ liệu và truy xuất kết quả. Câu hỏi của tôi là về cách tốt nhất để gói gói này. Bản thực thi nguyên gốc bao gồm một số tệp dữ liệu phụ thuộc mà tất cả phải có trên đĩa để công cụ chạy. Tôi đã tìm thấy rất nhiều tài liệu tham khảo về việc xử lý các DLL gốc trong OSGi, nhưng không có tệp địa chỉ nào được liên kết với một gói phải có mặt trên đĩa thay vì chỉ có thể truy xuất thông qua đường dẫn lớp.Bao gồm các tài nguyên bổ sung với các gói OSGi
Tôi đã nghĩ rằng tôi có thể bao gồm các tệp có giá trị và phụ thuộc trực tiếp trong gói lưu trữ và sau đó trích xuất theo chương trình vào một số thư mục khi gói được bắt đầu. Tùy chọn khác mà tôi có thể nghĩ là đặt tệp thực thi ở đâu đó và đặt thuộc tính hệ thống trỏ đến nó hoặc cái gì đó, nhưng tôi muốn giữ cấu hình ở mức tối thiểu.
Giải pháp không cụ thể cho việc triển khai OSGi cụ thể sẽ tốt đẹp, nhưng nếu không, tôi đang sử dụng Equinox.
Cảm ơn!
Nền tảng dịch vụ OSGi Đặc điểm kỹ thuật cốt lõi Phiên bản 4.3 cung cấp ['BundleContext.getDataFile (String)'] (https://osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html#getDataFile% 28java.lang.String% 29), có thể thích hợp. –