Các phần mềm Adobe AEM cung cấp một số lớp học có thể mất một apache Sling Resource và thích ứng với nó đến lớp khác như vậy:Làm thế nào để thực hiện một AdapterFactory tùy chỉnh cho Sling Resource?
Page page = resource.adaptTo(Page.class);
Để sử dụng cú pháp này với các lớp mà bạn tác giả và kiểm soát này nắm để chỉ đơn giản là thực hiện Giao diện Adaptable.
Tuy nhiên, nếu bạn muốn bật Tài nguyên để thích ứngĐối với lớp tùy chỉnh mới của bạn, có vẻ như bạn phải triển khai giao diện AdapterFactory và đăng ký nó trong OSGI.
Đây là cách Adobe website mô tả nó:
Bằng một AdapterFactory, có thể lập bản đồ đối tượng tùy ý. Các đối tượng vẫn phải thực hiện giao diện Thích nghi và phải mở rộng SlingAdaptable (chuyển cuộc gọi adaptTo đến trình quản lý bộ điều hợp trung tâm). Điều này cho phép móc vào cơ chế adaptTo cho các lớp hiện có, chẳng hạn như Tài nguyên.
Tôi đã đi qua mã SlingScriptAdapterFactory, nhưng cuối cùng tôi không kết nối các chấm ở đây. Về cơ bản tôi muốn làm điều này:
MyClass myClass = Resource.adaptTo(MyClass.class);
Tôi tạo ra một lớp mà thực hiện AdapterFactory và chỉ cần triển khai nó với các gói kỳ vọng rằng Sling sẽ chỉ tìm thấy nó bằng loại hoặc là có nhiều hơn để nó?
Tôi đã có thể xác minh điều này và đó chỉ là những gì tôi cần. Tôi đã không hiểu rằng các ý kiến trên trang web Apache đã phác thảo các chú thích SCR cần thiết để đăng ký bộ điều hợp của tôi [https://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations. html] Bây giờ tôi chỉ cần tìm ra cách thể hiện thuộc tính chú thích của bộ điều hợp như là một tập hợp các lớp mà bộ điều hợp hỗ trợ. Cảm ơn! – jedatu