From be15527d4b08ea624905855c125db16037e3aedb Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 7 Mar 2024 16:24:01 +0100 Subject: [PATCH 01/16] Adapt to changes in Argeo Build and Argeo Commons --- sdk/argeo-build | 2 +- .../src/org/argeo/app/jface/JFaceUtils.java | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 swt/org.argeo.app.ui/src/org/argeo/app/jface/JFaceUtils.java diff --git a/sdk/argeo-build b/sdk/argeo-build index 6f8e29e..e021d17 160000 --- a/sdk/argeo-build +++ b/sdk/argeo-build @@ -1 +1 @@ -Subproject commit 6f8e29e850f9fcfa5149e296e650355fab930752 +Subproject commit e021d17c09f8586a68177e9eb40d9caa088c37b1 diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/jface/JFaceUtils.java b/swt/org.argeo.app.ui/src/org/argeo/app/jface/JFaceUtils.java new file mode 100644 index 0000000..3e633bc --- /dev/null +++ b/swt/org.argeo.app.ui/src/org/argeo/app/jface/JFaceUtils.java @@ -0,0 +1,22 @@ +package org.argeo.app.jface; + +import org.eclipse.jface.viewers.AbstractTableViewer; +import org.eclipse.jface.viewers.ColumnViewer; +import org.eclipse.jface.viewers.ColumnViewerToolTipSupport; +import org.eclipse.jface.viewers.Viewer; + +/** Utilities around JFace. */ +public class JFaceUtils { + /** + * TootlTip support is supported only for {@link AbstractTableViewer} in RAP + */ + public static void enableToolTipSupport(Viewer viewer) { + if (viewer instanceof ColumnViewer) + ColumnViewerToolTipSupport.enableFor((ColumnViewer) viewer); + } + + /** singleton */ + private JFaceUtils() { + + } +} -- 2.30.2 From ea3efa674350c0d6b43b64b0fec1128389bbb37c Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Fri, 8 Mar 2024 22:01:53 +0100 Subject: [PATCH 02/16] Make subframework compatible --- .../argeo/app/core/SuiteContentNamespace.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java b/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java index 6b5ab3c..ec77eda 100644 --- a/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java +++ b/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java @@ -1,6 +1,7 @@ package org.argeo.app.core; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.Objects; @@ -10,7 +11,8 @@ public enum SuiteContentNamespace implements ContentNamespace { // // ARGEO // - ENTITY("entity", "http://www.argeo.org/ns/entity", "/org/argeo/app/api/entity.xsd", null), + ENTITY("entity", "http://www.argeo.org/ns/entity", + "platform:/plugin/org.argeo.app.api/org/argeo/app/api/entity.xsd", null), // ARGEO_DBK("argeodbk", "http://www.argeo.org/ns/argeodbk", null, null), // @@ -46,7 +48,10 @@ public enum SuiteContentNamespace implements ContentNamespace { ODK("odk", "http://www.opendatakit.org/xforms", null, null), // WGS84("geo", "http://www.w3.org/2003/01/geo/wgs84_pos#", null, null), + // Re-add XML in order to solve import issue with xlink + XML("xml", "http://www.w3.org/XML/1998/namespace", "xml.xsd", "http://www.w3.org/2001/xml.xsd"), // + ; private final static String RESOURCE_BASE = "/org/argeo/app/core/schemas/"; @@ -62,10 +67,19 @@ public enum SuiteContentNamespace implements ContentNamespace { Objects.requireNonNull(namespace); this.namespace = namespace; if (resourceFileName != null) { - if (!resourceFileName.startsWith("/")) - resource = getClass().getResource(RESOURCE_BASE + resourceFileName); - else - resource = getClass().getResource(resourceFileName); + try { + // FIXME workaround when in nested OSGi frameworks + // we should use class path, as before + if (!resourceFileName.startsWith("platform:")) { + resource = URI.create("platform:/plugin/org.argeo.app.core" + RESOURCE_BASE + resourceFileName) + .toURL(); + } else { + resource = URI.create(resourceFileName).toURL(); + } + } catch (MalformedURLException e) { + throw new IllegalArgumentException("Cannot convert " + resourceFileName + " to URL"); + } + Objects.requireNonNull(resource); } if (publicUrl != null) -- 2.30.2 From 1fac2689d2c064f870a9f7f0f014f4dc7cc499d0 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sun, 10 Mar 2024 10:10:29 +0100 Subject: [PATCH 03/16] Enforce entity types priorities per layers --- .../src/org/argeo/app/swt/ux/SwtArgeoApp.java | 140 ++++++------------ 1 file changed, 49 insertions(+), 91 deletions(-) diff --git a/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/SwtArgeoApp.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/SwtArgeoApp.java index 9d3a192..2864163 100644 --- a/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/SwtArgeoApp.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/SwtArgeoApp.java @@ -3,6 +3,7 @@ package org.argeo.app.swt.ux; import static org.argeo.api.cms.ux.CmsView.CMS_VIEW_UID_PROPERTY; import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -15,7 +16,6 @@ import java.util.Set; import java.util.Timer; import java.util.TimerTask; import java.util.TreeMap; -import java.util.TreeSet; import javax.xml.namespace.QName; @@ -357,65 +357,10 @@ public class SwtArgeoApp extends AbstractArgeoApp implements CmsEventSubscriber return layersByPid.get(pid).get(); } - private T findByType(Map> byType, Content content) { + private List listTypes(Map byType, Content content) { if (content == null) - throw new IllegalArgumentException("A node should be provided"); - -// boolean checkJcr = false; -// if (checkJcr && content instanceof JcrContent) { -// Node context = ((JcrContent) content).getJcrNode(); -// try { -// // mixins -// Set types = new TreeSet<>(); -// for (NodeType mixinType : context.getMixinNodeTypes()) { -// String mixinTypeName = mixinType.getName(); -// if (byType.containsKey(mixinTypeName)) { -// types.add(mixinTypeName); -// } -// for (NodeType superType : mixinType.getDeclaredSupertypes()) { -// if (byType.containsKey(superType.getName())) { -// types.add(superType.getName()); -// } -// } -// } -// // primary node type -// NodeType primaryType = context.getPrimaryNodeType(); -// String primaryTypeName = primaryType.getName(); -// if (byType.containsKey(primaryTypeName)) { -// types.add(primaryTypeName); -// } -// for (NodeType superType : primaryType.getDeclaredSupertypes()) { -// if (byType.containsKey(superType.getName())) { -// types.add(superType.getName()); -// } -// } -// // entity type -// if (context.isNodeType(EntityType.entity.get())) { -// if (context.hasProperty(EntityNames.ENTITY_TYPE)) { -// String entityTypeName = context.getProperty(EntityNames.ENTITY_TYPE).getString(); -// if (byType.containsKey(entityTypeName)) { -// types.add(entityTypeName); -// } -// } -// } -// -// if (CmsJcrUtils.isUserHome(context) && byType.containsKey("nt:folder")) {// home node -// types.add("nt:folder"); -// } -// -// if (types.size() == 0) -// throw new IllegalArgumentException( -// "No type found for " + context + " (" + listTypes(context) + ")"); -// String type = types.iterator().next(); -// if (!byType.containsKey(type)) -// throw new IllegalArgumentException("No component found for " + context + " with type " + type); -// return byType.get(type).get(); -// } catch (RepositoryException e) { -// throw new IllegalStateException(e); -// } -// -// } else { - Set types = new TreeSet<>(); + throw new IllegalArgumentException("A content should be provided"); + List types = new ArrayList<>(); if (content.hasContentClass(EntityType.entity.qName())) { String type = content.attr(EntityName.type.qName()); if (type != null && byType.containsKey(type)) @@ -428,14 +373,32 @@ public class SwtArgeoApp extends AbstractArgeoApp implements CmsEventSubscriber if (byType.containsKey(type)) types.add(type); } - if (types.size() == 0) { + if (types.isEmpty()) throw new IllegalArgumentException("No type found for " + content + " (" + objectClasses + ")"); + return types; + } + + private RankedObject findLayerByType(Content content) { + List types = listTypes(layersByType, content); + // we assume the types will be ordered by priority + // (no possible for LDAP at this stage) + for (String type : types) { + if (layersByType.containsKey(type)) + return layersByType.get(type); + } + throw new IllegalArgumentException("No layer found for " + content + " with type " + types); + } + + private RankedObject findUiProviderByType(Content content) { + RankedObject layerRO = findLayerByType(content); + List layerTypes = LangUtils.toStringList(layerRO.getProperties().get(EntityConstants.TYPE)); + List types = listTypes(uiProvidersByType, content); + // layer types are ordered by priority + for (String type : layerTypes) { + if (types.contains(type) && uiProvidersByType.containsKey(type)) + return uiProvidersByType.get(type); } - String type = types.iterator().next(); - if (!byType.containsKey(type)) - throw new IllegalArgumentException("No component found for " + content + " with type " + type); - return byType.get(type).get(); -// } + throw new IllegalArgumentException("No UI provider found for " + content + " with types " + types); } @Override @@ -508,23 +471,25 @@ public class SwtArgeoApp extends AbstractArgeoApp implements CmsEventSubscriber appTitle = ui.getTitle().lead(); if (isTopic(topic, SuiteUxEvent.refreshPart)) { - Content node = getContentFromEvent(ui, event); - if (node == null) + Content content = getContentFromEvent(ui, event); + if (content == null) return; - SwtUiProvider uiProvider = findByType(uiProvidersByType, node); - SwtAppLayer layer = findByType(layersByType, node); - ui.switchToLayer(layer, node); - layer.view(uiProvider, ui.getCurrentWorkArea(), node); - ui.getCmsView().stateChanged(nodeToState(node), stateTitle(appTitle, CmsUxUtils.getTitle(node))); + SwtUiProvider uiProvider = findUiProviderByType(content).get(); + SwtAppLayer layer = findLayerByType(content).get(); + ui.switchToLayer(layer, content); + layer.view(uiProvider, ui.getCurrentWorkArea(), content); + ui.getCmsView().stateChanged(nodeToState(content), + stateTitle(appTitle, CmsUxUtils.getTitle(content))); } else if (isTopic(topic, SuiteUxEvent.openNewPart)) { - Content node = getContentFromEvent(ui, event); - if (node == null) + Content content = getContentFromEvent(ui, event); + if (content == null) return; - SwtUiProvider uiProvider = findByType(uiProvidersByType, node); - SwtAppLayer layer = findByType(layersByType, node); - ui.switchToLayer(layer, node); - layer.open(uiProvider, ui.getCurrentWorkArea(), node); - ui.getCmsView().stateChanged(nodeToState(node), stateTitle(appTitle, CmsUxUtils.getTitle(node))); + SwtUiProvider uiProvider = findUiProviderByType(content).get(); + SwtAppLayer layer = findLayerByType(content).get(); + ui.switchToLayer(layer, content); + layer.open(uiProvider, ui.getCurrentWorkArea(), content); + ui.getCmsView().stateChanged(nodeToState(content), + stateTitle(appTitle, CmsUxUtils.getTitle(content))); } else if (isTopic(topic, SuiteUxEvent.switchLayer)) { String layerId = get(event, SuiteUxEvent.LAYER); if (layerId != null && !"".equals(layerId.trim())) { @@ -555,10 +520,10 @@ public class SwtArgeoApp extends AbstractArgeoApp implements CmsEventSubscriber } } } else { - Content node = getContentFromEvent(ui, event); - if (node != null) { - SwtAppLayer layer = findByType(layersByType, node); - ui.switchToLayer(layer, node); + Content content = getContentFromEvent(ui, event); + if (content != null) { + SwtAppLayer layer = findLayerByType(content).get(); + ui.switchToLayer(layer, content); } } } @@ -589,14 +554,6 @@ public class SwtArgeoApp extends AbstractArgeoApp implements CmsEventSubscriber Content node; if (path == null) { return null; -// // look for a user -// String username = get(event, SuiteUxEvent.USERNAME); -// if (username == null) -// return null; -// User user = cmsUserManager.getUser(username); -// if (user == null) -// return null; -// node = ContentUtils.roleToContent(cmsUserManager, contentSession, user); } else { node = contentSession.get(path); } @@ -662,6 +619,7 @@ public class SwtArgeoApp extends AbstractArgeoApp implements CmsEventSubscriber RankedObject.putIfHigherRank(layersByPid, pid, layer, properties); } if (properties.containsKey(EntityConstants.TYPE)) { + // TODO check consistency of entity types with overridden ? List types = LangUtils.toStringList(properties.get(EntityConstants.TYPE)); for (String type : types) RankedObject.putIfHigherRank(layersByType, type, layer, properties); -- 2.30.2 From 9d1dd85af774c08ca520313c0311fbe37ed3dd32 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sun, 10 Mar 2024 10:11:14 +0100 Subject: [PATCH 04/16] Adapt to changes in Argeo Commons --- .../argeo/app/ui/people/GroupUiProvider.java | 18 ++++++++++-------- .../argeo/app/ui/people/HierarchyUnitPart.java | 6 +++--- .../argeo/app/ui/people/PeopleEntryArea.java | 4 ++-- .../argeo/app/ui/people/PersonUiProvider.java | 12 ++++++------ .../org/argeo/app/ui/people/UserColumn.java | 5 ++--- .../src/org/argeo/app/ui/people/UsersPart.java | 6 +++--- 6 files changed, 26 insertions(+), 25 deletions(-) diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/GroupUiProvider.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/GroupUiProvider.java index 0731e0e..6a805c6 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/GroupUiProvider.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/GroupUiProvider.java @@ -1,5 +1,8 @@ package org.argeo.app.ui.people; +import java.util.ArrayList; +import java.util.List; + import org.argeo.api.acr.Content; import org.argeo.api.acr.ContentSession; import org.argeo.api.acr.ldap.LdapAcrUtils; @@ -7,6 +10,7 @@ import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.api.acr.ldap.LdapObj; import org.argeo.api.acr.spi.ProvidedContent; import org.argeo.api.cms.directory.CmsGroup; +import org.argeo.api.cms.directory.CmsRole; import org.argeo.api.cms.directory.CmsUser; import org.argeo.api.cms.directory.CmsUserManager; import org.argeo.api.cms.directory.HierarchyUnit; @@ -15,7 +19,6 @@ import org.argeo.app.ux.SuiteIcon; import org.argeo.app.ux.SuiteMsg; import org.argeo.cms.CurrentUser; import org.argeo.cms.acr.ContentUtils; -import org.argeo.cms.auth.CmsRole; import org.argeo.cms.swt.CmsSwtTheme; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.Selected; @@ -32,7 +35,6 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; -import org.osgi.service.useradmin.Role; public class GroupUiProvider implements SwtUiProvider { private CmsUserManager cmsUserManager; @@ -47,17 +49,17 @@ public class GroupUiProvider implements SwtUiProvider { ContentSession contentSession = ((ProvidedContent) context).getSession(); TabularPart membersPart = new AbstractTabularPart() { - Role[] roles; + List roles; @Override public int getItemCount() { - roles = context.adapt(CmsGroup.class).getMembers(); - return roles.length; + roles = new ArrayList(context.adapt(CmsGroup.class).getDirectMembers()); + return roles.size(); } @Override public Content getData(int row) { - Role role = roles[row]; + CmsRole role = roles.get(row); Content content = ContentUtils.roleToContent(cmsUserManager, contentSession, role); return content; } @@ -87,7 +89,7 @@ public class GroupUiProvider implements SwtUiProvider { ToolItem addItem = new ToolItem(toolBar, SWT.FLAT); addItem.setImage(theme.getSmallIcon(SuiteIcon.add)); - addItem.setEnabled(CurrentUser.implies(CmsRole.groupAdmin, hierarchyUnit.getBase())); + addItem.setEnabled(CurrentUser.implies(org.argeo.cms.auth.CmsSystemRole.groupAdmin, hierarchyUnit.getBase())); // members view SwtTableView membersView = new SwtTableView<>(area, SWT.BORDER, membersPart); @@ -96,7 +98,7 @@ public class GroupUiProvider implements SwtUiProvider { // CONTROLLER membersPart.onSelected((model) -> { - deleteItem.setEnabled(CurrentUser.implies(CmsRole.groupAdmin, hierarchyUnit.getBase())); + deleteItem.setEnabled(CurrentUser.implies(org.argeo.cms.auth.CmsSystemRole.groupAdmin, hierarchyUnit.getBase())); deleteItem.setData(model); }); diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/HierarchyUnitPart.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/HierarchyUnitPart.java index 8a2059f..784684d 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/HierarchyUnitPart.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/HierarchyUnitPart.java @@ -14,7 +14,7 @@ import org.argeo.api.cms.ux.CmsIcon; import org.argeo.app.ux.SuiteIcon; import org.argeo.cms.CurrentUser; import org.argeo.cms.acr.ContentUtils; -import org.argeo.cms.auth.CmsRole; +import org.argeo.cms.auth.CmsSystemRole; import org.argeo.cms.ux.widgets.AbstractHierarchicalPart; import org.argeo.cms.ux.widgets.Column; @@ -57,11 +57,11 @@ public class HierarchyUnitPart extends AbstractHierarchicalPart { } } else { for (UserDirectory directory : cmsUserManager.getUserDirectories()) { - if (CurrentUser.implies(CmsRole.userAdmin, directory.getBase())) { + if (CurrentUser.implies(CmsSystemRole.userAdmin, directory.getBase())) { visible.add(directory); } for (HierarchyUnit hu : directory.getDirectHierarchyUnits(true)) { - if (CurrentUser.implies(CmsRole.userAdmin, hu.getBase())) { + if (CurrentUser.implies(CmsSystemRole.userAdmin, hu.getBase())) { visible.add(hu); } } diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PeopleEntryArea.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PeopleEntryArea.java index 5a9a3d6..1700c28 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PeopleEntryArea.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PeopleEntryArea.java @@ -15,7 +15,7 @@ import org.argeo.app.ux.SuiteMsg; import org.argeo.app.ux.SuiteUxEvent; import org.argeo.cms.CurrentUser; import org.argeo.cms.acr.ContentUtils; -import org.argeo.cms.auth.CmsRole; +import org.argeo.cms.auth.CmsSystemRole; import org.argeo.cms.jcr.acr.JcrContent; import org.argeo.cms.swt.CmsSwtTheme; import org.argeo.cms.swt.CmsSwtUtils; @@ -136,7 +136,7 @@ public class PeopleEntryArea implements SwtUiProvider, CmsUiProvider { addItem.setEnabled(true); addOrgItem.setEnabled(usersPart.getInput() != null - && CurrentUser.implies(CmsRole.groupAdmin, usersPart.getInput().getBase())); + && CurrentUser.implies(CmsSystemRole.groupAdmin, usersPart.getInput().getBase())); // cmsView.sendEvent(SuiteUxEvent.refreshPart.topic(), SuiteUxEvent // .eventProperties(ContentUtils.hierarchyUnitToContent(contentSession, hierarchyUnit))); } diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java index 2cfb7b7..780512e 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java @@ -22,7 +22,7 @@ import org.argeo.cms.CurrentUser; import org.argeo.cms.Localized; import org.argeo.cms.RoleNameUtils; import org.argeo.cms.SystemRole; -import org.argeo.cms.auth.CmsRole; +import org.argeo.cms.auth.CmsSystemRole; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.Selected; import org.argeo.cms.swt.acr.SwtSection; @@ -77,7 +77,7 @@ public class PersonUiProvider implements SwtUiProvider { roleContext, roles); addRoleCheckBox(rolesSection, hierarchyUnit, user, SuiteMsg.publisherRole, SuiteRole.publisher, roleContext, roles); - addRoleCheckBox(rolesSection, hierarchyUnit, user, SuiteMsg.userAdminRole, CmsRole.userAdmin, + addRoleCheckBox(rolesSection, hierarchyUnit, user, SuiteMsg.userAdminRole, CmsSystemRole.userAdmin, roleContext, roles); } // Composite facetsSection = new Composite(main, SWT.NONE); @@ -89,7 +89,7 @@ public class PersonUiProvider implements SwtUiProvider { // new Label(facetsSection, SWT.NONE).setText(member); // } // } - if (CurrentUser.implies(CmsRole.userAdmin, roleContext)) { + if (CurrentUser.implies(CmsSystemRole.userAdmin, roleContext)) { SwtSection changePasswordSection = new SwtSection(main, SWT.BORDER); changePasswordSection.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1)); changePasswordSection.setLayout(new GridLayout(2, false)); @@ -177,15 +177,15 @@ public class PersonUiProvider implements SwtUiProvider { } } - if (systemRole.equals(CmsRole.userAdmin)) { - if (!CurrentUser.isUserContext(roleContext) && CurrentUser.implies(CmsRole.userAdmin, roleContext)) { + if (systemRole.equals(CmsSystemRole.userAdmin)) { + if (!CurrentUser.isUserContext(roleContext) && CurrentUser.implies(CmsSystemRole.userAdmin, roleContext)) { // a user admin cannot modify the user admins of their own context radio.setEnabled(true); } else { radio.setEnabled(false); } } else { - radio.setEnabled(CurrentUser.implies(CmsRole.userAdmin, roleContext)); + radio.setEnabled(CurrentUser.implies(CmsSystemRole.userAdmin, roleContext)); } radio.addSelectionListener((Selected) (e) -> { diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UserColumn.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UserColumn.java index 2214a15..35610f3 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UserColumn.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UserColumn.java @@ -4,18 +4,17 @@ import org.argeo.api.acr.Content; import org.argeo.api.acr.ldap.LdapAcrUtils; import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.api.acr.ldap.LdapObj; +import org.argeo.api.cms.directory.CmsUser; import org.argeo.api.cms.ux.CmsIcon; import org.argeo.app.ux.SuiteIcon; import org.argeo.cms.CurrentUser; -import org.argeo.cms.auth.UserAdminUtils; import org.argeo.cms.ux.widgets.Column; -import org.osgi.service.useradmin.User; public class UserColumn implements Column { @Override public String getText(Content role) { if (role.hasContentClass(LdapObj.inetOrgPerson)) - return UserAdminUtils.getUserDisplayName(role.adapt(User.class)); + return role.adapt(CmsUser.class).getDisplayName(); else if (role.hasContentClass(LdapObj.organization)) return role.attr(LdapAttr.o); else if (role.hasContentClass(LdapObj.groupOfNames)) { diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UsersPart.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UsersPart.java index c615ebf..aaa8115 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UsersPart.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/UsersPart.java @@ -6,12 +6,12 @@ import java.util.List; import org.argeo.api.acr.Content; import org.argeo.api.acr.ContentSession; import org.argeo.api.acr.ldap.LdapObj; +import org.argeo.api.cms.directory.CmsRole; import org.argeo.api.cms.directory.CmsUserManager; import org.argeo.api.cms.directory.HierarchyUnit; import org.argeo.api.cms.directory.UserDirectory; import org.argeo.cms.acr.ContentUtils; import org.argeo.cms.ux.widgets.DefaultTabularPart; -import org.osgi.service.useradmin.Role; public class UsersPart extends DefaultTabularPart { private ContentSession contentSession; @@ -35,7 +35,7 @@ public class UsersPart extends DefaultTabularPart { List roles = new ArrayList<>(); UserDirectory ud = (UserDirectory) hu.getDirectory(); if (ud.getRealm().isPresent()) { - for (Role r : ud.getHierarchyUnitRoles(ud, null, true)) { + for (CmsRole r : ud.getHierarchyUnitRoles(ud, null, true)) { Content content = ContentUtils.roleToContent(cmsUserManager, contentSession, r); if (content.hasContentClass(LdapObj.inetOrgPerson, LdapObj.organization)) roles.add(content); @@ -45,7 +45,7 @@ public class UsersPart extends DefaultTabularPart { for (HierarchyUnit directChild : hu.getDirectHierarchyUnits(false)) { if (!(directChild.isType(HierarchyUnit.Type.FUNCTIONAL) || directChild.isType(HierarchyUnit.Type.ROLES))) { - for (Role r : ud.getHierarchyUnitRoles(directChild, null, false)) { + for (CmsRole r : ud.getHierarchyUnitRoles(directChild, null, false)) { Content content = ContentUtils.roleToContent(cmsUserManager, contentSession, r); if (content.hasContentClass(LdapObj.inetOrgPerson, LdapObj.organization, LdapObj.groupOfNames)) roles.add(content); -- 2.30.2 From a525acaa99bba0cec12565f167c9f138656b188d Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sun, 10 Mar 2024 10:24:02 +0100 Subject: [PATCH 05/16] Remove legacy map overview --- swt/org.argeo.app.ui/OSGI-INF/overviewMap.xml | 10 ---------- swt/org.argeo.app.ui/bnd.bnd | 1 - 2 files changed, 11 deletions(-) delete mode 100644 swt/org.argeo.app.ui/OSGI-INF/overviewMap.xml diff --git a/swt/org.argeo.app.ui/OSGI-INF/overviewMap.xml b/swt/org.argeo.app.ui/OSGI-INF/overviewMap.xml deleted file mode 100644 index f459a58..0000000 --- a/swt/org.argeo.app.ui/OSGI-INF/overviewMap.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/swt/org.argeo.app.ui/bnd.bnd b/swt/org.argeo.app.ui/bnd.bnd index dcf439d..fa61333 100644 --- a/swt/org.argeo.app.ui/bnd.bnd +++ b/swt/org.argeo.app.ui/bnd.bnd @@ -19,7 +19,6 @@ OSGI-INF/contentLayer.xml,\ OSGI-INF/documentsFolder.xml,\ OSGI-INF/fsEntryArea.xml,\ OSGI-INF/mapLayer.xml,\ -OSGI-INF/overviewMap.xml,\ OSGI-INF/defaultMap.xml,\ OSGI-INF/wwwLayer.xml,\ OSGI-INF/documentUiProvider.xml,\ -- 2.30.2 From c4cecb1f3b6cbe1b25dafae79e3f17d50d90b9c8 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sun, 10 Mar 2024 10:25:11 +0100 Subject: [PATCH 06/16] Improve logging --- .../src/org/argeo/app/swt/osgi/BundleSvgTheme.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/swt/org.argeo.app.swt/src/org/argeo/app/swt/osgi/BundleSvgTheme.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/osgi/BundleSvgTheme.java index 15a18ae..0c674ed 100644 --- a/swt/org.argeo.app.swt/src/org/argeo/app/swt/osgi/BundleSvgTheme.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/osgi/BundleSvgTheme.java @@ -1,12 +1,13 @@ package org.argeo.app.swt.osgi; +import static java.lang.System.Logger.Level.TRACE; + import java.awt.Color; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.lang.System.Logger; -import java.lang.System.Logger.Level; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -91,7 +92,7 @@ public class BundleSvgTheme extends BundleCmsSwtTheme { try (InputStream imageIn = new ByteArrayInputStream(out.toByteArray())) { imageData = new ImageData(imageIn); } - logger.log(Level.DEBUG, () -> "Generated " + size + "x" + size + " PNG icon from " + path); + logger.log(TRACE, () -> "Generated " + size + "x" + size + " PNG icon from " + path); } catch (IOException | TranscoderException e) { throw new RuntimeException("Cannot transcode SVG " + path, e); } -- 2.30.2 From 616a062e9d061ce91589556624ed622298a21ac7 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 11 Mar 2024 09:00:48 +0100 Subject: [PATCH 07/16] Refactor Argeo APIs --- Makefile | 2 +- {org.argeo.app.api => org.argeo.api.app}/.classpath | 0 {org.argeo.app.api => org.argeo.api.app}/.gitignore | 0 {org.argeo.app.api => org.argeo.api.app}/.project | 2 +- .../META-INF/.gitignore | 0 {org.argeo.app.api => org.argeo.api.app}/bnd.bnd | 0 .../build.properties | 0 .../src/org/argeo/api/app}/AppUserState.java | 2 +- .../src/org/argeo/api/app}/EntityConstants.java | 2 +- .../src/org/argeo/api/app}/EntityDefinition.java | 2 +- .../src/org/argeo/api/app}/EntityMimeType.java | 2 +- .../src/org/argeo/api/app}/EntityName.java | 2 +- .../src/org/argeo/api/app}/EntityNames.java | 2 +- .../src/org/argeo/api/app}/EntityType.java | 2 +- .../src/org/argeo/api/app}/IdRange.java | 2 +- .../src/org/argeo/api/app}/RankedObject.java | 2 +- .../src/org/argeo/api/app}/SuiteRole.java | 4 ++-- .../src/org/argeo/api/app}/Term.java | 2 +- .../src/org/argeo/api/app}/TermsManager.java | 2 +- .../src/org/argeo/api/app}/Typology.java | 2 +- .../src/org/argeo/api/app}/WGS84PosName.java | 2 +- .../src/org/argeo/api/app}/entity.xsd | 0 .../src/org/argeo/api/app}/entityFeature.xsd | 0 org.argeo.app.core/OSGI-INF/termsContentProvider.xml | 2 +- .../src/org/argeo/app/acr/terms/TermContent.java | 2 +- .../org/argeo/app/acr/terms/TermsContentProvider.java | 8 ++++---- .../src/org/argeo/app/acr/terms/TypologyContent.java | 2 +- .../org/argeo/app/core/AbstractEntityDefinition.java | 2 +- .../src/org/argeo/app/core/SuiteContentNamespace.java | 2 +- .../src/org/argeo/app/core/SuiteUtils.java | 4 ++-- .../src/org/argeo/app/docbook/DbkAcrUtils.java | 2 +- org.argeo.app.geo/OSGI-INF/wfsHttpHandler.xml | 2 +- .../src/org/argeo/app/api/geo/FeatureAdapter.java | 2 +- .../src/org/argeo/app/geo/acr/GeoEntityUtils.java | 6 +++--- .../src/org/argeo/app/geo/http/WfsHttpHandler.java | 6 +++--- org.argeo.app.jcr/OSGI-INF/appUserState.xml | 2 +- org.argeo.app.jcr/OSGI-INF/termsManager.xml | 2 +- .../org/argeo/app/jcr/CustomMaintenanceService.java | 2 +- .../src/org/argeo/app/jcr/JcrEntityDefinition.java | 4 ++-- .../src/org/argeo/app/jcr/SuiteJcrUtils.java | 6 +++--- .../src/org/argeo/app/jcr/docbook/DbkJcrUtils.java | 2 +- .../src/org/argeo/app/jcr/odk/OdkJcrUtils.java | 4 ++-- .../src/org/argeo/app/jcr/terms/SuiteTerm.java | 2 +- .../src/org/argeo/app/jcr/terms/SuiteTermsManager.java | 10 +++++----- .../src/org/argeo/app/jcr/terms/SuiteTypology.java | 4 ++-- .../org/argeo/internal/app/jcr/AppUserStateImpl.java | 2 +- .../internal/app/jcr/SuiteMaintenanceService.java | 2 +- .../OSGI-INF/odkSubmissionServlet.xml | 2 +- .../org/argeo/app/servlet/odk/OdkFormListServlet.java | 2 +- .../org/argeo/app/servlet/odk/OdkManifestServlet.java | 6 +++--- .../argeo/app/servlet/odk/OdkSubmissionServlet.java | 2 +- org.argeo.app.servlet.publish/bnd.bnd | 2 +- org.argeo.suite.knowledge/OSGI-INF/swtArgeoApp.xml | 2 +- org.argeo.suite.knowledge/OSGI-INF/termsEntryArea.xml | 2 +- org.argeo.suite.knowledge/bnd.bnd | 2 +- swt/org.argeo.app.swt/bnd.bnd | 2 +- .../src/org/argeo/app/swt/docbook/DbkImageManager.java | 4 ++-- .../src/org/argeo/app/swt/space/SpaceEntryArea.java | 2 +- .../src/org/argeo/app/swt/terms/AbstractTermsPart.java | 6 +++--- .../src/org/argeo/app/swt/terms/MultiTermsPart.java | 4 ++-- .../src/org/argeo/app/swt/terms/SingleTermPart.java | 4 ++-- .../src/org/argeo/app/swt/terms/TermsEntryArea.java | 4 ++-- .../src/org/argeo/app/swt/ux/DefaultLeadPane.java | 2 +- .../src/org/argeo/app/swt/ux/SwtArgeoApp.java | 10 +++++----- swt/org.argeo.app.ui/OSGI-INF/cmsApp.xml | 2 +- .../src/org/argeo/app/ui/RecentItems.java | 2 +- .../src/org/argeo/app/ui/SuiteUiUtils.java | 4 ++-- .../src/org/argeo/app/ui/docbook/DbkImageManager.java | 4 ++-- .../src/org/argeo/app/ui/forms/AbstractTermsPart.java | 6 +++--- .../src/org/argeo/app/ui/forms/MultiTermsPart.java | 4 ++-- .../src/org/argeo/app/ui/forms/SingleTermPart.java | 4 ++-- .../src/org/argeo/app/ui/library/ContentEntryArea.java | 2 +- .../org/argeo/app/ui/library/JcrContentEntryArea.java | 2 +- .../src/org/argeo/app/ui/openlayers/OpenLayersMap.java | 4 ++-- .../src/org/argeo/app/ui/openlayers/OverviewMap.java | 2 +- .../src/org/argeo/app/ui/people/PersonUiProvider.java | 6 +++--- 76 files changed, 108 insertions(+), 108 deletions(-) rename {org.argeo.app.api => org.argeo.api.app}/.classpath (100%) rename {org.argeo.app.api => org.argeo.api.app}/.gitignore (100%) rename {org.argeo.app.api => org.argeo.api.app}/.project (95%) rename {org.argeo.app.api => org.argeo.api.app}/META-INF/.gitignore (100%) rename {org.argeo.app.api => org.argeo.api.app}/bnd.bnd (100%) rename {org.argeo.app.api => org.argeo.api.app}/build.properties (100%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/AppUserState.java (89%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/EntityConstants.java (89%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/EntityDefinition.java (86%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/EntityMimeType.java (97%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/EntityName.java (94%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/EntityNames.java (98%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/EntityType.java (96%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/IdRange.java (99%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/RankedObject.java (99%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/SuiteRole.java (94%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/Term.java (92%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/TermsManager.java (91%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/Typology.java (89%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/WGS84PosName.java (96%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/entity.xsd (100%) rename {org.argeo.app.api/src/org/argeo/app/api => org.argeo.api.app/src/org/argeo/api/app}/entityFeature.xsd (100%) diff --git a/Makefile b/Makefile index e724f9b..134414d 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ uninstall: osgi-uninstall A2_CATEGORY = org.argeo.suite BUNDLES = \ -org.argeo.app.api \ +org.argeo.api.app \ org.argeo.app.core \ org.argeo.app.jcr \ org.argeo.app.geo \ diff --git a/org.argeo.app.api/.classpath b/org.argeo.api.app/.classpath similarity index 100% rename from org.argeo.app.api/.classpath rename to org.argeo.api.app/.classpath diff --git a/org.argeo.app.api/.gitignore b/org.argeo.api.app/.gitignore similarity index 100% rename from org.argeo.app.api/.gitignore rename to org.argeo.api.app/.gitignore diff --git a/org.argeo.app.api/.project b/org.argeo.api.app/.project similarity index 95% rename from org.argeo.app.api/.project rename to org.argeo.api.app/.project index 2f51e20..9081a67 100644 --- a/org.argeo.app.api/.project +++ b/org.argeo.api.app/.project @@ -1,6 +1,6 @@ - org.argeo.app.api + org.argeo.api.app diff --git a/org.argeo.app.api/META-INF/.gitignore b/org.argeo.api.app/META-INF/.gitignore similarity index 100% rename from org.argeo.app.api/META-INF/.gitignore rename to org.argeo.api.app/META-INF/.gitignore diff --git a/org.argeo.app.api/bnd.bnd b/org.argeo.api.app/bnd.bnd similarity index 100% rename from org.argeo.app.api/bnd.bnd rename to org.argeo.api.app/bnd.bnd diff --git a/org.argeo.app.api/build.properties b/org.argeo.api.app/build.properties similarity index 100% rename from org.argeo.app.api/build.properties rename to org.argeo.api.app/build.properties diff --git a/org.argeo.app.api/src/org/argeo/app/api/AppUserState.java b/org.argeo.api.app/src/org/argeo/api/app/AppUserState.java similarity index 89% rename from org.argeo.app.api/src/org/argeo/app/api/AppUserState.java rename to org.argeo.api.app/src/org/argeo/api/app/AppUserState.java index bcb0593..9250e99 100644 --- a/org.argeo.app.api/src/org/argeo/app/api/AppUserState.java +++ b/org.argeo.api.app/src/org/argeo/api/app/AppUserState.java @@ -1,4 +1,4 @@ -package org.argeo.app.api; +package org.argeo.api.app; import org.argeo.api.acr.Content; import org.argeo.api.cms.CmsSession; diff --git a/org.argeo.app.api/src/org/argeo/app/api/EntityConstants.java b/org.argeo.api.app/src/org/argeo/api/app/EntityConstants.java similarity index 89% rename from org.argeo.app.api/src/org/argeo/app/api/EntityConstants.java rename to org.argeo.api.app/src/org/argeo/api/app/EntityConstants.java index f04a6d0..a609ad8 100644 --- a/org.argeo.app.api/src/org/argeo/app/api/EntityConstants.java +++ b/org.argeo.api.app/src/org/argeo/api/app/EntityConstants.java @@ -1,4 +1,4 @@ -package org.argeo.app.api; +package org.argeo.api.app; /** Constant related to entities, typically used in an OSGi context. */ public interface EntityConstants { diff --git a/org.argeo.app.api/src/org/argeo/app/api/EntityDefinition.java b/org.argeo.api.app/src/org/argeo/api/app/EntityDefinition.java similarity index 86% rename from org.argeo.app.api/src/org/argeo/app/api/EntityDefinition.java rename to org.argeo.api.app/src/org/argeo/api/app/EntityDefinition.java index 97f7d7c..8ac73fa 100644 --- a/org.argeo.app.api/src/org/argeo/app/api/EntityDefinition.java +++ b/org.argeo.api.app/src/org/argeo/api/app/EntityDefinition.java @@ -1,4 +1,4 @@ -package org.argeo.app.api; +package org.argeo.api.app; /** The definition of an entity, a composite configurable data structure. */ public interface EntityDefinition { diff --git a/org.argeo.app.api/src/org/argeo/app/api/EntityMimeType.java b/org.argeo.api.app/src/org/argeo/api/app/EntityMimeType.java similarity index 97% rename from org.argeo.app.api/src/org/argeo/app/api/EntityMimeType.java rename to org.argeo.api.app/src/org/argeo/api/app/EntityMimeType.java index eaefcd0..1a0f64c 100644 --- a/org.argeo.app.api/src/org/argeo/app/api/EntityMimeType.java +++ b/org.argeo.api.app/src/org/argeo/api/app/EntityMimeType.java @@ -1,4 +1,4 @@ -package org.argeo.app.api; +package org.argeo.api.app; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; diff --git a/org.argeo.app.api/src/org/argeo/app/api/EntityName.java b/org.argeo.api.app/src/org/argeo/api/app/EntityName.java similarity index 94% rename from org.argeo.app.api/src/org/argeo/app/api/EntityName.java rename to org.argeo.api.app/src/org/argeo/api/app/EntityName.java index 4330294..9abfc96 100644 --- a/org.argeo.app.api/src/org/argeo/app/api/EntityName.java +++ b/org.argeo.api.app/src/org/argeo/api/app/EntityName.java @@ -1,4 +1,4 @@ -package org.argeo.app.api; +package org.argeo.api.app; import org.argeo.api.acr.QNamed; diff --git a/org.argeo.app.api/src/org/argeo/app/api/EntityNames.java b/org.argeo.api.app/src/org/argeo/api/app/EntityNames.java similarity index 98% rename from org.argeo.app.api/src/org/argeo/app/api/EntityNames.java rename to org.argeo.api.app/src/org/argeo/api/app/EntityNames.java index b6240b3..5cb69d5 100644 --- a/org.argeo.app.api/src/org/argeo/app/api/EntityNames.java +++ b/org.argeo.api.app/src/org/argeo/api/app/EntityNames.java @@ -1,4 +1,4 @@ -package org.argeo.app.api; +package org.argeo.api.app; import org.argeo.api.acr.ldap.LdapAttr; diff --git a/org.argeo.app.api/src/org/argeo/app/api/EntityType.java b/org.argeo.api.app/src/org/argeo/api/app/EntityType.java similarity index 96% rename from org.argeo.app.api/src/org/argeo/app/api/EntityType.java rename to org.argeo.api.app/src/org/argeo/api/app/EntityType.java index 8a258eb..929045a 100644 --- a/org.argeo.app.api/src/org/argeo/app/api/EntityType.java +++ b/org.argeo.api.app/src/org/argeo/api/app/EntityType.java @@ -1,4 +1,4 @@ -package org.argeo.app.api; +package org.argeo.api.app; import org.argeo.api.acr.QNamed; diff --git a/org.argeo.app.api/src/org/argeo/app/api/IdRange.java b/org.argeo.api.app/src/org/argeo/api/app/IdRange.java similarity index 99% rename from org.argeo.app.api/src/org/argeo/app/api/IdRange.java rename to org.argeo.api.app/src/org/argeo/api/app/IdRange.java index e47eb5e..c70e96a 100644 --- a/org.argeo.app.api/src/org/argeo/app/api/IdRange.java +++ b/org.argeo.api.app/src/org/argeo/api/app/IdRange.java @@ -1,4 +1,4 @@ -package org.argeo.app.api; +package org.argeo.api.app; import java.util.HashSet; import java.util.Set; diff --git a/org.argeo.app.api/src/org/argeo/app/api/RankedObject.java b/org.argeo.api.app/src/org/argeo/api/app/RankedObject.java similarity index 99% rename from org.argeo.app.api/src/org/argeo/app/api/RankedObject.java rename to org.argeo.api.app/src/org/argeo/api/app/RankedObject.java index fab42d7..e9c47ce 100644 --- a/org.argeo.app.api/src/org/argeo/app/api/RankedObject.java +++ b/org.argeo.api.app/src/org/argeo/api/app/RankedObject.java @@ -1,4 +1,4 @@ -package org.argeo.app.api; +package org.argeo.api.app; import java.util.Map; diff --git a/org.argeo.app.api/src/org/argeo/app/api/SuiteRole.java b/org.argeo.api.app/src/org/argeo/api/app/SuiteRole.java similarity index 94% rename from org.argeo.app.api/src/org/argeo/app/api/SuiteRole.java rename to org.argeo.api.app/src/org/argeo/api/app/SuiteRole.java index 5a2fc6b..07f2499 100644 --- a/org.argeo.app.api/src/org/argeo/app/api/SuiteRole.java +++ b/org.argeo.api.app/src/org/argeo/api/app/SuiteRole.java @@ -1,4 +1,4 @@ -package org.argeo.app.api; +package org.argeo.api.app; import javax.xml.namespace.QName; @@ -6,7 +6,7 @@ import org.argeo.api.acr.ArgeoNamespace; import org.argeo.api.acr.ContentName; import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.api.cms.CmsConstants; -import org.argeo.cms.SystemRole; +import org.argeo.api.cms.auth.SystemRole; /** Standard suite system roles. */ public enum SuiteRole implements SystemRole { diff --git a/org.argeo.app.api/src/org/argeo/app/api/Term.java b/org.argeo.api.app/src/org/argeo/api/app/Term.java similarity index 92% rename from org.argeo.app.api/src/org/argeo/app/api/Term.java rename to org.argeo.api.app/src/org/argeo/api/app/Term.java index 5a7f09e..18ee8e2 100644 --- a/org.argeo.app.api/src/org/argeo/app/api/Term.java +++ b/org.argeo.api.app/src/org/argeo/api/app/Term.java @@ -1,4 +1,4 @@ -package org.argeo.app.api; +package org.argeo.api.app; import java.util.List; diff --git a/org.argeo.app.api/src/org/argeo/app/api/TermsManager.java b/org.argeo.api.app/src/org/argeo/api/app/TermsManager.java similarity index 91% rename from org.argeo.app.api/src/org/argeo/app/api/TermsManager.java rename to org.argeo.api.app/src/org/argeo/api/app/TermsManager.java index 03e1150..dadaf9a 100644 --- a/org.argeo.app.api/src/org/argeo/app/api/TermsManager.java +++ b/org.argeo.api.app/src/org/argeo/api/app/TermsManager.java @@ -1,4 +1,4 @@ -package org.argeo.app.api; +package org.argeo.api.app; import java.util.List; import java.util.Set; diff --git a/org.argeo.app.api/src/org/argeo/app/api/Typology.java b/org.argeo.api.app/src/org/argeo/api/app/Typology.java similarity index 89% rename from org.argeo.app.api/src/org/argeo/app/api/Typology.java rename to org.argeo.api.app/src/org/argeo/api/app/Typology.java index f57e692..ea560a9 100644 --- a/org.argeo.app.api/src/org/argeo/app/api/Typology.java +++ b/org.argeo.api.app/src/org/argeo/api/app/Typology.java @@ -1,4 +1,4 @@ -package org.argeo.app.api; +package org.argeo.api.app; import java.util.List; diff --git a/org.argeo.app.api/src/org/argeo/app/api/WGS84PosName.java b/org.argeo.api.app/src/org/argeo/api/app/WGS84PosName.java similarity index 96% rename from org.argeo.app.api/src/org/argeo/app/api/WGS84PosName.java rename to org.argeo.api.app/src/org/argeo/api/app/WGS84PosName.java index 4ba1a13..929e98d 100644 --- a/org.argeo.app.api/src/org/argeo/app/api/WGS84PosName.java +++ b/org.argeo.api.app/src/org/argeo/api/app/WGS84PosName.java @@ -1,4 +1,4 @@ -package org.argeo.app.api; +package org.argeo.api.app; import org.argeo.api.acr.QNamed; diff --git a/org.argeo.app.api/src/org/argeo/app/api/entity.xsd b/org.argeo.api.app/src/org/argeo/api/app/entity.xsd similarity index 100% rename from org.argeo.app.api/src/org/argeo/app/api/entity.xsd rename to org.argeo.api.app/src/org/argeo/api/app/entity.xsd diff --git a/org.argeo.app.api/src/org/argeo/app/api/entityFeature.xsd b/org.argeo.api.app/src/org/argeo/api/app/entityFeature.xsd similarity index 100% rename from org.argeo.app.api/src/org/argeo/app/api/entityFeature.xsd rename to org.argeo.api.app/src/org/argeo/api/app/entityFeature.xsd diff --git a/org.argeo.app.core/OSGI-INF/termsContentProvider.xml b/org.argeo.app.core/OSGI-INF/termsContentProvider.xml index 4d5a1d2..2a1d10e 100644 --- a/org.argeo.app.core/OSGI-INF/termsContentProvider.xml +++ b/org.argeo.app.core/OSGI-INF/termsContentProvider.xml @@ -1,7 +1,7 @@ - + diff --git a/org.argeo.app.core/src/org/argeo/app/acr/terms/TermContent.java b/org.argeo.app.core/src/org/argeo/app/acr/terms/TermContent.java index 672f66f..2cc5fb5 100644 --- a/org.argeo.app.core/src/org/argeo/app/acr/terms/TermContent.java +++ b/org.argeo.app.core/src/org/argeo/app/acr/terms/TermContent.java @@ -8,7 +8,7 @@ import org.argeo.api.acr.Content; import org.argeo.api.acr.NamespaceUtils; import org.argeo.api.acr.spi.ContentProvider; import org.argeo.api.acr.spi.ProvidedSession; -import org.argeo.app.api.Term; +import org.argeo.api.app.Term; import org.argeo.cms.acr.AbstractContent; public class TermContent extends AbstractContent { diff --git a/org.argeo.app.core/src/org/argeo/app/acr/terms/TermsContentProvider.java b/org.argeo.app.core/src/org/argeo/app/acr/terms/TermsContentProvider.java index 2d7a5d1..8e58667 100644 --- a/org.argeo.app.core/src/org/argeo/app/acr/terms/TermsContentProvider.java +++ b/org.argeo.app.core/src/org/argeo/app/acr/terms/TermsContentProvider.java @@ -7,10 +7,10 @@ import org.argeo.api.acr.Content; import org.argeo.api.acr.ContentNotFoundException; import org.argeo.api.acr.spi.ProvidedContent; import org.argeo.api.acr.spi.ProvidedSession; -import org.argeo.app.api.EntityType; -import org.argeo.app.api.Term; -import org.argeo.app.api.TermsManager; -import org.argeo.app.api.Typology; +import org.argeo.api.app.EntityType; +import org.argeo.api.app.Term; +import org.argeo.api.app.TermsManager; +import org.argeo.api.app.Typology; import org.argeo.cms.acr.AbstractSimpleContentProvider; import org.argeo.cms.acr.ContentUtils; diff --git a/org.argeo.app.core/src/org/argeo/app/acr/terms/TypologyContent.java b/org.argeo.app.core/src/org/argeo/app/acr/terms/TypologyContent.java index 63bb8a3..d4b0c00 100644 --- a/org.argeo.app.core/src/org/argeo/app/acr/terms/TypologyContent.java +++ b/org.argeo.app.core/src/org/argeo/app/acr/terms/TypologyContent.java @@ -8,7 +8,7 @@ import org.argeo.api.acr.Content; import org.argeo.api.acr.NamespaceUtils; import org.argeo.api.acr.spi.ContentProvider; import org.argeo.api.acr.spi.ProvidedSession; -import org.argeo.app.api.Typology; +import org.argeo.api.app.Typology; import org.argeo.cms.acr.AbstractContent; public class TypologyContent extends AbstractContent { diff --git a/org.argeo.app.core/src/org/argeo/app/core/AbstractEntityDefinition.java b/org.argeo.app.core/src/org/argeo/app/core/AbstractEntityDefinition.java index 7e10bf0..7ccabd1 100644 --- a/org.argeo.app.core/src/org/argeo/app/core/AbstractEntityDefinition.java +++ b/org.argeo.app.core/src/org/argeo/app/core/AbstractEntityDefinition.java @@ -1,6 +1,6 @@ package org.argeo.app.core; -import org.argeo.app.api.EntityDefinition; +import org.argeo.api.app.EntityDefinition; public abstract class AbstractEntityDefinition implements EntityDefinition { diff --git a/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java b/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java index ec77eda..ecb07c9 100644 --- a/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java +++ b/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java @@ -12,7 +12,7 @@ public enum SuiteContentNamespace implements ContentNamespace { // ARGEO // ENTITY("entity", "http://www.argeo.org/ns/entity", - "platform:/plugin/org.argeo.app.api/org/argeo/app/api/entity.xsd", null), + "platform:/plugin/org.argeo.app.api/org/argeo/api/app/entity.xsd", null), // ARGEO_DBK("argeodbk", "http://www.argeo.org/ns/argeodbk", null, null), // diff --git a/org.argeo.app.core/src/org/argeo/app/core/SuiteUtils.java b/org.argeo.app.core/src/org/argeo/app/core/SuiteUtils.java index 7b614a7..adaf510 100644 --- a/org.argeo.app.core/src/org/argeo/app/core/SuiteUtils.java +++ b/org.argeo.app.core/src/org/argeo/app/core/SuiteUtils.java @@ -8,8 +8,8 @@ import javax.xml.namespace.QName; import org.argeo.api.acr.Content; import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.api.acr.ldap.LdapObj; -import org.argeo.app.api.EntityType; -import org.argeo.cms.RoleNameUtils; +import org.argeo.api.app.EntityType; +import org.argeo.api.cms.auth.RoleNameUtils; /** Utilities around the Argeo Suite APIs. */ public class SuiteUtils { diff --git a/org.argeo.app.core/src/org/argeo/app/docbook/DbkAcrUtils.java b/org.argeo.app.core/src/org/argeo/app/docbook/DbkAcrUtils.java index 8a92db3..fed027d 100644 --- a/org.argeo.app.core/src/org/argeo/app/docbook/DbkAcrUtils.java +++ b/org.argeo.app.core/src/org/argeo/app/docbook/DbkAcrUtils.java @@ -1,7 +1,7 @@ package org.argeo.app.docbook; import org.argeo.api.acr.Content; -import org.argeo.app.api.EntityType; +import org.argeo.api.app.EntityType; /** Utilities when using ACR to access DocBook. */ public class DbkAcrUtils { diff --git a/org.argeo.app.geo/OSGI-INF/wfsHttpHandler.xml b/org.argeo.app.geo/OSGI-INF/wfsHttpHandler.xml index 0347631..8a08f57 100644 --- a/org.argeo.app.geo/OSGI-INF/wfsHttpHandler.xml +++ b/org.argeo.app.geo/OSGI-INF/wfsHttpHandler.xml @@ -6,5 +6,5 @@ - + diff --git a/org.argeo.app.geo/src/org/argeo/app/api/geo/FeatureAdapter.java b/org.argeo.app.geo/src/org/argeo/app/api/geo/FeatureAdapter.java index 69689a9..1dffbab 100644 --- a/org.argeo.app.geo/src/org/argeo/app/api/geo/FeatureAdapter.java +++ b/org.argeo.app.geo/src/org/argeo/app/api/geo/FeatureAdapter.java @@ -4,7 +4,7 @@ import javax.xml.namespace.QName; import org.argeo.api.acr.Content; import org.argeo.api.acr.search.AndFilter; -import org.argeo.app.api.EntityType; +import org.argeo.api.app.EntityType; import org.argeo.app.geo.acr.GeoEntityUtils; import org.locationtech.jts.geom.Geometry; diff --git a/org.argeo.app.geo/src/org/argeo/app/geo/acr/GeoEntityUtils.java b/org.argeo.app.geo/src/org/argeo/app/geo/acr/GeoEntityUtils.java index 162081a..2fd0ad1 100644 --- a/org.argeo.app.geo/src/org/argeo/app/geo/acr/GeoEntityUtils.java +++ b/org.argeo.app.geo/src/org/argeo/app/geo/acr/GeoEntityUtils.java @@ -17,10 +17,10 @@ import org.argeo.api.acr.Content; import org.argeo.api.acr.ContentName; import org.argeo.api.acr.DName; import org.argeo.api.acr.QNamed; +import org.argeo.api.app.EntityName; +import org.argeo.api.app.EntityType; +import org.argeo.api.app.WGS84PosName; import org.argeo.api.cms.CmsLog; -import org.argeo.app.api.EntityName; -import org.argeo.app.api.EntityType; -import org.argeo.app.api.WGS84PosName; import org.argeo.app.geo.GeoJson; import org.argeo.app.geo.JTS; import org.locationtech.jts.geom.Coordinate; diff --git a/org.argeo.app.geo/src/org/argeo/app/geo/http/WfsHttpHandler.java b/org.argeo.app.geo/src/org/argeo/app/geo/http/WfsHttpHandler.java index 47cae24..9c0f8dc 100644 --- a/org.argeo.app.geo/src/org/argeo/app/geo/http/WfsHttpHandler.java +++ b/org.argeo.app.geo/src/org/argeo/app/geo/http/WfsHttpHandler.java @@ -22,10 +22,10 @@ import org.argeo.api.acr.NamespaceUtils; import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.api.acr.search.AndFilter; import org.argeo.api.acr.spi.ProvidedRepository; +import org.argeo.api.app.EntityName; +import org.argeo.api.app.EntityType; +import org.argeo.api.app.WGS84PosName; import org.argeo.api.cms.CmsLog; -import org.argeo.app.api.EntityName; -import org.argeo.app.api.EntityType; -import org.argeo.app.api.WGS84PosName; import org.argeo.app.api.geo.FeatureAdapter; import org.argeo.app.api.geo.WfsKvp; import org.argeo.app.geo.CqlUtils; diff --git a/org.argeo.app.jcr/OSGI-INF/appUserState.xml b/org.argeo.app.jcr/OSGI-INF/appUserState.xml index 481884e..c870036 100644 --- a/org.argeo.app.jcr/OSGI-INF/appUserState.xml +++ b/org.argeo.app.jcr/OSGI-INF/appUserState.xml @@ -2,7 +2,7 @@ - + diff --git a/org.argeo.app.jcr/OSGI-INF/termsManager.xml b/org.argeo.app.jcr/OSGI-INF/termsManager.xml index e6a2abd..e75fec3 100644 --- a/org.argeo.app.jcr/OSGI-INF/termsManager.xml +++ b/org.argeo.app.jcr/OSGI-INF/termsManager.xml @@ -3,6 +3,6 @@ - + diff --git a/org.argeo.app.jcr/src/org/argeo/app/jcr/CustomMaintenanceService.java b/org.argeo.app.jcr/src/org/argeo/app/jcr/CustomMaintenanceService.java index 7fd9d2e..2882be0 100644 --- a/org.argeo.app.jcr/src/org/argeo/app/jcr/CustomMaintenanceService.java +++ b/org.argeo.app.jcr/src/org/argeo/app/jcr/CustomMaintenanceService.java @@ -11,8 +11,8 @@ import javax.jcr.ItemExistsException; import javax.jcr.Node; import javax.jcr.RepositoryException; +import org.argeo.api.app.EntityType; import org.argeo.api.cms.CmsLog; -import org.argeo.app.api.EntityType; import org.argeo.jcr.JcrUtils; import org.argeo.maintenance.AbstractMaintenanceService; diff --git a/org.argeo.app.jcr/src/org/argeo/app/jcr/JcrEntityDefinition.java b/org.argeo.app.jcr/src/org/argeo/app/jcr/JcrEntityDefinition.java index 8795d02..26950a4 100644 --- a/org.argeo.app.jcr/src/org/argeo/app/jcr/JcrEntityDefinition.java +++ b/org.argeo.app.jcr/src/org/argeo/app/jcr/JcrEntityDefinition.java @@ -6,8 +6,8 @@ import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; -import org.argeo.app.api.EntityConstants; -import org.argeo.app.api.EntityDefinition; +import org.argeo.api.app.EntityConstants; +import org.argeo.api.app.EntityDefinition; import org.argeo.cms.jcr.CmsJcrUtils; import org.argeo.jcr.Jcr; import org.osgi.framework.BundleContext; diff --git a/org.argeo.app.jcr/src/org/argeo/app/jcr/SuiteJcrUtils.java b/org.argeo.app.jcr/src/org/argeo/app/jcr/SuiteJcrUtils.java index b846e0e..82589f2 100644 --- a/org.argeo.app.jcr/src/org/argeo/app/jcr/SuiteJcrUtils.java +++ b/org.argeo.app.jcr/src/org/argeo/app/jcr/SuiteJcrUtils.java @@ -13,12 +13,12 @@ import javax.jcr.security.Privilege; import javax.security.auth.x500.X500Principal; import org.argeo.api.acr.ldap.LdapAttr; +import org.argeo.api.app.AppUserState; +import org.argeo.api.app.EntityType; import org.argeo.api.cms.CmsConstants; import org.argeo.api.cms.CmsSession; -import org.argeo.app.api.AppUserState; -import org.argeo.app.api.EntityType; +import org.argeo.api.cms.auth.RoleNameUtils; import org.argeo.app.core.SuiteUtils; -import org.argeo.cms.RoleNameUtils; import org.argeo.jcr.JcrException; import org.argeo.jcr.JcrUtils; diff --git a/org.argeo.app.jcr/src/org/argeo/app/jcr/docbook/DbkJcrUtils.java b/org.argeo.app.jcr/src/org/argeo/app/jcr/docbook/DbkJcrUtils.java index 4454905..c7692dd 100644 --- a/org.argeo.app.jcr/src/org/argeo/app/jcr/docbook/DbkJcrUtils.java +++ b/org.argeo.app.jcr/src/org/argeo/app/jcr/docbook/DbkJcrUtils.java @@ -13,8 +13,8 @@ import javax.jcr.Node; import javax.jcr.NodeIterator; import javax.jcr.RepositoryException; +import org.argeo.api.app.EntityType; import org.argeo.api.cms.CmsLog; -import org.argeo.app.api.EntityType; import org.argeo.app.docbook.DbkAttr; import org.argeo.app.docbook.DbkType; import org.argeo.jcr.Jcr; diff --git a/org.argeo.app.jcr/src/org/argeo/app/jcr/odk/OdkJcrUtils.java b/org.argeo.app.jcr/src/org/argeo/app/jcr/odk/OdkJcrUtils.java index 881523f..3b608e1 100644 --- a/org.argeo.app.jcr/src/org/argeo/app/jcr/odk/OdkJcrUtils.java +++ b/org.argeo.app.jcr/src/org/argeo/app/jcr/odk/OdkJcrUtils.java @@ -15,9 +15,9 @@ import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.nodetype.NodeType; +import org.argeo.api.app.EntityMimeType; +import org.argeo.api.app.EntityType; import org.argeo.api.cms.CmsLog; -import org.argeo.app.api.EntityMimeType; -import org.argeo.app.api.EntityType; import org.argeo.app.odk.OdkNames; import org.argeo.app.odk.OrxListName; import org.argeo.app.odk.OrxManifestName; diff --git a/org.argeo.app.jcr/src/org/argeo/app/jcr/terms/SuiteTerm.java b/org.argeo.app.jcr/src/org/argeo/app/jcr/terms/SuiteTerm.java index db4e4a6..958b545 100644 --- a/org.argeo.app.jcr/src/org/argeo/app/jcr/terms/SuiteTerm.java +++ b/org.argeo.app.jcr/src/org/argeo/app/jcr/terms/SuiteTerm.java @@ -3,7 +3,7 @@ package org.argeo.app.jcr.terms; import java.util.ArrayList; import java.util.List; -import org.argeo.app.api.Term; +import org.argeo.api.app.Term; /** * A single term. Helper to optimise {@link SuiteTermsManager} implementation. diff --git a/org.argeo.app.jcr/src/org/argeo/app/jcr/terms/SuiteTermsManager.java b/org.argeo.app.jcr/src/org/argeo/app/jcr/terms/SuiteTermsManager.java index eba0529..30ecb76 100644 --- a/org.argeo.app.jcr/src/org/argeo/app/jcr/terms/SuiteTermsManager.java +++ b/org.argeo.app.jcr/src/org/argeo/app/jcr/terms/SuiteTermsManager.java @@ -13,12 +13,12 @@ import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; +import org.argeo.api.app.EntityNames; +import org.argeo.api.app.EntityType; +import org.argeo.api.app.Term; +import org.argeo.api.app.TermsManager; +import org.argeo.api.app.Typology; import org.argeo.api.cms.CmsConstants; -import org.argeo.app.api.EntityNames; -import org.argeo.app.api.EntityType; -import org.argeo.app.api.Term; -import org.argeo.app.api.TermsManager; -import org.argeo.app.api.Typology; import org.argeo.cms.jcr.CmsJcrUtils; import org.argeo.jcr.Jcr; import org.argeo.jcr.JcrException; diff --git a/org.argeo.app.jcr/src/org/argeo/app/jcr/terms/SuiteTypology.java b/org.argeo.app.jcr/src/org/argeo/app/jcr/terms/SuiteTypology.java index 0040abb..b0095be 100644 --- a/org.argeo.app.jcr/src/org/argeo/app/jcr/terms/SuiteTypology.java +++ b/org.argeo.app.jcr/src/org/argeo/app/jcr/terms/SuiteTypology.java @@ -5,8 +5,8 @@ import java.util.List; import javax.jcr.Node; -import org.argeo.app.api.Term; -import org.argeo.app.api.Typology; +import org.argeo.api.app.Term; +import org.argeo.api.app.Typology; import org.argeo.jcr.Jcr; /** A typology. Helper to optimise {@link SuiteTermsManager} implementation. */ diff --git a/org.argeo.app.jcr/src/org/argeo/internal/app/jcr/AppUserStateImpl.java b/org.argeo.app.jcr/src/org/argeo/internal/app/jcr/AppUserStateImpl.java index 5b481f7..11c42d3 100644 --- a/org.argeo.app.jcr/src/org/argeo/internal/app/jcr/AppUserStateImpl.java +++ b/org.argeo.app.jcr/src/org/argeo/internal/app/jcr/AppUserStateImpl.java @@ -5,9 +5,9 @@ import javax.jcr.Node; import org.argeo.api.acr.Content; import org.argeo.api.acr.ContentRepository; import org.argeo.api.acr.ContentSession; +import org.argeo.api.app.AppUserState; import org.argeo.api.cms.CmsConstants; import org.argeo.api.cms.CmsSession; -import org.argeo.app.api.AppUserState; import org.argeo.app.jcr.SuiteJcrUtils; import org.argeo.cms.acr.ContentUtils; import org.argeo.cms.jcr.acr.JcrContentProvider; diff --git a/org.argeo.app.jcr/src/org/argeo/internal/app/jcr/SuiteMaintenanceService.java b/org.argeo.app.jcr/src/org/argeo/internal/app/jcr/SuiteMaintenanceService.java index ceeb4f5..b0198a0 100644 --- a/org.argeo.app.jcr/src/org/argeo/internal/app/jcr/SuiteMaintenanceService.java +++ b/org.argeo.app.jcr/src/org/argeo/internal/app/jcr/SuiteMaintenanceService.java @@ -8,8 +8,8 @@ import javax.jcr.Session; import javax.jcr.nodetype.NodeType; import javax.jcr.security.Privilege; +import org.argeo.api.app.EntityType; import org.argeo.api.cms.CmsConstants; -import org.argeo.app.api.EntityType; import org.argeo.jcr.JcrUtils; import org.argeo.maintenance.AbstractMaintenanceService; diff --git a/org.argeo.app.servlet.odk/OSGI-INF/odkSubmissionServlet.xml b/org.argeo.app.servlet.odk/OSGI-INF/odkSubmissionServlet.xml index f2d312e..29ff8ba 100644 --- a/org.argeo.app.servlet.odk/OSGI-INF/odkSubmissionServlet.xml +++ b/org.argeo.app.servlet.odk/OSGI-INF/odkSubmissionServlet.xml @@ -8,5 +8,5 @@ - + diff --git a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkFormListServlet.java b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkFormListServlet.java index 5310542..965082c 100644 --- a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkFormListServlet.java +++ b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkFormListServlet.java @@ -16,9 +16,9 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.argeo.api.app.EntityType; import org.argeo.api.cms.CmsConstants; import org.argeo.api.cms.CmsLog; -import org.argeo.app.api.EntityType; import org.argeo.app.odk.OrxListName; import org.argeo.app.odk.OrxManifestName; import org.argeo.cms.auth.RemoteAuthUtils; diff --git a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java index de88a23..e5e2de6 100644 --- a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java +++ b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java @@ -29,9 +29,9 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.output.NullOutputStream; -import org.argeo.app.api.EntityMimeType; -import org.argeo.app.api.EntityType; -import org.argeo.app.api.WGS84PosName; +import org.argeo.api.app.EntityMimeType; +import org.argeo.api.app.EntityType; +import org.argeo.api.app.WGS84PosName; import org.argeo.app.geo.GeoShapeUtils; import org.argeo.app.odk.OrxManifestName; import org.argeo.cms.auth.RemoteAuthUtils; diff --git a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkSubmissionServlet.java b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkSubmissionServlet.java index da79b5e..68e701d 100644 --- a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkSubmissionServlet.java +++ b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkSubmissionServlet.java @@ -21,9 +21,9 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.http.Part; import org.argeo.api.acr.Content; +import org.argeo.api.app.AppUserState; import org.argeo.api.cms.CmsLog; import org.argeo.api.cms.CmsSession; -import org.argeo.app.api.AppUserState; import org.argeo.app.image.ImageProcessor; import org.argeo.app.odk.OrxType; import org.argeo.app.xforms.FormSubmissionListener; diff --git a/org.argeo.app.servlet.publish/bnd.bnd b/org.argeo.app.servlet.publish/bnd.bnd index 1e0191d..935672f 100644 --- a/org.argeo.app.servlet.publish/bnd.bnd +++ b/org.argeo.app.servlet.publish/bnd.bnd @@ -3,7 +3,7 @@ org.apache.xmlgraphics.image.loader,\ org.osgi.service.http.context,\ javax.jcr.nodetype,\ org.osgi.framework,\ -org.argeo.app.api,\ +org.argeo.api.app,\ org.argeo.cms.acr.xml,\ javax.servlet.*;version="[3,5)",\ * diff --git a/org.argeo.suite.knowledge/OSGI-INF/swtArgeoApp.xml b/org.argeo.suite.knowledge/OSGI-INF/swtArgeoApp.xml index 1d93582..314a0e4 100644 --- a/org.argeo.suite.knowledge/OSGI-INF/swtArgeoApp.xml +++ b/org.argeo.suite.knowledge/OSGI-INF/swtArgeoApp.xml @@ -10,5 +10,5 @@ - + diff --git a/org.argeo.suite.knowledge/OSGI-INF/termsEntryArea.xml b/org.argeo.suite.knowledge/OSGI-INF/termsEntryArea.xml index 07b259d..187f6e2 100644 --- a/org.argeo.suite.knowledge/OSGI-INF/termsEntryArea.xml +++ b/org.argeo.suite.knowledge/OSGI-INF/termsEntryArea.xml @@ -6,5 +6,5 @@ - + diff --git a/org.argeo.suite.knowledge/bnd.bnd b/org.argeo.suite.knowledge/bnd.bnd index 7824184..ef68882 100644 --- a/org.argeo.suite.knowledge/bnd.bnd +++ b/org.argeo.suite.knowledge/bnd.bnd @@ -7,7 +7,7 @@ OSGI-INF/termsEntryArea.xml,\ OSGI-INF/termsLayer.xml,\ Import-Package:\ -org.argeo.app.api,\ +org.argeo.api.app,\ org.argeo.cms.swt.acr;resolution:=optional,\ org.argeo.app.swt.ux;resolution:=optional,\ org.argeo.app.swt.terms;resolution:=optional,\ diff --git a/swt/org.argeo.app.swt/bnd.bnd b/swt/org.argeo.app.swt/bnd.bnd index 21c1d25..1e979d6 100644 --- a/swt/org.argeo.app.swt/bnd.bnd +++ b/swt/org.argeo.app.swt/bnd.bnd @@ -2,6 +2,6 @@ Import-Package:\ org.eclipse.swt,\ org.argeo.api.cms.ux,\ org.argeo.cms.ux.acr,\ -org.argeo.app.api,\ +org.argeo.api.app,\ org.argeo.cms.osgi,\ * \ No newline at end of file diff --git a/swt/org.argeo.app.swt/src/org/argeo/app/swt/docbook/DbkImageManager.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/docbook/DbkImageManager.java index 7154652..6d22d9f 100644 --- a/swt/org.argeo.app.swt/src/org/argeo/app/swt/docbook/DbkImageManager.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/docbook/DbkImageManager.java @@ -11,10 +11,10 @@ import java.nio.charset.StandardCharsets; import org.argeo.api.acr.Content; import org.argeo.api.acr.DName; import org.argeo.api.acr.spi.ProvidedContent; +import org.argeo.api.app.EntityNames; +import org.argeo.api.app.EntityType; import org.argeo.api.cms.ux.Cms2DSize; import org.argeo.api.cms.ux.CmsImageManager; -import org.argeo.app.api.EntityNames; -import org.argeo.app.api.EntityType; import org.argeo.app.docbook.DbkAttr; import org.argeo.app.docbook.DbkType; import org.argeo.cms.acr.SvgAttrs; diff --git a/swt/org.argeo.app.swt/src/org/argeo/app/swt/space/SpaceEntryArea.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/space/SpaceEntryArea.java index 2c28a79..fabab76 100644 --- a/swt/org.argeo.app.swt/src/org/argeo/app/swt/space/SpaceEntryArea.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/space/SpaceEntryArea.java @@ -6,8 +6,8 @@ import java.util.List; import org.argeo.api.acr.Content; import org.argeo.api.acr.NamespaceUtils; import org.argeo.api.acr.spi.ProvidedContent; +import org.argeo.api.app.EntityType; import org.argeo.api.cms.ux.CmsView; -import org.argeo.app.api.EntityType; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.acr.SwtUiProvider; import org.argeo.cms.swt.widgets.SwtTreeView; diff --git a/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/AbstractTermsPart.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/AbstractTermsPart.java index 2ca2a57..bab73db 100644 --- a/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/AbstractTermsPart.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/AbstractTermsPart.java @@ -1,10 +1,10 @@ package org.argeo.app.swt.terms; import org.argeo.api.acr.Content; +import org.argeo.api.app.Term; +import org.argeo.api.app.TermsManager; +import org.argeo.api.app.Typology; import org.argeo.api.cms.ux.CmsIcon; -import org.argeo.app.api.Term; -import org.argeo.app.api.TermsManager; -import org.argeo.app.api.Typology; import org.argeo.cms.Localized; import org.argeo.cms.swt.CmsSwtTheme; import org.argeo.cms.swt.CmsSwtUtils; diff --git a/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/MultiTermsPart.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/MultiTermsPart.java index 80b6f72..252b597 100644 --- a/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/MultiTermsPart.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/MultiTermsPart.java @@ -5,9 +5,9 @@ import java.util.List; import org.argeo.api.acr.Content; import org.argeo.api.acr.NamespaceUtils; +import org.argeo.api.app.Term; +import org.argeo.api.app.TermsManager; import org.argeo.api.cms.CmsLog; -import org.argeo.app.api.Term; -import org.argeo.app.api.TermsManager; import org.argeo.app.ux.SuiteStyle; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.MouseDoubleClick; diff --git a/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/SingleTermPart.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/SingleTermPart.java index 0a1abda..c824173 100644 --- a/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/SingleTermPart.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/SingleTermPart.java @@ -3,8 +3,8 @@ package org.argeo.app.swt.terms; import java.util.List; import org.argeo.api.acr.Content; -import org.argeo.app.api.Term; -import org.argeo.app.api.TermsManager; +import org.argeo.api.app.Term; +import org.argeo.api.app.TermsManager; import org.argeo.app.ux.SuiteStyle; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.MouseDoubleClick; diff --git a/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/TermsEntryArea.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/TermsEntryArea.java index 912c43f..8c645ad 100644 --- a/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/TermsEntryArea.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/TermsEntryArea.java @@ -3,9 +3,9 @@ package org.argeo.app.swt.terms; import org.argeo.api.acr.Content; import org.argeo.api.acr.NamespaceUtils; import org.argeo.api.acr.spi.ProvidedContent; +import org.argeo.api.app.EntityType; +import org.argeo.api.app.TermsManager; import org.argeo.api.cms.ux.CmsView; -import org.argeo.app.api.EntityType; -import org.argeo.app.api.TermsManager; import org.argeo.app.ux.SuiteUxEvent; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.acr.SwtUiProvider; diff --git a/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultLeadPane.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultLeadPane.java index 2b17dee..a46112b 100644 --- a/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultLeadPane.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultLeadPane.java @@ -9,10 +9,10 @@ import java.util.Set; import java.util.TreeMap; import org.argeo.api.acr.Content; +import org.argeo.api.app.RankedObject; import org.argeo.api.cms.CmsLog; import org.argeo.api.cms.ux.CmsIcon; import org.argeo.api.cms.ux.CmsView; -import org.argeo.app.api.RankedObject; import org.argeo.app.core.SuiteUtils; import org.argeo.app.ux.SuiteIcon; import org.argeo.app.ux.SuiteStyle; diff --git a/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/SwtArgeoApp.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/SwtArgeoApp.java index 2864163..d123aa0 100644 --- a/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/SwtArgeoApp.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/SwtArgeoApp.java @@ -22,6 +22,11 @@ import javax.xml.namespace.QName; import org.argeo.api.acr.Content; import org.argeo.api.acr.ContentRepository; import org.argeo.api.acr.spi.ProvidedSession; +import org.argeo.api.app.AppUserState; +import org.argeo.api.app.EntityConstants; +import org.argeo.api.app.EntityName; +import org.argeo.api.app.EntityType; +import org.argeo.api.app.RankedObject; import org.argeo.api.cms.CmsConstants; import org.argeo.api.cms.CmsEvent; import org.argeo.api.cms.CmsEventSubscriber; @@ -30,11 +35,6 @@ import org.argeo.api.cms.CmsSession; import org.argeo.api.cms.ux.CmsTheme; import org.argeo.api.cms.ux.CmsUi; import org.argeo.api.cms.ux.CmsView; -import org.argeo.app.api.AppUserState; -import org.argeo.app.api.EntityConstants; -import org.argeo.app.api.EntityName; -import org.argeo.app.api.EntityType; -import org.argeo.app.api.RankedObject; import org.argeo.app.ux.AbstractArgeoApp; import org.argeo.app.ux.AppUi; import org.argeo.app.ux.SuiteUxEvent; diff --git a/swt/org.argeo.app.ui/OSGI-INF/cmsApp.xml b/swt/org.argeo.app.ui/OSGI-INF/cmsApp.xml index 604f9f9..2c299a3 100644 --- a/swt/org.argeo.app.ui/OSGI-INF/cmsApp.xml +++ b/swt/org.argeo.app.ui/OSGI-INF/cmsApp.xml @@ -10,5 +10,5 @@ - + diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/RecentItems.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/RecentItems.java index 3cc6210..c9bcd5a 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/RecentItems.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/RecentItems.java @@ -15,7 +15,7 @@ import javax.jcr.observation.EventListener; import javax.jcr.query.Query; import javax.jcr.query.QueryResult; -import org.argeo.app.api.EntityType; +import org.argeo.api.app.EntityType; import org.argeo.app.jcr.XPathUtils; import org.argeo.app.ui.widgets.DelayedText; import org.argeo.app.ux.SuiteIcon; diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteUiUtils.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteUiUtils.java index 62463c7..f5cfba5 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteUiUtils.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteUiUtils.java @@ -13,10 +13,10 @@ import javax.jcr.RepositoryException; import javax.jcr.Session; import org.apache.commons.io.IOUtils; +import org.argeo.api.app.EntityNames; +import org.argeo.api.app.EntityType; import org.argeo.api.cms.ux.CmsEditable; import org.argeo.api.cms.ux.CmsStyle; -import org.argeo.app.api.EntityNames; -import org.argeo.app.api.EntityType; import org.argeo.app.swt.ux.SuiteSwtUtils; import org.argeo.app.ux.SuiteUxEvent; import org.argeo.cms.acr.ContentUtils; diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/docbook/DbkImageManager.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/docbook/DbkImageManager.java index fef7a02..3136bf3 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/docbook/DbkImageManager.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/docbook/DbkImageManager.java @@ -17,10 +17,10 @@ import javax.jcr.Node; import javax.jcr.RepositoryException; import javax.jcr.nodetype.NodeType; +import org.argeo.api.app.EntityNames; +import org.argeo.api.app.EntityType; import org.argeo.api.cms.ux.Cms2DSize; import org.argeo.api.cms.ux.CmsImageManager; -import org.argeo.app.api.EntityNames; -import org.argeo.app.api.EntityType; import org.argeo.app.docbook.DbkAttr; import org.argeo.app.docbook.DbkType; import org.argeo.app.jcr.docbook.DbkJcrUtils; diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/forms/AbstractTermsPart.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/forms/AbstractTermsPart.java index b1cadca..788c253 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/forms/AbstractTermsPart.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/forms/AbstractTermsPart.java @@ -2,10 +2,10 @@ package org.argeo.app.ui.forms; import javax.jcr.Item; +import org.argeo.api.app.Term; +import org.argeo.api.app.TermsManager; +import org.argeo.api.app.Typology; import org.argeo.api.cms.ux.CmsIcon; -import org.argeo.app.api.Term; -import org.argeo.app.api.TermsManager; -import org.argeo.app.api.Typology; import org.argeo.cms.Localized; import org.argeo.cms.swt.CmsSwtTheme; import org.argeo.cms.swt.CmsSwtUtils; diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/forms/MultiTermsPart.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/forms/MultiTermsPart.java index 57a6949..6978596 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/forms/MultiTermsPart.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/forms/MultiTermsPart.java @@ -5,9 +5,9 @@ import java.util.List; import javax.jcr.Item; +import org.argeo.api.app.Term; +import org.argeo.api.app.TermsManager; import org.argeo.api.cms.CmsLog; -import org.argeo.app.api.Term; -import org.argeo.app.api.TermsManager; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.SwtEditablePart; import org.argeo.cms.swt.MouseDoubleClick; diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/forms/SingleTermPart.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/forms/SingleTermPart.java index 57086ad..401fe3a 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/forms/SingleTermPart.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/forms/SingleTermPart.java @@ -4,8 +4,8 @@ import java.util.List; import javax.jcr.Item; -import org.argeo.app.api.Term; -import org.argeo.app.api.TermsManager; +import org.argeo.api.app.Term; +import org.argeo.api.app.TermsManager; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.SwtEditablePart; import org.argeo.cms.swt.MouseDoubleClick; diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/library/ContentEntryArea.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/library/ContentEntryArea.java index 4664758..aa939d6 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/library/ContentEntryArea.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/library/ContentEntryArea.java @@ -3,9 +3,9 @@ package org.argeo.app.ui.library; import org.argeo.api.acr.Content; import org.argeo.api.acr.NamespaceUtils; import org.argeo.api.acr.spi.ProvidedContent; +import org.argeo.api.app.EntityType; import org.argeo.api.cms.CmsLog; import org.argeo.api.cms.ux.CmsView; -import org.argeo.app.api.EntityType; import org.argeo.app.ux.SuiteUxEvent; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.acr.SwtUiProvider; diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/library/JcrContentEntryArea.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/library/JcrContentEntryArea.java index 286a4cb..f2e3e3b 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/library/JcrContentEntryArea.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/library/JcrContentEntryArea.java @@ -11,8 +11,8 @@ import javax.jcr.nodetype.NodeType; import javax.jcr.query.Query; import org.argeo.api.acr.Content; +import org.argeo.api.app.EntityType; import org.argeo.api.cms.CmsConstants; -import org.argeo.app.api.EntityType; import org.argeo.app.ui.SuiteUiUtils; import org.argeo.app.ui.widgets.TreeOrSearchArea; import org.argeo.app.ux.SuiteIcon; diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/openlayers/OpenLayersMap.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/openlayers/OpenLayersMap.java index 40b3388..c0994eb 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/openlayers/OpenLayersMap.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/openlayers/OpenLayersMap.java @@ -13,11 +13,11 @@ import javax.jcr.Node; import javax.jcr.RepositoryException; import org.apache.commons.io.IOUtils; -import org.argeo.app.api.EntityNames; -import org.argeo.app.api.EntityType; import org.argeo.app.ux.SuiteUxEvent; import org.argeo.api.cms.CmsLog; import org.argeo.api.cms.ux.CmsView; +import org.argeo.api.app.EntityNames; +import org.argeo.api.app.EntityType; import org.argeo.api.cms.CmsConstants; import org.argeo.cms.swt.CmsSwtUtils; import org.eclipse.swt.SWT; diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/openlayers/OverviewMap.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/openlayers/OverviewMap.java index e4e63b8..f1d3900 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/openlayers/OverviewMap.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/openlayers/OverviewMap.java @@ -11,8 +11,8 @@ import javax.jcr.observation.EventListener; import javax.jcr.query.Query; import org.argeo.api.acr.Content; +import org.argeo.api.app.EntityType; import org.argeo.api.cms.CmsConstants; -import org.argeo.app.api.EntityType; import org.argeo.cms.jcr.acr.JcrContentProvider; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.ui.CmsUiProvider; diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java index 780512e..a7be1ef 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java @@ -8,20 +8,20 @@ import org.argeo.api.acr.Content; import org.argeo.api.acr.QNamed; import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.api.acr.ldap.LdapObj; +import org.argeo.api.app.SuiteRole; +import org.argeo.api.cms.auth.RoleNameUtils; +import org.argeo.api.cms.auth.SystemRole; import org.argeo.api.cms.directory.CmsGroup; import org.argeo.api.cms.directory.CmsUser; import org.argeo.api.cms.directory.CmsUserManager; import org.argeo.api.cms.directory.HierarchyUnit; import org.argeo.api.cms.directory.HierarchyUnit.Type; -import org.argeo.app.api.SuiteRole; import org.argeo.app.swt.ux.SuiteSwtUtils; import org.argeo.app.ux.SuiteMsg; import org.argeo.app.ux.SuiteStyle; import org.argeo.cms.CmsMsg; import org.argeo.cms.CurrentUser; import org.argeo.cms.Localized; -import org.argeo.cms.RoleNameUtils; -import org.argeo.cms.SystemRole; import org.argeo.cms.auth.CmsSystemRole; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.Selected; -- 2.30.2 From 41fef804f5fc161cc51256aa30e15fc048331ab4 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 11 Mar 2024 09:23:19 +0100 Subject: [PATCH 08/16] Refactor Argeo APIs --- .../org/argeo/api/app/geo/FeatureAdapter.java | 18 ++++++++++++++++++ .../{app/api => api/app}/geo/WfsKvp.java | 2 +- .../acr/AbstractFeatureAdapter.java} | 19 +++++++------------ .../argeo/app/geo/http/WfsHttpHandler.java | 4 ++-- 4 files changed, 28 insertions(+), 15 deletions(-) create mode 100644 org.argeo.app.geo/src/org/argeo/api/app/geo/FeatureAdapter.java rename org.argeo.app.geo/src/org/argeo/{app/api => api/app}/geo/WfsKvp.java (93%) rename org.argeo.app.geo/src/org/argeo/app/{api/geo/FeatureAdapter.java => geo/acr/AbstractFeatureAdapter.java} (61%) diff --git a/org.argeo.app.geo/src/org/argeo/api/app/geo/FeatureAdapter.java b/org.argeo.app.geo/src/org/argeo/api/app/geo/FeatureAdapter.java new file mode 100644 index 0000000..e0449e1 --- /dev/null +++ b/org.argeo.app.geo/src/org/argeo/api/app/geo/FeatureAdapter.java @@ -0,0 +1,18 @@ +package org.argeo.api.app.geo; + +import javax.xml.namespace.QName; + +import org.argeo.api.acr.Content; +import org.argeo.api.acr.search.AndFilter; +import org.locationtech.jts.geom.Geometry; + +import jakarta.json.stream.JsonGenerator; + +/** Transform a {@link Content} to an OGC feature. */ +public interface FeatureAdapter { + Geometry getDefaultGeometry(Content c, QName targetFeature); + + void writeProperties(JsonGenerator g, Content content, QName targetFeature); + + void addConstraintsForFeature(AndFilter filter, QName targetFeature); +} diff --git a/org.argeo.app.geo/src/org/argeo/app/api/geo/WfsKvp.java b/org.argeo.app.geo/src/org/argeo/api/app/geo/WfsKvp.java similarity index 93% rename from org.argeo.app.geo/src/org/argeo/app/api/geo/WfsKvp.java rename to org.argeo.app.geo/src/org/argeo/api/app/geo/WfsKvp.java index 166cdf0..a6eb5d7 100644 --- a/org.argeo.app.geo/src/org/argeo/app/api/geo/WfsKvp.java +++ b/org.argeo.app.geo/src/org/argeo/api/app/geo/WfsKvp.java @@ -1,4 +1,4 @@ -package org.argeo.app.api.geo; +package org.argeo.api.app.geo; /** Keys used for WFS KVP (key-value pair) encoding. */ public enum WfsKvp { diff --git a/org.argeo.app.geo/src/org/argeo/app/api/geo/FeatureAdapter.java b/org.argeo.app.geo/src/org/argeo/app/geo/acr/AbstractFeatureAdapter.java similarity index 61% rename from org.argeo.app.geo/src/org/argeo/app/api/geo/FeatureAdapter.java rename to org.argeo.app.geo/src/org/argeo/app/geo/acr/AbstractFeatureAdapter.java index 1dffbab..95e8216 100644 --- a/org.argeo.app.geo/src/org/argeo/app/api/geo/FeatureAdapter.java +++ b/org.argeo.app.geo/src/org/argeo/app/geo/acr/AbstractFeatureAdapter.java @@ -1,17 +1,15 @@ -package org.argeo.app.api.geo; +package org.argeo.app.geo.acr; import javax.xml.namespace.QName; import org.argeo.api.acr.Content; -import org.argeo.api.acr.search.AndFilter; import org.argeo.api.app.EntityType; -import org.argeo.app.geo.acr.GeoEntityUtils; +import org.argeo.api.app.geo.FeatureAdapter; import org.locationtech.jts.geom.Geometry; -import jakarta.json.stream.JsonGenerator; - -public interface FeatureAdapter { - default Geometry getDefaultGeometry(Content c, QName targetFeature) { +public abstract class AbstractFeatureAdapter implements FeatureAdapter { + @Override + public Geometry getDefaultGeometry(Content c, QName targetFeature) { // TODO deal with more defaults // TODO deal with target feature if (c.hasContentClass(EntityType.geopoint)) { @@ -20,11 +18,7 @@ public interface FeatureAdapter { return null; } - void writeProperties(JsonGenerator g, Content content, QName targetFeature); - - void addConstraintsForFeature(AndFilter filter, QName targetFeature); - - static Geometry getGeoPointGeometry(Content c) { + protected Geometry getGeoPointGeometry(Content c) { if (c.hasContentClass(EntityType.geopoint)) { return GeoEntityUtils.toPoint(c); // double latitude = c.get(WGS84PosName.lat, Double.class).get(); @@ -36,4 +30,5 @@ public interface FeatureAdapter { } return null; } + } diff --git a/org.argeo.app.geo/src/org/argeo/app/geo/http/WfsHttpHandler.java b/org.argeo.app.geo/src/org/argeo/app/geo/http/WfsHttpHandler.java index 9c0f8dc..21cc6c4 100644 --- a/org.argeo.app.geo/src/org/argeo/app/geo/http/WfsHttpHandler.java +++ b/org.argeo.app.geo/src/org/argeo/app/geo/http/WfsHttpHandler.java @@ -25,9 +25,9 @@ import org.argeo.api.acr.spi.ProvidedRepository; import org.argeo.api.app.EntityName; import org.argeo.api.app.EntityType; import org.argeo.api.app.WGS84PosName; +import org.argeo.api.app.geo.FeatureAdapter; +import org.argeo.api.app.geo.WfsKvp; import org.argeo.api.cms.CmsLog; -import org.argeo.app.api.geo.FeatureAdapter; -import org.argeo.app.api.geo.WfsKvp; import org.argeo.app.geo.CqlUtils; import org.argeo.app.geo.GeoJson; import org.argeo.app.geo.GeoUtils; -- 2.30.2 From 36ca9480db21d5592f2ef9389f898050902787c0 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 12 Mar 2024 16:50:40 +0100 Subject: [PATCH 09/16] Update Argeo Build --- sdk/argeo-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/argeo-build b/sdk/argeo-build index e021d17..d19e08f 160000 --- a/sdk/argeo-build +++ b/sdk/argeo-build @@ -1 +1 @@ -Subproject commit e021d17c09f8586a68177e9eb40d9caa088c37b1 +Subproject commit d19e08fb6c5bcef35956e91766f00b91294a7352 -- 2.30.2 From 2597dcd88df308069cfe38963ef4f76240b7af34 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 12 Mar 2024 16:51:53 +0100 Subject: [PATCH 10/16] Update argeo-server deploy properties --- sdk/argeo-suite-desktop.properties | 4 +++- sdk/deploy/argeo-server/etc/argeo.d/server/config.ini | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/sdk/argeo-suite-desktop.properties b/sdk/argeo-suite-desktop.properties index 8ada854..7c52288 100644 --- a/sdk/argeo-suite-desktop.properties +++ b/sdk/argeo-suite-desktop.properties @@ -16,10 +16,12 @@ org.argeo.cms.jcr argeo.osgi.start.5=\ org.argeo.app.profile.acr.fs,\ org.argeo.app.core,\ +org.argeo.app.geo,\ org.argeo.app.jcr,\ org.argeo.app.ui,\ org.argeo.app.theme.default,\ -org.argeo.app.geo,\ +org.argeo.app.servlet.publish,\ +org.argeo.app.servlet.odk # Local diff --git a/sdk/deploy/argeo-server/etc/argeo.d/server/config.ini b/sdk/deploy/argeo-server/etc/argeo.d/server/config.ini index 8d9f12c..163a6d5 100644 --- a/sdk/deploy/argeo-server/etc/argeo.d/server/config.ini +++ b/sdk/deploy/argeo-server/etc/argeo.d/server/config.ini @@ -20,6 +20,8 @@ org.argeo.cms.jcr argeo.osgi.start.5=\ org.argeo.app.profile.acr.fs,\ org.argeo.app.core,\ +org.argeo.app.geo,\ +org.argeo.app.jcr,\ org.argeo.app.ui,\ org.argeo.app.theme.default,\ org.argeo.app.servlet.publish,\ -- 2.30.2 From 74cb23159fbccbf375fa829d7974d5936152d677 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 12 Mar 2024 16:52:05 +0100 Subject: [PATCH 11/16] Make XSD loading more robust --- .../org/argeo/app/core/SuiteContentNamespace.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java b/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java index ecb07c9..4645649 100644 --- a/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java +++ b/org.argeo.app.core/src/org/argeo/app/core/SuiteContentNamespace.java @@ -1,11 +1,14 @@ package org.argeo.app.core; +import static java.lang.System.Logger.Level.ERROR; + import java.net.MalformedURLException; import java.net.URI; import java.net.URL; import java.util.Objects; import org.argeo.api.acr.spi.ContentNamespace; +import org.argeo.cms.acr.CmsContentNamespace; public enum SuiteContentNamespace implements ContentNamespace { // @@ -51,7 +54,7 @@ public enum SuiteContentNamespace implements ContentNamespace { // Re-add XML in order to solve import issue with xlink XML("xml", "http://www.w3.org/XML/1998/namespace", "xml.xsd", "http://www.w3.org/2001/xml.xsd"), // - + ; private final static String RESOURCE_BASE = "/org/argeo/app/core/schemas/"; @@ -77,10 +80,13 @@ public enum SuiteContentNamespace implements ContentNamespace { resource = URI.create(resourceFileName).toURL(); } } catch (MalformedURLException e) { - throw new IllegalArgumentException("Cannot convert " + resourceFileName + " to URL"); + resource = null; + System.getLogger(CmsContentNamespace.class.getName()).log(ERROR, + "Cannot load " + resourceFileName + ": " + e.getMessage()); + // throw new IllegalArgumentException("Cannot convert " + resourceFileName + " + // to URL"); } - - Objects.requireNonNull(resource); + // Objects.requireNonNull(resource); } if (publicUrl != null) try { -- 2.30.2 From 4d71adabafd5ba9ccc9dc0aa1aae7df6c04ff087 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 13 Mar 2024 09:02:45 +0100 Subject: [PATCH 12/16] Update Argeo Build --- sdk/argeo-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/argeo-build b/sdk/argeo-build index d19e08f..2c8a570 160000 --- a/sdk/argeo-build +++ b/sdk/argeo-build @@ -1 +1 @@ -Subproject commit d19e08fb6c5bcef35956e91766f00b91294a7352 +Subproject commit 2c8a5704a85d2e8d30d83a65fb6a1b5d0a3a63e1 -- 2.30.2 From 87b103d90113756403d67f33a1e26e3bb485629d Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 13 Mar 2024 09:15:42 +0100 Subject: [PATCH 13/16] Update to released Argeo Build --- sdk/argeo-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/argeo-build b/sdk/argeo-build index 2c8a570..ec9a0b6 160000 --- a/sdk/argeo-build +++ b/sdk/argeo-build @@ -1 +1 @@ -Subproject commit 2c8a5704a85d2e8d30d83a65fb6a1b5d0a3a63e1 +Subproject commit ec9a0b67c92105fc42ec14cdbec7ff9464c6cc3c -- 2.30.2 From 351a8e89926757e93b86502e25dff975e3fb31c8 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 13 Mar 2024 09:24:56 +0100 Subject: [PATCH 14/16] Releasing --- sdk/branches/unstable.bnd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/branches/unstable.bnd b/sdk/branches/unstable.bnd index acbede2..060ef94 100644 --- a/sdk/branches/unstable.bnd +++ b/sdk/branches/unstable.bnd @@ -1,7 +1,7 @@ major=2 minor=3 -micro=23 -qualifier=.next +micro=24 +qualifier= Bundle-Copyright= \ Copyright 2014-2023 Argeo GmbH, \ -- 2.30.2 From c53e0626dc79ac374e691bec83f5ccdc654859f3 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sat, 16 Mar 2024 08:19:09 +0100 Subject: [PATCH 15/16] Releasing --- sdk/branches/testing.bnd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/branches/testing.bnd b/sdk/branches/testing.bnd index a33525c..8c493b7 100644 --- a/sdk/branches/testing.bnd +++ b/sdk/branches/testing.bnd @@ -1,7 +1,7 @@ major=2 minor=1 -micro=31 -qualifier=.next +micro=32 +qualifier= Bundle-Copyright= \ Copyright 2014-2023 Argeo GmbH, \ -- 2.30.2 From 9001de5d2ebcc7f8820a2a2f29f30009d0611f5f Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sat, 16 Mar 2024 10:03:00 +0100 Subject: [PATCH 16/16] Prepare next development cycle --- sdk/branches/testing.bnd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/branches/testing.bnd b/sdk/branches/testing.bnd index 8c493b7..8d587b1 100644 --- a/sdk/branches/testing.bnd +++ b/sdk/branches/testing.bnd @@ -1,7 +1,7 @@ major=2 minor=1 micro=32 -qualifier= +qualifier=.next Bundle-Copyright= \ Copyright 2014-2023 Argeo GmbH, \ -- 2.30.2