Il software Adobe AEM fornisce diverse classi che possono prendere uno Sling risorse apache e adattarlo ad un'altra classe in questo modo:Come implementare un AdapterFactory personalizzato per Sling Resource?
Page page = resource.adaptTo(Page.class);
Per utilizzare questa sintassi con le classi che autore e controllo questo si riduce a semplice attuazione del Interfaccia Adaptable.
Tuttavia, se si desidera abilitare una risorsa per adattare la nuova classe personalizzata, sembra che sia necessario implementare l'interfaccia AdapterFactory e registrarla in OSGI.
Questo è come il Adobe website lo descrive:
Con AdapterFactory, che può mappare oggetti arbitrari. Gli oggetti devono ancora implementare l'interfaccia adattabile e devono estendere SlingAdaptable (che passa la chiamata adattTo a un gestore adattatore centrale). Ciò consente agganci nel meccanismo adaptTo per classi esistenti, ad esempio Risorsa.
ho camminato attraverso il codice SlingScriptAdapterFactory, ma alla fine non mi unire i punti qui. Fondamentalmente io voglio fare questo:
MyClass myClass = Resource.adaptTo(MyClass.class);
si crea una classe che implementa AdapterFactory e semplicemente distribuirlo con il pacchetto in attesa che Sling sarà solo trovarlo per tipo o c'è di più?
Sono stato in grado di verificare questo ed era proprio quello di cui avevo bisogno. Non avevo capito che i commenti sul sito Apache delineavano le annotazioni SCR necessarie per registrare il mio adattatore [https://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations. html] Ora ho solo bisogno di capire come esprimere la proprietà di annotazione degli adattatori come una raccolta di classi supportate dall'adattatore. Grazie! – jedatu