1 package org.argeo.connect; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import javax.jcr.Session; 7 8 /** Define API to manage the life cycle of a Connect App */ 9 public interface AppMaintenanceService { 10 11 /** The system roles that must be available in the system. */ 12 default List<String> getRequiredRoles() { 13 return new ArrayList<>(); 14 } 15 16 /** 17 * Creates the base JCR tree structure expected for this app if necessary. 18 * 19 * Expects a clean session ({@link Session#hasPendingChanges()} should return 20 * false) and saves it once the changes have been done. Thus the session can be 21 * rolled back if an exception occurs. 22 * 23 * @return true if something as been updated 24 */ 25 public boolean prepareJcrTree(Session session); 26 27 /** 28 * Adds app specific default privileges. 29 * 30 * Expects a clean session ({@link Session#hasPendingChanges()} should return 31 * false} and saves it once the changes have been done. Thus the session can be 32 * rolled back if an exception occurs. 33 * 34 * Warning: no check is done and corresponding privileges are always added, so 35 * only call this when necessary 36 */ 37 public void configurePrivileges(Session session); 38 39 public String getDefaultBasePath(); 40 // public void importResources(Session session, Map<String, URI> resources); 41 // 42 // public void importData(Session session, URI uri, Map<String, URI> 43 // dataSources); 44 // 45 // default public void doBackup(Session session, URI uri, Object resource) { 46 // } 47 }