From: Mathieu Baudier Date: Mon, 11 Mar 2024 08:00:48 +0000 (+0100) Subject: Refactor Argeo APIs X-Git-Tag: v2.3.24~7 X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=commitdiff_plain;h=616a062e9d061ce91589556624ed622298a21ac7 Refactor Argeo APIs --- 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.api.app/.classpath b/org.argeo.api.app/.classpath new file mode 100644 index 0000000..81fe078 --- /dev/null +++ b/org.argeo.api.app/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/org.argeo.api.app/.gitignore b/org.argeo.api.app/.gitignore new file mode 100644 index 0000000..09e3bc9 --- /dev/null +++ b/org.argeo.api.app/.gitignore @@ -0,0 +1,2 @@ +/bin/ +/target/ diff --git a/org.argeo.api.app/.project b/org.argeo.api.app/.project new file mode 100644 index 0000000..9081a67 --- /dev/null +++ b/org.argeo.api.app/.project @@ -0,0 +1,28 @@ + + + org.argeo.api.app + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/org.argeo.api.app/META-INF/.gitignore b/org.argeo.api.app/META-INF/.gitignore new file mode 100644 index 0000000..4854a41 --- /dev/null +++ b/org.argeo.api.app/META-INF/.gitignore @@ -0,0 +1 @@ +/MANIFEST.MF diff --git a/org.argeo.api.app/bnd.bnd b/org.argeo.api.app/bnd.bnd new file mode 100644 index 0000000..e69de29 diff --git a/org.argeo.api.app/build.properties b/org.argeo.api.app/build.properties new file mode 100644 index 0000000..34d2e4d --- /dev/null +++ b/org.argeo.api.app/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/org.argeo.api.app/src/org/argeo/api/app/AppUserState.java b/org.argeo.api.app/src/org/argeo/api/app/AppUserState.java new file mode 100644 index 0000000..9250e99 --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/AppUserState.java @@ -0,0 +1,9 @@ +package org.argeo.api.app; + +import org.argeo.api.acr.Content; +import org.argeo.api.cms.CmsSession; + +/** Access to content which is specific to a user and their state. */ +public interface AppUserState { + Content getOrCreateSessionDir(CmsSession session); +} diff --git a/org.argeo.api.app/src/org/argeo/api/app/EntityConstants.java b/org.argeo.api.app/src/org/argeo/api/app/EntityConstants.java new file mode 100644 index 0000000..a609ad8 --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/EntityConstants.java @@ -0,0 +1,8 @@ +package org.argeo.api.app; + +/** Constant related to entities, typically used in an OSGi context. */ +public interface EntityConstants { + final static String TYPE = "entity.type"; +// final static String DEFAULT_EDITOR_ID = "entity.defaultEditorId"; + +} diff --git a/org.argeo.api.app/src/org/argeo/api/app/EntityDefinition.java b/org.argeo.api.app/src/org/argeo/api/app/EntityDefinition.java new file mode 100644 index 0000000..8ac73fa --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/EntityDefinition.java @@ -0,0 +1,8 @@ +package org.argeo.api.app; + +/** The definition of an entity, a composite configurable data structure. */ +public interface EntityDefinition { +// String getEditorId(Node entity); + + String getType(); +} diff --git a/org.argeo.api.app/src/org/argeo/api/app/EntityMimeType.java b/org.argeo.api.app/src/org/argeo/api/app/EntityMimeType.java new file mode 100644 index 0000000..1a0f64c --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/EntityMimeType.java @@ -0,0 +1,60 @@ +package org.argeo.api.app; + +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; + +/** Supported mime types. */ +public enum EntityMimeType { + XML("text/xml", "xml"), CSV("text/csv", "csv"); + + private final String mimeType; + private final String[] extensions; + + EntityMimeType(String mimeType, String... extensions) { + this.mimeType = mimeType; + this.extensions = extensions; + } + + public String getMimeType() { + return mimeType; + } + + public String[] getExtensions() { + return extensions; + } + + public String getDefaultExtension() { + if (extensions.length > 0) + return extensions[0]; + else + return null; + } + + public String toHttpContentType(Charset charset) { + if (charset == null) + return mimeType; + return mimeType + "; charset=" + charset.name(); + } + + public String toHttpContentType() { + if (mimeType.startsWith("text/")) { + return toHttpContentType(StandardCharsets.UTF_8); + } else { + return mimeType; + } + } + + public static EntityMimeType find(String mimeType) { + for (EntityMimeType entityMimeType : values()) { + if (entityMimeType.mimeType.equals(mimeType)) + return entityMimeType; + } + return null; + } + + @Override + public String toString() { + return mimeType; + } + +} diff --git a/org.argeo.api.app/src/org/argeo/api/app/EntityName.java b/org.argeo.api.app/src/org/argeo/api/app/EntityName.java new file mode 100644 index 0000000..9abfc96 --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/EntityName.java @@ -0,0 +1,31 @@ +package org.argeo.api.app; + +import org.argeo.api.acr.QNamed; + +/** Names used in the entity namespace http://www.argeo.org/ns/entity. */ +public enum EntityName implements QNamed { + type, relatedTo, // + // time, + date, + // geography + minLat, minLon, maxLat, maxLon, + // geo entities + place, + // + ; + + @Override + public String getDefaultPrefix() { + return "entity"; + } + + public String basePath() { + return '/' + name(); + } + + @Override + public String getNamespace() { + return "http://www.argeo.org/ns/entity"; + } + +} diff --git a/org.argeo.api.app/src/org/argeo/api/app/EntityNames.java b/org.argeo.api.app/src/org/argeo/api/app/EntityNames.java new file mode 100644 index 0000000..5cb69d5 --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/EntityNames.java @@ -0,0 +1,70 @@ +package org.argeo.api.app; + +import org.argeo.api.acr.ldap.LdapAttr; + +/** Constants used to name entity structures. */ +public interface EntityNames { + @Deprecated + final String FORM_BASE = "form"; + final String SUBMISSIONS_BASE = "submissions"; + @Deprecated + final String TERM = "term"; + final String NAME = "name"; + +// final String ENTITY_DEFINITIONS_PATH = "/entity"; + @Deprecated + final String TYPOLOGIES_PATH = "/" + TERM; + /** Administrative units. */ + final String ADM = "adm"; + + @Deprecated + final String ENTITY_TYPE = EntityName.type.get(); + + // GENERIC CONCEPTS +// /** The language which is relevant. */ +// final String XML_LANG = "xml:lang"; + /** The date which is relevant. */ + @Deprecated + final String ENTITY_DATE = EntityName.date.get(); + @Deprecated + final String ENTITY_RELATED_TO = EntityName.relatedTo.get(); + + // DEFAULT FOLDER NAMES + final String MEDIA = "media"; + final String FILES = "files"; + + // LDAP-LIKE ENTITIES + @Deprecated + final String DISPLAY_NAME = LdapAttr.displayName.get(); + // Persons + @Deprecated + final String GIVEN_NAME = LdapAttr.givenName.get(); + @Deprecated + final String SURNAME = LdapAttr.sn.get(); + @Deprecated + final String EMAIL = LdapAttr.mail.get(); + @Deprecated + final String OU = LdapAttr.ou.get(); + + // WGS84 + @Deprecated + final String GEO_LAT = WGS84PosName.lat.get(); + @Deprecated + final String GEO_LONG = WGS84PosName.lon.get(); + @Deprecated + final String GEO_ALT = WGS84PosName.alt.get(); + + // SVG + @Deprecated + final String SVG_WIDTH = "svg:width"; + @Deprecated + final String SVG_HEIGHT = "svg:height"; + @Deprecated + final String SVG_LENGTH = "svg:length"; + @Deprecated + final String SVG_UNIT = "svg:unit"; + @Deprecated + final String SVG_DUR = "svg:dur"; + @Deprecated + final String SVG_DIRECTION = "svg:direction"; +} diff --git a/org.argeo.api.app/src/org/argeo/api/app/EntityType.java b/org.argeo.api.app/src/org/argeo/api/app/EntityType.java new file mode 100644 index 0000000..929045a --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/EntityType.java @@ -0,0 +1,38 @@ +package org.argeo.api.app; + +import org.argeo.api.acr.QNamed; + +/** Types used in the entity namespace http://www.argeo.org/ns/entity. */ +public enum EntityType implements QNamed { + // entity + entity, local, relatedTo, + // structure + space, document, + // typology + typologies, terms, term, + // form + form, formSet, formSubmission, + // graphics + box, + // geography + geopoint, bearing, geobounded, + // ldap + person, user; + + public final static String ENTITY_NAMESPACE_URI = "http://www.argeo.org/ns/entity"; + public final static String ENTITY_DEFAULT_PREFIX = "entity"; + + @Override + public String getDefaultPrefix() { + return ENTITY_DEFAULT_PREFIX; + } + + public String basePath() { + return '/' + name(); + } + + @Override + public String getNamespace() { + return ENTITY_NAMESPACE_URI; + } +} diff --git a/org.argeo.api.app/src/org/argeo/api/app/IdRange.java b/org.argeo.api.app/src/org/argeo/api/app/IdRange.java new file mode 100644 index 0000000..c70e96a --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/IdRange.java @@ -0,0 +1,133 @@ +package org.argeo.api.app; + +import java.util.HashSet; +import java.util.Set; +import java.util.concurrent.ThreadLocalRandom; + +/** A range of numerical IDs (typically numerical uid or gid). */ +public class IdRange { + // see https://systemd.io/UIDS-GIDS/#special-distribution-uid-ranges + final static long MIN_INCLUDED = Long.parseUnsignedLong("66000"); + final static long MAX_EXCLUDED = Long.parseUnsignedLong("4294967294"); + + // We use long as a de facto unsigned int + + /** included */ + private final long min; + /** included */ + private final long max; + + public IdRange(long min, long max) { + this.min = min; + this.max = max; + } + + public IdRange(long minPow10) { + this(minPow10, maxFromMinPow10(minPow10)); + } + + public long getMin() { + return min; + } + + public long getMax() { + return max; + } + + @Override + public int hashCode() { + return (int) min; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof IdRange idRange) { + return min == idRange.min && max == idRange.max; + } else + return false; + } + + @Override + public String toString() { + return "[" + Long.toUnsignedString(min) + "," + Long.toUnsignedString(max) + "]"; + } + + /* + * RANGE GENERATION + */ + public static synchronized Set randomRanges10000(int count, Set forbiddenRanges) { + Set res = new HashSet<>(); + + for (int i = 0; i < count; i++) { + IdRange newRange = null; + do { + newRange = randomRange10000(); + } while (overlap(newRange, res) || overlap(newRange, forbiddenRanges)); + res.add(newRange); + } + return res; + } + + public static synchronized IdRange randomRange10000() { + // TODO make it more generic + long minPred = 7l; + long maxPred = 429496l; + + long rand = ThreadLocalRandom.current().nextLong(minPred, maxPred); + long min = rand * 10000l; + return new IdRange(min); + } + + public static boolean overlap(IdRange idRange, Set idRanges) { + for (IdRange other : idRanges) { + if (overlap(idRange, other)) + return true; + } + return false; + } + + public static boolean overlap(IdRange idRange, IdRange other) { + // see + // https://stackoverflow.com/questions/3269434/whats-the-most-efficient-way-to-test-if-two-ranges-overlap + return idRange.min <= other.max && other.min <= idRange.max; + } + + /* + * UTILITIES + */ + + private static long maxFromMinPow10(long minPow10) { + if ((minPow10 % 100) != 0) { + throw new IllegalArgumentException(minPow10 + " must at least ends with two zeroes"); + } + int exp = 2; + exp: for (int i = exp + 1; i < 10; i++) { + if ((minPow10 % pow10(i)) != 0) + break exp; + exp++; + } +// System.out.println(exp); + + long max = minPow10 + pow10(exp) - 1; + return max; + } + + /** Power of 10. */ + private static long pow10(int exp) { + if (exp == 0) + return 1; + else + return 10 * pow10(exp - 1); + } + + public static void main(String... args) { + System.out.println(maxFromMinPow10(100)); + System.out.println(maxFromMinPow10(78500)); + System.out.println(maxFromMinPow10(716850000)); + +// System.out.println(pow10(6)); +// System.out.println(maxFromMinPow10(12)); +// System.out.println(maxFromMinPow10(124)); +// System.out.println(maxFromMinPow10(99814565)); + } +} diff --git a/org.argeo.api.app/src/org/argeo/api/app/RankedObject.java b/org.argeo.api.app/src/org/argeo/api/app/RankedObject.java new file mode 100644 index 0000000..e9c47ce --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/RankedObject.java @@ -0,0 +1,113 @@ +package org.argeo.api.app; + +import java.util.Map; + +import org.argeo.api.cms.CmsLog; + +/** + * A container for an object whose relevance can be ranked. Typically used in an + * OSGi context with the service.ranking property. + */ +public class RankedObject { + private final static CmsLog log = CmsLog.getLog(RankedObject.class); + + private final static String SERVICE_RANKING = "service.ranking"; +// private final static String SERVICE_ID = "service.id"; + + private T object; + private Map properties; + private final int rank; + + public RankedObject(T object, Map properties) { + this(object, properties, extractRanking(properties)); + } + + public RankedObject(T object, Map properties, int rank) { + super(); + this.object = object; + this.properties = properties; + this.rank = rank; + } + + private static int extractRanking(Map properties) { + if (properties == null) + return 0; + if (properties.containsKey(SERVICE_RANKING)) + return (Integer) properties.get(SERVICE_RANKING); +// else if (properties.containsKey(SERVICE_ID)) +// return (Long) properties.get(SERVICE_ID); + else + return 0; + } + + public T get() { + return object; + } + + public Map getProperties() { + return properties; + } + + public int getRank() { + return rank; + } + + @Override + public int hashCode() { + return object.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof RankedObject)) + return false; + RankedObject other = (RankedObject) obj; + return rank == other.rank && object.equals(other.object); + } + + @Override + public String toString() { + return object.getClass().getName() + " with rank " + rank; + } + + public static boolean hasHigherRank(Map> map, K key, Map properties) { + if (!map.containsKey(key)) + return true; + RankedObject rankedObject = new RankedObject<>(null, properties); + RankedObject current = map.get(key); + return current.getRank() < rankedObject.getRank(); + } + + /** + * @return the {@link RankedObject}, or null if the current one was + * kept + */ + public static RankedObject putIfHigherRank(Map> map, K key, T object, + Map properties) { + RankedObject rankedObject = new RankedObject<>(object, properties); + if (!map.containsKey(key)) { + map.put(key, rankedObject); + if (log.isTraceEnabled()) + log.trace( + "Added " + key + " as " + object.getClass().getName() + " with rank " + rankedObject.getRank()); + return rankedObject; + } else { + RankedObject current = map.get(key); + if (current.getRank() < rankedObject.getRank()) { + map.put(key, rankedObject); + if (log.isDebugEnabled()) + log.debug("Replaced " + key + " by " + object.getClass().getName() + " with rank " + + rankedObject.getRank()); + return rankedObject; + } else if (current.getRank() == rankedObject.getRank()) { + log.error("Already " + key + " by " + current.get().getClass().getName() + " with rank " + + rankedObject.getRank() + ", ignoring " + rankedObject.get().getClass().getName()); + return null; + } else { + return null; + } + } + + } + +} diff --git a/org.argeo.api.app/src/org/argeo/api/app/SuiteRole.java b/org.argeo.api.app/src/org/argeo/api/app/SuiteRole.java new file mode 100644 index 0000000..07f2499 --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/SuiteRole.java @@ -0,0 +1,47 @@ +package org.argeo.api.app; + +import javax.xml.namespace.QName; + +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.api.cms.auth.SystemRole; + +/** Standard suite system roles. */ +public enum SuiteRole implements SystemRole { + /** An external person who has read access to part of the information. */ + observer, + /** An active coworker. */ + coworker, + /** Someone who is allowed validate and publish information. */ + publisher, + /** Someone with manager status within an organisation. Does not necessarily give more rights. */ + manager, + // + ; + + private final static String QUALIFIER = "app."; + + private final ContentName name; + + SuiteRole() { + name = new ContentName(ArgeoNamespace.ROLE_NAMESPACE_URI, QUALIFIER + name()); + } + + @Override + public QName qName() { + return name; + } + + @Deprecated + private String getRolePrefix() { + return "org.argeo.suite"; + } + + @Deprecated + public String dn() { + return new StringBuilder(LdapAttr.cn.name()).append("=").append(getRolePrefix()).append(".").append(name()) + .append(",").append(CmsConstants.SYSTEM_ROLES_BASEDN).toString(); + } +} diff --git a/org.argeo.api.app/src/org/argeo/api/app/Term.java b/org.argeo.api.app/src/org/argeo/api/app/Term.java new file mode 100644 index 0000000..18ee8e2 --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/Term.java @@ -0,0 +1,22 @@ +package org.argeo.api.app; + +import java.util.List; + +/** + * A name within a {@link Typology}, used to qualify an entity (categories, + * keywords, etc.). + */ +public interface Term { + String getId(); + + String getName(); + +// String getRelativePath(); + + Typology getTypology(); + + List getSubTerms(); + + Term getParentTerm(); + +} diff --git a/org.argeo.api.app/src/org/argeo/api/app/TermsManager.java b/org.argeo.api.app/src/org/argeo/api/app/TermsManager.java new file mode 100644 index 0000000..dadaf9a --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/TermsManager.java @@ -0,0 +1,16 @@ +package org.argeo.api.app; + +import java.util.List; +import java.util.Set; + +/** Provides optimised access and utilities around terms typologies. */ +public interface TermsManager { + Typology getTypology(String typology); + + Set getTypologies(); + + Term getTerm(String id); + + List listAllTerms(String typology); + +} diff --git a/org.argeo.api.app/src/org/argeo/api/app/Typology.java b/org.argeo.api.app/src/org/argeo/api/app/Typology.java new file mode 100644 index 0000000..ea560a9 --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/Typology.java @@ -0,0 +1,15 @@ +package org.argeo.api.app; + +import java.util.List; + +/** A structured and exhaustive set of {@link Term}s. */ +public interface Typology { + + String getId(); + + boolean isFlat(); + + List getSubTerms(); + + Term findTermByName(String name); +} diff --git a/org.argeo.api.app/src/org/argeo/api/app/WGS84PosName.java b/org.argeo.api.app/src/org/argeo/api/app/WGS84PosName.java new file mode 100644 index 0000000..929e98d --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/WGS84PosName.java @@ -0,0 +1,40 @@ +package org.argeo.api.app; + +import org.argeo.api.acr.QNamed; + +/** + * Geographical coordinate in WGS84 reference datum. + * + * @see https://www.w3.org/2003/01/geo/ + */ +public enum WGS84PosName implements QNamed { + lat, lon("long"), alt; + + private final String localName; + + private WGS84PosName() { + localName = null; + } + + private WGS84PosName(String localName) { + this.localName = localName; + } + + @Override + public String getNamespace() { + return "http://www.w3.org/2003/01/geo/wgs84_pos#"; + } + + @Override + public String getDefaultPrefix() { + return "geo"; + } + + @Override + public String localName() { + if (localName != null) + return localName; + return QNamed.super.localName(); + } + +} diff --git a/org.argeo.api.app/src/org/argeo/api/app/entity.xsd b/org.argeo.api.app/src/org/argeo/api/app/entity.xsd new file mode 100644 index 0000000..a2fbfcd --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/entity.xsd @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/org.argeo.api.app/src/org/argeo/api/app/entityFeature.xsd b/org.argeo.api.app/src/org/argeo/api/app/entityFeature.xsd new file mode 100644 index 0000000..805bd1a --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/entityFeature.xsd @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/org.argeo.app.api/.classpath b/org.argeo.app.api/.classpath deleted file mode 100644 index 81fe078..0000000 --- a/org.argeo.app.api/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/org.argeo.app.api/.gitignore b/org.argeo.app.api/.gitignore deleted file mode 100644 index 09e3bc9..0000000 --- a/org.argeo.app.api/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/bin/ -/target/ diff --git a/org.argeo.app.api/.project b/org.argeo.app.api/.project deleted file mode 100644 index 2f51e20..0000000 --- a/org.argeo.app.api/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.argeo.app.api - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/org.argeo.app.api/META-INF/.gitignore b/org.argeo.app.api/META-INF/.gitignore deleted file mode 100644 index 4854a41..0000000 --- a/org.argeo.app.api/META-INF/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/MANIFEST.MF diff --git a/org.argeo.app.api/bnd.bnd b/org.argeo.app.api/bnd.bnd deleted file mode 100644 index e69de29..0000000 diff --git a/org.argeo.app.api/build.properties b/org.argeo.app.api/build.properties deleted file mode 100644 index 34d2e4d..0000000 --- a/org.argeo.app.api/build.properties +++ /dev/null @@ -1,4 +0,0 @@ -source.. = src/ -output.. = bin/ -bin.includes = META-INF/,\ - . diff --git a/org.argeo.app.api/src/org/argeo/app/api/AppUserState.java b/org.argeo.app.api/src/org/argeo/app/api/AppUserState.java deleted file mode 100644 index bcb0593..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/AppUserState.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.argeo.app.api; - -import org.argeo.api.acr.Content; -import org.argeo.api.cms.CmsSession; - -/** Access to content which is specific to a user and their state. */ -public interface AppUserState { - Content getOrCreateSessionDir(CmsSession session); -} diff --git a/org.argeo.app.api/src/org/argeo/app/api/EntityConstants.java b/org.argeo.app.api/src/org/argeo/app/api/EntityConstants.java deleted file mode 100644 index f04a6d0..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/EntityConstants.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.argeo.app.api; - -/** Constant related to entities, typically used in an OSGi context. */ -public interface EntityConstants { - final static String TYPE = "entity.type"; -// final static String DEFAULT_EDITOR_ID = "entity.defaultEditorId"; - -} diff --git a/org.argeo.app.api/src/org/argeo/app/api/EntityDefinition.java b/org.argeo.app.api/src/org/argeo/app/api/EntityDefinition.java deleted file mode 100644 index 97f7d7c..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/EntityDefinition.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.argeo.app.api; - -/** The definition of an entity, a composite configurable data structure. */ -public interface EntityDefinition { -// String getEditorId(Node entity); - - String getType(); -} diff --git a/org.argeo.app.api/src/org/argeo/app/api/EntityMimeType.java b/org.argeo.app.api/src/org/argeo/app/api/EntityMimeType.java deleted file mode 100644 index eaefcd0..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/EntityMimeType.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.argeo.app.api; - -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; - -/** Supported mime types. */ -public enum EntityMimeType { - XML("text/xml", "xml"), CSV("text/csv", "csv"); - - private final String mimeType; - private final String[] extensions; - - EntityMimeType(String mimeType, String... extensions) { - this.mimeType = mimeType; - this.extensions = extensions; - } - - public String getMimeType() { - return mimeType; - } - - public String[] getExtensions() { - return extensions; - } - - public String getDefaultExtension() { - if (extensions.length > 0) - return extensions[0]; - else - return null; - } - - public String toHttpContentType(Charset charset) { - if (charset == null) - return mimeType; - return mimeType + "; charset=" + charset.name(); - } - - public String toHttpContentType() { - if (mimeType.startsWith("text/")) { - return toHttpContentType(StandardCharsets.UTF_8); - } else { - return mimeType; - } - } - - public static EntityMimeType find(String mimeType) { - for (EntityMimeType entityMimeType : values()) { - if (entityMimeType.mimeType.equals(mimeType)) - return entityMimeType; - } - return null; - } - - @Override - public String toString() { - return mimeType; - } - -} diff --git a/org.argeo.app.api/src/org/argeo/app/api/EntityName.java b/org.argeo.app.api/src/org/argeo/app/api/EntityName.java deleted file mode 100644 index 4330294..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/EntityName.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.argeo.app.api; - -import org.argeo.api.acr.QNamed; - -/** Names used in the entity namespace http://www.argeo.org/ns/entity. */ -public enum EntityName implements QNamed { - type, relatedTo, // - // time, - date, - // geography - minLat, minLon, maxLat, maxLon, - // geo entities - place, - // - ; - - @Override - public String getDefaultPrefix() { - return "entity"; - } - - public String basePath() { - return '/' + name(); - } - - @Override - public String getNamespace() { - return "http://www.argeo.org/ns/entity"; - } - -} diff --git a/org.argeo.app.api/src/org/argeo/app/api/EntityNames.java b/org.argeo.app.api/src/org/argeo/app/api/EntityNames.java deleted file mode 100644 index b6240b3..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/EntityNames.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.argeo.app.api; - -import org.argeo.api.acr.ldap.LdapAttr; - -/** Constants used to name entity structures. */ -public interface EntityNames { - @Deprecated - final String FORM_BASE = "form"; - final String SUBMISSIONS_BASE = "submissions"; - @Deprecated - final String TERM = "term"; - final String NAME = "name"; - -// final String ENTITY_DEFINITIONS_PATH = "/entity"; - @Deprecated - final String TYPOLOGIES_PATH = "/" + TERM; - /** Administrative units. */ - final String ADM = "adm"; - - @Deprecated - final String ENTITY_TYPE = EntityName.type.get(); - - // GENERIC CONCEPTS -// /** The language which is relevant. */ -// final String XML_LANG = "xml:lang"; - /** The date which is relevant. */ - @Deprecated - final String ENTITY_DATE = EntityName.date.get(); - @Deprecated - final String ENTITY_RELATED_TO = EntityName.relatedTo.get(); - - // DEFAULT FOLDER NAMES - final String MEDIA = "media"; - final String FILES = "files"; - - // LDAP-LIKE ENTITIES - @Deprecated - final String DISPLAY_NAME = LdapAttr.displayName.get(); - // Persons - @Deprecated - final String GIVEN_NAME = LdapAttr.givenName.get(); - @Deprecated - final String SURNAME = LdapAttr.sn.get(); - @Deprecated - final String EMAIL = LdapAttr.mail.get(); - @Deprecated - final String OU = LdapAttr.ou.get(); - - // WGS84 - @Deprecated - final String GEO_LAT = WGS84PosName.lat.get(); - @Deprecated - final String GEO_LONG = WGS84PosName.lon.get(); - @Deprecated - final String GEO_ALT = WGS84PosName.alt.get(); - - // SVG - @Deprecated - final String SVG_WIDTH = "svg:width"; - @Deprecated - final String SVG_HEIGHT = "svg:height"; - @Deprecated - final String SVG_LENGTH = "svg:length"; - @Deprecated - final String SVG_UNIT = "svg:unit"; - @Deprecated - final String SVG_DUR = "svg:dur"; - @Deprecated - final String SVG_DIRECTION = "svg:direction"; -} diff --git a/org.argeo.app.api/src/org/argeo/app/api/EntityType.java b/org.argeo.app.api/src/org/argeo/app/api/EntityType.java deleted file mode 100644 index 8a258eb..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/EntityType.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.argeo.app.api; - -import org.argeo.api.acr.QNamed; - -/** Types used in the entity namespace http://www.argeo.org/ns/entity. */ -public enum EntityType implements QNamed { - // entity - entity, local, relatedTo, - // structure - space, document, - // typology - typologies, terms, term, - // form - form, formSet, formSubmission, - // graphics - box, - // geography - geopoint, bearing, geobounded, - // ldap - person, user; - - public final static String ENTITY_NAMESPACE_URI = "http://www.argeo.org/ns/entity"; - public final static String ENTITY_DEFAULT_PREFIX = "entity"; - - @Override - public String getDefaultPrefix() { - return ENTITY_DEFAULT_PREFIX; - } - - public String basePath() { - return '/' + name(); - } - - @Override - public String getNamespace() { - return ENTITY_NAMESPACE_URI; - } -} diff --git a/org.argeo.app.api/src/org/argeo/app/api/IdRange.java b/org.argeo.app.api/src/org/argeo/app/api/IdRange.java deleted file mode 100644 index e47eb5e..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/IdRange.java +++ /dev/null @@ -1,133 +0,0 @@ -package org.argeo.app.api; - -import java.util.HashSet; -import java.util.Set; -import java.util.concurrent.ThreadLocalRandom; - -/** A range of numerical IDs (typically numerical uid or gid). */ -public class IdRange { - // see https://systemd.io/UIDS-GIDS/#special-distribution-uid-ranges - final static long MIN_INCLUDED = Long.parseUnsignedLong("66000"); - final static long MAX_EXCLUDED = Long.parseUnsignedLong("4294967294"); - - // We use long as a de facto unsigned int - - /** included */ - private final long min; - /** included */ - private final long max; - - public IdRange(long min, long max) { - this.min = min; - this.max = max; - } - - public IdRange(long minPow10) { - this(minPow10, maxFromMinPow10(minPow10)); - } - - public long getMin() { - return min; - } - - public long getMax() { - return max; - } - - @Override - public int hashCode() { - return (int) min; - } - - @Override - public boolean equals(Object obj) { - if (obj instanceof IdRange idRange) { - return min == idRange.min && max == idRange.max; - } else - return false; - } - - @Override - public String toString() { - return "[" + Long.toUnsignedString(min) + "," + Long.toUnsignedString(max) + "]"; - } - - /* - * RANGE GENERATION - */ - public static synchronized Set randomRanges10000(int count, Set forbiddenRanges) { - Set res = new HashSet<>(); - - for (int i = 0; i < count; i++) { - IdRange newRange = null; - do { - newRange = randomRange10000(); - } while (overlap(newRange, res) || overlap(newRange, forbiddenRanges)); - res.add(newRange); - } - return res; - } - - public static synchronized IdRange randomRange10000() { - // TODO make it more generic - long minPred = 7l; - long maxPred = 429496l; - - long rand = ThreadLocalRandom.current().nextLong(minPred, maxPred); - long min = rand * 10000l; - return new IdRange(min); - } - - public static boolean overlap(IdRange idRange, Set idRanges) { - for (IdRange other : idRanges) { - if (overlap(idRange, other)) - return true; - } - return false; - } - - public static boolean overlap(IdRange idRange, IdRange other) { - // see - // https://stackoverflow.com/questions/3269434/whats-the-most-efficient-way-to-test-if-two-ranges-overlap - return idRange.min <= other.max && other.min <= idRange.max; - } - - /* - * UTILITIES - */ - - private static long maxFromMinPow10(long minPow10) { - if ((minPow10 % 100) != 0) { - throw new IllegalArgumentException(minPow10 + " must at least ends with two zeroes"); - } - int exp = 2; - exp: for (int i = exp + 1; i < 10; i++) { - if ((minPow10 % pow10(i)) != 0) - break exp; - exp++; - } -// System.out.println(exp); - - long max = minPow10 + pow10(exp) - 1; - return max; - } - - /** Power of 10. */ - private static long pow10(int exp) { - if (exp == 0) - return 1; - else - return 10 * pow10(exp - 1); - } - - public static void main(String... args) { - System.out.println(maxFromMinPow10(100)); - System.out.println(maxFromMinPow10(78500)); - System.out.println(maxFromMinPow10(716850000)); - -// System.out.println(pow10(6)); -// System.out.println(maxFromMinPow10(12)); -// System.out.println(maxFromMinPow10(124)); -// System.out.println(maxFromMinPow10(99814565)); - } -} diff --git a/org.argeo.app.api/src/org/argeo/app/api/RankedObject.java b/org.argeo.app.api/src/org/argeo/app/api/RankedObject.java deleted file mode 100644 index fab42d7..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/RankedObject.java +++ /dev/null @@ -1,113 +0,0 @@ -package org.argeo.app.api; - -import java.util.Map; - -import org.argeo.api.cms.CmsLog; - -/** - * A container for an object whose relevance can be ranked. Typically used in an - * OSGi context with the service.ranking property. - */ -public class RankedObject { - private final static CmsLog log = CmsLog.getLog(RankedObject.class); - - private final static String SERVICE_RANKING = "service.ranking"; -// private final static String SERVICE_ID = "service.id"; - - private T object; - private Map properties; - private final int rank; - - public RankedObject(T object, Map properties) { - this(object, properties, extractRanking(properties)); - } - - public RankedObject(T object, Map properties, int rank) { - super(); - this.object = object; - this.properties = properties; - this.rank = rank; - } - - private static int extractRanking(Map properties) { - if (properties == null) - return 0; - if (properties.containsKey(SERVICE_RANKING)) - return (Integer) properties.get(SERVICE_RANKING); -// else if (properties.containsKey(SERVICE_ID)) -// return (Long) properties.get(SERVICE_ID); - else - return 0; - } - - public T get() { - return object; - } - - public Map getProperties() { - return properties; - } - - public int getRank() { - return rank; - } - - @Override - public int hashCode() { - return object.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof RankedObject)) - return false; - RankedObject other = (RankedObject) obj; - return rank == other.rank && object.equals(other.object); - } - - @Override - public String toString() { - return object.getClass().getName() + " with rank " + rank; - } - - public static boolean hasHigherRank(Map> map, K key, Map properties) { - if (!map.containsKey(key)) - return true; - RankedObject rankedObject = new RankedObject<>(null, properties); - RankedObject current = map.get(key); - return current.getRank() < rankedObject.getRank(); - } - - /** - * @return the {@link RankedObject}, or null if the current one was - * kept - */ - public static RankedObject putIfHigherRank(Map> map, K key, T object, - Map properties) { - RankedObject rankedObject = new RankedObject<>(object, properties); - if (!map.containsKey(key)) { - map.put(key, rankedObject); - if (log.isTraceEnabled()) - log.trace( - "Added " + key + " as " + object.getClass().getName() + " with rank " + rankedObject.getRank()); - return rankedObject; - } else { - RankedObject current = map.get(key); - if (current.getRank() < rankedObject.getRank()) { - map.put(key, rankedObject); - if (log.isDebugEnabled()) - log.debug("Replaced " + key + " by " + object.getClass().getName() + " with rank " - + rankedObject.getRank()); - return rankedObject; - } else if (current.getRank() == rankedObject.getRank()) { - log.error("Already " + key + " by " + current.get().getClass().getName() + " with rank " - + rankedObject.getRank() + ", ignoring " + rankedObject.get().getClass().getName()); - return null; - } else { - return null; - } - } - - } - -} diff --git a/org.argeo.app.api/src/org/argeo/app/api/SuiteRole.java b/org.argeo.app.api/src/org/argeo/app/api/SuiteRole.java deleted file mode 100644 index 5a2fc6b..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/SuiteRole.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.argeo.app.api; - -import javax.xml.namespace.QName; - -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; - -/** Standard suite system roles. */ -public enum SuiteRole implements SystemRole { - /** An external person who has read access to part of the information. */ - observer, - /** An active coworker. */ - coworker, - /** Someone who is allowed validate and publish information. */ - publisher, - /** Someone with manager status within an organisation. Does not necessarily give more rights. */ - manager, - // - ; - - private final static String QUALIFIER = "app."; - - private final ContentName name; - - SuiteRole() { - name = new ContentName(ArgeoNamespace.ROLE_NAMESPACE_URI, QUALIFIER + name()); - } - - @Override - public QName qName() { - return name; - } - - @Deprecated - private String getRolePrefix() { - return "org.argeo.suite"; - } - - @Deprecated - public String dn() { - return new StringBuilder(LdapAttr.cn.name()).append("=").append(getRolePrefix()).append(".").append(name()) - .append(",").append(CmsConstants.SYSTEM_ROLES_BASEDN).toString(); - } -} diff --git a/org.argeo.app.api/src/org/argeo/app/api/Term.java b/org.argeo.app.api/src/org/argeo/app/api/Term.java deleted file mode 100644 index 5a7f09e..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/Term.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.argeo.app.api; - -import java.util.List; - -/** - * A name within a {@link Typology}, used to qualify an entity (categories, - * keywords, etc.). - */ -public interface Term { - String getId(); - - String getName(); - -// String getRelativePath(); - - Typology getTypology(); - - List getSubTerms(); - - Term getParentTerm(); - -} diff --git a/org.argeo.app.api/src/org/argeo/app/api/TermsManager.java b/org.argeo.app.api/src/org/argeo/app/api/TermsManager.java deleted file mode 100644 index 03e1150..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/TermsManager.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.argeo.app.api; - -import java.util.List; -import java.util.Set; - -/** Provides optimised access and utilities around terms typologies. */ -public interface TermsManager { - Typology getTypology(String typology); - - Set getTypologies(); - - Term getTerm(String id); - - List listAllTerms(String typology); - -} diff --git a/org.argeo.app.api/src/org/argeo/app/api/Typology.java b/org.argeo.app.api/src/org/argeo/app/api/Typology.java deleted file mode 100644 index f57e692..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/Typology.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.argeo.app.api; - -import java.util.List; - -/** A structured and exhaustive set of {@link Term}s. */ -public interface Typology { - - String getId(); - - boolean isFlat(); - - List getSubTerms(); - - Term findTermByName(String name); -} diff --git a/org.argeo.app.api/src/org/argeo/app/api/WGS84PosName.java b/org.argeo.app.api/src/org/argeo/app/api/WGS84PosName.java deleted file mode 100644 index 4ba1a13..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/WGS84PosName.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.argeo.app.api; - -import org.argeo.api.acr.QNamed; - -/** - * Geographical coordinate in WGS84 reference datum. - * - * @see https://www.w3.org/2003/01/geo/ - */ -public enum WGS84PosName implements QNamed { - lat, lon("long"), alt; - - private final String localName; - - private WGS84PosName() { - localName = null; - } - - private WGS84PosName(String localName) { - this.localName = localName; - } - - @Override - public String getNamespace() { - return "http://www.w3.org/2003/01/geo/wgs84_pos#"; - } - - @Override - public String getDefaultPrefix() { - return "geo"; - } - - @Override - public String localName() { - if (localName != null) - return localName; - return QNamed.super.localName(); - } - -} diff --git a/org.argeo.app.api/src/org/argeo/app/api/entity.xsd b/org.argeo.app.api/src/org/argeo/app/api/entity.xsd deleted file mode 100644 index a2fbfcd..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/entity.xsd +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/org.argeo.app.api/src/org/argeo/app/api/entityFeature.xsd b/org.argeo.app.api/src/org/argeo/app/api/entityFeature.xsd deleted file mode 100644 index 805bd1a..0000000 --- a/org.argeo.app.api/src/org/argeo/app/api/entityFeature.xsd +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file 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;