Dự án của tôi bao gồm nhiều plugin và mọi plugin đều bao gồm tệp plugin.properties có gần 20 bản dịch. Tệp MANIFEST.MF xác định tên của các tệp thuộc tính nơi các chuỗi plugin bên ngoài được lưu trữ.cơ chế plugin.properties trong nhật thực RCP
Bundle-Localization: plugin
Tên của các plugin tôi xác định như
%plugin.name
Eclipse sẽ tìm kiếm "% plugin.name" trong tập tin plugin.properties khi chạy.
Lớp nào đọc mục nhập MANIFEST.MF Bundle-Localization và tại điểm nào là chuỗi có hậu tố bắt đầu '%' được tìm kiếm trong tệp "plugin.properties"?
Tôi muốn tìm và vá các lớp này theo cách đó, trước tiên tôi có thể xem xét một số thư mục/tệp khác cho số nhận dạng "% plugin.name". Với những cơ chế mới này, tôi có thể thêm các mảnh vào sản phẩm của mình và ghi đè lên các dòng đơn trong tệp "plugin.properties" mà không thay đổi plugin gốc. Với những cơ chế này tôi có thể tạo một quy trình xây dựng cho nhiều khách hàng chỉ bằng cách thêm các đoạn khác nhau. Các mảnh bao gồm tên khách hàng và chuỗi đặc biệt mà họ muốn thay đổi.
Tôi muốn thực hiện theo cách đó, vì cơ chế phân đoạn chỉ thêm tệp vào plugin gốc. Khi tệp "plugin.properties" tồn tại trong plugin, các tệp "plugin.properties" mảnh bị bỏ qua.
UPDATE 1:
Phương pháp
class ManifestLocalization{
...
protected ResourceBundle getResourceBundle(String localeString) {
}
...
}
trả về ResourceBundle các thuộc tính tập tin cho chuỗi locale nhất định. Khi ai đó nows làm thế nào bây giờ tôi có thể đầu tiên nhìn vào mảnh để có được đường dẫn tài nguyên xin vui lòng gửi nó.
UPDATE 2:
Các phương thức trong lớp ManifestLocalization
private URL findInResolved(String filePath, AbstractBundle bundleHost) {
URL result = findInBundle(filePath, bundleHost);
if (result != null)
return result;
return findInFragments(filePath, bundleHost);
}
Mấu tìm kiếm cho các thuộc tính tập tin và bộ nhớ cache nó. Các bản dịch có thể nhận được từ tệp được lưu trong bộ nhớ cache. Vấn đề là, tệp hoàn chỉnh được lưu trữ và không phải là bản dịch đơn lẻ.
Giải pháp trước hết là đọc tệp mảnh, thay vì đọc tệp bó. Khi cả hai tệp hiện có hợp nhất chúng thành một tệp và ghi tệp thuộc tính mới vào đĩa. URL của tệp thuộc tính mới sẽ trả về, do đó tệp propetries mới có thể được lưu trong bộ nhớ cache.
Nơi tôi có thể tìm thấy phương pháp phổ biến? Hay tôi phải viết nó? –
Bạn có thể vui lòng đưa thêm thông tin vào câu trả lời của bạn. Cảm ơn bạn! –