From be7cb3f18ce76bde064cbbc2a38de6386f3498d2 Mon Sep 17 00:00:00 2001 From: bsinou Date: Fri, 17 Feb 2017 21:25:28 +0100 Subject: [PATCH] Enhance refactoring, bug shooting --- .../META-INF/spring/application.xml | 27 ----------- org.argeo.suite.core/META-INF/spring/osgi.xml | 11 ++--- .../META-INF/spring/services.xml | 40 ++++++++++++++++ org.argeo.suite.core/pom.xml | 7 ++- .../DefaultSuiteMaintenanceService.java} | 43 +++++++----------- .../suite/people/PeopleSuiteServiceImpl.java | 4 +- org.argeo.suite.web/META-INF/spring/osgi.xml | 10 ++-- .../META-INF/spring/people.xml | 14 +++--- .../org/argeo/suite/web/DefaultDashboard.java | 6 +-- .../org/argeo/suite/web/DefaultMainPage.java | 6 +-- .../commands/OpenDashboardEditor.java | 2 +- .../parts/AbstractSuiteDashboard.java | 33 ++++++-------- .../parts/DefaultDashboardEditor.java | 14 +++--- .../icons/actions/delete_small.gif | Bin 0 -> 60 bytes .../theme/argeo-classic/workbench-ext.css | 37 ++++++++++----- 15 files changed, 136 insertions(+), 118 deletions(-) delete mode 100644 org.argeo.suite.core/META-INF/spring/application.xml create mode 100644 org.argeo.suite.core/META-INF/spring/services.xml rename org.argeo.suite.core/src/org/argeo/suite/{SuiteMaintenanceService.java => core/DefaultSuiteMaintenanceService.java} (71%) create mode 100644 org.argeo.suite.workbench.rap/theme/argeo-classic/icons/actions/delete_small.gif diff --git a/org.argeo.suite.core/META-INF/spring/application.xml b/org.argeo.suite.core/META-INF/spring/application.xml deleted file mode 100644 index d3af814..0000000 --- a/org.argeo.suite.core/META-INF/spring/application.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/org.argeo.suite.core/META-INF/spring/osgi.xml b/org.argeo.suite.core/META-INF/spring/osgi.xml index 3301729..5335252 100644 --- a/org.argeo.suite.core/META-INF/spring/osgi.xml +++ b/org.argeo.suite.core/META-INF/spring/osgi.xml @@ -7,14 +7,9 @@ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> - - - - - + - - + + diff --git a/org.argeo.suite.core/META-INF/spring/services.xml b/org.argeo.suite.core/META-INF/spring/services.xml new file mode 100644 index 0000000..ffbcc47 --- /dev/null +++ b/org.argeo.suite.core/META-INF/spring/services.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.argeo.suite.core/pom.xml b/org.argeo.suite.core/pom.xml index d64a194..5807828 100644 --- a/org.argeo.suite.core/pom.xml +++ b/org.argeo.suite.core/pom.xml @@ -14,7 +14,12 @@ org.argeo.connect - org.argeo.connect.people.core + org.argeo.connect.tracker + ${version.argeo-connect} + + + org.argeo.connect + org.argeo.connect.people ${version.argeo-connect} diff --git a/org.argeo.suite.core/src/org/argeo/suite/SuiteMaintenanceService.java b/org.argeo.suite.core/src/org/argeo/suite/core/DefaultSuiteMaintenanceService.java similarity index 71% rename from org.argeo.suite.core/src/org/argeo/suite/SuiteMaintenanceService.java rename to org.argeo.suite.core/src/org/argeo/suite/core/DefaultSuiteMaintenanceService.java index ef1ade0..d0a0468 100644 --- a/org.argeo.suite.core/src/org/argeo/suite/SuiteMaintenanceService.java +++ b/org.argeo.suite.core/src/org/argeo/suite/core/DefaultSuiteMaintenanceService.java @@ -1,8 +1,6 @@ -package org.argeo.suite; +package org.argeo.suite.core; -import java.net.URI; import java.util.List; -import java.util.Map; import javax.jcr.Repository; import javax.jcr.RepositoryException; @@ -13,21 +11,19 @@ import javax.jcr.security.Privilege; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.connect.AppMaintenanceService; -import org.argeo.connect.resources.ResourceService; import org.argeo.jcr.JcrUtils; import org.argeo.node.NodeConstants; +import org.argeo.suite.ArgeoSuiteRole; +import org.argeo.suite.SuiteException; /** Make the DJay-ing to provide a full running Suite platform */ -public class SuiteMaintenanceService implements AppMaintenanceService { - private final static Log log = LogFactory.getLog(SuiteMaintenanceService.class); +public class DefaultSuiteMaintenanceService implements AppMaintenanceService { + private final static Log log = LogFactory.getLog(DefaultSuiteMaintenanceService.class); /* DEPENDENCY INJECTION */ private Repository repository; private String workspaceName; - private ResourceService resourceService; private List maintenanceServices; - private Map initResources = null; - private Map legacyResources = null; public void init() { Session adminSession = null; @@ -35,7 +31,6 @@ public class SuiteMaintenanceService implements AppMaintenanceService { adminSession = repository.login(workspaceName); if (prepareJcrTree(adminSession)) { configurePrivileges(adminSession); - importResources(adminSession, null); } } catch (Exception e) { throw new SuiteException("Cannot initialise model", e); @@ -65,14 +60,17 @@ public class SuiteMaintenanceService implements AppMaintenanceService { } for (AppMaintenanceService service : maintenanceServices) hasCHanged |= service.prepareJcrTree(session); - log.info("Repository has been initialised with Argeo Suite model"); + if (hasCHanged) + log.info("Repository has been initialised with Argeo Suite model"); return hasCHanged; } @Override public void configurePrivileges(Session session) { - // TODO check if first init. try { + // Remove unused default JCR rights + JcrUtils.clearAccessControList(session, "/", "everyone"); + JcrUtils.addPrivilege(session, jackRabbitVersionSystemPath, ArgeoSuiteRole.coworker.dn(), Privilege.JCR_READ); // Default configuration of the workspace @@ -80,6 +78,7 @@ public class SuiteMaintenanceService implements AppMaintenanceService { JcrUtils.addPrivilege(session, publicPath, NodeConstants.ROLE_USER, Privilege.JCR_READ); JcrUtils.addPrivilege(session, publicPath, "anonymous", Privilege.JCR_READ); JcrUtils.addPrivilege(session, publicPath, NodeConstants.ROLE_ANONYMOUS, Privilege.JCR_READ); + session.save(); } catch (RepositoryException e) { throw new SuiteException("Cannot build model", e); @@ -89,26 +88,18 @@ public class SuiteMaintenanceService implements AppMaintenanceService { log.info("Access control configured"); } - @Override - public void importResources(Session session, Map initialResources) { - for (AppMaintenanceService service : maintenanceServices) - service.prepareJcrTree(session); + public void destroy() { } - @Override - public void importData(Session session, URI uri, Map resources) { - for (AppMaintenanceService service : maintenanceServices) - service.prepareJcrTree(session); - + /* DEPENDENCY INJECTION */ + public void setRepository(Repository repository) { + this.repository = repository; } - @Override - public void doBackup(Session session, URI uri, Object resource) { - for (AppMaintenanceService service : maintenanceServices) - service.prepareJcrTree(session); + public void setWorkspaceName(String workspaceName) { + this.workspaceName = workspaceName; } - /* DEPENDENCY INJECTION */ public void setMaintenanceServices(List maintenanceServices) { this.maintenanceServices = maintenanceServices; } diff --git a/org.argeo.suite.core/src/org/argeo/suite/people/PeopleSuiteServiceImpl.java b/org.argeo.suite.core/src/org/argeo/suite/people/PeopleSuiteServiceImpl.java index d512bfb..1aaf15b 100644 --- a/org.argeo.suite.core/src/org/argeo/suite/people/PeopleSuiteServiceImpl.java +++ b/org.argeo.suite.core/src/org/argeo/suite/people/PeopleSuiteServiceImpl.java @@ -14,7 +14,7 @@ import org.apache.commons.logging.LogFactory; import org.argeo.connect.people.PeopleConstants; import org.argeo.connect.people.PeopleService; import org.argeo.connect.people.core.PeopleServiceImpl; -import org.argeo.connect.resources.ResourceService; +import org.argeo.connect.resources.ResourcesService; import org.argeo.jcr.JcrUtils; import org.argeo.node.NodeConstants; import org.argeo.suite.ArgeoSuiteRole; @@ -31,7 +31,7 @@ public class PeopleSuiteServiceImpl extends PeopleServiceImpl implements PeopleS /* DEPENDENCY INJECTION */ private Repository repository; private String workspaceName; - private ResourceService resourceService; + private ResourcesService resourceService; private Map initResources = null; private Map legacyResources = null; diff --git a/org.argeo.suite.web/META-INF/spring/osgi.xml b/org.argeo.suite.web/META-INF/spring/osgi.xml index c00bc83..a19f910 100644 --- a/org.argeo.suite.web/META-INF/spring/osgi.xml +++ b/org.argeo.suite.web/META-INF/spring/osgi.xml @@ -7,11 +7,13 @@ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> - - + + + - - + diff --git a/org.argeo.suite.web/META-INF/spring/people.xml b/org.argeo.suite.web/META-INF/spring/people.xml index 036fe60..1376ebf 100644 --- a/org.argeo.suite.web/META-INF/spring/people.xml +++ b/org.argeo.suite.web/META-INF/spring/people.xml @@ -9,7 +9,7 @@ - + @@ -60,11 +60,11 @@ + static-field="org.argeo.connect.resources.ResourcesTypes.RESOURCES_TAG_INSTANCE" /> - + @@ -76,8 +76,8 @@ static-field="org.argeo.connect.people.PeopleTypes.PEOPLE_MAILING_LIST" /> + - @@ -86,15 +86,15 @@ + - + - @@ -104,7 +104,7 @@ - + diff --git a/org.argeo.suite.web/src/org/argeo/suite/web/DefaultDashboard.java b/org.argeo.suite.web/src/org/argeo/suite/web/DefaultDashboard.java index 8b0c78c..e1085f4 100644 --- a/org.argeo.suite.web/src/org/argeo/suite/web/DefaultDashboard.java +++ b/org.argeo.suite.web/src/org/argeo/suite/web/DefaultDashboard.java @@ -10,7 +10,7 @@ import org.argeo.cms.util.CmsUtils; import org.argeo.connect.people.PeopleException; import org.argeo.connect.people.PeopleService; import org.argeo.connect.people.web.parts.PeopleSearchCmp; -import org.argeo.connect.resources.ResourceService; +import org.argeo.connect.resources.ResourcesService; import org.argeo.eclipse.ui.EclipseUiUtils; import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; @@ -27,14 +27,14 @@ import org.eclipse.swt.widgets.Label; /** Default dashboard layout for Argeo Suite */ public class DefaultDashboard implements CmsUiProvider { - private ResourceService resourceService; + private ResourcesService resourceService; private PeopleService peopleService; private Map peopleIconPaths; // Local UI Providers // private CmsUiProvider orgPage; - public DefaultDashboard(ResourceService resourceService, PeopleService peopleService, Map peopleIconPaths) { + public DefaultDashboard(ResourcesService resourceService, PeopleService peopleService, Map peopleIconPaths) { this.resourceService = resourceService; this.peopleService = peopleService; this.peopleIconPaths = peopleIconPaths; diff --git a/org.argeo.suite.web/src/org/argeo/suite/web/DefaultMainPage.java b/org.argeo.suite.web/src/org/argeo/suite/web/DefaultMainPage.java index 6c4c74e..d22a5dd 100644 --- a/org.argeo.suite.web/src/org/argeo/suite/web/DefaultMainPage.java +++ b/org.argeo.suite.web/src/org/argeo/suite/web/DefaultMainPage.java @@ -19,7 +19,7 @@ import org.argeo.cms.widgets.auth.CmsLogin; import org.argeo.connect.people.PeopleService; import org.argeo.connect.people.PeopleTypes; import org.argeo.connect.people.web.pages.PeopleDefaultPage; -import org.argeo.connect.resources.ResourceService; +import org.argeo.connect.resources.ResourcesService; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.suite.web.fs.MyFilesBrowserPage; import org.eclipse.swt.SWT; @@ -42,7 +42,7 @@ public class DefaultMainPage implements LifeCycleUiProvider { private CmsUiProvider fsBrowserPage; /* DEPENDENCY INJECTION */ - private ResourceService resourceService; + private ResourcesService resourceService; private PeopleService peopleService; private FileSystemProvider nodeFileSystemProvider; private Map peopleIconPaths; @@ -123,7 +123,7 @@ public class DefaultMainPage implements LifeCycleUiProvider { } /* DEPENDENCY INJECTION */ - public void setResourceService(ResourceService resourceService) { + public void setResourceService(ResourcesService resourceService) { this.resourceService = resourceService; } diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/commands/OpenDashboardEditor.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/commands/OpenDashboardEditor.java index 6f335cc..6a9ef57 100644 --- a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/commands/OpenDashboardEditor.java +++ b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/commands/OpenDashboardEditor.java @@ -5,7 +5,7 @@ import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; -import org.argeo.connect.people.workbench.rap.editors.util.EntityEditorInput; +import org.argeo.connect.ui.workbench.parts.EntityEditorInput; import org.argeo.jcr.JcrUtils; import org.argeo.node.NodeUtils; import org.argeo.suite.SuiteException; diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/AbstractSuiteDashboard.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/AbstractSuiteDashboard.java index e18d202..f356ca2 100644 --- a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/AbstractSuiteDashboard.java +++ b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/AbstractSuiteDashboard.java @@ -9,14 +9,13 @@ import javax.jcr.Session; import org.argeo.cms.ui.workbench.util.CommandUtils; import org.argeo.cms.util.CmsUtils; +import org.argeo.connect.activities.ActivitiesService; import org.argeo.connect.documents.DocumentsService; -import org.argeo.connect.resources.ResourceService; -import org.argeo.connect.activities.ActivityService; -import org.argeo.connect.activities.ActivitiesTypes; import org.argeo.connect.people.PeopleService; -import org.argeo.connect.people.workbench.rap.PeopleStyles; -import org.argeo.connect.people.workbench.rap.editors.util.EntityEditorInput; +import org.argeo.connect.resources.ResourcesService; +import org.argeo.connect.ui.ConnectUiStyles; import org.argeo.connect.ui.workbench.AppWorkbenchService; +import org.argeo.connect.ui.workbench.parts.EntityEditorInput; import org.argeo.connect.util.ConnectJcrUtils; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.jcr.JcrUtils; @@ -41,8 +40,8 @@ public abstract class AbstractSuiteDashboard extends EditorPart { // DEPENDENCY INJECTION private Repository repository; - private ResourceService resourceService; - private ActivityService activityService; + private ResourcesService resourceService; + private ActivitiesService activityService; private PeopleService peopleService; private DocumentsService documentsService; private AppWorkbenchService appWorkbenchService; @@ -106,20 +105,20 @@ public abstract class AbstractSuiteDashboard extends EditorPart { gd.widthHint = widthHint; gd.heightHint = heightHint; gadgetCmp.setLayoutData(gd); - CmsUtils.style(gadgetCmp, PeopleStyles.PEOPLE_CLASS_GADGET); + CmsUtils.style(gadgetCmp, ConnectUiStyles.GADGET_BOX); return gadgetCmp; } protected Composite createGadgetTitleCmp(Composite parent, String title) { Composite titleCmp = toolkit.createComposite(parent, SWT.BACKGROUND | SWT.INHERIT_NONE); - CmsUtils.style(titleCmp, PeopleStyles.GADGET_HEADER); + CmsUtils.style(titleCmp, ConnectUiStyles.GADGET_HEADER); titleCmp.setBackground(null); GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false); titleCmp.setLayoutData(gd); titleCmp.setLayout(new GridLayout()); Label titleLbl = toolkit.createLabel(titleCmp, title + " ", SWT.BOLD); - CmsUtils.style(titleLbl, PeopleStyles.GADGET_HEADER); + CmsUtils.style(titleLbl, ConnectUiStyles.GADGET_HEADER); titleLbl.setBackground(null); return titleCmp; } @@ -187,11 +186,11 @@ public abstract class AbstractSuiteDashboard extends EditorPart { return session; } - public ResourceService getResourceService() { + public ResourcesService getResourceService() { return resourceService; } - - protected ActivityService getActivityService() { + + protected ActivitiesService getActivityService() { return activityService; } @@ -203,7 +202,6 @@ public abstract class AbstractSuiteDashboard extends EditorPart { return documentsService; } - protected AppWorkbenchService getAppWorkbenchService() { return appWorkbenchService; } @@ -221,11 +219,11 @@ public abstract class AbstractSuiteDashboard extends EditorPart { this.repository = repository; } - public void setResourceService(ResourceService resourceService) { + public void setResourceService(ResourcesService resourceService) { this.resourceService = resourceService; } - - public void setActivityService(ActivityService activityService) { + + public void setActivityService(ActivitiesService activityService) { this.activityService = activityService; } @@ -237,7 +235,6 @@ public abstract class AbstractSuiteDashboard extends EditorPart { this.peopleService = peopleService; } - public void setAppWorkbenchService(AppWorkbenchService appWorkbenchService) { this.appWorkbenchService = appWorkbenchService; } diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/DefaultDashboardEditor.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/DefaultDashboardEditor.java index e45e068..a9dd0e5 100644 --- a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/DefaultDashboardEditor.java +++ b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/parts/DefaultDashboardEditor.java @@ -8,8 +8,8 @@ import org.apache.commons.logging.LogFactory; import org.argeo.connect.ConnectConstants; import org.argeo.connect.activities.ActivitiesTypes; import org.argeo.connect.people.PeopleTypes; -import org.argeo.connect.people.workbench.rap.PeopleRapUtils; import org.argeo.connect.resources.ResourcesTypes; +import org.argeo.connect.ui.workbench.ConnectWorkbenchUtils; import org.argeo.connect.ui.workbench.Refreshable; import org.argeo.connect.util.ConnectJcrUtils; import org.argeo.eclipse.ui.EclipseUiUtils; @@ -83,22 +83,22 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re createGadgetTitleCmp(parent, "Contacts"); Composite bodyCmp = createGadgetBodyCmp(parent); - PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Persons", + ConnectWorkbenchUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Persons", PeopleTypes.PEOPLE_PERSON, getPeopleService().getBasePath(PeopleTypes.PEOPLE_PERSON)); - PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Organisations", + ConnectWorkbenchUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Organisations", PeopleTypes.PEOPLE_ORG, getPeopleService().getBasePath(PeopleTypes.PEOPLE_ORG)); Node tagParent = getResourceService().getTagLikeResourceParent(getSession(), PeopleTypes.PEOPLE_MAILING_LIST); - PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Mailing lists", + ConnectWorkbenchUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Mailing lists", PeopleTypes.PEOPLE_MAILING_LIST, ConnectJcrUtils.getPath(tagParent)); - PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Tasks", + ConnectWorkbenchUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Tasks", ActivitiesTypes.ACTIVITIES_TASK, getPeopleService().getBasePath(null)); tagParent = getResourceService().getTagLikeResourceParent(getSession(), ConnectConstants.RESOURCE_TAG); - PeopleRapUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Tags", - ResourcesTypes.PEOPLE_TAG_INSTANCE, ConnectJcrUtils.getPath(tagParent)); + ConnectWorkbenchUtils.createOpenSearchEditorLink(getAppWorkbenchService(), bodyCmp, "Tags", + ResourcesTypes.RESOURCES_TAG_INSTANCE, ConnectJcrUtils.getPath(tagParent)); } } diff --git a/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/actions/delete_small.gif b/org.argeo.suite.workbench.rap/theme/argeo-classic/icons/actions/delete_small.gif new file mode 100644 index 0000000000000000000000000000000000000000..df0b869b6f07616c47184dd33ed821730640f8ad GIT binary patch literal 60 zcmZ?wbhEHb