Code Snippet

Wiederverwendbare Codes

Know-how

Lokale repository Verbindung

Zum Testen kann es hilfreich sein, sich mit einem AEM Repository remote zu verbinden. Hierzu kann die WebDAV Schnittstelle von AEM verwendet werden.

Der Login gegen das Repository erfolgt auf JCR Ebene (d.h. die Sling API kann z.B. nicht verwendet werden).


OSGI Bundles

Folgende OSGI Bundles werden benötigt, um sich remote zu einem AEM Repository zu verbinden (hier z.B. AEM 6.2)

<dependencies>
   <dependency>
      <groupId>javax.jcr</groupId>
      <artifactId>jcr</artifactId>
      <version>2.0</version>
   </dependency>  
   <dependency>
      <groupId>org.apache.jackrabbit</groupId>
      <artifactId>jackrabbit-jcr2dav</artifactId>
      <version>2.4.0</version>
   </dependency> 
</dependencies>

Code Example

Über den Repository Service ist eine Anmeldung mit Servername, User und Passwort möglich. Bitte unbedingt beachten, dass Sessions auch wieder geschlossen werden.

private final static String SOURCE_SERVER       = "http://myserver:4502";      
private final static String SOURCE_USERNAME     = "admin";
private final static String SOURCE_PASSWORD     = "mypassword";     
Repository repository = JcrUtils.getRepository( serverAddress + "/crx/server" );
SimpleCredentials credentials = new SimpleCredentials( username, password.toCharArray() );
Session session = null; 
try {
   repository.login( credentials );
   LOG.info( "JCR version:         " + repository.getDescriptor(Repository.SPEC_VERSION_DESC) );
   LOG.info( "Repository version:  " + repository.getDescriptor(Repository.REP_VERSION_DESC) );
   LOG.info( "Repository name:     " + repository.getDescriptor(Repository.REP_NAME_DESC) );
   LOG.info( "Transaction Support: " + repository.getDescriptor(Repository.OPTION_TRANSACTIONS_SUPPORTED) );
   // do anything
}
finally{
   session.logout();
}