diff --git a/platform/pom.xml b/platform/pom.xml index 2460162e..893a4059 100644 --- a/platform/pom.xml +++ b/platform/pom.xml @@ -3,7 +3,7 @@ root ru.entaxy.esb - 1.9.0 + 1.10.0 4.0.0 @@ -14,6 +14,7 @@ runtime + integration diff --git a/platform/runtime/base/base-support/pom.xml b/platform/runtime/base/base-support/pom.xml index c090631f..d1016596 100644 --- a/platform/runtime/base/base-support/pom.xml +++ b/platform/runtime/base/base-support/pom.xml @@ -3,7 +3,7 @@ ru.entaxy.esb.platform.runtime base - 1.9.0 + 1.10.0 ru.entaxy.esb.platform.runtime.base base-support @@ -17,11 +17,16 @@ ru.entaxy.platform.base.support.xml, ru.entaxy.platform.base.support.osgi, ru.entaxy.platform.base.support.osgi.bundle, + ru.entaxy.platform.base.support.osgi.feature, ru.entaxy.platform.base.support.osgi.service, ru.entaxy.platform.base.support.osgi.tracker, ru.entaxy.platform.base.support.osgi.tracker.filter, - ru.entaxy.platform.base.support.osgi.filter + ru.entaxy.platform.base.support.osgi.filter, + ru.entaxy.platform.base.support.karaf.shell + + org.apache.felix.gogo.runtime.threadio + @@ -48,8 +53,29 @@ commons-codec - com.google.code.gson - gson + ru.entaxy.bundles-repacked + ru.entaxy.bundles-repacked.com.google.code.gson-2.8.5.entaxy + ${gson.version}-ENTAXY + + org.apache.karaf.shell + org.apache.karaf.shell.core + ${karaf.version} + + + org.apache.karaf.features + org.apache.karaf.features.core + ${karaf.version} + + + org.apache.karaf.bundle + org.apache.karaf.bundle.core + ${karaf.version} + + + org.fusesource.jansi + jansi + 1.18 + diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/CommonUtils.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/CommonUtils.java index 7dabf39f..10c815a6 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/CommonUtils.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/CommonUtils.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * base-support * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property @@ -33,6 +33,7 @@ import java.util.Dictionary; import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.ListIterator; import java.util.Map; @@ -49,243 +50,256 @@ import org.apache.commons.lang3.StringUtils; * */ public class CommonUtils { - - public static final String GUID_0 = "00000000-0000-0000-0000-000000000000"; - public static final String GUID_f = "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF"; - public static final String NULL_GUID_ = GUID_0; - - public static final String PACKET_TYPE_PARAM_NAME = "packetType"; - public static class Path { - - public static final String DEFAULT_SEPARATOR = "/"; - - protected String separator = DEFAULT_SEPARATOR; - protected List data = new ArrayList<>(); - - public static Path create() { - return new Path(); - } - - public static boolean isAbsolute(String path) { - return isAbsolute(path, DEFAULT_SEPARATOR); - } - - public static boolean isAbsolute(String path, String separator) { - if (!isValid(path)) - return false; - return path.trim().startsWith(separator); - } - - public Path() { - super(); - } - - public Path separator(String newSeparator) { - if (newSeparator!=null) - this.separator = newSeparator; - return this; - } - - public Path construct(String...fragments) { - data.clear(); - return append(fragments); - } - - public Path append(String...fragments) { - if (fragments==null) - return this; - for (int i = 0; i < fragments.length; i++) { - String string = fragments[i]; - if (isValid(string)) { - String[] splitted = StringUtils.split(string, separator); - for (int j = 0; j < splitted.length; j++) { - String string2 = splitted[j]; - if (isValid(string2) && isValid(string2.trim())) - data.add(string2.trim()); - } - } - } - return this; - }; - - public String relational() { - return StringUtils.join(data, separator); - } - - public String absolute() { - return separator + relational(); - } - - public Iterator fragmentsIterator() { - return data.iterator(); - } - - public ListIterator fragmentsListIterator() { - return data.listIterator(); - } - - public List pathHierarchy(){ - return pathHierarchy(true); - } - - public List pathHierarchy(boolean absolute){ - List result = new ArrayList<>(); - if (data.isEmpty()) - return result; - result.add((absolute?separator:"") + data.get(0)); - for (int i=1; i iterator() { - return pathHierarchy().iterator(); - } - - public ListIterator listIterator() { - return pathHierarchy().listIterator(); - } - - } - - /** - * Generates UUID - * - * @return - */ - public static String getUUID(){ - return UUID.randomUUID().toString().toLowerCase().replace("-", ""); - } - /** - * Generates UUID consisting of specified char - * @param c - * @return - */ - public static String getUUID(char c) { - return StringUtils.leftPad("", 32, c); - } - - /** - * Generates GUID - * - * @return - */ - public static String getGUID(){ - return UUID.randomUUID().toString().toUpperCase(); - } + public static final String GUID_0 = "00000000-0000-0000-0000-000000000000"; + public static final String GUID_f = "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF"; + public static final String NULL_GUID_ = GUID_0; - /** - * Generates GUID consisting of specified char - * @param c - * @return - */ - public static String getGUID(char c) { - return uid2guid(StringUtils.leftPad("", 32, c)); - } - - /** - * Converts UUID to GUID - * @param uid - * @return - */ - public static String uid2guid(String uid){ - return uid.replaceFirst("(.{8})(.{4})(.{4})(.{4})(.{8})", "$1-$2-$3-$4-$5").toUpperCase(); - } - - /** - * Converts GUID to UUID - * @param uid - * @return - */ - public static String guid2uid(String guid){ - return guid.toLowerCase().replace("-", ""); - } - - /** - * Checks if the string is not null and has something inside after trim - * - * @param s - * @return - */ - public static boolean isValid(String s){ - if (s==null) - return false; - return s.trim().length()>0; - } - - /** - * - * @param s string to examine - * @param def default value - * @return s if isValid(s), otherwise def - */ - public static String getValid(String s, String def){ - return isValid(s)?s:def; - } - - public static String padLeft(String data, int length){ - return padLeft(data, length, ' '); - } - public static String padRight(String data, int length){ - return padRight(data, length, ' '); - } + public static final String PACKET_TYPE_PARAM_NAME = "packetType"; - public static String padBoth(String data, int length){ - return padBoth(data, length, ' '); - } + public static class Path { - public static String padLeft(String data, int length, Character c){ - String val = data; - if (data==null) - val = ""; - while (val.length() data = new ArrayList<>(); - public static void stream2file(InputStream input, String file) throws Exception { - File f = new File(file); - FileOutputStream output = new FileOutputStream(f); - IOUtils.copy(input, output); - output.close(); - } - - public static Map addDictionaryToMap(Dictionary source, Map sink) { - for (Enumeration keys = source.keys(); keys.hasMoreElements();) { - K key = keys.nextElement(); - sink.put(key, source.get(key)); - } - return sink; - } - - public static Map getDictionaryAsMap(Dictionary source) { - Map result = new HashMap<>(); - CommonUtils.addDictionaryToMap(source, result); - return result; - } - + public static Path create() { + return new Path(); + } + + public static boolean isAbsolute(String path) { + return isAbsolute(path, DEFAULT_SEPARATOR); + } + + public static boolean isAbsolute(String path, String separator) { + if (!isValid(path)) + return false; + return path.trim().startsWith(separator); + } + + public Path() { + super(); + } + + public Path separator(String newSeparator) { + if (newSeparator != null) + this.separator = newSeparator; + return this; + } + + public Path construct(String... fragments) { + data.clear(); + return append(fragments); + } + + public Path append(String... fragments) { + if (fragments == null) + return this; + for (int i = 0; i < fragments.length; i++) { + String string = fragments[i]; + if (isValid(string)) { + String[] splitted = StringUtils.split(string, separator); + for (int j = 0; j < splitted.length; j++) { + String string2 = splitted[j]; + if (isValid(string2) && isValid(string2.trim())) + data.add(string2.trim()); + } + } + } + return this; + }; + + public String relational() { + return StringUtils.join(data, separator); + } + + public String absolute() { + return separator + relational(); + } + + public Iterator fragmentsIterator() { + return data.iterator(); + } + + public ListIterator fragmentsListIterator() { + return data.listIterator(); + } + + public List pathHierarchy() { + return pathHierarchy(true); + } + + public List pathHierarchy(boolean absolute) { + List result = new ArrayList<>(); + if (data.isEmpty()) + return result; + result.add((absolute ? separator : "") + data.get(0)); + for (int i = 1; i < data.size(); i++) + result.add(result.get(i - 1) + separator + data.get(i)); + return result; + } + + public Iterator iterator() { + return pathHierarchy().iterator(); + } + + public ListIterator listIterator() { + return pathHierarchy().listIterator(); + } + + } + + /** + * Generates UUID + * + * @return + */ + public static String getUUID() { + return UUID.randomUUID().toString().toLowerCase().replace("-", ""); + } + + /** + * Generates UUID consisting of specified char + * + * @param c + * @return + */ + public static String getUUID(char c) { + return StringUtils.leftPad("", 32, c); + } + + /** + * Generates GUID + * + * @return + */ + public static String getGUID() { + return UUID.randomUUID().toString().toUpperCase(); + } + + /** + * Generates GUID consisting of specified char + * + * @param c + * @return + */ + public static String getGUID(char c) { + return uid2guid(StringUtils.leftPad("", 32, c)); + } + + /** + * Converts UUID to GUID + * + * @param uid + * @return + */ + public static String uid2guid(String uid) { + return uid.replaceFirst("(.{8})(.{4})(.{4})(.{4})(.{8})", "$1-$2-$3-$4-$5").toUpperCase(); + } + + /** + * Converts GUID to UUID + * + * @param uid + * @return + */ + public static String guid2uid(String guid) { + return guid.toLowerCase().replace("-", ""); + } + + /** + * Checks if the string is not null and has something inside after trim + * + * @param s + * @return + */ + public static boolean isValid(String s) { + if (s == null) + return false; + return s.trim().length() > 0; + } + + /** + * + * @param s string to examine + * @param def default value + * @return s if isValid(s), otherwise def + */ + public static String getValid(String s, String def) { + return isValid(s) ? s : def; + } + + public static String padLeft(String data, int length) { + return padLeft(data, length, ' '); + } + + public static String padRight(String data, int length) { + return padRight(data, length, ' '); + } + + public static String padBoth(String data, int length) { + return padBoth(data, length, ' '); + } + + public static String padLeft(String data, int length, Character c) { + String val = data; + if (data == null) + val = ""; + while (val.length() < length) + val = c + val; + return val; + } + + public static String padRight(String data, int length, Character c) { + String val = data; + if (data == null) + val = ""; + while (val.length() < length) + val = val + c; + return val; + } + + public static String padBoth(String data, int length, Character c) { + String val = data; + boolean left = true; + if (data == null) + val = ""; + while (val.length() < length) { + if (left) + val = c + val; + else + val = val + c; + left = !left; + } + return val; + } + + public static void stream2file(InputStream input, String file) throws Exception { + File f = new File(file); + try (FileOutputStream output = new FileOutputStream(f)) { + IOUtils.copy(input, output); + } + } + + public static Map addDictionaryToMap(Dictionary source, Map sink) { + for (Enumeration keys = source.keys(); keys.hasMoreElements();) { + K key = keys.nextElement(); + sink.put(key, source.get(key)); + } + return sink; + } + + public static Map getDictionaryAsMap(Dictionary source) { + Map result = new HashMap<>(); + CommonUtils.addDictionaryToMap(source, result); + return result; + } + + public static Map prefixMap(Map map, String prefix) { + Map result = new LinkedHashMap<>(); + for (Map.Entry entry : map.entrySet()) + result.put(String.format("%s%s", prefix, entry.getKey()), entry.getValue()); + return result; + } } diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/DependencySorter.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/DependencySorter.java index 6a2984e2..cfecf87c 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/DependencySorter.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/DependencySorter.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * test-producers * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property @@ -25,54 +25,53 @@ */ package ru.entaxy.platform.base.support; +import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; public class DependencySorter { - public static interface DependencyProvider { - List getDependencies(T inspectedObject); - } - - public static List getSortedList(List origin, DependencyProvider provider) throws Exception { - List result = new LinkedList<>(); - - // add independent objects - result.addAll( - origin.stream().filter(obj -> provider.getDependencies(obj).isEmpty()) - .collect(Collectors.toList()) - ); - - while (result.size() < origin.size()) { - List nextObjects = origin.stream().filter(obj->!result.contains(obj)) - .filter(obj->result.containsAll(provider.getDependencies(obj))) - .collect(Collectors.toList()); - if (nextObjects.isEmpty()) - // TODO create more informative exception - throw new UnsatisfiedDependenciesException( - origin.stream().filter(obj->!result.contains(obj)) - .collect(Collectors.toList()) - ); - result.addAll(nextObjects); - } - - return result; - } + public static interface DependencyProvider { + List getDependencies(T inspectedObject); + } + + public static List getSortedList(List origin, DependencyProvider provider) throws Exception { + List result = new LinkedList<>(); + + // add independent objects + result.addAll( + origin.stream().filter(obj -> provider.getDependencies(obj).isEmpty()) + .collect(Collectors.toList())); + + while (result.size() < origin.size()) { + List nextObjects = origin.stream().filter(obj -> !result.contains(obj)) + .filter(obj -> result.containsAll(provider.getDependencies(obj))) + .collect(Collectors.toList()); + if (nextObjects.isEmpty()) + // TODO create more informative exception + throw new UnsatisfiedDependenciesException( + origin.stream().filter(obj -> !result.contains(obj)) + .collect(Collectors.toList())); + result.addAll(nextObjects); + } + + return result; + } + + @SuppressWarnings("serial") + public static class UnsatisfiedDependenciesException extends Exception { + + protected List objects; + + public UnsatisfiedDependenciesException(List list) { + super("Contains unsatisfied dependencies"); + this.objects = new ArrayList(list); + } + + public List getObjects() { + return objects; + } + } - @SuppressWarnings("serial") - public static class UnsatisfiedDependenciesException extends Exception { - - protected List objects; - - public UnsatisfiedDependenciesException(List list) { - super("Contains unsatisfied dependencies"); - this.objects.addAll(list); - } - - public List getObjects() { - return objects; - } - } - } diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/FileUtils.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/FileUtils.java index 046f9211..3cf7909f 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/FileUtils.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/FileUtils.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * base-support * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/JSONUtils.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/JSONUtils.java index ee832846..a0850648 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/JSONUtils.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/JSONUtils.java @@ -1,25 +1,20 @@ -/* ~~~~~~licensing~~~~~~ - * base-support - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. +/* + * ~~~~~~licensing~~~~~~ base-support ========== Copyright (C) 2020 - 2023 EmDev LLC ========== You + * may not use this file except in accordance with the License Terms of the Copyright Holder located + * at: https://entaxy.ru/eula . All copyrights, all intellectual property rights to the Software and + * any copies are the property of the Copyright Holder. Unless it is explicitly allowed the + * Copyright Holder, the User is prohibited from using the Software for commercial purposes to + * provide services to third parties. * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. + * The Copyright Holder hereby declares that the Software is provided on an "AS IS". Under no + * circumstances does the Copyright Holder guarantee or promise that the Software provided by him + * will be suitable or not suitable for the specific purposes of the User, that the Software will + * meet all commercial and personal subjective expectations of the User, that the Software will work + * properly, without technical errors, quickly and uninterruptedly. * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. + * Under no circumstances shall the Copyright Holder or its Affiliates is not liable to the User for + * any direct or indirect losses of the User, his expenses or actual damage, including, downtime; + * loss of bussines; lost profit; lost earnings; loss or damage to data, property, etc. * ~~~~~~/licensing~~~~~~ */ package ru.entaxy.platform.base.support; @@ -38,6 +33,8 @@ import java.util.Map.Entry; import java.util.Set; import java.util.stream.Collectors; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -46,662 +43,712 @@ import com.google.gson.JsonPrimitive; public class JSONUtils { - public static final String PROP_VALUE = "_value"; - - public static Map element2map(JsonElement element){ - Map result = new HashMap<>(); - if (element.isJsonObject()) { - JsonObject jsonObject = element.getAsJsonObject(); - for (Entry entry: jsonObject.entrySet()) { - result.put(entry.getKey(), element2object(entry.getValue())); - } - } else - if (element.isJsonArray()) { - JsonArray array = element.getAsJsonArray(); - result.put(PROP_VALUE, element2list(element)); - } else - if (element.isJsonNull()) { - result.put(PROP_VALUE, null); - } else - if (element.isJsonPrimitive()) { - result.put(PROP_VALUE, element2value(element)); - } + public static final Gson GSON = new GsonBuilder().setPrettyPrinting().serializeNulls().create(); + public static final String PROP_VALUE = "_value"; - return result; - } - - public static Object element2object(JsonElement element) { - if (element.isJsonNull() || element.isJsonPrimitive()) - return element2value(element); - if (element.isJsonArray()) - return element2list(element); - if (element.isJsonObject()) - return element2map(element); - return null; - } - - public static Object element2value(JsonElement element) { - Object result = null; - if (element.isJsonNull() || !element.isJsonPrimitive()) - return result; - try { - JsonPrimitive primitive = element.getAsJsonPrimitive(); - if (primitive.isNumber()) - result = primitive.getAsNumber(); - else if (primitive.isBoolean()) - result = primitive.getAsBoolean(); - else result = primitive.getAsString(); - } catch (Exception e1) { - try { - result = element.getAsBoolean(); - } catch (Exception e2) { - result = element.getAsString(); - } - } - return result; - } + public static Map element2map(JsonElement element) { + Map result = new HashMap<>(); + if (element.isJsonObject()) { + JsonObject jsonObject = element.getAsJsonObject(); + for (Entry entry : jsonObject.entrySet()) { + result.put(entry.getKey(), element2object(entry.getValue())); + } + } else if (element.isJsonArray()) { + JsonArray array = element.getAsJsonArray(); + result.put(PROP_VALUE, element2list(element)); + } else if (element.isJsonNull()) { + result.put(PROP_VALUE, null); + } else if (element.isJsonPrimitive()) { + result.put(PROP_VALUE, element2value(element)); + } - public static List element2list(JsonElement element) { - List result = new ArrayList<>(); - JsonArray array = element.getAsJsonArray(); - for (int i=0; i entry: source.entrySet()) { - if (target.has(entry.getKey())) { - if (entry.getValue().isJsonObject()) - if (target.get(entry.getKey()).isJsonObject()) { - mergeObjects(entry.getValue().getAsJsonObject(), target.get(entry.getKey()).getAsJsonObject()); - continue; - } - target.remove(entry.getKey()); - } - target.add(entry.getKey(), entry.getValue().deepCopy()); - } - } - - public static boolean replaceValue(JsonObject origin, String path, JsonElement replacement) { - return setValue(origin, path, replacement, false); - } - - public static boolean setValue(JsonObject origin, String path, JsonElement replacement, boolean ifMissing) { - String preparedPath = path.replaceAll("(\\[\\d+\\])", ".$1"); - String[] pathSplitted = preparedPath.split("\\."); - JsonElement currentElement = origin; - for (int i=0; iindex) - currentElement = arr.get(index); - else { - // TODO process - // System.out.println("ERROR: index out of bounds"); - } - } else { - // TODO process - // System.out.println("ERROR: found indexed property on non-array value"); - } - } else if (currentElement.isJsonObject()) { - currentElement = currentElement.getAsJsonObject().get(fragment); - } else { - // TODO process - // System.out.println("ERROR: currentElement can't be traversed"); - } - } - if (currentElement == null) { - // System.out.println("ERROR: currentElement is null"); - return false; - } - String finalFragment = pathSplitted[pathSplitted.length-1]; - if (finalFragment.startsWith("[") && finalFragment.endsWith("]")) { - // array index - if (currentElement.isJsonArray()) { - // System.out.println("INDEX: [" + finalFragment.substring(1, finalFragment.length()-1) + "]"); - int index = Integer.parseInt(finalFragment.substring(1, finalFragment.length()-1)); - JsonArray arr = currentElement.getAsJsonArray(); - if (arr.size()>index) { - // arr.remove(index); - arr.set(index, replacement); - } else { - // TODO process - // System.out.println("ERROR: index out of bounds"); - } - } else { - // TODO process - // System.out.println("ERROR: found indexed property on non-array value"); - } - } else if (currentElement.isJsonObject()) { - if (ifMissing && currentElement.getAsJsonObject().has(finalFragment)) - return false; - currentElement.getAsJsonObject().remove(finalFragment); - currentElement.getAsJsonObject().add(finalFragment, replacement); - } else { - // System.out.println("ERROR: currentElement can't be traversed"); - return false; - } - - // System.out.println("\n -- found --\n" + currentElement.toString() + "\n"); - return true; - } + public static Object element2value(JsonElement element) { + Object result = null; + if (element.isJsonNull() || !element.isJsonPrimitive()) + return result; + try { + JsonPrimitive primitive = element.getAsJsonPrimitive(); + if (primitive.isNumber()) + result = primitive.getAsNumber(); + else if (primitive.isBoolean()) + result = primitive.getAsBoolean(); + else + result = primitive.getAsString(); + } catch (Exception e1) { + try { + result = element.getAsBoolean(); + } catch (Exception e2) { + result = element.getAsString(); + } + } + return result; + } - @Deprecated(forRemoval = true, since = "1.9") - public static JsonElement findElement(JsonObject jsonObject, String pathFragment) { - JsonElement result = findElement(jsonObject, pathFragment, ""); - return result; - } + public static List element2list(JsonElement element) { + List result = new ArrayList<>(); + JsonArray array = element.getAsJsonArray(); + for (int i = 0; i < array.size(); i++) + result.add(element2object(array.get(i))); + return result; + } - public static JsonElement findElementExt(JsonObject jsonObject, String pathFragment) { - JsonElement result = null; - if (pathFragment.startsWith("?.")) { - result = findElement(jsonObject, pathFragment.substring(2), ""); - } else { - result = getElement(jsonObject, pathFragment); - } - - return result; - - } - - public static JsonElement findElement(JsonObject jsonObject, String pathFragment, String parentPath) { - - for (Entry entry: jsonObject.entrySet()) { - - String currentPath = parentPath + "." + entry.getKey(); - if (currentPath.endsWith(pathFragment)) - return entry.getValue(); - - } - - for (Entry entry: jsonObject.entrySet()) { - - if (!entry.getValue().isJsonObject()) - continue; - - String currentPath = parentPath + "." + entry.getKey(); - - JsonElement currentResult = findElement(entry.getValue().getAsJsonObject(), pathFragment, currentPath); - - if (currentResult != null) - return currentResult; - } - - - return null; - } - - public static JsonElement getElement(JsonObject jsonObject, String pathFragment) { - - int ind = 0; - String currentFragment = ""; - String newFragment = null; - - if (pathFragment.startsWith("'")) { - int closing = pathFragment.indexOf("'", 1); - if (closing>1) { - currentFragment = pathFragment.substring(1, closing); - ind = pathFragment.indexOf('.', closing); - if (ind > 0 ) { - newFragment = pathFragment.substring(ind+1); - } else { - newFragment = null; - } - } - } else { - ind = pathFragment.indexOf("."); - if (ind > 0) { - currentFragment = pathFragment.substring(0, ind); - newFragment = pathFragment.substring(ind+1); - } else { - currentFragment = pathFragment; - newFragment = null; - } - } - - if (!jsonObject.has(currentFragment)) - return null; - JsonElement je = jsonObject.get(currentFragment); - if (newFragment == null) - return je; - if (!je.isJsonObject()) - return null; - return getElement(je.getAsJsonObject(), newFragment); - } - - public static class JsonTraverse { - - List checkers = new ArrayList<>(); - - public JsonTraverse checker(ObjectChecker checker) { - this.checkers.add(checker); - return this; - } - - public Object traverse(JsonObject rootObject) { - Object result = null; - - Map context = new HashMap<>(); - - result = element2object(rootObject, context, "$"); - - return result; - } - - protected Object element2object(JsonElement element, Map context, String path) { - if (element.isJsonNull() || element.isJsonPrimitive()) - return element2value(element, context, path); - if (element.isJsonArray()) - return element2list(element, context, path); - if (element.isJsonObject()) { - JsonObject jsonObject = element.getAsJsonObject(); - ObjectWrapper ow = null; - for (ObjectChecker oc: checkers) { - ow = oc.checkObject(jsonObject); - if (ow != null) - break; - } - - if (ow != null) { - ow.wrap(jsonObject, context, path); - if (ow.continueTraverse()) - ow.setTraverseMap(element2map(element, context, path), context); - return ow; - } - - return element2map(element, context, path); - } - return null; - } + public static String getJsonRootObjectString(URL url) throws IOException { + try (BufferedReader reader = new BufferedReader(new InputStreamReader( + url.openStream(), StandardCharsets.UTF_8))) { + String data = reader + .lines() + .collect(Collectors.joining("\n")); + return data; + } - protected Map element2map(JsonElement element, Map context, String path){ - Map result = new HashMap<>(); - if (element.isJsonObject()) { - JsonObject jsonObject = element.getAsJsonObject(); - for (Entry entry: jsonObject.entrySet()) { - result.put(entry.getKey(), element2object(entry.getValue(), context, path + "." + entry.getKey())); - } - } else - if (element.isJsonArray()) { - JsonArray array = element.getAsJsonArray(); - result.put(PROP_VALUE, element2list(element, context, path)); - } else - if (element.isJsonNull()) { - result.put(PROP_VALUE, null); - } else - if (element.isJsonPrimitive()) { - result.put(PROP_VALUE, element2value(element, context, path)); - } + } - return result; - } - - protected Object element2value(JsonElement element, Map context, String path) { - Object result = null; - if (element.isJsonNull() || !element.isJsonPrimitive()) - return result; - try { - JsonPrimitive primitive = element.getAsJsonPrimitive(); - if (primitive.isNumber()) - result = primitive.getAsNumber(); - else if (primitive.isBoolean()) - result = primitive.getAsBoolean(); - else result = primitive.getAsString(); - } catch (Exception e1) { - try { - result = element.getAsBoolean(); - } catch (Exception e2) { - result = element.getAsString(); - } - } - return result; - } + public static JsonObject getJsonRootObject(URL url) throws IOException { + return JSONUtils.getJsonRootObject(getJsonRootObjectString(url)); + } - protected List element2list(JsonElement element, Map context, String path) { - List result = new ArrayList<>(); - JsonArray array = element.getAsJsonArray(); - for (int i=0; i { - - protected Map data = new HashMap<>(); - - public abstract void wrap(JsonObject object, Map context, String path); - - public boolean continueTraverse() { - return true; - } - - public void setTraverseMap(Map traverseMap, Map context) { - this.data = traverseMap; - } + public static JsonObject getJsonRootObject(String jsonData) { + try { + JsonElement je = (new JsonParser()).parse(jsonData); + JsonObject root = je.getAsJsonObject(); + return root; + } catch (Exception e) { + return new JsonObject(); + } + } - @Override - public int size() { - return this.data.size(); - } + public static JsonObject getJsonRootObjectUnsafe(String jsonData) throws Exception { + JsonElement je = (new JsonParser()).parse(jsonData); + JsonObject root = je.getAsJsonObject(); + return root; + } - @Override - public boolean isEmpty() { - return this.data.isEmpty(); - } + public static void mergeObjects(JsonObject source, JsonObject target) { + if (source == null) + return; + if (target == null) + return; + for (Entry entry : source.entrySet()) { + if (target.has(entry.getKey())) { + if (entry.getValue().isJsonObject()) + if (target.get(entry.getKey()).isJsonObject()) { + mergeObjects(entry.getValue().getAsJsonObject(), target.get(entry.getKey()).getAsJsonObject()); + continue; + } + target.remove(entry.getKey()); + } + target.add(entry.getKey(), entry.getValue().deepCopy()); + } + } - @Override - public boolean containsKey(Object key) { - return this.data.containsKey(key); - } + public static boolean replaceValue(JsonObject origin, String path, JsonElement replacement) { + return setValue(origin, path, replacement, false); + } - @Override - public boolean containsValue(Object value) { - return this.data.containsValue(value); - } + public static boolean setValue(JsonObject origin, String path, JsonElement replacement, boolean ifMissing) { + return setValue(origin, path, replacement, ifMissing, false); + } - @Override - public Object get(Object key) { - return this.data.get(key); - } + public static boolean setValue(JsonObject origin, String path, JsonElement replacement, boolean ifMissing, + boolean createFragments) { + String separator = path.indexOf('/') >= 0 + ? "/" + : "."; + String preparedPath = path.replaceAll("(\\[\\d+\\])", separator + "$1"); - @Override - public Object put(String key, Object value) { - return this.data.put(key, value); - } + List fragmentsList = new ArrayList<>(); + int sepIndex = preparedPath.indexOf(separator); + while (sepIndex >= 0) { + if (sepIndex == 0) { + preparedPath = preparedPath.substring(separator.length()); + continue; + } + fragmentsList.add(preparedPath.substring(0, sepIndex)); + preparedPath = preparedPath.substring(sepIndex + separator.length()); + sepIndex = preparedPath.indexOf(separator); + } + if (CommonUtils.isValid(preparedPath)) + fragmentsList.add(preparedPath); - @Override - public Object remove(Object key) { - return this.data.remove(key); - } + String[] pathSplitted = fragmentsList.toArray(new String[] {}); + // String[] pathSplitted = preparedPath.split("\\\\" + separator); + JsonElement currentElement = origin; + JsonElement previousElement = null; + for (int i = 0; i < pathSplitted.length - 1; i++) { + String fragment = pathSplitted[i]; + if (fragment.startsWith("[") && fragment.endsWith("]")) { + // array index + if (currentElement.isJsonArray()) { + int index = Integer.parseInt(fragment.substring(1, fragment.length() - 1)); + JsonArray arr = currentElement.getAsJsonArray(); + if (arr.size() > index) + currentElement = arr.get(index); + else { + // TODO process + // System.out.println("ERROR: index out of bounds"); + } + } else { + // TODO process + // System.out.println("ERROR: found indexed property on non-array value"); + } + } else if (currentElement.isJsonObject()) { + previousElement = currentElement; + currentElement = currentElement.getAsJsonObject().get(fragment); + if (currentElement == null) { + if (!createFragments) + break; + if (i == pathSplitted.length - 2) { + // it's last fragment -> create object + currentElement = new JsonObject(); + } else { + // check the next element + String nextFragment = pathSplitted[i + 1]; + if (!CommonUtils.isValid(nextFragment)) { + currentElement = new JsonObject(); + } else { + if (nextFragment.startsWith("[") && nextFragment.endsWith("]")) { + // next element is array index, so we create array + currentElement = new JsonObject(); + } else { + currentElement = new JsonObject(); + } + } + } - @Override - public void putAll(Map m) { - this.data.putAll(m); - } + previousElement.getAsJsonObject().add(fragment, currentElement); + } + } else { + // TODO process + // System.out.println("ERROR: currentElement can't be traversed"); + } + } + if (currentElement == null) { + // System.out.println("ERROR: currentElement is null"); + return false; + } + String finalFragment = pathSplitted[pathSplitted.length - 1]; + if (finalFragment.startsWith("[") && finalFragment.endsWith("]")) { + // array index + if (currentElement.isJsonArray()) { + // System.out.println("INDEX: [" + finalFragment.substring(1, + // finalFragment.length()-1) + "]"); + int index = Integer.parseInt(finalFragment.substring(1, finalFragment.length() - 1)); + JsonArray arr = currentElement.getAsJsonArray(); + if (arr.size() > index) { + // arr.remove(index); + arr.set(index, replacement); + } else { + // TODO process + // System.out.println("ERROR: index out of bounds"); + } + } else { + // TODO process + // System.out.println("ERROR: found indexed property on non-array value"); + } + } else if (currentElement.isJsonObject()) { + if (ifMissing && currentElement.getAsJsonObject().has(finalFragment)) + return false; + currentElement.getAsJsonObject().remove(finalFragment); + currentElement.getAsJsonObject().add(finalFragment, replacement); + } else { + // System.out.println("ERROR: currentElement can't be traversed"); + return false; + } - @Override - public void clear() { - this.data.clear(); - } + // System.out.println("\n -- found --\n" + currentElement.toString() + "\n"); + return true; + } - @Override - public Set keySet() { - return this.data.keySet(); - } + @Deprecated(forRemoval = true, since = "1.9") + public static JsonElement findElement(JsonObject jsonObject, String pathFragment) { + JsonElement result = findElement(jsonObject, pathFragment, ""); + return result; + } - @Override - public Collection values() { - return this.data.values(); - } + public static JsonElement findElementExt(JsonObject jsonObject, String pathFragment) { + JsonElement result = null; + if (pathFragment.startsWith("?.")) { + result = findElement(jsonObject, pathFragment.substring(2), ""); + } else { + result = getElement(jsonObject, pathFragment); + } - @Override - public Set> entrySet() { - return this.data.entrySet(); - }; - - } - - public static class JsonBuilder { + return result; - public static JsonObjectBuilder create(JsonObject jsonObject) { - return new JsonObjectBuilder(jsonObject); - } - - protected static abstract class CommonObjectBuilder> { + } - protected JsonObject currentObject; + public static JsonElement findElement(JsonObject jsonObject, String pathFragment, String parentPath) { - protected CommonObjectBuilder(JsonObject jsonObject) { - this.currentObject = jsonObject; - } - - protected T me() { - return (T) this; - } + for (Entry entry : jsonObject.entrySet()) { - public T string(String name, String value) { - return this.string(name, value, true); - } - - public T string(String name, String value, boolean replace) { - JSONUtils.setValue(currentObject, name, new JsonPrimitive(value), replace); - return me(); - } - - public T bool(String name, boolean value) { - return this.bool(name, value, true); - } - - public T bool(String name, boolean value, boolean replace) { - JSONUtils.setValue(currentObject, name, new JsonPrimitive(value), replace); - return me(); - } - - public T number(String name, Number value) { - return this.number(name, value, true); - } - - public T number(String name, Number value, boolean replace) { - JSONUtils.setValue(currentObject, name, new JsonPrimitive(value), replace); - return me(); - } - - public JsonArrayBuilder array(String name) { - return this.array(name, true); - } + String currentPath = parentPath + "." + entry.getKey(); + if (currentPath.endsWith(pathFragment)) + return entry.getValue(); - public JsonArrayBuilder array(String name, boolean replace) { - if (replace) - this.currentObject.remove(name); - if (!this.currentObject.has(name)) { - this.currentObject.add(name, new JsonArray()); - } - JsonElement je = this.currentObject.get(name); - if (!je.isJsonArray()) { - this.currentObject.remove(name); - this.currentObject.add(name, new JsonArray()); - } - - return new JsonArrayBuilder(this.currentObject.get(name).getAsJsonArray(), me()); - } - - protected JsonObject getCreateobject(String name, boolean replace) { - if (replace) - this.currentObject.remove(name); - if (!this.currentObject.has(name)) { - this.currentObject.add(name, new JsonObject()); - } - JsonElement je = this.currentObject.get(name); - if (!je.isJsonObject()) { - this.currentObject.remove(name); - this.currentObject.add(name, new JsonObject()); - } - - return this.currentObject.get(name).getAsJsonObject(); - }; - - - } - - public static class JsonObjectBuilder extends CommonObjectBuilder { - - protected JsonObjectBuilder parentBuilder = null; - - protected JsonObjectBuilder(JsonObject jsonObject) { - super(jsonObject); - } - - protected JsonObjectBuilder(JsonObject jsonObject, JsonObjectBuilder parent) { - this(jsonObject); - this.parentBuilder = parent; - } - - public JsonObjectBuilder object(String name) { - return this.object(name, true); - } - - public JsonObjectBuilder object(String name, boolean replace) { - - return new JsonObjectBuilder(getCreateobject(name, replace), this); - } - - public JsonObjectBuilder up() { - return this.parentBuilder; - } - - } - - public static class JsonObjectInArrayBuilder> extends CommonObjectBuilder> { - - protected T parentBuilder = null; - - protected JsonObjectInArrayBuilder(JsonObject jsonObject, T parent) { - super(jsonObject); - this.parentBuilder = parent; - } - - public JsonObjectBuilder object(String name) { - return this.object(name, true); - } - - public JsonObjectBuilder object(String name, boolean replace) { - - return new JsonObjectBuilder(getCreateobject(name, replace)); - } - - public T up() { - return this.parentBuilder; - } - - } - - protected static class AbstractJsonArrayBuilder> { - - JsonArray currentArray; - - protected AbstractJsonArrayBuilder(JsonArray jsonArray) { - this.currentArray = jsonArray; - } - - protected T me() { - return (T) this; - } - - public T clear() { - for (int i=0; i entry : jsonObject.entrySet()) { - public T number(Number value) { - this.currentArray.add(value); - return me(); - } - - public JsonObjectInArrayBuilder object(){ - JsonObject jo = new JsonObject(); - this.currentArray.add(jo); - return new JsonObjectInArrayBuilder<>(jo, me()); - } - - } - - public static class JsonArrayBuilder> extends AbstractJsonArrayBuilder> { - - T parentBuilder; - - protected JsonArrayBuilder(JsonArray jsonArray, T parent) { - super(jsonArray); - this.parentBuilder = parent; - } - - public JsonArrayInArrayBuilder> array() { - JsonArray ja = new JsonArray(); - this.currentArray.add(ja); - return new JsonArrayInArrayBuilder>(ja, this); - } + if (!entry.getValue().isJsonObject()) + continue; - public T up() { - return parentBuilder; - } - } - - public static class JsonArrayInArrayBuilder> extends AbstractJsonArrayBuilder> { + String currentPath = parentPath + "." + entry.getKey(); - T parentBuilder; - - protected JsonArrayInArrayBuilder(JsonArray jsonArray, T parent) { - super(jsonArray); - this.parentBuilder = parent; - } + JsonElement currentResult = findElement(entry.getValue().getAsJsonObject(), pathFragment, currentPath); - public JsonArrayInArrayBuilder> array() { - JsonArray ja = new JsonArray(); - this.currentArray.add(ja); - return new JsonArrayInArrayBuilder>(ja, this); - } - - public T up() { - return parentBuilder; - } - } - } + if (currentResult != null) + return currentResult; + } + + + return null; + } + + public static JsonElement getElement(JsonObject jsonObject, String pathFragment) { + + int ind = 0; + String currentFragment = ""; + String newFragment = null; + + if (pathFragment.startsWith("'")) { + int closing = pathFragment.indexOf("'", 1); + if (closing > 1) { + currentFragment = pathFragment.substring(1, closing); + ind = pathFragment.indexOf('.', closing); + if (ind > 0) { + newFragment = pathFragment.substring(ind + 1); + } else { + newFragment = null; + } + } + } else { + ind = pathFragment.indexOf("."); + if (ind > 0) { + currentFragment = pathFragment.substring(0, ind); + newFragment = pathFragment.substring(ind + 1); + } else { + currentFragment = pathFragment; + newFragment = null; + } + } + + if (!jsonObject.has(currentFragment)) + return null; + JsonElement je = jsonObject.get(currentFragment); + if (newFragment == null) + return je; + if (!je.isJsonObject()) + return null; + return getElement(je.getAsJsonObject(), newFragment); + } + + public static class JsonTraverse { + + List checkers = new ArrayList<>(); + + public JsonTraverse checker(ObjectChecker checker) { + this.checkers.add(checker); + return this; + } + + public Object traverse(JsonObject rootObject) { + Object result = null; + + Map context = new HashMap<>(); + + result = element2object(rootObject, context, "$"); + + return result; + } + + protected Object element2object(JsonElement element, Map context, String path) { + if (element.isJsonNull() || element.isJsonPrimitive()) + return element2value(element, context, path); + if (element.isJsonArray()) + return element2list(element, context, path); + if (element.isJsonObject()) { + JsonObject jsonObject = element.getAsJsonObject(); + ObjectWrapper ow = null; + for (ObjectChecker oc : checkers) { + ow = oc.checkObject(jsonObject); + if (ow != null) + break; + } + + if (ow != null) { + ow.wrap(jsonObject, context, path); + if (ow.continueTraverse()) + ow.setTraverseMap(element2map(element, context, path), context); + return ow; + } + + return element2map(element, context, path); + } + return null; + } + + protected Map element2map(JsonElement element, Map context, String path) { + Map result = new HashMap<>(); + if (element.isJsonObject()) { + JsonObject jsonObject = element.getAsJsonObject(); + for (Entry entry : jsonObject.entrySet()) { + result.put(entry.getKey(), element2object(entry.getValue(), context, path + "." + entry.getKey())); + } + } else if (element.isJsonArray()) { + JsonArray array = element.getAsJsonArray(); + result.put(PROP_VALUE, element2list(element, context, path)); + } else if (element.isJsonNull()) { + result.put(PROP_VALUE, null); + } else if (element.isJsonPrimitive()) { + result.put(PROP_VALUE, element2value(element, context, path)); + } + + return result; + } + + protected Object element2value(JsonElement element, Map context, String path) { + Object result = null; + if (element.isJsonNull() || !element.isJsonPrimitive()) + return result; + try { + JsonPrimitive primitive = element.getAsJsonPrimitive(); + if (primitive.isNumber()) + result = primitive.getAsNumber(); + else if (primitive.isBoolean()) + result = primitive.getAsBoolean(); + else + result = primitive.getAsString(); + } catch (Exception e1) { + try { + result = element.getAsBoolean(); + } catch (Exception e2) { + result = element.getAsString(); + } + } + return result; + } + + protected List element2list(JsonElement element, Map context, String path) { + List result = new ArrayList<>(); + JsonArray array = element.getAsJsonArray(); + for (int i = 0; i < array.size(); i++) + result.add(element2object(array.get(i), context, path + "[" + i + "]")); + return result; + } + + } + + public static abstract class ObjectChecker { + + public abstract ObjectWrapper checkObject(JsonObject object); + + } + + public static abstract class ObjectWrapper implements Map { + + protected Map data = new HashMap<>(); + + public abstract void wrap(JsonObject object, Map context, String path); + + public boolean continueTraverse() { + return true; + } + + public void setTraverseMap(Map traverseMap, Map context) { + this.data = traverseMap; + } + + @Override + public int size() { + return this.data.size(); + } + + @Override + public boolean isEmpty() { + return this.data.isEmpty(); + } + + @Override + public boolean containsKey(Object key) { + return this.data.containsKey(key); + } + + @Override + public boolean containsValue(Object value) { + return this.data.containsValue(value); + } + + @Override + public Object get(Object key) { + return this.data.get(key); + } + + @Override + public Object put(String key, Object value) { + return this.data.put(key, value); + } + + @Override + public Object remove(Object key) { + return this.data.remove(key); + } + + @Override + public void putAll(Map m) { + this.data.putAll(m); + } + + @Override + public void clear() { + this.data.clear(); + } + + @Override + public Set keySet() { + return this.data.keySet(); + } + + @Override + public Collection values() { + return this.data.values(); + } + + @Override + public Set> entrySet() { + return this.data.entrySet(); + }; + + } + + public static class JsonBuilder { + + public static JsonObjectBuilder create(JsonObject jsonObject) { + return new JsonObjectBuilder(jsonObject); + } + + protected static abstract class CommonObjectBuilder> { + + protected JsonObject currentObject; + + protected CommonObjectBuilder(JsonObject jsonObject) { + this.currentObject = jsonObject; + } + + protected T me() { + return (T) this; + } + + public T string(String name, String value) { + return this.string(name, value, true); + } + + public T string(String name, String value, boolean replace) { + JSONUtils.setValue(currentObject, name, new JsonPrimitive(value), replace); + return me(); + } + + public T bool(String name, boolean value) { + return this.bool(name, value, true); + } + + public T bool(String name, boolean value, boolean replace) { + JSONUtils.setValue(currentObject, name, new JsonPrimitive(value), replace); + return me(); + } + + public T number(String name, Number value) { + return this.number(name, value, true); + } + + public T number(String name, Number value, boolean replace) { + JSONUtils.setValue(currentObject, name, new JsonPrimitive(value), replace); + return me(); + } + + public JsonArrayBuilder array(String name) { + return this.array(name, true); + } + + public JsonArrayBuilder array(String name, boolean replace) { + if (replace) + this.currentObject.remove(name); + if (!this.currentObject.has(name)) { + this.currentObject.add(name, new JsonArray()); + } + JsonElement je = this.currentObject.get(name); + if (!je.isJsonArray()) { + this.currentObject.remove(name); + this.currentObject.add(name, new JsonArray()); + } + + return new JsonArrayBuilder(this.currentObject.get(name).getAsJsonArray(), me()); + } + + protected JsonObject getCreateobject(String name, boolean replace) { + if (replace) + this.currentObject.remove(name); + if (!this.currentObject.has(name)) { + this.currentObject.add(name, new JsonObject()); + } + JsonElement je = this.currentObject.get(name); + if (!je.isJsonObject()) { + this.currentObject.remove(name); + this.currentObject.add(name, new JsonObject()); + } + + return this.currentObject.get(name).getAsJsonObject(); + }; + + + } + + public static class JsonObjectBuilder extends CommonObjectBuilder { + + protected JsonObjectBuilder parentBuilder = null; + + protected JsonObjectBuilder(JsonObject jsonObject) { + super(jsonObject); + } + + protected JsonObjectBuilder(JsonObject jsonObject, JsonObjectBuilder parent) { + this(jsonObject); + this.parentBuilder = parent; + } + + public JsonObjectBuilder object(String name) { + return this.object(name, true); + } + + public JsonObjectBuilder object(String name, boolean replace) { + + return new JsonObjectBuilder(getCreateobject(name, replace), this); + } + + public JsonObjectBuilder up() { + return this.parentBuilder; + } + + } + + public static class JsonObjectInArrayBuilder> + extends CommonObjectBuilder> { + + protected T parentBuilder = null; + + protected JsonObjectInArrayBuilder(JsonObject jsonObject, T parent) { + super(jsonObject); + this.parentBuilder = parent; + } + + public JsonObjectBuilder object(String name) { + return this.object(name, true); + } + + public JsonObjectBuilder object(String name, boolean replace) { + + return new JsonObjectBuilder(getCreateobject(name, replace)); + } + + public T up() { + return this.parentBuilder; + } + + } + + protected static class AbstractJsonArrayBuilder> { + + JsonArray currentArray; + + protected AbstractJsonArrayBuilder(JsonArray jsonArray) { + this.currentArray = jsonArray; + } + + protected T me() { + return (T) this; + } + + public T clear() { + for (int i = 0; i < this.currentArray.size(); i++) + this.currentArray.remove(0); + return me(); + } + + public T string(String value) { + this.currentArray.add(value); + return me(); + } + + public T bool(boolean value) { + this.currentArray.add(value); + return me(); + } + + public T number(Number value) { + this.currentArray.add(value); + return me(); + } + + public JsonObjectInArrayBuilder object() { + JsonObject jo = new JsonObject(); + this.currentArray.add(jo); + return new JsonObjectInArrayBuilder<>(jo, me()); + } + + } + + public static class JsonArrayBuilder> + extends AbstractJsonArrayBuilder> { + + T parentBuilder; + + protected JsonArrayBuilder(JsonArray jsonArray, T parent) { + super(jsonArray); + this.parentBuilder = parent; + } + + public JsonArrayInArrayBuilder> array() { + JsonArray ja = new JsonArray(); + this.currentArray.add(ja); + return new JsonArrayInArrayBuilder>(ja, this); + } + + public T up() { + return parentBuilder; + } + } + + public static class JsonArrayInArrayBuilder> + extends AbstractJsonArrayBuilder> { + + T parentBuilder; + + protected JsonArrayInArrayBuilder(JsonArray jsonArray, T parent) { + super(jsonArray); + this.parentBuilder = parent; + } + + public JsonArrayInArrayBuilder> array() { + JsonArray ja = new JsonArray(); + this.currentArray.add(ja); + return new JsonArrayInArrayBuilder>(ja, this); + } + + public T up() { + return parentBuilder; + } + } + } } diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/BundleUtils.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/BundleUtils.java index d5fab95b..da3f2d10 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/BundleUtils.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/BundleUtils.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * base-support * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/OSGIUtils.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/OSGIUtils.java index c13b7565..2c8914bf 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/OSGIUtils.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/OSGIUtils.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * base-support * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/BundleCapabilityHelper.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/BundleCapabilityHelper.java index d69501f4..7a7bc002 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/BundleCapabilityHelper.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/BundleCapabilityHelper.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * base-support * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property @@ -30,44 +30,63 @@ import java.util.Map; import org.osgi.framework.Bundle; import org.osgi.framework.wiring.BundleCapability; +import org.osgi.framework.wiring.BundleRevision; import org.osgi.framework.wiring.BundleWiring; public class BundleCapabilityHelper extends CapabilityHelper { - - protected Bundle bundle; - public BundleCapabilityHelper(Bundle bundle) { - super(); - this.bundle = bundle; - setMultipleNamespacesSupported(true); - load(); - } - - @Override - protected void load() { - BundleWiring bundleWiring = bundle.adapt(BundleWiring.class); - if (bundleWiring == null) - return; - List capabilities = bundleWiring.getCapabilities(null); - for (BundleCapability cap: capabilities) { - CapabilityDescriptorImpl descriptor = new CapabilityDescriptorImpl(); - descriptor.namespace(cap.getNamespace()); - for (Map.Entry attr: cap.getAttributes().entrySet()) - descriptor.attribute(attr.getKey(), attr.getValue()); - addProvidedCapability(descriptor); - } - } - - public CapabilityDescriptor findObjectDeclaration(String objectId, String objectType) { - if (this.providedCapabilities == null) - return null; - if (this.providedCapabilities.get(objectType) == null) - return null; - for (CapabilityDescriptor desc: this.providedCapabilities.get(objectType)) - if (objectId.equals(desc.getAttributes().getOrDefault("objectId", "").toString())) - return desc; - return null; - - } - + protected Bundle bundle; + + protected boolean isLoaded = false; + + public BundleCapabilityHelper(Bundle bundle) { + super(); + this.bundle = bundle; + setMultipleNamespacesSupported(true); + load(); + } + + @Override + protected void load() { + List capabilities = null; + BundleWiring bundleWiring = bundle.adapt(BundleWiring.class); + if (bundleWiring != null) { + capabilities = bundleWiring.getCapabilities(null); + } else { + BundleRevision bundleRevision = bundle.adapt(BundleRevision.class); + if (bundleRevision != null) { + capabilities = bundleRevision.getDeclaredCapabilities(null); + } + } + + if (capabilities == null) + return; + + for (BundleCapability cap : capabilities) { + CapabilityDescriptorImpl descriptor = new CapabilityDescriptorImpl(); + descriptor.namespace(cap.getNamespace()); + for (Map.Entry attr : cap.getAttributes().entrySet()) + descriptor.attribute(attr.getKey(), attr.getValue()); + addProvidedCapability(descriptor); + } + + isLoaded = true; + } + + public CapabilityDescriptor findObjectDeclaration(String objectId, String objectType) { + if (this.providedCapabilities == null) + return null; + if (this.providedCapabilities.get(objectType) == null) + return null; + for (CapabilityDescriptor desc : this.providedCapabilities.get(objectType)) + if (objectId.equals(desc.getAttributes().getOrDefault("objectId", "").toString())) + return desc; + return null; + + } + + public boolean isLoaded() { + return isLoaded; + } + } diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityDescriptor.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityDescriptor.java index b623f6af..847fff95 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityDescriptor.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityDescriptor.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * artifact-management * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property @@ -25,42 +25,53 @@ */ package ru.entaxy.platform.base.support.osgi.bundle; -import org.osgi.resource.Capability; import java.util.Map; +import org.osgi.resource.Capability; + public interface CapabilityDescriptor extends Capability { - public static final String HEADER_PROVIDE_CAPABILITY = "Provide-Capability"; - public static final String HEADER_REQUIRE_CAPABILITY = "Require-Capability"; - - public static interface ATTRIBUTE_TYPES { - - public static final String STRING = "String"; - public static final String VERSION = "Version"; - public static final String LONG = "Long"; - public static final String DOUBLE = "Double"; - public static final String LIST = "List"; - - public static String TYPED_LIST(String itemType) { - return LIST + "<" + itemType + ">"; - } + public static final String HEADER_PROVIDE_CAPABILITY = "Provide-Capability"; + public static final String HEADER_REQUIRE_CAPABILITY = "Require-Capability"; - public static boolean isList(String itemType) { - return (itemType!=null) && (itemType.startsWith(LIST)); - } + public static interface ATTRIBUTE_TYPES { + + public static final String STRING = "String"; + public static final String VERSION = "Version"; + public static final String LONG = "Long"; + public static final String DOUBLE = "Double"; + public static final String LIST = "List"; + + public static String TYPED_LIST(String itemType) { + return LIST + "<" + itemType + ">"; + } + + public static boolean isList(String itemType) { + return (itemType != null) && (itemType.startsWith(LIST)); + } + + public static String itemType(String listType) { + if (!isList(listType)) + return null; + + return listType.substring(listType.indexOf("<"), listType.indexOf(">")); + } + + } + + /** + * Get attributes as they exist without extracting and transforming + * + * @return map of attributes + */ + public Map getRawAttributes(); + + public CapabilityDescriptor namespace(String namespace); + + public CapabilityDescriptor attributes(Map attributes); + + public CapabilityDescriptor attribute(String name, Object value); + + public CapabilityDescriptor attribute(String name, Object value, String type); - public static String itemType(String listType) { - if (!isList(listType)) - return null; - - return listType.substring(listType.indexOf("<"), listType.indexOf(">")); - } - - } - - public CapabilityDescriptor namespace(String namespace); - public CapabilityDescriptor attributes(Map attributes); - public CapabilityDescriptor attribute(String name, Object value); - public CapabilityDescriptor attribute(String name, Object value, String type); - } diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityDescriptorImpl.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityDescriptorImpl.java index ef561873..5b4892b8 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityDescriptorImpl.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityDescriptorImpl.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * artifact-management * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property @@ -25,6 +25,11 @@ */ package ru.entaxy.platform.base.support.osgi.bundle; +import java.nio.charset.CharsetEncoder; +import java.nio.charset.StandardCharsets; +import java.util.Base64; +import java.util.Base64.Decoder; +import java.util.Base64.Encoder; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -37,130 +42,178 @@ import ru.entaxy.platform.base.support.CommonUtils; public class CapabilityDescriptorImpl implements CapabilityDescriptor { - protected String namespace; - - protected Map directives = new HashMap<>(); - protected Map attributes = new HashMap<>(); - - private static class AttributeDescriptor { - String type; - Object value; - - public AttributeDescriptor(Object value) { - this(value, CapabilityTypeHelper.getTypeName(value)); - } - - public AttributeDescriptor(Object value, String type) { - this.type = type; - this.value = value==null?"":value; //.toString(); - } - - public String getValueAsString() { - if (value == null) - return null; - if (CapabilityDescriptor.ATTRIBUTE_TYPES.isList(type)) - return CapabilityTypeHelper.getListAsString((List)value); - if (CapabilityDescriptor.ATTRIBUTE_TYPES.STRING.equals(type)) - return "\"" + value.toString() + "\""; - return value.toString(); - } - - } - - public CapabilityDescriptorImpl() { - // TODO Auto-generated constructor stub - } + protected String namespace; - public CapabilityDescriptorImpl(String namespace) { - this(); - namespace(namespace); - } - - public String getAttributesAsString() { - return this.attributes.entrySet().stream() - .map(entry-> - entry.getKey() - + /* (!ATTRIBUTE_TYPES.STRING.equals(entry.getValue().type)?(*/":" + entry.getValue().type/* ):"") */ - + "=" + entry.getValue().getValueAsString()) - .collect(Collectors.joining(";")); - } - - @Override - public String getNamespace() { - return this.namespace; - } + protected Map directives = new HashMap<>(); + protected Map attributes = new HashMap<>(); - @Override - public Map getDirectives() { - return this.directives; - } + private static class AttributeDescriptor { - @Override - public Map getAttributes() { - Map result = new HashMap<>(); - for (Map.Entry entry: this.attributes.entrySet()) - result.put(entry.getKey(), entry.getValue().value); - return result; - } + public static final String MARKER_BASE64 = "@BASE64"; - @Override - public Resource getResource() { - // not implemented - return null; - } + private static final CharsetEncoder ENCODER = StandardCharsets.ISO_8859_1.newEncoder(); - @Override - public CapabilityDescriptor namespace(String namespace) { - this.namespace = namespace; - return this; - } + private static final Encoder BASE64_ENCODER = Base64.getEncoder(); - @Override - public CapabilityDescriptor attribute(String name, Object value) { - this.attributes.put(name, new AttributeDescriptor(value)); - return this; - } + private static final Decoder BASE64_DECODER = Base64.getDecoder(); - @Override - public CapabilityDescriptor attribute(String name, Object value, String type) { - this.attributes.put(name, new AttributeDescriptor(value, type)); - return this; - } - - public CapabilityDescriptor parseAttribute(String attributeData) { - - String nameType = attributeData.substring(0, attributeData.indexOf("=")); - if (!CommonUtils.isValid(nameType)) - return this; - String[] nameTypeSplit = nameType.split(":"); - - String name = nameTypeSplit[0].trim(); - - String type = (nameTypeSplit.length > 1?nameTypeSplit[1]:CapabilityDescriptor.ATTRIBUTE_TYPES.STRING); - if (!CommonUtils.isValid(type)) - type = CapabilityDescriptor.ATTRIBUTE_TYPES.STRING; - type = type.trim(); - - String value = attributeData.substring(attributeData.indexOf("=")+1); - if (!CommonUtils.isValid(value)) - value = ""; - value = value.trim(); - - Object typedValue = CapabilityTypeHelper.getTypedValue(type, value); - this.attribute(name, typedValue, type); - - return this; - } - + String type; + Object value; - @Override - public CapabilityDescriptor attributes(Map attributes) { - if (attributes == null) - return this; - for (Entry entry: attributes.entrySet()) { - this.attribute(entry.getKey(), entry.getValue()); - } - return this; - } + public AttributeDescriptor(Object value) { + this(value, CapabilityTypeHelper.getTypeName(value)); + } + + public AttributeDescriptor(Object value, String type) { + this.type = type; + this.value = value == null ? "" : value; // .toString(); + } + + public String getPackedStringValue(String data) { + if (ENCODER.canEncode(data)) + return data; + return BASE64_ENCODER.encodeToString(data.getBytes()).concat(MARKER_BASE64); + } + + public String getUnpackedStringValue(String data) { + if (data.endsWith(MARKER_BASE64)) + return new String(BASE64_DECODER.decode(data.substring(0, data.length() - MARKER_BASE64.length()))); + return data; + } + + public Object getValue() { + if (!CapabilityDescriptor.ATTRIBUTE_TYPES.STRING.equals(type)) + return value; + return getUnpackedStringValue(value.toString()); + } + + public String getValueAsString() { + if (value == null) + return null; + if (CapabilityDescriptor.ATTRIBUTE_TYPES.isList(type)) + return CapabilityTypeHelper.getListAsString((List) value); + if (CapabilityDescriptor.ATTRIBUTE_TYPES.STRING.equals(type)) + return "\"" + getPackedStringValue(value.toString()) + "\""; + return value.toString(); + } + + public String getRawValueAsString() { + if (value == null) + return null; + if (CapabilityDescriptor.ATTRIBUTE_TYPES.isList(type)) + return CapabilityTypeHelper.getListAsString((List) value); + if (CapabilityDescriptor.ATTRIBUTE_TYPES.STRING.equals(type)) + return "\"" + value.toString() + "\""; + return value.toString(); + } + + } + + public CapabilityDescriptorImpl() { + // TODO Auto-generated constructor stub + } + + public CapabilityDescriptorImpl(String namespace) { + this(); + namespace(namespace); + } + + public String getAttributesAsString() { + return this.attributes.entrySet().stream() + .map(entry -> entry.getKey() + + /* (!ATTRIBUTE_TYPES.STRING.equals(entry.getValue().type)?( */":" + entry.getValue().type/* + * ) + * : + * "") + */ + + "=" + entry.getValue().getValueAsString()) + .collect(Collectors.joining(";")); + } + + @Override + public String getNamespace() { + return this.namespace; + } + + @Override + public Map getDirectives() { + return this.directives; + } + + @Override + public Map getAttributes() { + Map result = new HashMap<>(); + for (Map.Entry entry : this.attributes.entrySet()) + result.put(entry.getKey(), entry.getValue().getValue()); + return result; + } + + @Override + public Map getRawAttributes() { + Map result = new HashMap<>(); + for (Map.Entry entry : this.attributes.entrySet()) + result.put(entry.getKey(), entry.getValue().value); + return result; + } + + @Override + public Resource getResource() { + // not implemented + return null; + } + + @Override + public CapabilityDescriptor namespace(String namespace) { + this.namespace = namespace; + return this; + } + + @Override + public CapabilityDescriptor attribute(String name, Object value) { + this.attributes.put(name, new AttributeDescriptor(value)); + return this; + } + + @Override + public CapabilityDescriptor attribute(String name, Object value, String type) { + this.attributes.put(name, new AttributeDescriptor(value, type)); + return this; + } + + public CapabilityDescriptor parseAttribute(String attributeData) { + + String nameType = attributeData.substring(0, attributeData.indexOf("=")); + if (!CommonUtils.isValid(nameType)) + return this; + String[] nameTypeSplit = nameType.split(":"); + + String name = nameTypeSplit[0].trim(); + + String type = (nameTypeSplit.length > 1 ? nameTypeSplit[1] : CapabilityDescriptor.ATTRIBUTE_TYPES.STRING); + if (!CommonUtils.isValid(type)) + type = CapabilityDescriptor.ATTRIBUTE_TYPES.STRING; + type = type.trim(); + + String value = attributeData.substring(attributeData.indexOf("=") + 1); + if (!CommonUtils.isValid(value)) + value = ""; + value = value.trim(); + + Object typedValue = CapabilityTypeHelper.getTypedValue(type, value); + this.attribute(name, typedValue, type); + + return this; + } + + + @Override + public CapabilityDescriptor attributes(Map attributes) { + if (attributes == null) + return this; + for (Entry entry : attributes.entrySet()) { + this.attribute(entry.getKey(), entry.getValue()); + } + return this; + } } diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityHelper.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityHelper.java index 04195802..370e3e6e 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityHelper.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityHelper.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * test-producers * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property @@ -28,130 +28,144 @@ package ru.entaxy.platform.base.support.osgi.bundle; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import ru.entaxy.platform.base.support.CommonUtils; public class CapabilityHelper { - protected boolean isMultipleNamespacesSupported = false; - - protected Map requiredCapabilities = new HashMap<>(); - protected Map> providedCapabilities = new HashMap<>(); - - public CapabilityHelper() { - super(); - } + protected boolean isMultipleNamespacesSupported = false; - protected void load() { -/* String existing = this.manifest.getCustomAttributes().get(CapabilityDescriptor.HEADER_PROVIDE_CAPABILITY); - if (CommonUtils.isValid(existing)) { - List list = parse(existing); - for (CapabilityDescriptorImpl c: list) - addProvidedCapability(c); - } - existing = this.manifest.getCustomAttributes().get(CapabilityDescriptor.HEADER_REQUIRE_CAPABILITY); - if (CommonUtils.isValid(existing)) { - List list = parse(existing); - for (CapabilityDescriptorImpl c: list) - addRequiredCapability(c); - } */ - } - - protected void addProvidedCapability(CapabilityDescriptorImpl capabilityDescriptorImpl) { - if (capabilityDescriptorImpl == null) - return; - if (!isMultipleNamespacesSupported) { - this.providedCapabilities.put(capabilityDescriptorImpl.getNamespace() - , Collections.singletonList(capabilityDescriptorImpl)); - } else { - if (!this.providedCapabilities.containsKey(capabilityDescriptorImpl.getNamespace())) - this.providedCapabilities.put(capabilityDescriptorImpl.getNamespace() - , Collections.singletonList(capabilityDescriptorImpl)); - else - this.providedCapabilities.get(capabilityDescriptorImpl.getNamespace()) - .add(capabilityDescriptorImpl); - } - } + protected Map requiredCapabilities = new HashMap<>(); + protected Map> providedCapabilities = new HashMap<>(); + + protected Set osgiCapabilities = new HashSet<>(); - - - protected void addRequiredCapability(CapabilityDescriptorImpl capabilityDescriptorImpl) { - if (capabilityDescriptorImpl == null) - return; - this.requiredCapabilities.put(capabilityDescriptorImpl.getNamespace(), capabilityDescriptorImpl); - } - - protected List parse(String capabilities) { - List result = new ArrayList<>(); - String[] caps = capabilities.split(","); - for (int i=0; i< caps.length; i++) - if (CommonUtils.isValid(caps[i])) { - result.add(parseCapability(caps[i])); - } - return result; - } - - protected CapabilityDescriptorImpl parseCapability(String capability) { - String[] parsed = capability.split(";"); - CapabilityDescriptorImpl result = new CapabilityDescriptorImpl(parsed[0].trim()); - for (int i=1; i getProvidedCapabilities(){ - return this.providedCapabilities.values().stream() - .flatMap(List::stream) - .map(c -> (CapabilityDescriptor)c) - .collect(Collectors.toList()); - } + public CapabilityHelper() { + super(); + osgiCapabilities.add("osgi.identity"); + osgiCapabilities.add("osgi.wiring.bundle"); + osgiCapabilities.add("osgi.wiring.host"); + } - public List getProvidedCapabilities(String namesoace){ - if (!this.providedCapabilities.containsKey(namesoace)) - return new ArrayList<>(); - return this.providedCapabilities.get(namesoace) - .stream() - .map(c -> (CapabilityDescriptor)c) - .collect(Collectors.toList()); - } - - - public List getRequiredCapabilities(){ - return this.requiredCapabilities.values().stream() - .map(c -> (CapabilityDescriptor)c) - .collect(Collectors.toList()); - } - - public boolean isCapabilityProvided(String namespace) { - return this.providedCapabilities.containsKey(namespace); - } + protected void load() { + /* + * String existing = + * this.manifest.getCustomAttributes().get(CapabilityDescriptor.HEADER_PROVIDE_CAPABILITY); + * if (CommonUtils.isValid(existing)) { List list = + * parse(existing); for (CapabilityDescriptorImpl c: list) addProvidedCapability(c); } + * existing = + * this.manifest.getCustomAttributes().get(CapabilityDescriptor.HEADER_REQUIRE_CAPABILITY); + * if (CommonUtils.isValid(existing)) { List list = + * parse(existing); for (CapabilityDescriptorImpl c: list) addRequiredCapability(c); } + */ + } - public boolean isCapabilityRequired(String namespace) { - return this.requiredCapabilities.containsKey(namespace); - } - - public CapabilityDescriptor provideCapability(String namespace) { - CapabilityDescriptorImpl desc = new CapabilityDescriptorImpl(namespace); - addProvidedCapability(desc); - return desc; - } + protected void addProvidedCapability(CapabilityDescriptorImpl capabilityDescriptorImpl) { + if (capabilityDescriptorImpl == null) + return; + if (!isMultipleNamespacesSupported) { + this.providedCapabilities.put(capabilityDescriptorImpl.getNamespace(), + Collections.singletonList(capabilityDescriptorImpl)); + } else { + if (!this.providedCapabilities.containsKey(capabilityDescriptorImpl.getNamespace())) + this.providedCapabilities.put(capabilityDescriptorImpl.getNamespace(), new ArrayList<>()); + this.providedCapabilities.get(capabilityDescriptorImpl.getNamespace()) + .add(capabilityDescriptorImpl); + } + } - public CapabilityDescriptor requireCapability(String namespace) { - if (!this.requiredCapabilities.containsKey(namespace)) - this.requiredCapabilities.put(namespace, new CapabilityDescriptorImpl(namespace)); - return this.requiredCapabilities.get(namespace); - } - public boolean isMultipleNamespacesSupported() { - return isMultipleNamespacesSupported; - } - public void setMultipleNamespacesSupported(boolean isMultipleNamespacesSupported) { - this.isMultipleNamespacesSupported = isMultipleNamespacesSupported; - } - + protected void addRequiredCapability(CapabilityDescriptorImpl capabilityDescriptorImpl) { + if (capabilityDescriptorImpl == null) + return; + this.requiredCapabilities.put(capabilityDescriptorImpl.getNamespace(), capabilityDescriptorImpl); + } + + protected List parse(String capabilities) { + List result = new ArrayList<>(); + String[] caps = capabilities.split(","); + for (int i = 0; i < caps.length; i++) + if (CommonUtils.isValid(caps[i])) { + result.add(parseCapability(caps[i])); + } + return result; + } + + protected CapabilityDescriptorImpl parseCapability(String capability) { + String[] parsed = capability.split(";"); + CapabilityDescriptorImpl result = new CapabilityDescriptorImpl(parsed[0].trim()); + for (int i = 1; i < parsed.length; i++) { + if (!CommonUtils.isValid(parsed[i])) + continue; + result.parseAttribute(parsed[i]); + } + return result; + } + + public List getProvidedCapabilities() { + return this.providedCapabilities.values().stream() + .flatMap(List::stream) + .map(c -> (CapabilityDescriptor) c) + .collect(Collectors.toList()); + } + + public List getEntaxyObjectsProvidedCapabilities() { + return this.providedCapabilities.entrySet().stream() + .filter(e -> !osgiCapabilities.contains(e.getKey())) + .map(e -> e.getValue()) + .flatMap(List::stream) + .map(c -> (CapabilityDescriptor) c) + .collect(Collectors.toList()); + } + + public List getProvidedCapabilities(String namespace) { + if (!this.providedCapabilities.containsKey(namespace)) + return new ArrayList<>(); + return this.providedCapabilities.get(namespace) + .stream() + .map(c -> (CapabilityDescriptor) c) + .collect(Collectors.toList()); + } + + + public List getRequiredCapabilities() { + return this.requiredCapabilities.values().stream() + .map(c -> (CapabilityDescriptor) c) + .collect(Collectors.toList()); + } + + public boolean isCapabilityProvided(String namespace) { + return this.providedCapabilities.containsKey(namespace); + } + + public boolean isCapabilityRequired(String namespace) { + return this.requiredCapabilities.containsKey(namespace); + } + + public CapabilityDescriptor provideCapability(String namespace) { + CapabilityDescriptorImpl desc = new CapabilityDescriptorImpl(namespace); + addProvidedCapability(desc); + return desc; + } + + public CapabilityDescriptor requireCapability(String namespace) { + if (!this.requiredCapabilities.containsKey(namespace)) + this.requiredCapabilities.put(namespace, new CapabilityDescriptorImpl(namespace)); + return this.requiredCapabilities.get(namespace); + } + + public boolean isMultipleNamespacesSupported() { + return isMultipleNamespacesSupported; + } + + public void setMultipleNamespacesSupported(boolean isMultipleNamespacesSupported) { + this.isMultipleNamespacesSupported = isMultipleNamespacesSupported; + } + } diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityTypeHelper.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityTypeHelper.java index 198c9eb6..b76852d3 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityTypeHelper.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/bundle/CapabilityTypeHelper.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * test-producers * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/CommonNamedReferenceListener.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/CommonNamedReferenceListener.java index ddccd60c..72858643 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/CommonNamedReferenceListener.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/CommonNamedReferenceListener.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * system-commons * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/CommonReferenceListener.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/CommonReferenceListener.java index b569b280..5c77310f 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/CommonReferenceListener.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/CommonReferenceListener.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * system-commons * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/NamedReferenceListener.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/NamedReferenceListener.java index 65f6c7ce..a594d102 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/NamedReferenceListener.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/NamedReferenceListener.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * system-commons * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/ReferenceListener.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/ReferenceListener.java index 9d3a3063..b12b8f33 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/ReferenceListener.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/service/ReferenceListener.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * system-commons * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleContextAware.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleContextAware.java index cae09dd5..b7bc6ecf 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleContextAware.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleContextAware.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * profile-management * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleFilter.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleFilter.java index a89221ab..2b25d6ad 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleFilter.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleFilter.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * profile-management * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleTrackerCustomizerListener.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleTrackerCustomizerListener.java index 579a024e..4c15881d 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleTrackerCustomizerListener.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleTrackerCustomizerListener.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * profile-management * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleTrackerUtils.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleTrackerUtils.java index d71d8d04..d6113aba 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleTrackerUtils.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/BundleTrackerUtils.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * profile-management * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/UniformBundleTrackerCustomizer.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/UniformBundleTrackerCustomizer.java index c8df8e38..8fa3d1f6 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/UniformBundleTrackerCustomizer.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/UniformBundleTrackerCustomizer.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * profile-management * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/filter/AbstractBundleFilter.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/filter/AbstractBundleFilter.java index 96657aea..f4f66756 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/filter/AbstractBundleFilter.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/filter/AbstractBundleFilter.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * base-support * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/filter/BundleCapabilityFilter.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/filter/BundleCapabilityFilter.java index 86d65ad9..519bc2b1 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/filter/BundleCapabilityFilter.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/filter/BundleCapabilityFilter.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * profile-management * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/filter/BundleHeaderFilter.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/filter/BundleHeaderFilter.java index 9c201cf5..070c8542 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/filter/BundleHeaderFilter.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/osgi/tracker/filter/BundleHeaderFilter.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * base-support * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/xml/CommonXMLUtils.java b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/xml/CommonXMLUtils.java index 07d56245..a22b7d73 100644 --- a/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/xml/CommonXMLUtils.java +++ b/platform/runtime/base/base-support/src/main/java/ru/entaxy/platform/base/support/xml/CommonXMLUtils.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * base-support * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property @@ -38,16 +38,20 @@ import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Result; import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; -/*import net.sf.saxon.TransformerFactoryImpl; -import net.sf.saxon.lib.NamespaceConstant; -*/ +/* + * import net.sf.saxon.TransformerFactoryImpl; import net.sf.saxon.lib.NamespaceConstant; + */ +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -56,195 +60,255 @@ import org.xml.sax.InputSource; import ru.entaxy.platform.base.support.CommonUtils; public class CommonXMLUtils { - - // GETTING DOCUMENT - - public static Document getDocument(URL url) throws Exception{ - return getDocument(url.openStream()); - } - - public static Document getDocument(InputStream stream) throws Exception { - return getDocument(false, stream); - } - public static Document getDocument(boolean namespaceAware, InputStream stream) throws Exception { - InputSource is = new InputSource(stream); - return getDocument(namespaceAware, is); - } - - public static Document newDocument(boolean namespaceAware) throws Exception{ - return getDocument(namespaceAware, (File)null); - } - public static Document getDocument(boolean namespaceAware, String path) throws Exception{ - return getDocument(namespaceAware, CommonUtils.isValid(path)?(new File(path)):null); - } - public static Document getDocument(boolean namespaceAware, File file) throws Exception{ - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - dbf.setNamespaceAware(namespaceAware); - DocumentBuilder db = dbf.newDocumentBuilder(); - if (file!=null) - return db.parse(file); - else - return db.newDocument(); - - } - public static Document newDocument() throws Exception { - return newDocument(false); - } - public static Document getDocument(String path) throws Exception{ - return getDocument(false, path); - } - public static Document parseString(boolean namespaceAware, String xmlData) throws Exception{ + public static final Logger log = LoggerFactory.getLogger(CommonXMLUtils.class); + private static final String XML_SAX_EXTERNAL_GENERAL_ENTITIES = + "http://xml.org/sax/features/external-general-entities"; + private static final String XML_SAX_EXTERNAL_PARAMETER_ENTITIES = + "http://xml.org/sax/features/external-parameter-entities"; + + // GETTING DOCUMENT + + public static Document getDocument(URL url) throws Exception { + return getDocument(url.openStream()); + } + + public static Document getDocument(InputStream stream) throws Exception { + return getDocument(false, stream); + } + + public static Document getDocument(boolean namespaceAware, InputStream stream) throws Exception { + InputSource is = new InputSource(stream); + return getDocument(namespaceAware, is); + } + + public static Document newDocument(boolean namespaceAware) throws Exception { + return getDocument(namespaceAware, (File) null); + } + + public static Document getDocument(boolean namespaceAware, String path) throws Exception { + return getDocument(namespaceAware, CommonUtils.isValid(path) ? (new File(path)) : null); + } + + public static Document getDocument(boolean namespaceAware, File file) throws Exception { + DocumentBuilderFactory dbf = newDocumentBuilderFactoryInstance(); + + dbf.setNamespaceAware(namespaceAware); + DocumentBuilder db = dbf.newDocumentBuilder(); + if (file != null) + return db.parse(file); + else + return db.newDocument(); + + } + + public static Document newDocument() throws Exception { + return newDocument(false); + } + + public static Document getDocument(String path) throws Exception { + return getDocument(false, path); + } + + public static Document parseString(boolean namespaceAware, String xmlData) throws Exception { InputSource is = new InputSource(new StringReader(xmlData)); return getDocument(namespaceAware, is); - } - public static Document getDocument(InputSource source) throws Exception { - return getDocument(false, source); - } - public static Document getDocument(boolean namespaceAware, InputSource source) throws Exception { - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + } + + public static Document getDocument(InputSource source) throws Exception { + return getDocument(false, source); + } + + public static Document getDocument(boolean namespaceAware, InputSource source) throws Exception { + DocumentBuilderFactory factory = newDocumentBuilderFactoryInstance(); + factory.setNamespaceAware(namespaceAware); DocumentBuilder builder = factory.newDocumentBuilder(); - Document d = builder.parse( source ); - return d; - } - public static String doc2string(Document doc) throws Exception{ - //set up a transformer - TransformerFactory transfac = TransformerFactory.newInstance(); - Transformer trans = transfac.newTransformer(); - trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); - trans.setOutputProperty(OutputKeys.INDENT, "yes"); + Document d = builder.parse(source); + return d; + } - //create string from xml tree - StringWriter sw = new StringWriter(); - StreamResult result = new StreamResult(sw); - DOMSource source = new DOMSource(doc); - trans.transform(source, result); - String xmlString = sw.toString(); + public static DocumentBuilderFactory newDocumentBuilderFactoryInstance() { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - return xmlString; - } - - public static String node2string(Node node) throws Exception { - Transformer t = TransformerFactory.newInstance().newTransformer(); - t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); - StringWriter sw = new StringWriter(); - t.transform(new DOMSource(node), new StreamResult(sw)); - return sw.toString(); - } - - // SAVING DOCUMENT - public static void saveDocument(Document doc, String path) throws Exception{ - File file = new File(path); - saveDocument(doc, file); - } + // Disable external entities declarations + try { + factory.setFeature(XML_SAX_EXTERNAL_GENERAL_ENTITIES, false); + factory.setFeature(XML_SAX_EXTERNAL_PARAMETER_ENTITIES, false); + } catch (ParserConfigurationException e) { + // log.warn(e.getMessage(), e); + log.warn(e.getMessage()); + } - public static void saveDocument(Document doc, File file) throws Exception{ - DOMSource source = new DOMSource(doc); - Result result = new StreamResult(file); - Transformer xformer = TransformerFactory.newInstance().newTransformer(); + return factory; + } + + public static TransformerFactory newTransformerFactoryInstance() { + System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl"); + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + // Disable external entities declarations + try { + transformerFactory.setFeature(XML_SAX_EXTERNAL_GENERAL_ENTITIES, false); + transformerFactory.setFeature(XML_SAX_EXTERNAL_PARAMETER_ENTITIES, false); + } catch (TransformerConfigurationException e) { + // log.warn(e.getMessage(), e); + log.warn(e.getMessage()); + } + return transformerFactory; + } + + public static String doc2string(Document doc) throws Exception { + // set up a transformer + TransformerFactory transfac = newTransformerFactoryInstance(); + + Transformer trans = transfac.newTransformer(); + trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); + trans.setOutputProperty(OutputKeys.INDENT, "yes"); + + // create string from xml tree + StringWriter sw = new StringWriter(); + StreamResult result = new StreamResult(sw); + DOMSource source = new DOMSource(doc); + trans.transform(source, result); + String xmlString = sw.toString(); + + return xmlString; + } + + public static String node2string(Node node) throws Exception { + TransformerFactory transfac = newTransformerFactoryInstance(); + + Transformer t = transfac.newTransformer(); + t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); + StringWriter sw = new StringWriter(); + t.transform(new DOMSource(node), new StreamResult(sw)); + return sw.toString(); + } + + // SAVING DOCUMENT + public static void saveDocument(Document doc, String path) throws Exception { + File file = new File(path); + saveDocument(doc, file); + } + + public static void saveDocument(Document doc, File file) throws Exception { + DOMSource source = new DOMSource(doc); + Result result = new StreamResult(file); + + TransformerFactory transfac = newTransformerFactoryInstance(); + + Transformer xformer = transfac.newTransformer(); xformer.transform(source, result); - } - - // MARSHAL - public static void jaxbMarshal(JAXBContext context, JAXBElement object, Node node) throws Exception{ - Marshaller m = context.createMarshaller(); - jaxbMarshall(m, object, node); - } - public static void jaxbMarshall(Marshaller m, JAXBElement object, Node node) throws Exception{ - if (node==null || node.getNodeType()!=Node.ELEMENT_NODE) - throw new IllegalArgumentException("Node is not Element"); - m.marshal(object, node); - } - public static String jaxbMarshall(JAXBContext context, JAXBElement object) throws Exception{ - String result = null; - - Marshaller m = context.createMarshaller(); - StringWriter sw = new StringWriter(); - m.marshal(object, sw); - result = sw.toString(); - - return result; - } - // UNMARSHAL - /** - * - * @param context - * @param node - * @param classMap - * @return - * @throws Exception - */ - - public static JAXBElement jaxbUnmarshall(JAXBContext context, Node node, HashMap> classMap) throws Exception{ - Unmarshaller um = context.createUnmarshaller(); - return jaxbUnmarshall(um, node, classMap); - } - public static JAXBElement jaxbUnmarshall(Unmarshaller um, Node node, HashMap> classMap) throws Exception{ - if (node.getNodeType()!=Node.ELEMENT_NODE) - throw new IllegalArgumentException("Node is not Element"); - String nodeName = node.getNodeName(); - String[] s = nodeName.split(":"); - nodeName = s[s.length-1]; - Class objectClass = classMap.get(nodeName.toLowerCase()); - if (objectClass==null) - throw new IllegalArgumentException("Node name " +nodeName+ " not found in map " + classMap.toString()); - Object obj = um.unmarshal(node, objectClass); - return (JAXBElement)obj; - } - - public static JAXBElement jaxbUnmarshall(Class type, Document doc) throws Exception{ - JAXBContext context = JAXBContext.newInstance( - type.getPackage().getName(), type.getClassLoader()); - NodeList list = doc.getChildNodes(); - Node node = null; - for (int i=0; i jaxbUnmarshall(Class type, Node node) throws Exception{ - JAXBContext context = JAXBContext.newInstance( - type.getPackage().getName(), type.getClassLoader()); - return jaxbUnmarshall(context.createUnmarshaller(), node, type); - } - public static JAXBElement jaxbUnmarshall(JAXBContext context, Node node, Class type) throws Exception{ - return jaxbUnmarshall(context.createUnmarshaller(), node, type); - } - public static JAXBElement jaxbUnmarshall(Unmarshaller um, Node node, Class type) throws Exception{ - Object obj = um.unmarshal(node, type); - return (JAXBElement)obj; - } - - // XSLT + } + + // MARSHAL + public static void jaxbMarshal(JAXBContext context, JAXBElement object, Node node) throws Exception { + Marshaller m = context.createMarshaller(); + jaxbMarshall(m, object, node); + } + + public static void jaxbMarshall(Marshaller m, JAXBElement object, Node node) throws Exception { + if (node == null || node.getNodeType() != Node.ELEMENT_NODE) + throw new IllegalArgumentException("Node is not Element"); + m.marshal(object, node); + } + + public static String jaxbMarshall(JAXBContext context, JAXBElement object) throws Exception { + String result = null; + + Marshaller m = context.createMarshaller(); + StringWriter sw = new StringWriter(); + m.marshal(object, sw); + result = sw.toString(); + + return result; + } + + // UNMARSHAL + /** + * + * @param context + * @param node + * @param classMap + * @return + * @throws Exception + */ + + public static JAXBElement jaxbUnmarshall(JAXBContext context, Node node, + HashMap> classMap) throws Exception { + Unmarshaller um = context.createUnmarshaller(); + return jaxbUnmarshall(um, node, classMap); + } + + public static JAXBElement jaxbUnmarshall(Unmarshaller um, Node node, + HashMap> classMap) throws Exception { + if (node.getNodeType() != Node.ELEMENT_NODE) + throw new IllegalArgumentException("Node is not Element"); + String nodeName = node.getNodeName(); + String[] s = nodeName.split(":"); + nodeName = s[s.length - 1]; + Class objectClass = classMap.get(nodeName.toLowerCase()); + if (objectClass == null) + throw new IllegalArgumentException("Node name " + nodeName + " not found in map " + classMap.toString()); + Object obj = um.unmarshal(node, objectClass); + return (JAXBElement) obj; + } + + public static JAXBElement jaxbUnmarshall(Class type, Document doc) throws Exception { + JAXBContext context = JAXBContext.newInstance( + type.getPackage().getName(), type.getClassLoader()); + NodeList list = doc.getChildNodes(); + Node node = null; + for (int i = 0; i < list.getLength(); i++) { + if (list.item(i).getNodeType() == Node.ELEMENT_NODE) { + node = list.item(i); + break; + } + } + if (node == null) + throw new Exception("Root element not found in document"); + return jaxbUnmarshall(context.createUnmarshaller(), node, type); + } + + public static JAXBElement jaxbUnmarshall(Class type, Node node) throws Exception { + JAXBContext context = JAXBContext.newInstance( + type.getPackage().getName(), type.getClassLoader()); + return jaxbUnmarshall(context.createUnmarshaller(), node, type); + } + + public static JAXBElement jaxbUnmarshall(JAXBContext context, Node node, Class type) throws Exception { + return jaxbUnmarshall(context.createUnmarshaller(), node, type); + } + + public static JAXBElement jaxbUnmarshall(Unmarshaller um, Node node, Class type) throws Exception { + Object obj = um.unmarshal(node, type); + return (JAXBElement) obj; + } + + // XSLT /* public static void transform(URL input, URL xslt, Result result) throws Exception { - TransformerFactory factory = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl",TransformerFactoryImpl.class.getClassLoader()); - - Source xsltS = new StreamSource(xslt.openStream()); - Transformer transformer = factory.newTransformer(xsltS); - transformer.setOutputProperty(OutputKeys.INDENT, "yes"); - transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); - transformer.setOutputProperty(OutputKeys.STANDALONE, "yes"); - - InputStream is = input.openStream(); +TransformerFactory factory = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl",TransformerFactoryImpl.class.getClassLoader()); - Source inputS = new StreamSource(is); - transformer.transform(inputS, result); +Source xsltS = new StreamSource(xslt.openStream()); +Transformer transformer = factory.newTransformer(xsltS); +transformer.setOutputProperty(OutputKeys.INDENT, "yes"); +transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); +transformer.setOutputProperty(OutputKeys.STANDALONE, "yes"); + +InputStream is = input.openStream(); + +Source inputS = new StreamSource(is); +transformer.transform(inputS, result); } -*/ - // XPath - +*/ + // XPath + /* public static XPath createXPath() throws Exception { XPathFactory factory = XPathFactory.newInstance(NamespaceConstant.OBJECT_MODEL_SAXON, "net.sf.saxon.xpath.XPathFactoryImpl", net.sf.saxon.xpath.XPathFactoryImpl.class.getClassLoader()); XPath xpath = factory.newXPath(); - return xpath; +return xpath; } public static String getStringXPathResult(org.w3c.dom.Node node, String expression) throws Exception { diff --git a/platform/runtime/base/branding/pom.xml b/platform/runtime/base/branding/pom.xml index 6b102364..48344038 100644 --- a/platform/runtime/base/branding/pom.xml +++ b/platform/runtime/base/branding/pom.xml @@ -3,7 +3,7 @@ ru.entaxy.esb.platform.runtime base - 1.9.0 + 1.10.0 4.0.0 @@ -22,19 +22,6 @@ - - maven-install-plugin - - false - - - - com.soebes.maven.plugins - iterator-maven-plugin - - true - - org.apache.maven.plugins maven-resources-plugin @@ -53,7 +40,7 @@ 1.12 - attach-artifacts + attach-branding-properties package attach-artifact diff --git a/platform/runtime/base/branding/src/main/cfg/branding.properties b/platform/runtime/base/branding/src/main/cfg/branding.properties index c8311e96..0a8c8527 100644 --- a/platform/runtime/base/branding/src/main/cfg/branding.properties +++ b/platform/runtime/base/branding/src/main/cfg/branding.properties @@ -2,7 +2,7 @@ # ~~~~~~licensing~~~~~~ # branding # ========== -# Copyright (C) 2020 - 2023 EmDev LLC +# Copyright (C) 2020 - 2024 EmDev LLC # ========== # You may not use this file except in accordance with the License Terms of the Copyright # Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/config-extensions/pom.xml b/platform/runtime/base/config-extensions/pom.xml index d383c8ad..8c0fa10d 100644 --- a/platform/runtime/base/config-extensions/pom.xml +++ b/platform/runtime/base/config-extensions/pom.xml @@ -3,7 +3,7 @@ ru.entaxy.esb.platform.runtime base - 1.9.0 + 1.10.0 ru.entaxy.esb.platform.runtime.base config-extensions diff --git a/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ConfigLookupConfigurationPlugin.java b/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ConfigLookupConfigurationPlugin.java index e59c8e86..d07116b1 100644 --- a/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ConfigLookupConfigurationPlugin.java +++ b/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ConfigLookupConfigurationPlugin.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * config-plugin * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property @@ -43,9 +43,9 @@ import org.slf4j.LoggerFactory; /** * - * Configuration plugin providing resolving references from one config to others - * in a form $PID_OF_OTHER_CONFIG{PROPERTY_NAME} - * e.g. $org.ops4j.pax.url.mvn{org.ops4j.pax.url.mvn.localRepository} + * Configuration plugin providing resolving references from one config to others in a form + * $PID_OF_OTHER_CONFIG{PROPERTY_NAME} e.g. + * $org.ops4j.pax.url.mvn{org.ops4j.pax.url.mvn.localRepository} * * If pid or property not found no changes are made * @@ -53,59 +53,58 @@ import org.slf4j.LoggerFactory; * */ @Component(service = {ConfigurationPlugin.class}, immediate = true, - property = { - ConfigurationPlugin.CM_RANKING + "=100" - , "config.plugin.id=ConfigLookupConfigurationPlugin"}) + property = { + ConfigurationPlugin.CM_RANKING + "=100", "config.plugin.id=ConfigLookupConfigurationPlugin"}) public class ConfigLookupConfigurationPlugin implements ConfigurationPlugin { - private static final Logger log = LoggerFactory.getLogger(ConfigLookupConfigurationPlugin.class); - - @Reference(cardinality = ReferenceCardinality.MANDATORY) - protected ConfigurationAdmin configurationAdmin; - - @Override - public void modifyConfiguration(ServiceReference arg0, Dictionary properties) { - for (Enumeration keys = properties.keys(); keys.hasMoreElements(); ) { - String key = keys.nextElement(); - Object val = properties.get(key); - if (val instanceof String) { - - String text = (String)val; - String newValue = (String)val; - Pattern pattern = Pattern.compile("\\$([^\\{\\}])+\\{.+?\\}"); - Matcher matcher = pattern.matcher(text); - while (matcher.find()) { - log.debug("FOUND :: " + text.substring(matcher.start(), matcher.end())); - String placeholder = text.substring(matcher.start(), matcher.end()); - String pid = placeholder.substring(1, placeholder.indexOf("{")); - String propName = placeholder.substring(placeholder.indexOf("{")+1 - , placeholder.indexOf("}")); - log.debug("PARSED :: " + pid + ":" + propName); - Configuration conf; - try { - conf = configurationAdmin.getConfiguration(pid); - if (conf != null) { - - Dictionary props = conf.getProperties(); - Object value = props.get(propName); - log.debug("VALUE :: " + placeholder + " = " + value); - if (value != null) { - newValue = newValue.replace(placeholder, (String)value); - log.debug("NEW VALUE :: " + placeholder + " = " + newValue); - } - - - } - } catch (IOException e) { - log.error("Error with pid: " + pid, e); - } - - } - - properties.put(key, newValue); + private static final Logger log = LoggerFactory.getLogger(ConfigLookupConfigurationPlugin.class); - } - } - } + @Reference(cardinality = ReferenceCardinality.MANDATORY) + protected ConfigurationAdmin configurationAdmin; + + @Override + public void modifyConfiguration(ServiceReference arg0, Dictionary properties) { + for (Enumeration keys = properties.keys(); keys.hasMoreElements();) { + String key = keys.nextElement(); + Object val = properties.get(key); + if (val instanceof String) { + + String text = (String) val; + String newValue = (String) val; + Pattern pattern = Pattern.compile("\\$([^\\{\\}])+\\{.+?\\}"); + Matcher matcher = pattern.matcher(text); + while (matcher.find()) { + log.debug("FOUND :: " + text.substring(matcher.start(), matcher.end())); + String placeholder = text.substring(matcher.start(), matcher.end()); + String pid = placeholder.substring(1, placeholder.indexOf("{")); + String propName = placeholder.substring(placeholder.indexOf("{") + 1, placeholder.indexOf("}")); + log.debug("PARSED :: " + pid + ":" + propName); + Configuration conf; + try { + conf = configurationAdmin.getConfiguration(pid); + if (conf != null) { + + Dictionary props = conf.getProperties(); + if (props != null) { + Object value = props.get(propName); + log.debug("VALUE :: " + placeholder + " = " + value); + if (value != null) { + newValue = newValue.replace(placeholder, (String) value); + log.debug("NEW VALUE :: " + placeholder + " = " + newValue); + } + } + + } + } catch (IOException e) { + log.error("Error with pid: " + pid, e); + } + + } + + properties.put(key, newValue); + + } + } + } } diff --git a/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/DefaultPropertiesProvider.java b/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/DefaultPropertiesProvider.java index 969b5ba6..5d2e18d7 100644 --- a/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/DefaultPropertiesProvider.java +++ b/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/DefaultPropertiesProvider.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * configuration-test-1 * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/DefaultPropertiesProviderWithImmutables.java b/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/DefaultPropertiesProviderWithImmutables.java index fbc69b5e..ffb3c68d 100644 --- a/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/DefaultPropertiesProviderWithImmutables.java +++ b/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/DefaultPropertiesProviderWithImmutables.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * configuration-test-1 * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/Immutables.java b/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/Immutables.java index fe847985..9e991324 100644 --- a/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/Immutables.java +++ b/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/Immutables.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * configuration-test-1 * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ImmutablesCollector.java b/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ImmutablesCollector.java index 773b34eb..159715a8 100644 --- a/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ImmutablesCollector.java +++ b/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ImmutablesCollector.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * configuration-test-1 * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ImmutablesConfigurationPlugin.java b/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ImmutablesConfigurationPlugin.java index 8bd13a9d..46041976 100644 --- a/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ImmutablesConfigurationPlugin.java +++ b/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ImmutablesConfigurationPlugin.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * configuration-test-1 * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ImmutablesImpl.java b/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ImmutablesImpl.java index dd5a06be..5c7567b5 100644 --- a/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ImmutablesImpl.java +++ b/platform/runtime/base/config-extensions/src/main/java/ru/entaxy/platform/base/config/ImmutablesImpl.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * configuration-test-1 * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/connecting/adapter/LICENSE.txt b/platform/runtime/base/connecting/adapter/LICENSE.txt deleted file mode 100644 index 4ae94b75..00000000 --- a/platform/runtime/base/connecting/adapter/LICENSE.txt +++ /dev/null @@ -1,175 +0,0 @@ - ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ - -Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) -версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего -Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН -7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, -д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу -https://www.emdev.ru/about (далее - Компания). - -Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» -(или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, -Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в -настоящем документе, в противном случае, он должен не использовать или не получать доступ -к Программному обеспечению. - - 1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ - -a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии -или редакции, исключительные права на которую принадлежат Правообладателю. -b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные -права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ -для ЭВМ № 2021610848 от 19.01.2021 года. -c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта -https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. -d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также -личные неимущественные права авторов произведений на результат интеллектуальной деятельности. -e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование -ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка -включает предоставление Пользователю неисключительного права использования ПО, в том числе -получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение -патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается -Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается -для каждого Пользователя индивидуально в Сертификате. -f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), -подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное -обеспечение в ограниченном объёме и на определённый период времени. -g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, -предоставленных Пользователю согласно условиям Подписки. -h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного -обеспечения. -i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий -из одного или нескольких файлов, который может быть прочтён человеком. -j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля -программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. -Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый -продукт. -k) Некоммерческое использование – индивидуальное личное использование Пользователем программного -обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации -возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая -выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. - - 2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - -2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного -обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом -воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения -в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. -2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит -неисключительный характер. -2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, -лицензия на ограниченное использование Программного обеспечения. -2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования -имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан -обратиться в службу поддержки Правообладателя по адресу: https://entaxy.ru/ для изменения -вида лицензии с Базовой бесплатной версии на Подписки. -2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для -пробного использования программного обеспечения – не ограничен. -2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, -модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, -без разрешения Правообладателя не допускается. - - 3. АВТОРСКОЕ ПРАВО. - -3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение -и любые его копии принадлежат Правообладателю. -3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, -к которому можно получить доступ с помощью Программного обеспечения, является собственностью -соответствующего владельца контента и защищается применимым законодательством об авторском -праве или другими законами и договорами об интеллектуальной собственности. -3.3. Условия использования Программного обеспечения. -Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь -придерживается следующих условий: -3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять -какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании -Программного обеспечения или на нем. -3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, -расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать -Программное обеспечение. -3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования -ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. -3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено -использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. - - 4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» - -4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю -на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с -использованием Пользователем: -4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в -Программное обеспечение; -4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями -настоящего соглашения; -4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, -или данными, не предоставленными Пользователю Правообладателем; -4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. - - -5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ -ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ -И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ -ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ -И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ -ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. - - 6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. -НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ -ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, -ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; -ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. -ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ -ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; -КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ -ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. - - 7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: -Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия -(включая, но не ограничиваясь) по: --дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) - Программного обеспечения; --модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный -код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, -включёнными в Программное обеспечение и описанными непосредственно в документации к нему; --созданию условий для использования Программного обеспечения лицами, не имеющими прав на -использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство -третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа -к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; --распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). - - 8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. - -8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из -лицензионных продуктов, используемых на законных основаниях, а -именно https://entaxy.ru/libs/licenses/root-aggregated.deps. -8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть -совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. -8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться -Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, -содержащих все изменения и дополнения программного обеспечения. - - 9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. - -9.1. Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым -программным обеспечением. -9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно -с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм -«Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. -9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий -пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, -прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер -ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства -Российской Федерации. - - 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. - -10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет -право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, -недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий -пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере -2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения -исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). -10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое -законодательство – Российской Федерации. -10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, -остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать -исполнять свои обязанности в соответствии с этими положениями. diff --git a/platform/runtime/base/connecting/adapter/adapters-core/LICENSE.txt b/platform/runtime/base/connecting/adapter/adapters-core/LICENSE.txt deleted file mode 100644 index 4ae94b75..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/LICENSE.txt +++ /dev/null @@ -1,175 +0,0 @@ - ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ - -Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) -версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего -Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН -7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, -д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу -https://www.emdev.ru/about (далее - Компания). - -Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» -(или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, -Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в -настоящем документе, в противном случае, он должен не использовать или не получать доступ -к Программному обеспечению. - - 1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ - -a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии -или редакции, исключительные права на которую принадлежат Правообладателю. -b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные -права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ -для ЭВМ № 2021610848 от 19.01.2021 года. -c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта -https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. -d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также -личные неимущественные права авторов произведений на результат интеллектуальной деятельности. -e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование -ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка -включает предоставление Пользователю неисключительного права использования ПО, в том числе -получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение -патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается -Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается -для каждого Пользователя индивидуально в Сертификате. -f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), -подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное -обеспечение в ограниченном объёме и на определённый период времени. -g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, -предоставленных Пользователю согласно условиям Подписки. -h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного -обеспечения. -i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий -из одного или нескольких файлов, который может быть прочтён человеком. -j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля -программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. -Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый -продукт. -k) Некоммерческое использование – индивидуальное личное использование Пользователем программного -обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации -возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая -выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. - - 2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - -2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного -обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом -воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения -в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. -2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит -неисключительный характер. -2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, -лицензия на ограниченное использование Программного обеспечения. -2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования -имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан -обратиться в службу поддержки Правообладателя по адресу: https://entaxy.ru/ для изменения -вида лицензии с Базовой бесплатной версии на Подписки. -2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для -пробного использования программного обеспечения – не ограничен. -2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, -модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, -без разрешения Правообладателя не допускается. - - 3. АВТОРСКОЕ ПРАВО. - -3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение -и любые его копии принадлежат Правообладателю. -3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, -к которому можно получить доступ с помощью Программного обеспечения, является собственностью -соответствующего владельца контента и защищается применимым законодательством об авторском -праве или другими законами и договорами об интеллектуальной собственности. -3.3. Условия использования Программного обеспечения. -Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь -придерживается следующих условий: -3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять -какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании -Программного обеспечения или на нем. -3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, -расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать -Программное обеспечение. -3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования -ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. -3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено -использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. - - 4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» - -4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю -на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с -использованием Пользователем: -4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в -Программное обеспечение; -4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями -настоящего соглашения; -4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, -или данными, не предоставленными Пользователю Правообладателем; -4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. - - -5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ -ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ -И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ -ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ -И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ -ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. - - 6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. -НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ -ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, -ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; -ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. -ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ -ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; -КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ -ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. - - 7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: -Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия -(включая, но не ограничиваясь) по: --дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) - Программного обеспечения; --модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный -код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, -включёнными в Программное обеспечение и описанными непосредственно в документации к нему; --созданию условий для использования Программного обеспечения лицами, не имеющими прав на -использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство -третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа -к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; --распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). - - 8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. - -8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из -лицензионных продуктов, используемых на законных основаниях, а -именно https://entaxy.ru/libs/licenses/root-aggregated.deps. -8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть -совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. -8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться -Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, -содержащих все изменения и дополнения программного обеспечения. - - 9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. - -9.1. Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым -программным обеспечением. -9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно -с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм -«Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. -9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий -пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, -прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер -ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства -Российской Федерации. - - 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. - -10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет -право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, -недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий -пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере -2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения -исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). -10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое -законодательство – Российской Федерации. -10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, -остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать -исполнять свои обязанности в соответствии с этими положениями. diff --git a/platform/runtime/base/connecting/adapter/adapters-core/pom.xml b/platform/runtime/base/connecting/adapter/adapters-core/pom.xml deleted file mode 100644 index b68f000d..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/pom.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - ru.entaxy.esb.platform.runtime.base.connecting - adapter - 1.9.0 - - - 4.0.0 - ru.entaxy.esb.platform.runtime.base.connecting.adapter - adapters-core - bundle - - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: ADAPTER CORE - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: ADAPTER CORE - - - - ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api, - ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.impl, - ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.management, - ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.metadata, - ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.tracker, - ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.util - - - - - - - org.apache.felix - maven-bundle-plugin - true - - - ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.tracker.AdapterTrackerActivator - <_dsannotations>* - - - - - - - - - org.osgi - osgi.core - provided - - - org.slf4j - slf4j-api - provided - - - com.google.code.gson - gson - - - ru.entaxy.esb.platform.runtime.base.connecting.generator - generator-api - ${project.version} - - - - ru.entaxy.esb.platform.runtime.base - management-core - ${project.version} - - - - ru.entaxy.esb.platform.runtime.base.connecting.generator - generator-factory - ${project.version} - - - org.apache.felix - org.apache.felix.scr - 2.1.20 - - - org.osgi - org.osgi.service.component.annotations - 1.4.0 - compile - - - - diff --git a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/api/Adapter.java b/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/api/Adapter.java deleted file mode 100644 index 435f6314..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/api/Adapter.java +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * adapters-core - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api; - -import java.util.HashMap; -import java.util.Map; - -import ru.entaxy.esb.platform.runtime.base.connecting.generator.Generated; - -public interface Adapter { - public static final String ADAPTER_CLASS_HEADER_NAME = "Entaxy-Adapter-Class"; - public static final String ADAPTER_HEADER_NAME = "Entaxy-Adapter"; - public default boolean isInited() { - return false; - } - public default String getId() { - return "none"; - } - public default String getName() { - return "Undefined"; - } - public default String getDescription() { - return "Undefined"; - } - public default Map getOptions() { - return new HashMap<>(); - } - public default Map getProperties() { - return new HashMap<>(); - } - -/* - @Deprecated - public default Blueprint generateBlueprint(String type, Map map) throws Exception { - return null; - } -*/ - public default Generated generate(String type, Map map) throws Exception { - return Generated.create(); - } - -} diff --git a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/impl/DefaultAdapter.java b/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/impl/DefaultAdapter.java deleted file mode 100644 index fc4eef45..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/impl/DefaultAdapter.java +++ /dev/null @@ -1,206 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * adapters-core - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.impl; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.NoSuchElementException; -import java.util.stream.Collectors; - -import org.osgi.framework.BundleContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api.Adapter; -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.metadata.AdapterFieldElement; -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.metadata.AdapterGeneratorElement; -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.metadata.AdapterMetadataElement; -import ru.entaxy.esb.platform.runtime.base.connecting.generator.Generated; -import ru.entaxy.esb.platform.runtime.base.connecting.generator.Generator; -import ru.entaxy.esb.platform.runtime.base.connecting.generator.factory.GeneratorFactory; - -public class DefaultAdapter implements Adapter { - - protected static final Logger log = LoggerFactory.getLogger(DefaultAdapter.class); - - protected BundleContext bundleContext; - - protected boolean isInited = false; - protected String defaultId = "none"; - protected String defaultName = "Undefined"; - protected String defaultDescription = "Undefined"; - protected AdapterMetadataElement adapterMetadata; - - @Deprecated - protected Map generatorList = new HashMap<>(); - protected Map generatorDescriptorList = new HashMap<>(); - - protected static class GeneratorDescriptor { - BundleContext bundleContext; - AdapterGeneratorElement generatorElement; - Generator generator; - boolean linked = false; - - public void linkGenerator() { - generator = GeneratorFactory.createGenerator(generatorElement.getGenerator() - , generatorElement.getType(), bundleContext); - linked = (generator != null); - } - - } - - public DefaultAdapter(BundleContext bundleContext) throws IOException { - this.bundleContext = bundleContext; - log.debug("Constructor of adapter {}", DefaultAdapter.class.getName()); - this.isInited = this.init(); - } - - protected boolean init() throws IOException { - URL metadataUrl = this.bundleContext.getBundle().getEntry("/ru/entaxy/adapter/metadata.json"); - log.debug("Json URL is {}", metadataUrl.toString()); - - String metadata = new BufferedReader ( - new InputStreamReader( - metadataUrl.openStream(), StandardCharsets.UTF_8)) - .lines() - .collect(Collectors.joining("\n")); - - log.debug("Adapter json description: \n" + metadata); - - GsonBuilder builder = new GsonBuilder(); - Gson gson = builder.create(); - - JsonElement je = (new JsonParser()).parse(metadata); - JsonObject root = je.getAsJsonObject(); - - JsonElement adapterElement = root.get("adapter"); - - this.adapterMetadata = gson.fromJson(adapterElement, AdapterMetadataElement.class); - - List generators = adapterMetadata.getGenerators(); - - for (AdapterGeneratorElement generator: generators) { - GeneratorDescriptor descriptor = new GeneratorDescriptor(); - descriptor.bundleContext = this.bundleContext; - descriptor.generatorElement = generator; - if (!generator.isLazy()) - descriptor.linkGenerator(); - this.generatorDescriptorList.put(generator.getType(), descriptor); - } - -// initGenerators(adapterMetadata.getGenerators()); - - return this.adapterMetadata != null && !generatorDescriptorList.isEmpty(); - } - - private void initGenerators(List generators) { - for (AdapterGeneratorElement generator: generators) { - String usageType = generator.getType(); - String generatorType = generator.getGenerator(); - generatorList.put(usageType, - GeneratorFactory.createGenerator(generatorType, usageType, bundleContext)); - } - log.debug("generatorList: " + generatorList); - //TODO checkGeneratorList(); - } - - /* Interface */ - - @Override - public boolean isInited() { - return isInited; - } - - @Override - public String getId() { - return this.isInited?this.adapterMetadata.getId():this.defaultId; - } - - public void setId(String id) { - this.adapterMetadata.setId(id); - } - - @Override - public String getName() { - return this.isInited?this.adapterMetadata.getName():this.defaultName; - } - - public void setName(String name) { - this.adapterMetadata.setName(name); - } - - @Override - public String getDescription() { - return this.isInited?this.adapterMetadata.getDescription():this.defaultDescription; - } - - public void setDescription(String description) { - this.adapterMetadata.setDescription(description); - } - - @Override - public Map getProperties(){ - return this.adapterMetadata.getFields() - .stream() - .filter(field -> field.isProperty()) - .collect(Collectors.toMap(AdapterFieldElement::getName, AdapterFieldElement::getType)); - } - - @Override - public Map getOptions(){ - return this.adapterMetadata.getFields() - .stream() - .filter(field -> field.isOption()) - .collect(Collectors.toMap(AdapterFieldElement::getName, AdapterFieldElement::getType)); - } - - @Override - public Generated generate(String type, Map map) throws Exception { - GeneratorDescriptor descriptor = generatorDescriptorList.get(type); - if (descriptor == null) - throw new NoSuchElementException("Generator of type [" - + type + "] not defined for adapter [" + this.getId() + "]"); - if (!descriptor.linked) - descriptor.linkGenerator(); - if (!descriptor.linked) - throw new NoSuchElementException("Generator of type [" - + type + "] not linked for adapter [" + this.getId() + "]"); - Generator generator = descriptor.generator; - return generator.generate(map); - } -} diff --git a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/management/AdapterMBean.java b/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/management/AdapterMBean.java deleted file mode 100644 index da7d4c2e..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/management/AdapterMBean.java +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * adapters-core - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.management; - -import ru.entaxy.esb.platform.base.management.core.api.RuntimeTypedMBean; - -public interface AdapterMBean extends RuntimeTypedMBean { - - public boolean isInited(); - - public String getId(); - - public String getName(); - - public String getDescription(); - - // public Map getOptions(); - - // public Map getProperties(); - - -} diff --git a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/management/AdapterMBeanImpl.java b/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/management/AdapterMBeanImpl.java deleted file mode 100644 index a23500cc..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/management/AdapterMBeanImpl.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * adapters-core - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.management; - -import javax.management.NotCompliantMBeanException; -import javax.management.StandardMBean; - -import ru.entaxy.esb.platform.base.management.core.api.EntaxyRuntimeTyped; -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api.Adapter; - -//@TODO move string to constant -@EntaxyRuntimeTyped(name = "entaxy.runtime.adapter") -public class AdapterMBeanImpl extends StandardMBean implements AdapterMBean { - - protected Adapter adapter; - - public AdapterMBeanImpl(Adapter adapter) throws NotCompliantMBeanException { - super(AdapterMBean.class); - this.adapter = adapter; - } - - @Override - public String getId() { - return adapter.getId(); - } - - @Override - public boolean isInited() { - return adapter.isInited(); - } - - @Override - public String getName() { - return adapter.getName(); - } - - @Override - public String getDescription() { - return adapter.getDescription(); - } - - -} diff --git a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/management/AdaptersMBean.java b/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/management/AdaptersMBean.java deleted file mode 100644 index 913fc21f..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/management/AdaptersMBean.java +++ /dev/null @@ -1,42 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * adapters-core - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.management; - -import ru.entaxy.esb.platform.base.management.core.ManagementCore; -import ru.entaxy.esb.platform.base.management.core.Qualifier; - -public interface AdaptersMBean { - - public static final String ADAPTERS_KEY = "category"; - - public static final String ADAPTERS_VALUE = "adapter"; - - public static final Qualifier Q_ADAPTERS = ManagementCore.Q_PLATFORM.qualifier(ADAPTERS_KEY, ADAPTERS_VALUE); - - public static final String Q_ADAPTERS_S = ManagementCore.Q_LOCAL_NODE_S + "," + ADAPTERS_KEY + "=" + ADAPTERS_VALUE; - - public void execute(String value); -} diff --git a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/management/AdaptersMBeanImpl.java b/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/management/AdaptersMBeanImpl.java deleted file mode 100644 index 3ab609c0..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/management/AdaptersMBeanImpl.java +++ /dev/null @@ -1,119 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * adapters-core - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.management; - -import java.util.HashMap; -import java.util.Hashtable; -import java.util.Map; - -import javax.management.DynamicMBean; -import javax.management.MBeanRegistration; -import javax.management.NotCompliantMBeanException; -import javax.management.StandardMBean; - -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceRegistration; -import org.osgi.service.component.ComponentContext; -import org.osgi.service.component.annotations.Activate; -import org.osgi.service.component.annotations.CollectionType; -import org.osgi.service.component.annotations.Component; -import org.osgi.service.component.annotations.Reference; -import org.osgi.service.component.annotations.ReferenceCardinality; -import org.osgi.service.component.annotations.ReferencePolicy; -import org.osgi.service.component.annotations.ServiceScope; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import ru.entaxy.esb.platform.base.management.core.ManagementCore; -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api.Adapter; - -@Component( - service = {AdaptersMBean.class, DynamicMBean.class, MBeanRegistration.class}, - // property = {"jmx.objectname=ru.entaxy.esb:group=platform,category=adapters"}, - property = {ManagementCore.ENTAXY_JMX_DOMAIN + "=" + AdaptersMBean.Q_ADAPTERS_S}, - scope = ServiceScope.SINGLETON, - immediate = true - ) -public class AdaptersMBeanImpl extends StandardMBean implements AdaptersMBean { - - private static final Logger log = LoggerFactory.getLogger(AdaptersMBeanImpl.class); - - protected Map> mbeans = new HashMap<>(); - - // @Reference (service = BundleContext.class) - protected BundleContext bundleContext; - - public AdaptersMBeanImpl() throws NotCompliantMBeanException { - super(AdaptersMBean.class); - } - - - @Activate - public void activate(ComponentContext componentContext) { - log.debug(" >> ACTIVATE <<"); - this.bundleContext = componentContext.getBundleContext(); - } - - - @Reference (service = Adapter.class, cardinality = ReferenceCardinality.MULTIPLE, - unbind = "unbindAdapter", collectionType = CollectionType.SERVICE, - policy = ReferencePolicy.DYNAMIC) - public void bindAdapter(Adapter adapter) { - - try { - AdapterMBeanImpl mbean = new AdapterMBeanImpl(adapter); - Hashtable props = new Hashtable<>(); - // props.put("jmx.objectname", "ru.entaxy.esb:group=platform,category=adapters,id=" + adapter.getId()); - props.put(ManagementCore.JMX_OBJECTNAME, Q_ADAPTERS.qualifier("id", adapter.getId()).getValue()); - ServiceRegistration reg = bundleContext.registerService( - new String[] { - AdapterMBean.class.getName(), - DynamicMBean.class.getName(), - MBeanRegistration.class.getName() - } - , mbean - , props); - this.mbeans.put(adapter, reg); - - } catch (NotCompliantMBeanException e) { - log.error("Error creating MBean for adapter: ", e); - } - - } - - public void unbindAdapter(Adapter adapter) { - ServiceRegistration reg = this.mbeans.get(adapter); - if (reg != null) - reg.unregister(); - this.mbeans.remove(adapter); - } - - @Override - public void execute(String value) { - log.info(">> EXECUTED"); - } - -} diff --git a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/metadata/AdapterFieldElement.java b/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/metadata/AdapterFieldElement.java deleted file mode 100644 index b6644842..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/metadata/AdapterFieldElement.java +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * adapters-core - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.metadata; - -public class AdapterFieldElement { - - protected String name; - protected String type = "String"; - protected boolean property = false; - protected boolean option = false; - protected String defaultValue = ""; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public boolean isProperty() { - return property; - } - - public void setProperty(boolean isProperty) { - this.property = isProperty; - } - - public boolean isOption() { - return option; - } - - public void setOption(boolean isOption) { - this.option = isOption; - } - - public String getDefault() { - return defaultValue; - } - - public void setDefault(String defaultValue) { - this.defaultValue = defaultValue; - } - - -} diff --git a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/metadata/AdapterGeneratorElement.java b/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/metadata/AdapterGeneratorElement.java deleted file mode 100644 index fb256be7..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/metadata/AdapterGeneratorElement.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * adapters-core - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.metadata; - -import java.util.HashMap; -import java.util.Map; - -import com.google.gson.JsonObject; - -import ru.entaxy.platform.base.support.JSONUtils; - -public class AdapterGeneratorElement { - protected String type; - - // Default generator is defined in GeneratorFactory - // no need to redefine it here - protected String generator = ""; - - protected JsonObject config; - protected Map configMap = new HashMap<>(); - - // we can postpone generator linking until it's really needed - protected boolean lazy = false; - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getGenerator() { - return generator; - } - - public void setGenerator(String generator) { - this.generator = generator; - } - - public Map getConfigMap() { - if (configMap.isEmpty() && (this.config != null)) - configMap = JSONUtils.element2map(this.config); - return configMap; - } - - public void setConfigMap(Map configMap) { - this.configMap = configMap; - } - - // actually the method is not called by Gson - public void setConfig(JsonObject configElement) { - this.config = configElement; - this.configMap = JSONUtils.element2map(configElement); - } - - public boolean isLazy() { - return lazy; - } - - public void setLazy(boolean lazy) { - this.lazy = lazy; - } - - public String toString() { - return "AdapterGeneratorElement: " + - "{'type': '" + type + "', " + - "'generator': '" + generator + "'}"; - } -} diff --git a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/metadata/AdapterMetadataElement.java b/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/metadata/AdapterMetadataElement.java deleted file mode 100644 index 108b27eb..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/metadata/AdapterMetadataElement.java +++ /dev/null @@ -1,85 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * adapters-core - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.metadata; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; - -public class AdapterMetadataElement { - - protected static final Logger log = LoggerFactory.getLogger(AdapterMetadataElement.class); - - protected String id; - protected String name; - protected String description; - - protected List fields = new ArrayList<>(); - - public List getGenerators() { - return generators; - } - - public void setGenerators(List generators) { - this.generators = generators; - } - - protected List generators = new ArrayList(); - - public void addField(AdapterFieldElement field) { - this.fields.add(field); - } - - public int getFieldsCount() { - return this.fields.size(); - } - - public List getFields() { - return fields; - } - - public String getId() { - return id; - } - public void setId(String id) { - this.id = id; - } - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - public String getDescription() { - return description; - } - public void setDescription(String description) { - this.description = description; - } - -} diff --git a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/tracker/AdapterHelper.java b/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/tracker/AdapterHelper.java deleted file mode 100644 index aa6dba59..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/tracker/AdapterHelper.java +++ /dev/null @@ -1,97 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * adapters-core - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.tracker; - -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceRegistration; -import org.osgi.framework.wiring.BundleWiring; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api.Adapter; - -import java.lang.reflect.Constructor; -import java.util.ArrayList; -import java.util.Hashtable; -import java.util.List; - -public class AdapterHelper { - - protected static final Logger log = LoggerFactory.getLogger(AdapterHelper.class); - - protected BundleContext bundleContext; - - protected List objects = new ArrayList<>(); - protected List registrations = new ArrayList<>(); - - public AdapterHelper(BundleContext bundleContext) { - this.bundleContext = bundleContext; - } - - public void create(Bundle targetBundle, String className) { - log.info("Creating adapter in " + targetBundle.getSymbolicName() - + " of class " + targetBundle.getClass().getName() - + " having context of " + targetBundle.getBundleContext().getClass().getName()); - BundleWiring wiring = targetBundle.adapt(BundleWiring.class); - ClassLoader cl = wiring.getClassLoader(); - try { - Class clazz = cl.loadClass(className); - Constructor constructor = clazz.getConstructor(BundleContext.class); - Object obj = constructor.newInstance(targetBundle.getBundleContext()); - log.debug("Created object of class {}", obj.getClass().getName()); - - Adapter adapter = (Adapter)obj; - if (!adapter.isInited()) { - log.warn("Adapter initialization failed."); - return; - } - - Hashtable properties = new Hashtable<>(); - properties.put("adapter.id", adapter.getId()); - properties.put("adapter.name", adapter.getName()); - properties.put("adapter.description", adapter.getDescription()); - - ServiceRegistration sr = targetBundle.getBundleContext().registerService(new String[] {Adapter.class.getName()}, obj, properties); - -// // print out adapter info -// String props = "\n"; -// for (Map.Entry entry: adapter.getProperties().entrySet()) -// props += entry.getKey() + ": " + entry.getValue() + "\n"; -// String opts = "\n"; -// for (Map.Entry entry: adapter.getOptions().entrySet()) -// opts += entry.getKey() + ": " + entry.getValue() + "\n"; -// -// log.info("\n\n\tFINAL ADAPTER INFO: \nID: {}\nDescription: {}\nProperties:{}Options:{}" -// , adapter.getId() -// , adapter.getDescription() -// , props -// , opts); - - } catch (Exception e) { - log.error("Can't create adapter:\n", e); - } - } -} diff --git a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/tracker/AdapterTracker.java b/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/tracker/AdapterTracker.java deleted file mode 100644 index d0f171cf..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/tracker/AdapterTracker.java +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * adapters-core - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.tracker; - -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; -import org.osgi.framework.BundleEvent; -import org.osgi.util.tracker.BundleTracker; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api.Adapter; -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.impl.DefaultAdapter; - -import java.util.Optional; - -public class AdapterTracker extends BundleTracker { - - protected static final Logger log = LoggerFactory.getLogger(AdapterTracker.class); - - protected AdapterHelper helper; - - @SuppressWarnings("unchecked") - public AdapterTracker(BundleContext bundleContext) { - super(bundleContext, Bundle.ACTIVE, null); - this.helper = new AdapterHelper(bundleContext); - } - - @Override - public Object addingBundle(Bundle bundle, BundleEvent event) { - String isAdapter = bundle.getHeaders().get(Adapter.ADAPTER_HEADER_NAME); - if (Boolean.valueOf(isAdapter)) { - String className = Optional.ofNullable(bundle.getHeaders(). - get(Adapter.ADAPTER_CLASS_HEADER_NAME)).orElse(DefaultAdapter.class.getName()); - log.debug("Adapter class " + className + " FOUND IN BUNDLE " + bundle.getSymbolicName()); - helper.create(bundle, className); - } - return bundle; - } -} diff --git a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/tracker/AdapterTrackerActivator.java b/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/tracker/AdapterTrackerActivator.java deleted file mode 100644 index ff4510c0..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/tracker/AdapterTrackerActivator.java +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * adapters-core - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.tracker; - -import java.util.ArrayList; -import java.util.Hashtable; -import java.util.List; - -import javax.management.DynamicMBean; -import javax.management.MBeanRegistration; - -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.management.AdaptersMBean; -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.management.AdaptersMBeanImpl; - -public class AdapterTrackerActivator implements BundleActivator { - - protected static final Logger log = LoggerFactory.getLogger(AdapterTrackerActivator.class); - - protected AdapterTracker tracker; - - @Override - public void start(BundleContext context) throws Exception { - tracker = new AdapterTracker(context); - tracker.open(); - /* AdaptersMBeanImpl mbean = new AdaptersMBeanImpl(); - Hashtable props = new Hashtable(); - props.put("jmx.objectname", "ru.entaxy.esb:type=bundle,name=adapters"); - List list = new ArrayList<>(); - list.add(AdaptersMBean.class.getName()); - list.add(DynamicMBean.class.getName()); - list.add(MBeanRegistration.class.getName()); - String[] clazzes = list.toArray(new String[] {}); - context.registerService( - clazzes - , mbean - , props);*/ - } - - @Override - public void stop(BundleContext context) throws Exception { - tracker.close(); - } - -} diff --git a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/util/AdapterUtil.java b/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/util/AdapterUtil.java deleted file mode 100644 index a48cc552..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/util/AdapterUtil.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * adapters-core - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.util; - -import org.osgi.framework.BundleContext; -import org.osgi.framework.FrameworkUtil; -import org.osgi.framework.InvalidSyntaxException; -import org.osgi.framework.ServiceReference; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api.Adapter; - -import java.util.Collection; - -public class AdapterUtil { - private static final Logger log = LoggerFactory.getLogger(AdapterUtil.class); - public static Adapter getAdapter(String adapterName) throws InvalidSyntaxException { - String filter = "(adapter.name=" + adapterName + ")"; - log.debug("Get adapter service filtered by: " + filter); - BundleContext bundleContext = FrameworkUtil.getBundle(Adapter.class).getBundleContext(); - Collection> referenceList = bundleContext.getServiceReferences(Adapter.class, filter); - Adapter adapter = bundleContext.getService(referenceList.iterator().next()); - - return adapter; - } -} diff --git a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/util/ConnectionUsageType.java b/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/util/ConnectionUsageType.java deleted file mode 100644 index 2ed17fae..00000000 --- a/platform/runtime/base/connecting/adapter/adapters-core/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/adapter/core/util/ConnectionUsageType.java +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * adapters-core - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.util; - -public class ConnectionUsageType { // TODO: 09.07.2021 maybe enum usage instead of class planning - public static final String INIT = "init"; - public static final String REF = "ref"; - public static final String FROM = "from"; - public static final String TO = "to"; -} diff --git a/platform/runtime/base/connecting/adapter/amqp-adapter/LICENSE.txt b/platform/runtime/base/connecting/adapter/amqp-adapter/LICENSE.txt deleted file mode 100644 index 4ae94b75..00000000 --- a/platform/runtime/base/connecting/adapter/amqp-adapter/LICENSE.txt +++ /dev/null @@ -1,175 +0,0 @@ - ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ - -Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) -версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего -Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН -7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, -д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу -https://www.emdev.ru/about (далее - Компания). - -Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» -(или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, -Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в -настоящем документе, в противном случае, он должен не использовать или не получать доступ -к Программному обеспечению. - - 1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ - -a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии -или редакции, исключительные права на которую принадлежат Правообладателю. -b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные -права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ -для ЭВМ № 2021610848 от 19.01.2021 года. -c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта -https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. -d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также -личные неимущественные права авторов произведений на результат интеллектуальной деятельности. -e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование -ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка -включает предоставление Пользователю неисключительного права использования ПО, в том числе -получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение -патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается -Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается -для каждого Пользователя индивидуально в Сертификате. -f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), -подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное -обеспечение в ограниченном объёме и на определённый период времени. -g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, -предоставленных Пользователю согласно условиям Подписки. -h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного -обеспечения. -i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий -из одного или нескольких файлов, который может быть прочтён человеком. -j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля -программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. -Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый -продукт. -k) Некоммерческое использование – индивидуальное личное использование Пользователем программного -обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации -возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая -выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. - - 2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - -2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного -обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом -воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения -в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. -2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит -неисключительный характер. -2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, -лицензия на ограниченное использование Программного обеспечения. -2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования -имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан -обратиться в службу поддержки Правообладателя по адресу: https://entaxy.ru/ для изменения -вида лицензии с Базовой бесплатной версии на Подписки. -2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для -пробного использования программного обеспечения – не ограничен. -2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, -модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, -без разрешения Правообладателя не допускается. - - 3. АВТОРСКОЕ ПРАВО. - -3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение -и любые его копии принадлежат Правообладателю. -3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, -к которому можно получить доступ с помощью Программного обеспечения, является собственностью -соответствующего владельца контента и защищается применимым законодательством об авторском -праве или другими законами и договорами об интеллектуальной собственности. -3.3. Условия использования Программного обеспечения. -Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь -придерживается следующих условий: -3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять -какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании -Программного обеспечения или на нем. -3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, -расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать -Программное обеспечение. -3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования -ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. -3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено -использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. - - 4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» - -4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю -на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с -использованием Пользователем: -4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в -Программное обеспечение; -4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями -настоящего соглашения; -4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, -или данными, не предоставленными Пользователю Правообладателем; -4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. - - -5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ -ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ -И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ -ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ -И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ -ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. - - 6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. -НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ -ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, -ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; -ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. -ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ -ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; -КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ -ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. - - 7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: -Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия -(включая, но не ограничиваясь) по: --дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) - Программного обеспечения; --модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный -код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, -включёнными в Программное обеспечение и описанными непосредственно в документации к нему; --созданию условий для использования Программного обеспечения лицами, не имеющими прав на -использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство -третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа -к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; --распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). - - 8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. - -8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из -лицензионных продуктов, используемых на законных основаниях, а -именно https://entaxy.ru/libs/licenses/root-aggregated.deps. -8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть -совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. -8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться -Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, -содержащих все изменения и дополнения программного обеспечения. - - 9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. - -9.1. Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым -программным обеспечением. -9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно -с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм -«Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. -9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий -пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, -прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер -ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства -Российской Федерации. - - 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. - -10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет -право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, -недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий -пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере -2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения -исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). -10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое -законодательство – Российской Федерации. -10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, -остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать -исполнять свои обязанности в соответствии с этими положениями. diff --git a/platform/runtime/base/connecting/adapter/amqp-adapter/pom.xml b/platform/runtime/base/connecting/adapter/amqp-adapter/pom.xml deleted file mode 100644 index c3ee1986..00000000 --- a/platform/runtime/base/connecting/adapter/amqp-adapter/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - ru.entaxy.esb.platform.runtime.base.connecting - adapter - 1.9.0 - - - 4.0.0 - ru.entaxy.esb.platform.runtime.base.connecting.adapter - amqp-adapter - bundle - - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: AMQP ADAPTER - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: AMQP ADAPTER - - - - * - - - - - - org.apache.felix - maven-bundle-plugin - true - - - true - - - - - - - diff --git a/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/ru/entaxy/adapter/metadata.json b/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/ru/entaxy/adapter/metadata.json deleted file mode 100644 index 229cffbb..00000000 --- a/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/ru/entaxy/adapter/metadata.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "adapter": { - "id": "amqp.adapter.1", - "name": "amqpAdapter", - "description": "Messaging with AMQP protocol using Apache QPid Client.", - "fields": [ - { - "name": "destinationType", - "type": "String", - "default": "queue", - "property": false, - "option": false - }, - { - "name": "destinationName", - "type": "String", - "property": false, - "option": false - }, - - { - "name": "clientId", - "property": true, - "option": true - }, - { - "name": "acknowledgementModeName", - "default": "AUTO_ACKNOWLEDGE", - "property": true, - "option": true - }, - { - "name": "exchangePattern", - "type": "ExchangePattern", - "option": true - }, - { - "name": "password", - "property": true, - "option": true - }, - { - "name": "url", - "property": true, - "option": true - }, - { - "name": "username", - "property": true, - "option": true - } - ], - "generators":[ - { - "type": "pathParameter", - "generator": "", - "config": { - "expression": "${destinationType}:${destinationName}" - } - }, - { - "type": "init", - "generator": "" - }, - { - "type": "ref", - "generator": "" - }, - { - "type": "from", - "generator": "" - }, - { - "type": "to", - "generator": "" - } - ] - } -} diff --git a/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/from.ftl b/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/from.ftl deleted file mode 100644 index 3518975e..00000000 --- a/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/from.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#include 'queryParameters.ftl'] - diff --git a/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/init.ftl b/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/init.ftl deleted file mode 100644 index 8d57a6b5..00000000 --- a/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/init.ftl +++ /dev/null @@ -1,86 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint"}] -[#-- - - ~~~~~~licensing~~~~~~ - amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#assign factoryProperties = ["url", "username", "password"]] -[#function exceptFactoryProperties(propertyName)] - [#return !factoryProperties?seq_contains(propertyName)] -[/#function] - - - - - [#if connection.properties??] - - [#list connection.properties as key, value] - - [/#list] - - [/#if] - - - - - - - - - - [#-- //TODO change template for property reference usage instead of text value --] - - [#if connection.properties??] - [#list connection.properties?keys?filter(exceptFactoryProperties) as key] - - [/#list] - [/#if] - - - - - - - - - diff --git a/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/queryParameters.ftl b/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/queryParameters.ftl deleted file mode 100644 index 7f379e04..00000000 --- a/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/queryParameters.ftl +++ /dev/null @@ -1,48 +0,0 @@ -[#ftl] -[#-- - - ~~~~~~licensing~~~~~~ - amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#assign queryParameters] - [#if connection.options??] - [@compress single_line=true] - ?[#list connection.options as key, value][=key]=[=value][#sep]&[/#list] - [/@compress] - [/#if] -[/#assign] - diff --git a/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/ref.ftl b/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/ref.ftl deleted file mode 100644 index 16423706..00000000 --- a/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/ref.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] - diff --git a/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/to.ftl b/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/to.ftl deleted file mode 100644 index 0bb6ff0f..00000000 --- a/platform/runtime/base/connecting/adapter/amqp-adapter/src/main/resources/template/to.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#include 'queryParameters.ftl'] - diff --git a/platform/runtime/base/connecting/adapter/artemis-adapter/LICENSE.txt b/platform/runtime/base/connecting/adapter/artemis-adapter/LICENSE.txt deleted file mode 100644 index 4ae94b75..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-adapter/LICENSE.txt +++ /dev/null @@ -1,175 +0,0 @@ - ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ - -Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) -версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего -Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН -7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, -д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу -https://www.emdev.ru/about (далее - Компания). - -Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» -(или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, -Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в -настоящем документе, в противном случае, он должен не использовать или не получать доступ -к Программному обеспечению. - - 1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ - -a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии -или редакции, исключительные права на которую принадлежат Правообладателю. -b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные -права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ -для ЭВМ № 2021610848 от 19.01.2021 года. -c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта -https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. -d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также -личные неимущественные права авторов произведений на результат интеллектуальной деятельности. -e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование -ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка -включает предоставление Пользователю неисключительного права использования ПО, в том числе -получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение -патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается -Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается -для каждого Пользователя индивидуально в Сертификате. -f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), -подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное -обеспечение в ограниченном объёме и на определённый период времени. -g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, -предоставленных Пользователю согласно условиям Подписки. -h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного -обеспечения. -i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий -из одного или нескольких файлов, который может быть прочтён человеком. -j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля -программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. -Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый -продукт. -k) Некоммерческое использование – индивидуальное личное использование Пользователем программного -обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации -возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая -выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. - - 2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - -2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного -обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом -воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения -в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. -2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит -неисключительный характер. -2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, -лицензия на ограниченное использование Программного обеспечения. -2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования -имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан -обратиться в службу поддержки Правообладателя по адресу: https://entaxy.ru/ для изменения -вида лицензии с Базовой бесплатной версии на Подписки. -2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для -пробного использования программного обеспечения – не ограничен. -2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, -модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, -без разрешения Правообладателя не допускается. - - 3. АВТОРСКОЕ ПРАВО. - -3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение -и любые его копии принадлежат Правообладателю. -3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, -к которому можно получить доступ с помощью Программного обеспечения, является собственностью -соответствующего владельца контента и защищается применимым законодательством об авторском -праве или другими законами и договорами об интеллектуальной собственности. -3.3. Условия использования Программного обеспечения. -Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь -придерживается следующих условий: -3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять -какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании -Программного обеспечения или на нем. -3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, -расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать -Программное обеспечение. -3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования -ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. -3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено -использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. - - 4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» - -4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю -на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с -использованием Пользователем: -4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в -Программное обеспечение; -4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями -настоящего соглашения; -4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, -или данными, не предоставленными Пользователю Правообладателем; -4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. - - -5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ -ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ -И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ -ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ -И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ -ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. - - 6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. -НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ -ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, -ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; -ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. -ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ -ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; -КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ -ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. - - 7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: -Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия -(включая, но не ограничиваясь) по: --дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) - Программного обеспечения; --модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный -код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, -включёнными в Программное обеспечение и описанными непосредственно в документации к нему; --созданию условий для использования Программного обеспечения лицами, не имеющими прав на -использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство -третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа -к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; --распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). - - 8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. - -8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из -лицензионных продуктов, используемых на законных основаниях, а -именно https://entaxy.ru/libs/licenses/root-aggregated.deps. -8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть -совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. -8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться -Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, -содержащих все изменения и дополнения программного обеспечения. - - 9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. - -9.1. Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым -программным обеспечением. -9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно -с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм -«Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. -9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий -пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, -прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер -ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства -Российской Федерации. - - 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. - -10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет -право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, -недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий -пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере -2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения -исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). -10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое -законодательство – Российской Федерации. -10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, -остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать -исполнять свои обязанности в соответствии с этими положениями. diff --git a/platform/runtime/base/connecting/adapter/artemis-adapter/pom.xml b/platform/runtime/base/connecting/adapter/artemis-adapter/pom.xml deleted file mode 100644 index f2143b8d..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-adapter/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - ru.entaxy.esb.platform.runtime.base.connecting - adapter - 1.9.0 - - - 4.0.0 - ru.entaxy.esb.platform.runtime.base.connecting.adapter - artemis-adapter - bundle - - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: ARTEMIS ADAPTER - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: ARTEMIS ADAPTER - - - - * - - - - - - org.apache.felix - maven-bundle-plugin - true - - - true - - - - - - - diff --git a/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/ru/entaxy/adapter/metadata.json b/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/ru/entaxy/adapter/metadata.json deleted file mode 100644 index b6542fa6..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/ru/entaxy/adapter/metadata.json +++ /dev/null @@ -1,694 +0,0 @@ -{ - "adapter": { - "id": "artemis.adapter.1", - "name": "artemisAdapter", - "description": "Artemis adapter to interact with queues and topics.", - "fields": [ - { - "name": "destinationType", - "type": "String", - "default": "queue", - "property": false, - "option": false - }, - { - "name": "destinationName", - "type": "String", - "property": false, - "option": false - }, - - { - "name": "clientId", - "property": true, - "option": true - }, - { - "name": "connectionFactory", - "type": "ConnectionFactory", - "property": true, - "option": true - }, - { - "name": "disableReplyTo", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "durableSubscriptionName", - "property": true, - "option": true - }, - { - "name": "jmsMessageType", - "type": "JmsMessageType", - "property": true, - "option": true - }, - { - "name": "replyTo", - "property": true, - "option": true - }, - { - "name": "testConnectionOnStartup", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "acknowledgementModeName", - "default": "AUTO_ACKNOWLEDGE", - "property": true, - "option": true - }, - { - "name": "artemisConsumerPriority", - "type": "int", - "property": true, - "option": true - }, - { - "name": "asyncConsumer", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "autoStartup", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "cacheLevel", - "type": "int", - "property": true, - "option": true - }, - { - "name": "cacheLevelName", - "default": "CACHE_AUTO", - "property": true, - "option": true - }, - { - "name": "concurrentConsumers", - "type": "int", - "default": "1", - "property": true, - "option": true - }, - { - "name": "maxConcurrentConsumers", - "type": "int", - "property": true, - "option": true - }, - { - "name": "replyToDeliveryPersistent", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "selector", - "property": true, - "option": true - }, - { - "name": "subscriptionDurable", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "subscriptionName", - "property": true, - "option": true - }, - { - "name": "subscriptionShared", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "acceptMessagesWhileStopping", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "allowReplyManagerQuickStop", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "consumerType", - "type": "ConsumerType", - "default": "Default", - "property": true, - "option": true - }, - { - "name": "defaultTaskExecutorType", - "type": "DefaultTaskExecutorType", - "property": true, - "option": true - }, - { - "name": "eagerLoadingOfProperties", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "eagerPoisonBody", - "default": "Poison JMS message due to ${exception.message}", - "property": true, - "option": true - }, - { - "name": "exceptionHandler", - "type": "ExceptionHandler", - "option": true - }, - { - "name": "exchangePattern", - "type": "ExchangePattern", - "option": true - }, - { - "name": "exposeListenerSession", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "replyToSameDestinationAllowed", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "taskExecutor", - "type": "TaskExecutor", - "property": true, - "option": true - }, - { - "name": "deliveryDelay", - "type": "long", - "default": "-1", - "property": true, - "option": true - }, - { - "name": "deliveryMode", - "type": "Integer", - "property": true, - "option": true - }, - { - "name": "deliveryPersistent", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "explicitQosEnabled", - "type": "Boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "formatDateHeadersToIso8601", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "lazyStartProducer", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "preserveMessageQos", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "priority", - "type": "int", - "default": "4", - "property": true, - "option": true - }, - { - "name": "replyToConcurrentConsumers", - "type": "int", - "default": "1", - "property": true, - "option": true - }, - { - "name": "replyToMaxConcurrentConsumers", - "type": "int", - "property": true, - "option": true - }, - { - "name": "replyToOnTimeoutMaxConcurrentConsumers", - "type": "int", - "default": "1", - "property": true, - "option": true - }, - { - "name": "replyToOverride", - "property": true, - "option": true - }, - { - "name": "replyToType", - "type": "ReplyToType", - "property": true, - "option": true - }, - { - "name": "requestTimeout", - "type": "long", - "default": "20000", - "property": true, - "option": true - }, - { - "name": "timeToLive", - "type": "long", - "default": "-1", - "property": true, - "option": true - }, - { - "name": "allowAdditionalHeaders", - "property": true, - "option": true - }, - { - "name": "allowNullBody", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "alwaysCopyMessage", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "correlationProperty", - "property": true, - "option": true - }, - { - "name": "disableTimeToLive", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "forceSendOriginalMessage", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "includeSentJMSMessageID", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "replyToCacheLevelName", - "property": true, - "option": true - }, - { - "name": "replyToDestinationSelectorName", - "property": true, - "option": true - }, - { - "name": "streamMessageTypeEnabled", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "allowAutoWiredConnectionFactory", - "type": "boolean", - "default": "true", - "property": true - }, - { - "name": "allowAutoWiredDestinationResolver", - "type": "boolean", - "default": "true", - "property": true - }, - { - "name": "allowSerializedHeaders", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "artemisStreamingEnabled", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "asyncStartListener", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "asyncStopListener", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "autowiredEnabled", - "type": "boolean", - "default": "true", - "property": true - }, - { - "name": "configuration", - "type": "JmsConfiguration", - "property": true - }, - { - "name": "destinationResolver", - "type": "DestinationResolver", - "property": true, - "option": true - }, - { - "name": "errorHandler", - "type": "ErrorHandler", - "property": true, - "option": true - }, - { - "name": "exceptionListener", - "type": "ExceptionListener", - "property": true, - "option": true - }, - { - "name": "headerFilterStrategy", - "type": "HeaderFilterStrategy", - "property": true, - "option": true - }, - { - "name": "idleConsumerLimit", - "type": "int", - "default": "1", - "property": true, - "option": true - }, - { - "name": "idleTaskExecutionLimit", - "type": "int", - "default": "1", - "property": true, - "option": true - }, - { - "name": "includeAllJMSXProperties", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "jmsKeyFormatStrategy", - "type": "JmsKeyFormatStrategy", - "property": true, - "option": true - }, - { - "name": "mapJmsMessage", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "maxMessagesPerTask", - "type": "int", - "default": "-1", - "property": true, - "option": true - }, - { - "name": "messageConverter", - "type": "MessageConverter", - "property": true, - "option": true - }, - { - "name": "messageCreatedStrategy", - "type": "MessageCreatedStrategy", - "property": true, - "option": true - }, - { - "name": "messageIdEnabled", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "messageListenerContainerFactory", - "type": "MessageListenerContainerFactory", - "property": true, - "option": true - }, - { - "name": "messageTimestampEnabled", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "pubSubNoLocal", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "queueBrowseStrategy", - "type": "QueueBrowseStrategy", - "property": true - }, - { - "name": "receiveTimeout", - "type": "long", - "default": "1000", - "property": true, - "option": true - }, - { - "name": "recoveryInterval", - "type": "long", - "default": "5000", - "property": true, - "option": true - }, - { - "name": "requestTimeoutCheckerInterval", - "type": "long", - "default": "1000", - "property": true, - "option": true - }, - { - "name": "synchronous", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "transferException", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "transferExchange", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "useMessageIDAsCorrelationID", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "waitForProvisionCorrelationToBeUpdatedCounter", - "type": "int", - "default": "50", - "property": true, - "option": true - }, - { - "name": "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime", - "type": "long", - "default": "100", - "property": true, - "option": true - }, - { - "name": "errorHandlerLoggingLevel", - "type": "LoggingLevel", - "default": "WARN", - "property": true, - "option": true - }, - { - "name": "errorHandlerLogStackTrace", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "password", - "property": true, - "option": true - }, - { - "name": "username", - "property": true, - "option": true - }, - { - "name": "transacted", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "transactedInOut", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "lazyCreateTransactionManager", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "transactionManager", - "type": "PlatformTransactionManager", - "property": true, - "option": true - }, - { - "name": "transactionName", - "property": true, - "option": true - }, - { - "name": "transactionTimeout", - "type": "int", - "default": "-1", - "property": true, - "option": true - } - ], - "generators":[ - { - "type": "pathParameter", - "generator": "", - "config": { - "expression": "${destinationType}:${destinationName}" - } - }, - { - "type": "init", - "generator": "", - "config": { - "param1": "value1", - "param2": 10, - "param3": true - } - }, - { - "type": "ref", - "generator": "" - }, - { - "type": "from", - "generator": "" - }, - { - "type": "to", - "generator": "" - } - ] - } -} \ No newline at end of file diff --git a/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/from.ftl b/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/from.ftl deleted file mode 100644 index 49f490cd..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/from.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - artemis-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#include 'queryParameters.ftl'] - diff --git a/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/init.ftl b/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/init.ftl deleted file mode 100644 index f1baccc8..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/init.ftl +++ /dev/null @@ -1,94 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint"}] -[#-- - - ~~~~~~licensing~~~~~~ - artemis-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#assign factoryProperties = ["url", "username", "password", "maxConnections", "maxSessionsPerConnection"]] -[#function exceptFactoryProperties(propertyName)] - [#return !factoryProperties?seq_contains(propertyName)] -[/#function] - - - - - [#if connection.properties??] - - [#list connection.properties as key, value] - - [/#list] - - [/#if] - - - - - - - - - - [#-- //TODO change template for property reference usage instead of text value --] - - [#if connection.properties??] - [#list connection.properties?keys?filter(exceptFactoryProperties) as key] - - [/#list] - [/#if] - - - - - - - - - - - - - - - diff --git a/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/queryParameters.ftl b/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/queryParameters.ftl deleted file mode 100644 index 0c1cca01..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/queryParameters.ftl +++ /dev/null @@ -1,47 +0,0 @@ -[#ftl] -[#-- - - ~~~~~~licensing~~~~~~ - artemis-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#assign queryParameters] - [#if connection.options??] - [@compress single_line=true] - ?[#list connection.options as key, value][=key]=[=value][#sep]&[/#list] - [/@compress] - [/#if] -[/#assign] diff --git a/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/ref.ftl b/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/ref.ftl deleted file mode 100644 index 517915a0..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/ref.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - artemis-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] - diff --git a/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/to.ftl b/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/to.ftl deleted file mode 100644 index 2a364fe3..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-adapter/src/main/resources/template/to.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - artemis-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#include 'queryParameters.ftl'] - diff --git a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/LICENSE.txt b/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/LICENSE.txt deleted file mode 100644 index 4ae94b75..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/LICENSE.txt +++ /dev/null @@ -1,175 +0,0 @@ - ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ - -Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) -версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего -Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН -7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, -д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу -https://www.emdev.ru/about (далее - Компания). - -Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» -(или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, -Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в -настоящем документе, в противном случае, он должен не использовать или не получать доступ -к Программному обеспечению. - - 1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ - -a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии -или редакции, исключительные права на которую принадлежат Правообладателю. -b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные -права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ -для ЭВМ № 2021610848 от 19.01.2021 года. -c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта -https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. -d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также -личные неимущественные права авторов произведений на результат интеллектуальной деятельности. -e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование -ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка -включает предоставление Пользователю неисключительного права использования ПО, в том числе -получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение -патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается -Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается -для каждого Пользователя индивидуально в Сертификате. -f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), -подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное -обеспечение в ограниченном объёме и на определённый период времени. -g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, -предоставленных Пользователю согласно условиям Подписки. -h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного -обеспечения. -i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий -из одного или нескольких файлов, который может быть прочтён человеком. -j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля -программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. -Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый -продукт. -k) Некоммерческое использование – индивидуальное личное использование Пользователем программного -обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации -возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая -выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. - - 2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - -2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного -обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом -воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения -в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. -2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит -неисключительный характер. -2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, -лицензия на ограниченное использование Программного обеспечения. -2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования -имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан -обратиться в службу поддержки Правообладателя по адресу: https://entaxy.ru/ для изменения -вида лицензии с Базовой бесплатной версии на Подписки. -2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для -пробного использования программного обеспечения – не ограничен. -2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, -модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, -без разрешения Правообладателя не допускается. - - 3. АВТОРСКОЕ ПРАВО. - -3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение -и любые его копии принадлежат Правообладателю. -3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, -к которому можно получить доступ с помощью Программного обеспечения, является собственностью -соответствующего владельца контента и защищается применимым законодательством об авторском -праве или другими законами и договорами об интеллектуальной собственности. -3.3. Условия использования Программного обеспечения. -Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь -придерживается следующих условий: -3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять -какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании -Программного обеспечения или на нем. -3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, -расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать -Программное обеспечение. -3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования -ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. -3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено -использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. - - 4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» - -4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю -на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с -использованием Пользователем: -4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в -Программное обеспечение; -4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями -настоящего соглашения; -4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, -или данными, не предоставленными Пользователю Правообладателем; -4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. - - -5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ -ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ -И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ -ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ -И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ -ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. - - 6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. -НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ -ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, -ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; -ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. -ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ -ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; -КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ -ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. - - 7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: -Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия -(включая, но не ограничиваясь) по: --дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) - Программного обеспечения; --модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный -код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, -включёнными в Программное обеспечение и описанными непосредственно в документации к нему; --созданию условий для использования Программного обеспечения лицами, не имеющими прав на -использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство -третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа -к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; --распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). - - 8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. - -8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из -лицензионных продуктов, используемых на законных основаниях, а -именно https://entaxy.ru/libs/licenses/root-aggregated.deps. -8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть -совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. -8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться -Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, -содержащих все изменения и дополнения программного обеспечения. - - 9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. - -9.1. Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым -программным обеспечением. -9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно -с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм -«Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. -9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий -пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, -прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер -ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства -Российской Федерации. - - 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. - -10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет -право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, -недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий -пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере -2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения -исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). -10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое -законодательство – Российской Федерации. -10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, -остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать -исполнять свои обязанности в соответствии с этими положениями. diff --git a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/pom.xml b/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/pom.xml deleted file mode 100644 index d1e6a186..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - ru.entaxy.esb.platform.runtime.base.connecting - adapter - 1.9.0 - - - 4.0.0 - ru.entaxy.esb.platform.runtime.base.connecting.adapter - artemis-amqp-adapter - bundle - - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: ARTEMIS AMQP ADAPTER - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: ARTEMIS AMQP ADAPTER - - - - * - - - - - - org.apache.felix - maven-bundle-plugin - true - - - true - - - - - - - diff --git a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/ru/entaxy/adapter/metadata.json b/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/ru/entaxy/adapter/metadata.json deleted file mode 100644 index 4d6a7677..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/ru/entaxy/adapter/metadata.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "adapter": { - "id": "artemis.amqp.adapter.1", - "name": "artemisAmqpAdapter", - "description": "Messaging with AMQP protocol using Apache QPid Client.", - "fields": [ - { - "name": "destinationType", - "type": "String", - "default": "queue", - "property": false, - "option": false - }, - { - "name": "destinationName", - "type": "String", - "property": false, - "option": false - }, - - { - "name": "clientId", - "property": true, - "option": true - }, - { - "name": "acknowledgementModeName", - "default": "AUTO_ACKNOWLEDGE", - "property": true, - "option": true - }, - { - "name": "exchangePattern", - "type": "ExchangePattern", - "option": true - }, - { - "name": "password", - "property": true, - "option": true - }, - { - "name": "url", - "property": true, - "option": true - }, - { - "name": "username", - "property": true, - "option": true - } - ], - "generators":[ - { - "type": "pathParameter", - "generator": "", - "config": { - "expression": "${destinationType}:${destinationName}" - } - }, - { - "type": "init", - "generator": "" - }, - { - "type": "ref", - "generator": "" - }, - { - "type": "from", - "generator": "" - }, - { - "type": "to", - "generator": "" - } - ] - } -} diff --git a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/from.ftl b/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/from.ftl deleted file mode 100644 index e8313e3b..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/from.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - artemis-amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#include 'queryParameters.ftl'] - diff --git a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/init.ftl b/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/init.ftl deleted file mode 100644 index d736c1fa..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/init.ftl +++ /dev/null @@ -1,86 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint"}] -[#-- - - ~~~~~~licensing~~~~~~ - artemis-amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#assign factoryProperties = ["url", "username", "password"]] -[#function exceptFactoryProperties(propertyName)] - [#return !factoryProperties?seq_contains(propertyName)] -[/#function] - - - - - [#if connection.properties??] - - [#list connection.properties as key, value] - - [/#list] - - [/#if] - - - - - - - - - - [#-- //TODO change template for property reference usage instead of text value --] - - [#if connection.properties??] - [#list connection.properties?keys?filter(exceptFactoryProperties) as key] - - [/#list] - [/#if] - - - - - - - - - diff --git a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/queryParameters.ftl b/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/queryParameters.ftl deleted file mode 100644 index f2c3be2d..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/queryParameters.ftl +++ /dev/null @@ -1,48 +0,0 @@ -[#ftl] -[#-- - - ~~~~~~licensing~~~~~~ - artemis-amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#assign queryParameters] - [#if connection.options??] - [@compress single_line=true] - ?[#list connection.options as key, value][=key]=[=value][#sep]&[/#list] - [/@compress] - [/#if] -[/#assign] - diff --git a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/ref.ftl b/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/ref.ftl deleted file mode 100644 index 5d0662cc..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/ref.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - artemis-amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] - diff --git a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/to.ftl b/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/to.ftl deleted file mode 100644 index d8e3d860..00000000 --- a/platform/runtime/base/connecting/adapter/artemis-amqp-adapter/src/main/resources/template/to.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - artemis-amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#include 'queryParameters.ftl'] - diff --git a/platform/runtime/base/connecting/adapter/file-adapter/LICENSE.txt b/platform/runtime/base/connecting/adapter/file-adapter/LICENSE.txt deleted file mode 100644 index 4ae94b75..00000000 --- a/platform/runtime/base/connecting/adapter/file-adapter/LICENSE.txt +++ /dev/null @@ -1,175 +0,0 @@ - ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ - -Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) -версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего -Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН -7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, -д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу -https://www.emdev.ru/about (далее - Компания). - -Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» -(или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, -Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в -настоящем документе, в противном случае, он должен не использовать или не получать доступ -к Программному обеспечению. - - 1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ - -a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии -или редакции, исключительные права на которую принадлежат Правообладателю. -b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные -права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ -для ЭВМ № 2021610848 от 19.01.2021 года. -c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта -https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. -d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также -личные неимущественные права авторов произведений на результат интеллектуальной деятельности. -e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование -ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка -включает предоставление Пользователю неисключительного права использования ПО, в том числе -получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение -патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается -Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается -для каждого Пользователя индивидуально в Сертификате. -f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), -подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное -обеспечение в ограниченном объёме и на определённый период времени. -g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, -предоставленных Пользователю согласно условиям Подписки. -h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного -обеспечения. -i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий -из одного или нескольких файлов, который может быть прочтён человеком. -j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля -программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. -Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый -продукт. -k) Некоммерческое использование – индивидуальное личное использование Пользователем программного -обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации -возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая -выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. - - 2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - -2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного -обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом -воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения -в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. -2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит -неисключительный характер. -2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, -лицензия на ограниченное использование Программного обеспечения. -2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования -имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан -обратиться в службу поддержки Правообладателя по адресу: https://entaxy.ru/ для изменения -вида лицензии с Базовой бесплатной версии на Подписки. -2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для -пробного использования программного обеспечения – не ограничен. -2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, -модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, -без разрешения Правообладателя не допускается. - - 3. АВТОРСКОЕ ПРАВО. - -3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение -и любые его копии принадлежат Правообладателю. -3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, -к которому можно получить доступ с помощью Программного обеспечения, является собственностью -соответствующего владельца контента и защищается применимым законодательством об авторском -праве или другими законами и договорами об интеллектуальной собственности. -3.3. Условия использования Программного обеспечения. -Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь -придерживается следующих условий: -3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять -какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании -Программного обеспечения или на нем. -3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, -расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать -Программное обеспечение. -3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования -ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. -3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено -использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. - - 4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» - -4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю -на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с -использованием Пользователем: -4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в -Программное обеспечение; -4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями -настоящего соглашения; -4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, -или данными, не предоставленными Пользователю Правообладателем; -4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. - - -5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ -ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ -И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ -ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ -И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ -ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. - - 6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. -НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ -ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, -ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; -ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. -ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ -ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; -КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ -ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. - - 7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: -Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия -(включая, но не ограничиваясь) по: --дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) - Программного обеспечения; --модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный -код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, -включёнными в Программное обеспечение и описанными непосредственно в документации к нему; --созданию условий для использования Программного обеспечения лицами, не имеющими прав на -использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство -третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа -к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; --распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). - - 8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. - -8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из -лицензионных продуктов, используемых на законных основаниях, а -именно https://entaxy.ru/libs/licenses/root-aggregated.deps. -8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть -совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. -8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться -Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, -содержащих все изменения и дополнения программного обеспечения. - - 9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. - -9.1. Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым -программным обеспечением. -9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно -с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм -«Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. -9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий -пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, -прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер -ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства -Российской Федерации. - - 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. - -10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет -право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, -недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий -пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере -2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения -исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). -10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое -законодательство – Российской Федерации. -10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, -остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать -исполнять свои обязанности в соответствии с этими положениями. diff --git a/platform/runtime/base/connecting/adapter/file-adapter/pom.xml b/platform/runtime/base/connecting/adapter/file-adapter/pom.xml deleted file mode 100644 index 5c907f0b..00000000 --- a/platform/runtime/base/connecting/adapter/file-adapter/pom.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - ru.entaxy.esb.platform.runtime.base.connecting - adapter - 1.9.0 - - - 4.0.0 - ru.entaxy.esb.platform.runtime.base.connecting.adapter - file-adapter - bundle - - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: FILE ADAPTER - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: FILE ADAPTER - - - - * - ru.entaxy.platform.adapter.file - template, - ru.entaxy.adapter - - - - - - - org.apache.felix - maven-bundle-plugin - true - - - - true - true - - - - - - - - org.apache.camel - camel-file - ${camel.version} - - - org.apache.camel - camel-util - ${camel.version} - - - ru.entaxy.esb.platform.runtime.base - base-support - ${project.version} - - - diff --git a/platform/runtime/base/connecting/adapter/file-adapter/src/main/java/ru/entaxy/platform/adapter/file/ExtendedFileComponent.java b/platform/runtime/base/connecting/adapter/file-adapter/src/main/java/ru/entaxy/platform/adapter/file/ExtendedFileComponent.java deleted file mode 100644 index 96604739..00000000 --- a/platform/runtime/base/connecting/adapter/file-adapter/src/main/java/ru/entaxy/platform/adapter/file/ExtendedFileComponent.java +++ /dev/null @@ -1,75 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * file-adapter - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.platform.adapter.file; - -import java.io.File; -import java.util.Map; - -import org.apache.camel.component.file.FileComponent; -import org.apache.camel.component.file.GenericFileEndpoint; -import org.apache.camel.util.StringHelper; - -import ru.entaxy.platform.base.support.CommonUtils; - -public class ExtendedFileComponent extends FileComponent { - - protected String rootDirectory = ""; - - @Override - protected GenericFileEndpoint buildFileEndpoint(String uri, String remaining, Map parameters) - throws Exception { - - // copied from parent - if (StringHelper.hasStartToken(remaining, "simple")) { - throw new IllegalArgumentException("Invalid directory: " + remaining + ". Dynamic expressions with ${ } placeholders is not allowed." - + " Use the fileName option to set the dynamic expression."); - } - - String current = remaining; - if (CommonUtils.isValid(rootDirectory)) { - current = rootDirectory; - if (CommonUtils.isValid(remaining) && !".".equals(remaining)) { - if (!current.endsWith("/")) - current += "/"; - if (remaining.startsWith("/")) - current += remaining.substring(1); - else - current += remaining; - } - } - log.debug("CREATING ENDPOINT FOR [{}]", current); - return super.buildFileEndpoint(uri, current, parameters); - } - - public String getRootDirectory() { - return rootDirectory; - } - - public void setRootDirectory(String rootDirectory) { - this.rootDirectory = rootDirectory; - } - -} diff --git a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/adapter/metadata.json b/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/adapter/metadata.json deleted file mode 100644 index 42a21026..00000000 --- a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/adapter/metadata.json +++ /dev/null @@ -1,540 +0,0 @@ -{ - "adapter": { - "id": "file.adapter.1", - "name": "fileAdapter", - "description": "File adapter to interact with FS.", - "fields": [ - { - "name": "directoryName", - "type": "File", - "default": "./default-directory/", - "property": false, - "option": false - }, - - { - "name": "bridgeErrorHandler", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "lazyStartProducer", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "autowiredEnabled", - "type": "boolean", - "default": "true", - "property": true, - "option": false - }, - - { - "name": "charset", - "option": true - }, - { - "name": "doneFileName", - "option": true - }, - { - "name": "fileName", - "option": true - }, - { - "name": "delete", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "moveFailed", - "option": true - }, - { - "name": "noop", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "preMove", - "option": true - }, - { - "name": "preSort", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "recursive", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "sendEmptyMessageWhenIdle", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "directoryMustExist", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "exceptionHandler", - "type": "ExceptionHandler", - "option": true - }, - { - "name": "exchangePattern", - "type": "ExchangePattern", - "option": true - }, - { - "name": "extendedAttributes", - "option": true - }, - { - "name": "inProgressRepository", - "type": "IdempotentRepository", - "option": true - }, - { - "name": "IdempotentRepository", - "option": true - }, - { - "name": "onCompletionExceptionHandler", - "type": "ExceptionHandler", - "option": true - }, - { - "name": "pollStrategy", - "type": "PollingConsumerPollStrategy", - "option": true - }, - { - "name": "probeContentType", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "processStrategy", - "type": "GenericFileProcessStrategy", - "option": true - }, - { - "name": "startingDirectoryMustExist", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "startingDirectoryMustHaveAccess", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "appendChars", - "option": true - }, - { - "name": "fileExist", - "type": "GenericFileExist", - "default": "Override", - "option": true - }, - { - "name": "flatten", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "jailStartingDirectory", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "moveExisting", - "option": true - }, - { - "name": "tempFileName", - "option": true - }, - { - "name": "tempPrefix", - "option": true - }, - { - "name": "allowNullBody", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "chmod", - "option": true - }, - { - "name": "chmodDirectory", - "option": true - }, - { - "name": "eagerDeleteTargetFile", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "forceWrites", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "keepLastModified", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "moveExistingFileStrategy", - "type": "FileMoveExistingStrategy", - "option": true - }, - { - "name": "autoCreate", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "bufferSize", - "type": "int", - "default": "131072", - "option": true - }, - { - "name": "copyAndDeleteOnRenameFail", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "renameUsingCopy", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "synchronous", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "antExclude", - "option": true - }, - { - "name": "antFilterCaseSensitive", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "antInclude", - "option": true - }, - { - "name": "eagerMaxMessagesPerPoll", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "exclude", - "option": true - }, - { - "name": "excludeExt", - "option": true - }, - { - "name": "filter", - "type": "GenericFileFilter", - "option": true - }, - { - "name": "filterDirectory", - "option": true - }, - { - "name": "filterFile", - "option": true - }, - { - "name": "idempotent", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "idempotentKey", - "option": true - }, - { - "name": "idempotentRepository", - "type": "IdempotentRepository", - "option": true - }, - { - "name": "include", - "option": true - }, - { - "name": "includeExt", - "option": true - }, - { - "name": "maxDepth", - "type": "int", - "default": "2147483647", - "option": true - }, - { - "name": "maxMessagesPerPoll", - "type": "int", - "option": true - }, - { - "name": "minDepth", - "type": "int", - "option": true - }, - { - "name": "move", - "option": true - }, - { - "name": "exclusiveReadLockStrategy", - "type": "GenericFileExclusiveReadLockStrategy", - "option": true - }, - { - "name": "readLock", - "default": "none", - "option": true - }, - { - "name": "readLockCheckInterval", - "type": "long", - "default": "1000", - "option": true - }, - { - "name": "readLockDeleteOrphanLockFiles", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "readLockIdempotentReleaseAsync", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "readLockIdempotentReleaseAsyncPoolSize", - "type": "int", - "option": true - }, - { - "name": "readLockIdempotentReleaseDelay", - "type": "int", - "option": true - }, - { - "name": "readLockIdempotentReleaseExecutorService", - "type": "ScheduledExecutorService", - "option": true - }, - { - "name": "readLockLoggingLevel", - "type": "LoggingLevel", - "default": "DEBUG", - "option": true - }, - { - "name": "readLockMarkerFile", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "readLockMinAge", - "type": "long", - "default": "0", - "option": true - }, - { - "name": "readLockMinLength", - "type": "long", - "default": "1", - "option": true - }, - { - "name": "readLockRemoveOnCommit", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "readLockRemoveOnRollback", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "readLockTimeout", - "type": "long", - "default": "10000", - "option": true - }, - { - "name": "backoffErrorThreshold", - "type": "int", - "option": true - }, - { - "name": "backoffIdleThreshold", - "type": "int", - "option": true - }, - { - "name": "backoffMultiplier", - "type": "int", - "option": true - }, - { - "name": "delay", - "type": "long", - "default": "500", - "option": true - }, - { - "name": "greedy", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "initialDelay", - "type": "long", - "default": "1000", - "option": true - }, - { - "name": "repeatCount", - "type": "long", - "default": "0", - "option": true - }, - { - "name": "runLoggingLevel", - "type": "LoggingLevel", - "default": "TRACE", - "option": true - }, - { - "name": "scheduledExecutorService", - "type": "ScheduledExecutorService", - "option": true - }, - { - "name": "scheduler", - "type": "Object", - "default": "none", - "option": true - }, - { - "name": "schedulerProperties", - "type": "Map", - "option": true - }, - { - "name": "startScheduler", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "timeUnit", - "type": "TimeUnit", - "default": "MILLISECONDS", - "option": true - }, - { - "name": "useFixedDelay", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "shuffle", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "sortBy", - "option": true - }, - { - "name": "sorter", - "type": "Comparator", - "option": true - } - ], - "generators":[ - { - "type": "pathParameter", - "generator": "", - "config": { - "expression": "${directoryName}" - } - }, - { - "type": "init", - "generator": "" - }, - { - "type": "ref", - "generator": "" - }, - { - "type": "from", - "generator": "" - }, - { - "type": "to", - "generator": "" - } - ] - } -} \ No newline at end of file diff --git a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/factory/file-adapter.json b/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/factory/file-adapter.json deleted file mode 100644 index 8074222e..00000000 --- a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/factory/file-adapter.json +++ /dev/null @@ -1,2884 +0,0 @@ -{ - "factory": { - "id": "file-adapter", - "type": "entaxy.runtime.connection", - "isAbstract": false, - "label": "file,core", - "description": "Read and write files.", - "category": "adapter" - }, - "entaxy.runtime.connection": { - }, - "fields": { - "bridgeErrorHandler": { - "displayName": "Bridge Error Handler", - "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.", - "label": "consumer", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "consumer", - "##others": { - "old": { - "kind": "property", - "javaType": "boolean", - "deprecated": false - }, - "new": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - } - }, - "kind": [ - "property", - "parameter" - ] - }, - "lazyStartProducer": { - "displayName": "Lazy Start Producer", - "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel\u0027s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.", - "label": "producer", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "producer", - "##others": { - "old": { - "kind": "property", - "javaType": "boolean", - "deprecated": false - }, - "new": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - } - }, - "kind": [ - "property", - "parameter" - ] - }, - "basicPropertyBinding": { - "displayName": "Basic Property Binding", - "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities", - "label": "advanced", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "advanced", - "##others": { - "old": { - "kind": "property", - "javaType": "boolean", - "deprecated": false - }, - "new": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - } - }, - "kind": [ - "property", - "parameter" - ] - }, - "directoryName": { - "displayName": "Directory Name", - "description": "The starting directory", - "label": "", - "type": "string", - "required": true, - "hidden": false, - "group": "common", - "##others": { - "kind": "path", - "javaType": "java.io.File", - "deprecated": false, - "deprecationNote": "" - }, - "kind": "path" - }, - "charset": { - "displayName": "Charset", - "description": "This option is used to specify the encoding of the file. You can use this on the consumer, to specify the encodings of the files, which allow Camel to know the charset it should load the file content in case the file content is being accessed. Likewise when writing a file, you can use this option to specify which charset to write the file as well. Do mind that when writing the file Camel may have to read the message content into memory to be able to convert the data into the configured charset, so do not use this if you have big messages.", - "label": "", - "type": "string", - "required": false, - "hidden": false, - "group": "common", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "doneFileName": { - "displayName": "Done File Name", - "description": "Producer: If provided, then Camel will write a 2nd done file when the original file has been written. The done file will be empty. This option configures what file name to use. Either you can specify a fixed name. Or you can use dynamic placeholders. The done file will always be written in the same folder as the original file. Consumer: If provided, Camel will only consume files if a done file exists. This option configures what file name to use. Either you can specify a fixed name. Or you can use dynamic placeholders.The done file is always expected in the same folder as the original file. Only ${file.name} and ${file.name.next} is supported as dynamic placeholders.", - "label": "", - "type": "string", - "required": false, - "hidden": false, - "group": "common", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "fileName": { - "displayName": "File Name", - "description": "Use Expression such as File Language to dynamically set the filename. For consumers, it\u0027s used as a filename filter. For producers, it\u0027s used to evaluate the filename to write. If an expression is set, it take precedence over the CamelFileName header. (Note: The header itself can also be an Expression). The expression options support both String and Expression types. If the expression is a String type, it is always evaluated using the File Language. If the expression is an Expression type, the specified Expression type is used - this allows you, for instance, to use OGNL expressions. For the consumer, you can use it to filter filenames, so you can for instance consume today\u0027s file using the File Language syntax: mydata-${date:now:yyyyMMdd}.txt. The producers support the CamelOverruleFileName header which takes precedence over any existing CamelFileName header; the CamelOverruleFileName is a header that is used only once, and makes it easier as this avoids to temporary store CamelFileName and have to restore it afterwards.", - "label": "", - "type": "string", - "required": false, - "hidden": false, - "group": "common", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "delete": { - "displayName": "Delete", - "description": "If true, the file will be deleted after it is processed successfully.", - "label": "consumer", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "consumer", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "moveFailed": { - "displayName": "Move Failed", - "description": "Sets the move failure expression based on Simple language. For example, to move files into a .error subdirectory use: .error. Note: When moving the files to the fail location Camel will handle the error and will not pick up the file again.", - "label": "consumer", - "type": "string", - "required": false, - "hidden": false, - "group": "consumer", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "noop": { - "displayName": "Noop", - "description": "If true, the file is not moved or deleted in any way. This option is good for readonly data, or for ETL type requirements. If noop\u003dtrue, Camel will set idempotent\u003dtrue as well, to avoid consuming the same files over and over again.", - "label": "consumer", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "consumer", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "preMove": { - "displayName": "Pre Move", - "description": "Expression (such as File Language) used to dynamically set the filename when moving it before processing. For example to move in-progress files into the order directory set this value to order.", - "label": "consumer", - "type": "string", - "required": false, - "hidden": false, - "group": "consumer", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "preSort": { - "displayName": "Pre Sort", - "description": "When pre-sort is enabled then the consumer will sort the file and directory names during polling, that was retrieved from the file system. You may want to do this in case you need to operate on the files in a sorted order. The pre-sort is executed before the consumer starts to filter, and accept files to process by Camel. This option is default\u003dfalse meaning disabled.", - "label": "consumer", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "consumer", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "recursive": { - "displayName": "Recursive", - "description": "If a directory, will look for files in all the sub-directories as well.", - "label": "consumer", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "consumer", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "sendEmptyMessageWhenIdle": { - "displayName": "Send Empty Message When Idle", - "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead.", - "label": "consumer", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "consumer", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "directoryMustExist": { - "displayName": "Directory Must Exist", - "description": "Similar to the startingDirectoryMustExist option but this applies during polling (after starting the consumer).", - "label": "consumer,advanced", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "consumer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "exceptionHandler": { - "displayName": "Exception Handler", - "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored.", - "label": "consumer,advanced", - "type": "object", - "required": false, - "hidden": false, - "group": "consumer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "org.apache.camel.spi.ExceptionHandler", - "optionalPrefix": "consumer.", - "deprecated": false - }, - "kind": "parameter" - }, - "exchangePattern": { - "displayName": "Exchange Pattern", - "description": "Sets the exchange pattern when the consumer creates an exchange.", - "label": "consumer,advanced", - "type": "object", - "required": false, - "hidden": false, - "group": "consumer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "org.apache.camel.ExchangePattern", - "enum": [ - "InOnly", - "InOut", - "InOptionalOut" - ], - "deprecated": false - }, - "kind": "parameter" - }, - "extendedAttributes": { - "displayName": "Extended Attributes", - "description": "To define which file attributes of interest. Like posix:permissions,posix:owner,basic:lastAccessTime, it supports basic wildcard like posix:, basic:lastAccessTime", - "label": "consumer,advanced", - "type": "string", - "required": false, - "hidden": false, - "group": "consumer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "inProgressRepository": { - "displayName": "In Progress Repository", - "description": "A pluggable in-progress repository org.apache.camel.spi.IdempotentRepository. The in-progress repository is used to account the current in progress files being consumed. By default a memory based repository is used.", - "label": "consumer,advanced", - "type": "object", - "required": false, - "hidden": false, - "group": "consumer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "org.apache.camel.spi.IdempotentRepository", - "deprecated": false - }, - "kind": "parameter" - }, - "localWorkDirectory": { - "displayName": "Local Work Directory", - "description": "When consuming, a local work directory can be used to store the remote file content directly in local files, to avoid loading the content into memory. This is beneficial, if you consume a very big remote file and thus can conserve memory.", - "label": "consumer,advanced", - "type": "string", - "required": false, - "hidden": false, - "group": "consumer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "onCompletionExceptionHandler": { - "displayName": "On Completion Exception Handler", - "description": "To use a custom org.apache.camel.spi.ExceptionHandler to handle any thrown exceptions that happens during the file on completion process where the consumer does either a commit or rollback. The default implementation will log any exception at WARN level and ignore.", - "label": "consumer,advanced", - "type": "object", - "required": false, - "hidden": false, - "group": "consumer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "org.apache.camel.spi.ExceptionHandler", - "deprecated": false - }, - "kind": "parameter" - }, - "pollStrategy": { - "displayName": "Poll Strategy", - "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel.", - "label": "consumer,advanced", - "type": "object", - "required": false, - "hidden": false, - "group": "consumer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", - "deprecated": false - }, - "kind": "parameter" - }, - "probeContentType": { - "displayName": "Probe Content Type", - "description": "Whether to enable probing of the content type. If enable then the consumer uses Files#probeContentType(java.nio.file.Path) to determine the content-type of the file, and store that as a header with key Exchange#FILE_CONTENT_TYPE on the Message.", - "label": "consumer,advanced", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "consumer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "processStrategy": { - "displayName": "Process Strategy", - "description": "A pluggable org.apache.camel.component.file.GenericFileProcessStrategy allowing you to implement your own readLock option or similar. Can also be used when special conditions must be met before a file can be consumed, such as a special ready file exists. If this option is set then the readLock option does not apply.", - "label": "consumer,advanced", - "type": "object", - "required": false, - "hidden": false, - "group": "consumer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "org.apache.camel.component.file.GenericFileProcessStrategy\u003cjava.io.File\u003e", - "deprecated": false - }, - "kind": "parameter" - }, - "startingDirectoryMustExist": { - "displayName": "Starting Directory Must Exist", - "description": "Whether the starting directory must exist. Mind that the autoCreate option is default enabled, which means the starting directory is normally auto created if it doesn\u0027t exist. You can disable autoCreate and enable this to ensure the starting directory must exist. Will thrown an exception if the directory doesn\u0027t exist.", - "label": "consumer,advanced", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "consumer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "startingDirectoryMustHaveAccess": { - "displayName": "Starting Directory Must Have Access", - "description": "Whether the starting directory has access permissions. Mind that the startingDirectoryMustExist parameter must be set to true in order to verify that the directory exists. Will thrown an exception if the directory doesn\u0027t have read and write permissions.", - "label": "consumer,advanced", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "consumer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "appendChars": { - "displayName": "Append Chars", - "description": "Used to append characters (text) after writing files. This can for example be used to add new lines or other separators when writing and appending to existing files. To specify new-line (slash-n or slash-r) or tab (slash-t) characters then escape with an extra slash, eg slash-slash-n.", - "label": "producer", - "type": "string", - "required": false, - "hidden": false, - "group": "producer", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "fileExist": { - "displayName": "File Exist", - "description": "What to do if a file already exists with the same name. Override, which is the default, replaces the existing file. - Append - adds content to the existing file. - Fail - throws a GenericFileOperationException, indicating that there is already an existing file. - Ignore - silently ignores the problem and does not override the existing file, but assumes everything is okay. - Move - option requires to use the moveExisting option to be configured as well. The option eagerDeleteTargetFile can be used to control what to do if an moving the file, and there exists already an existing file, otherwise causing the move operation to fail. The Move option will move any existing files, before writing the target file. - TryRename is only applicable if tempFileName option is in use. This allows to try renaming the file from the temporary name to the actual name, without doing any exists check. This check may be faster on some file systems and especially FTP servers.", - "label": "producer", - "type": "object", - "required": false, - "hidden": false, - "defaultValue": "Override", - "group": "producer", - "##others": { - "kind": "parameter", - "javaType": "org.apache.camel.component.file.GenericFileExist", - "enum": [ - "Override", - "Append", - "Fail", - "Ignore", - "Move", - "TryRename" - ], - "deprecated": false - }, - "kind": "parameter" - }, - "flatten": { - "displayName": "Flatten", - "description": "Flatten is used to flatten the file name path to strip any leading paths, so it\u0027s just the file name. This allows you to consume recursively into sub-directories, but when you eg write the files to another directory they will be written in a single directory. Setting this to true on the producer enforces that any file name in CamelFileName header will be stripped for any leading paths.", - "label": "producer", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "producer", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "jailStartingDirectory": { - "displayName": "Jail Starting Directory", - "description": "Used for jailing (restricting) writing files to the starting directory (and sub) only. This is enabled by default to not allow Camel to write files to outside directories (to be more secured out of the box). You can turn this off to allow writing files to directories outside the starting directory, such as parent or root folders.", - "label": "producer", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": true, - "group": "producer", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "moveExisting": { - "displayName": "Move Existing", - "description": "Expression (such as File Language) used to compute file name to use when fileExist\u003dMove is configured. To move files into a backup subdirectory just enter backup. This option only supports the following File Language tokens: file:name, file:name.ext, file:name.noext, file:onlyname, file:onlyname.noext, file:ext, and file:parent. Notice the file:parent is not supported by the FTP component, as the FTP component can only move any existing files to a relative directory based on current dir as base.", - "label": "producer", - "type": "string", - "required": false, - "hidden": false, - "group": "producer", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "tempFileName": { - "displayName": "Temp File Name", - "description": "The same as tempPrefix option but offering a more fine grained control on the naming of the temporary filename as it uses the File Language. The location for tempFilename is relative to the final file location in the option \u0027fileName\u0027, not the target directory in the base uri. For example if option fileName includes a directory prefix: dir/finalFilename then tempFileName is relative to that subdirectory dir.", - "label": "producer", - "type": "string", - "required": false, - "hidden": false, - "group": "producer", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "tempPrefix": { - "displayName": "Temp Prefix", - "description": "This option is used to write the file using a temporary name and then, after the write is complete, rename it to the real name. Can be used to identify files being written and also avoid consumers (not using exclusive read locks) reading in progress files. Is often used by FTP when uploading big files.", - "label": "producer", - "type": "string", - "required": false, - "hidden": false, - "group": "producer", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "allowNullBody": { - "displayName": "Allow Null Body", - "description": "Used to specify if a null body is allowed during file writing. If set to true then an empty file will be created, when set to false, and attempting to send a null body to the file component, a GenericFileWriteException of \u0027Cannot write null body to file.\u0027 will be thrown. If the fileExist option is set to \u0027Override\u0027, then the file will be truncated, and if set to append the file will remain unchanged.", - "label": "producer,advanced", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "producer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "chmod": { - "displayName": "Chmod", - "description": "Specify the file permissions which is sent by the producer, the chmod value must be between 000 and 777; If there is a leading digit like in 0755 we will ignore it.", - "label": "producer,advanced", - "type": "string", - "required": false, - "hidden": false, - "group": "producer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "chmodDirectory": { - "displayName": "Chmod Directory", - "description": "Specify the directory permissions used when the producer creates missing directories, the chmod value must be between 000 and 777; If there is a leading digit like in 0755 we will ignore it.", - "label": "producer,advanced", - "type": "string", - "required": false, - "hidden": false, - "group": "producer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "eagerDeleteTargetFile": { - "displayName": "Eager Delete Target File", - "description": "Whether or not to eagerly delete any existing target file. This option only applies when you use fileExists\u003dOverride and the tempFileName option as well. You can use this to disable (set it to false) deleting the target file before the temp file is written. For example you may write big files and want the target file to exists during the temp file is being written. This ensure the target file is only deleted until the very last moment, just before the temp file is being renamed to the target filename. This option is also used to control whether to delete any existing files when fileExist\u003dMove is enabled, and an existing file exists. If this option copyAndDeleteOnRenameFails false, then an exception will be thrown if an existing file existed, if its true, then the existing file is deleted before the move operation.", - "label": "producer,advanced", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": true, - "group": "producer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "forceWrites": { - "displayName": "Force Writes", - "description": "Whether to force syncing writes to the file system. You can turn this off if you do not want this level of guarantee, for example if writing to logs / audit logs etc; this would yield better performance.", - "label": "producer,advanced", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": true, - "group": "producer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "keepLastModified": { - "displayName": "Keep Last Modified", - "description": "Will keep the last modified timestamp from the source file (if any). Will use the Exchange.FILE_LAST_MODIFIED header to located the timestamp. This header can contain either a java.util.Date or long with the timestamp. If the timestamp exists and the option is enabled it will set this timestamp on the written file. Note: This option only applies to the file producer. You cannot use this option with any of the ftp producers.", - "label": "producer,advanced", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "producer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "moveExistingFileStrategy": { - "displayName": "Move Existing File Strategy", - "description": "Strategy (Custom Strategy) used to move file with special naming token to use when fileExist\u003dMove is configured. By default, there is an implementation used if no custom strategy is provided", - "label": "producer,advanced", - "type": "object", - "required": false, - "hidden": false, - "group": "producer (advanced)", - "##others": { - "kind": "parameter", - "javaType": "org.apache.camel.component.file.strategy.FileMoveExistingStrategy", - "deprecated": false - }, - "kind": "parameter" - }, - "autoCreate": { - "displayName": "Auto Create", - "description": "Automatically create missing directories in the file\u0027s pathname. For the file consumer, that means creating the starting directory. For the file producer, it means the directory the files should be written to.", - "label": "advanced", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": true, - "group": "advanced", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "bufferSize": { - "displayName": "Buffer Size", - "description": "Buffer size in bytes used for writing files (or in case of FTP for downloading and uploading files).", - "label": "advanced", - "type": "integer", - "required": false, - "hidden": false, - "defaultValue": 131072, - "group": "advanced", - "##others": { - "kind": "parameter", - "javaType": "int", - "deprecated": false - }, - "kind": "parameter" - }, - "copyAndDeleteOnRenameFail": { - "displayName": "Copy And Delete On Rename Fail", - "description": "Whether to fallback and do a copy and delete file, in case the file could not be renamed directly. This option is not available for the FTP component.", - "label": "advanced", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": true, - "group": "advanced", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "renameUsingCopy": { - "displayName": "Rename Using Copy", - "description": "Perform rename operations using a copy and delete strategy. This is primarily used in environments where the regular rename operation is unreliable (e.g. across different file systems or networks). This option takes precedence over the copyAndDeleteOnRenameFail parameter that will automatically fall back to the copy and delete strategy, but only after additional delays.", - "label": "advanced", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "advanced", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "synchronous": { - "displayName": "Synchronous", - "description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).", - "label": "advanced", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "advanced", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "antExclude": { - "displayName": "Ant Exclude", - "description": "Ant style filter exclusion. If both antInclude and antExclude are used, antExclude takes precedence over antInclude. Multiple exclusions may be specified in comma-delimited format.", - "label": "consumer,filter", - "type": "string", - "required": false, - "hidden": false, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "antFilterCaseSensitive": { - "displayName": "Ant Filter Case Sensitive", - "description": "Sets case sensitive flag on ant filter.", - "label": "consumer,filter", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": true, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "antInclude": { - "displayName": "Ant Include", - "description": "Ant style filter inclusion. Multiple inclusions may be specified in comma-delimited format.", - "label": "consumer,filter", - "type": "string", - "required": false, - "hidden": false, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "eagerMaxMessagesPerPoll": { - "displayName": "Eager Max Messages Per Poll", - "description": "Allows for controlling whether the limit from maxMessagesPerPoll is eager or not. If eager then the limit is during the scanning of files. Where as false would scan all files, and then perform sorting. Setting this option to false allows for sorting all files first, and then limit the poll. Mind that this requires a higher memory usage as all file details are in memory to perform the sorting.", - "label": "consumer,filter", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": true, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "exclude": { - "displayName": "Exclude", - "description": "Is used to exclude files, if filename matches the regex pattern (matching is case in-senstive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris", - "label": "consumer,filter", - "type": "string", - "required": false, - "hidden": false, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "filter": { - "displayName": "Filter", - "description": "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method.", - "label": "consumer,filter", - "type": "object", - "required": false, - "hidden": false, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "org.apache.camel.component.file.GenericFileFilter\u003cjava.io.File\u003e", - "deprecated": false - }, - "kind": "parameter" - }, - "filterDirectory": { - "displayName": "Filter Directory", - "description": "Filters the directory based on Simple language. For example to filter on current date, you can use a simple date pattern such as ${date:now:yyyMMdd}", - "label": "consumer,filter", - "type": "string", - "required": false, - "hidden": false, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "filterFile": { - "displayName": "Filter File", - "description": "Filters the file based on Simple language. For example to filter on file size, you can use ${file:size} 5000", - "label": "consumer,filter", - "type": "string", - "required": false, - "hidden": false, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "idempotent": { - "displayName": "Idempotent", - "description": "Option to use the Idempotent Consumer EIP pattern to let Camel skip already processed files. Will by default use a memory based LRUCache that holds 1000 entries. If noop\u003dtrue then idempotent will be enabled as well to avoid consuming the same files over and over again.", - "label": "consumer,filter", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "java.lang.Boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "idempotentKey": { - "displayName": "Idempotent Key", - "description": "To use a custom idempotent key. By default the absolute path of the file is used. You can use the File Language, for example to use the file name and file size, you can do: idempotentKey\u003d${file:name}-${file:size}", - "label": "consumer,filter", - "type": "string", - "required": false, - "hidden": false, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "idempotentRepository": { - "displayName": "Idempotent Repository", - "description": "A pluggable repository org.apache.camel.spi.IdempotentRepository which by default use MemoryMessageIdRepository if none is specified and idempotent is true.", - "label": "consumer,filter", - "type": "object", - "required": false, - "hidden": false, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "org.apache.camel.spi.IdempotentRepository", - "deprecated": false - }, - "kind": "parameter" - }, - "include": { - "displayName": "Include", - "description": "Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris", - "label": "consumer,filter", - "type": "string", - "required": false, - "hidden": false, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "maxDepth": { - "displayName": "Max Depth", - "description": "The maximum depth to traverse when recursively processing a directory.", - "label": "consumer,filter", - "type": "integer", - "required": false, - "hidden": false, - "defaultValue": 2147483647, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "int", - "deprecated": false - }, - "kind": "parameter" - }, - "maxMessagesPerPoll": { - "displayName": "Max Messages Per Poll", - "description": "To define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g. 1000 to avoid when starting up the server that there are thousands of files. Set a value of 0 or negative to disabled it. Notice: If this option is in use then the File and FTP components will limit before any sorting. For example if you have 100000 files and use maxMessagesPerPoll\u003d500, then only the first 500 files will be picked up, and then sorted. You can use the eagerMaxMessagesPerPoll option and set this to false to allow to scan all files first and then sort afterwards.", - "label": "consumer,filter", - "type": "integer", - "required": false, - "hidden": false, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "int", - "deprecated": false - }, - "kind": "parameter" - }, - "minDepth": { - "displayName": "Min Depth", - "description": "The minimum depth to start processing when recursively processing a directory. Using minDepth\u003d1 means the base directory. Using minDepth\u003d2 means the first sub directory.", - "label": "consumer,filter", - "type": "integer", - "required": false, - "hidden": false, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "int", - "deprecated": false - }, - "kind": "parameter" - }, - "move": { - "displayName": "Move", - "description": "Expression (such as Simple Language) used to dynamically set the filename when moving it after processing. To move files into a .done subdirectory just enter .done.", - "label": "consumer,filter", - "type": "string", - "required": false, - "hidden": false, - "group": "filter", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "exclusiveReadLockStrategy": { - "displayName": "Exclusive Read Lock Strategy", - "description": "Pluggable read-lock as a org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy implementation.", - "label": "consumer,lock", - "type": "object", - "required": false, - "hidden": false, - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy\u003cjava.io.File\u003e", - "deprecated": false - }, - "kind": "parameter" - }, - "readLock": { - "displayName": "Read Lock", - "description": "Used by consumer, to only poll the files if it has exclusive read-lock on the file (i.e. the file is not in-progress or being written). Camel will wait until the file lock is granted. This option provides the build in strategies: - none - No read lock is in use - markerFile - Camel creates a marker file (fileName.camelLock) and then holds a lock on it. This option is not available for the FTP component - changed - Changed is using file length/modification timestamp to detect whether the file is currently being copied or not. Will at least use 1 sec to determine this, so this option cannot consume files as fast as the others, but can be more reliable as the JDK IO API cannot always determine whether a file is currently being used by another process. The option readLockCheckInterval can be used to set the check frequency. - fileLock - is for using java.nio.channels.FileLock. This option is not avail for Windows OS and the FTP component. This approach should be avoided when accessing a remote file system via a mount/share unless that file system supports distributed file locks. - rename - rename is for using a try to rename the file as a test if we can get exclusive read-lock. - idempotent - (only for file component) idempotent is for using a idempotentRepository as the read-lock. This allows to use read locks that supports clustering if the idempotent repository implementation supports that. - idempotent-changed - (only for file component) idempotent-changed is for using a idempotentRepository and changed as the combined read-lock. This allows to use read locks that supports clustering if the idempotent repository implementation supports that. - idempotent-rename - (only for file component) idempotent-rename is for using a idempotentRepository and rename as the combined read-lock. This allows to use read locks that supports clustering if the idempotent repository implementation supports that.Notice: The various read locks is not all suited to work in clustered mode, where concurrent consumers on different nodes is competing for the same files on a shared file system. The markerFile using a close to atomic operation to create the empty marker file, but its not guaranteed to work in a cluster. The fileLock may work better but then the file system need to support distributed file locks, and so on. Using the idempotent read lock can support clustering if the idempotent repository supports clustering, such as Hazelcast Component or Infinispan.", - "label": "consumer,lock", - "type": "string", - "required": false, - "hidden": false, - "defaultValue": "none", - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "enum": [ - "none", - "markerFile", - "fileLock", - "rename", - "changed", - "idempotent", - "idempotent-changed", - "idempotent-rename" - ], - "deprecated": false - }, - "kind": "parameter" - }, - "readLockCheckInterval": { - "displayName": "Read Lock Check Interval", - "description": "Interval in millis for the read-lock, if supported by the read lock. This interval is used for sleeping between attempts to acquire the read lock. For example when using the changed read lock, you can set a higher interval period to cater for slow writes. The default of 1 sec. may be too fast if the producer is very slow writing the file. Notice: For FTP the default readLockCheckInterval is 5000. The readLockTimeout value must be higher than readLockCheckInterval, but a rule of thumb is to have a timeout that is at least 2 or more times higher than the readLockCheckInterval. This is needed to ensure that amble time is allowed for the read lock process to try to grab the lock before the timeout was hit.", - "label": "consumer,lock", - "type": "integer", - "required": false, - "hidden": false, - "defaultValue": 1000, - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "long", - "deprecated": false - }, - "kind": "parameter" - }, - "readLockDeleteOrphanLockFiles": { - "displayName": "Read Lock Delete Orphan Lock Files", - "description": "Whether or not read lock with marker files should upon startup delete any orphan read lock files, which may have been left on the file system, if Camel was not properly shutdown (such as a JVM crash). If turning this option to false then any orphaned lock file will cause Camel to not attempt to pickup that file, this could also be due another node is concurrently reading files from the same shared directory.", - "label": "consumer,lock", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": true, - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "readLockIdempotentReleaseAsync": { - "displayName": "Read Lock Idempotent Release Async", - "description": "Whether the delayed release task should be synchronous or asynchronous. See more details at the readLockIdempotentReleaseDelay option.", - "label": "consumer,lock", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "readLockIdempotentReleaseAsyncPoolSize": { - "displayName": "Read Lock Idempotent Release Async Pool Size", - "description": "The number of threads in the scheduled thread pool when using asynchronous release tasks. Using a default of 1 core threads should be sufficient in almost all use-cases, only set this to a higher value if either updating the idempotent repository is slow, or there are a lot of files to process. This option is not in-use if you use a shared thread pool by configuring the readLockIdempotentReleaseExecutorService option. See more details at the readLockIdempotentReleaseDelay option.", - "label": "consumer,lock", - "type": "integer", - "required": false, - "hidden": false, - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "int", - "deprecated": false - }, - "kind": "parameter" - }, - "readLockIdempotentReleaseDelay": { - "displayName": "Read Lock Idempotent Release Delay", - "description": "Whether to delay the release task for a period of millis. This can be used to delay the release tasks to expand the window when a file is regarded as read-locked, in an active/active cluster scenario with a shared idempotent repository, to ensure other nodes cannot potentially scan and acquire the same file, due to race-conditions. By expanding the time-window of the release tasks helps prevents these situations. Note delaying is only needed if you have configured readLockRemoveOnCommit to true.", - "label": "consumer,lock", - "type": "integer", - "required": false, - "hidden": false, - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "int", - "deprecated": false - }, - "kind": "parameter" - }, - "readLockIdempotentReleaseExecutorService": { - "displayName": "Read Lock Idempotent Release Executor Service", - "description": "To use a custom and shared thread pool for asynchronous release tasks. See more details at the readLockIdempotentReleaseDelay option.", - "label": "consumer,lock", - "type": "object", - "required": false, - "hidden": false, - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "java.util.concurrent.ScheduledExecutorService", - "deprecated": false - }, - "kind": "parameter" - }, - "readLockLoggingLevel": { - "displayName": "Read Lock Logging Level", - "description": "Logging level used when a read lock could not be acquired. By default a DEBUG is logged. You can change this level, for example to OFF to not have any logging. This option is only applicable for readLock of types: changed, fileLock, idempotent, idempotent-changed, idempotent-rename, rename.", - "label": "consumer,lock", - "type": "object", - "required": false, - "hidden": false, - "defaultValue": "DEBUG", - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "org.apache.camel.LoggingLevel", - "enum": [ - "TRACE", - "DEBUG", - "INFO", - "WARN", - "ERROR", - "OFF" - ], - "deprecated": false - }, - "kind": "parameter" - }, - "readLockMarkerFile": { - "displayName": "Read Lock Marker File", - "description": "Whether to use marker file with the changed, rename, or exclusive read lock types. By default a marker file is used as well to guard against other processes picking up the same files. This behavior can be turned off by setting this option to false. For example if you do not want to write marker files to the file systems by the Camel application.", - "label": "consumer,lock", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": true, - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "readLockMinAge": { - "displayName": "Read Lock Min Age", - "description": "This option is applied only for readLock\u003dchanged. It allows to specify a minimum age the file must be before attempting to acquire the read lock. For example use readLockMinAge\u003d300s to require the file is at last 5 minutes old. This can speedup the changed read lock as it will only attempt to acquire files which are at least that given age.", - "label": "consumer,lock", - "type": "integer", - "required": false, - "hidden": false, - "defaultValue": 0, - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "long", - "deprecated": false - }, - "kind": "parameter" - }, - "readLockMinLength": { - "displayName": "Read Lock Min Length", - "description": "This option is applied only for readLock\u003dchanged. It allows you to configure a minimum file length. By default Camel expects the file to contain data, and thus the default value is 1. You can set this option to zero, to allow consuming zero-length files.", - "label": "consumer,lock", - "type": "integer", - "required": false, - "hidden": false, - "defaultValue": 1, - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "long", - "deprecated": false - }, - "kind": "parameter" - }, - "readLockRemoveOnCommit": { - "displayName": "Read Lock Remove On Commit", - "description": "This option is applied only for readLock\u003didempotent. It allows to specify whether to remove the file name entry from the idempotent repository when processing the file is succeeded and a commit happens. By default the file is not removed which ensures that any race-condition do not occur so another active node may attempt to grab the file. Instead the idempotent repository may support eviction strategies that you can configure to evict the file name entry after X minutes - this ensures no problems with race conditions. See more details at the readLockIdempotentReleaseDelay option.", - "label": "consumer,lock", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "readLockRemoveOnRollback": { - "displayName": "Read Lock Remove On Rollback", - "description": "This option is applied only for readLock\u003didempotent. It allows to specify whether to remove the file name entry from the idempotent repository when processing the file failed and a rollback happens. If this option is false, then the file name entry is confirmed (as if the file did a commit).", - "label": "consumer,lock", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": true, - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "readLockTimeout": { - "displayName": "Read Lock Timeout", - "description": "Optional timeout in millis for the read-lock, if supported by the read-lock. If the read-lock could not be granted and the timeout triggered, then Camel will skip the file. At next poll Camel, will try the file again, and this time maybe the read-lock could be granted. Use a value of 0 or lower to indicate forever. Currently fileLock, changed and rename support the timeout. Notice: For FTP the default readLockTimeout value is 20000 instead of 10000. The readLockTimeout value must be higher than readLockCheckInterval, but a rule of thumb is to have a timeout that is at least 2 or more times higher than the readLockCheckInterval. This is needed to ensure that amble time is allowed for the read lock process to try to grab the lock before the timeout was hit.", - "label": "consumer,lock", - "type": "integer", - "required": false, - "hidden": false, - "defaultValue": 10000, - "group": "lock", - "##others": { - "kind": "parameter", - "javaType": "long", - "deprecated": false - }, - "kind": "parameter" - }, - "backoffErrorThreshold": { - "displayName": "Backoff Error Threshold", - "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in.", - "label": "consumer,scheduler", - "type": "integer", - "required": false, - "hidden": false, - "group": "scheduler", - "##others": { - "kind": "parameter", - "javaType": "int", - "deprecated": false - }, - "kind": "parameter" - }, - "backoffIdleThreshold": { - "displayName": "Backoff Idle Threshold", - "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in.", - "label": "consumer,scheduler", - "type": "integer", - "required": false, - "hidden": false, - "group": "scheduler", - "##others": { - "kind": "parameter", - "javaType": "int", - "deprecated": false - }, - "kind": "parameter" - }, - "backoffMultiplier": { - "displayName": "Backoff Multiplier", - "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be configured.", - "label": "consumer,scheduler", - "type": "integer", - "required": false, - "hidden": false, - "group": "scheduler", - "##others": { - "kind": "parameter", - "javaType": "int", - "deprecated": false - }, - "kind": "parameter" - }, - "delay": { - "displayName": "Delay", - "description": "Milliseconds before the next poll.", - "label": "consumer,scheduler", - "type": "integer", - "required": false, - "hidden": false, - "defaultValue": 500, - "group": "scheduler", - "##others": { - "kind": "parameter", - "javaType": "long", - "deprecated": false - }, - "kind": "parameter" - }, - "greedy": { - "displayName": "Greedy", - "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages.", - "label": "consumer,scheduler", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "scheduler", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "initialDelay": { - "displayName": "Initial Delay", - "description": "Milliseconds before the first poll starts.", - "label": "consumer,scheduler", - "type": "integer", - "required": false, - "hidden": false, - "defaultValue": 1000, - "group": "scheduler", - "##others": { - "kind": "parameter", - "javaType": "long", - "deprecated": false - }, - "kind": "parameter" - }, - "repeatCount": { - "displayName": "Repeat Count", - "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever.", - "label": "consumer,scheduler", - "type": "integer", - "required": false, - "hidden": false, - "defaultValue": 0, - "group": "scheduler", - "##others": { - "kind": "parameter", - "javaType": "long", - "deprecated": false - }, - "kind": "parameter" - }, - "runLoggingLevel": { - "displayName": "Run Logging Level", - "description": "The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for that.", - "label": "consumer,scheduler", - "type": "object", - "required": false, - "hidden": false, - "defaultValue": "TRACE", - "group": "scheduler", - "##others": { - "kind": "parameter", - "javaType": "org.apache.camel.LoggingLevel", - "enum": [ - "TRACE", - "DEBUG", - "INFO", - "WARN", - "ERROR", - "OFF" - ], - "deprecated": false - }, - "kind": "parameter" - }, - "scheduledExecutorService": { - "displayName": "Scheduled Executor Service", - "description": "Allows for configuring a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool.", - "label": "consumer,scheduler", - "type": "object", - "required": false, - "hidden": false, - "group": "scheduler", - "##others": { - "kind": "parameter", - "javaType": "java.util.concurrent.ScheduledExecutorService", - "deprecated": false - }, - "kind": "parameter" - }, - "scheduler": { - "displayName": "Scheduler", - "description": "To use a cron scheduler from either camel-spring or camel-quartz component", - "label": "consumer,scheduler", - "type": "string", - "required": false, - "hidden": false, - "defaultValue": "none", - "group": "scheduler", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "enum": [ - "none", - "spring", - "quartz" - ], - "deprecated": false - }, - "kind": "parameter" - }, - "schedulerProperties": { - "displayName": "Scheduler Properties", - "description": "To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler.", - "label": "consumer,scheduler", - "type": "object", - "required": false, - "hidden": false, - "group": "scheduler", - "##others": { - "kind": "parameter", - "javaType": "java.util.Map\u003cjava.lang.String, java.lang.Object\u003e", - "prefix": "scheduler.", - "multiValue": true, - "deprecated": false - }, - "kind": "parameter" - }, - "startScheduler": { - "displayName": "Start Scheduler", - "description": "Whether the scheduler should be auto started.", - "label": "consumer,scheduler", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": true, - "group": "scheduler", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "timeUnit": { - "displayName": "Time Unit", - "description": "Time unit for initialDelay and delay options.", - "label": "consumer,scheduler", - "type": "object", - "required": false, - "hidden": false, - "defaultValue": "MILLISECONDS", - "group": "scheduler", - "##others": { - "kind": "parameter", - "javaType": "java.util.concurrent.TimeUnit", - "enum": [ - "NANOSECONDS", - "MICROSECONDS", - "MILLISECONDS", - "SECONDS", - "MINUTES", - "HOURS", - "DAYS" - ], - "deprecated": false - }, - "kind": "parameter" - }, - "useFixedDelay": { - "displayName": "Use Fixed Delay", - "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details.", - "label": "consumer,scheduler", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": true, - "group": "scheduler", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "shuffle": { - "displayName": "Shuffle", - "description": "To shuffle the list of files (sort in random order)", - "label": "consumer,sort", - "type": "boolean", - "required": false, - "hidden": false, - "defaultValue": false, - "group": "sort", - "##others": { - "kind": "parameter", - "javaType": "boolean", - "deprecated": false - }, - "kind": "parameter" - }, - "sortBy": { - "displayName": "Sort By", - "description": "Built-in sort by using the File Language. Supports nested sorts, so you can have a sort by file name and as a 2nd group sort by modified date.", - "label": "consumer,sort", - "type": "string", - "required": false, - "hidden": false, - "group": "sort", - "##others": { - "kind": "parameter", - "javaType": "java.lang.String", - "deprecated": false - }, - "kind": "parameter" - }, - "sorter": { - "displayName": "Sorter", - "description": "Pluggable sorter as a java.util.Comparator class.", - "label": "consumer,sort", - "type": "object", - "required": false, - "hidden": false, - "group": "sort", - "##others": { - "kind": "parameter", - "javaType": "java.util.Comparator\u003corg.apache.camel.component.file.GenericFile\u003cjava.io.File\u003e\u003e", - "deprecated": false - }, - "kind": "parameter" - }, - "rootDirectory": { - "type": "String", - "group": "entaxy", - "required": true - } - }, - "outputs": { - "init": { - "isDefault": true, - "generator": "", - "config": { - "configurable": true - }, - "fields": { - "rootDirectory": { - }, - "@IMPORT": [ - { - "sourceFactoryId": "#", - "location": "fields", - "prefix": "file_", - "filter": { - "contains": [ - { - "attribute": "kind", - "values": [ - "property" - ] - } - ] - } - } - ], - "ext_createResourceProvider": { - "type": "Boolean", - "group": "entaxy", - "defaultValue": false, - "configurable": false - } - }, - "scopes": [ - "public", - "private" - ] - }, - "ref": { - "scopes": [ - "public", - "private" - ] - } - }, - "##origin": { - "component": { - "kind": "component", - "name": "file", - "title": "File", - "description": "Read and write files.", - "deprecated": false, - "firstVersion": "1.0.0", - "label": "file,core", - "javaType": "org.apache.camel.component.file.FileComponent", - "supportLevel": "Stable", - "groupId": "org.apache.camel", - "artifactId": "camel-file", - "version": "3.4.5", - "scheme": "file", - "extendsScheme": "", - "syntax": "file:directoryName", - "async": false, - "consumerOnly": false, - "producerOnly": false, - "lenientProperties": false - }, - "componentProperties": { - "bridgeErrorHandler": { - "kind": "property", - "displayName": "Bridge Error Handler", - "group": "consumer", - "label": "consumer", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored." - }, - "lazyStartProducer": { - "kind": "property", - "displayName": "Lazy Start Producer", - "group": "producer", - "label": "producer", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel\u0027s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing." - }, - "basicPropertyBinding": { - "kind": "property", - "displayName": "Basic Property Binding", - "group": "advanced", - "label": "advanced", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" - } - }, - "properties": { - "directoryName": { - "kind": "path", - "displayName": "Directory Name", - "group": "common", - "label": "", - "required": true, - "type": "string", - "javaType": "java.io.File", - "deprecated": false, - "deprecationNote": "", - "secret": false, - "description": "The starting directory" - }, - "charset": { - "kind": "parameter", - "displayName": "Charset", - "group": "common", - "label": "", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "This option is used to specify the encoding of the file. You can use this on the consumer, to specify the encodings of the files, which allow Camel to know the charset it should load the file content in case the file content is being accessed. Likewise when writing a file, you can use this option to specify which charset to write the file as well. Do mind that when writing the file Camel may have to read the message content into memory to be able to convert the data into the configured charset, so do not use this if you have big messages." - }, - "doneFileName": { - "kind": "parameter", - "displayName": "Done File Name", - "group": "common", - "label": "", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Producer: If provided, then Camel will write a 2nd done file when the original file has been written. The done file will be empty. This option configures what file name to use. Either you can specify a fixed name. Or you can use dynamic placeholders. The done file will always be written in the same folder as the original file. Consumer: If provided, Camel will only consume files if a done file exists. This option configures what file name to use. Either you can specify a fixed name. Or you can use dynamic placeholders.The done file is always expected in the same folder as the original file. Only ${file.name} and ${file.name.next} is supported as dynamic placeholders." - }, - "fileName": { - "kind": "parameter", - "displayName": "File Name", - "group": "common", - "label": "", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Use Expression such as File Language to dynamically set the filename. For consumers, it\u0027s used as a filename filter. For producers, it\u0027s used to evaluate the filename to write. If an expression is set, it take precedence over the CamelFileName header. (Note: The header itself can also be an Expression). The expression options support both String and Expression types. If the expression is a String type, it is always evaluated using the File Language. If the expression is an Expression type, the specified Expression type is used - this allows you, for instance, to use OGNL expressions. For the consumer, you can use it to filter filenames, so you can for instance consume today\u0027s file using the File Language syntax: mydata-${date:now:yyyyMMdd}.txt. The producers support the CamelOverruleFileName header which takes precedence over any existing CamelFileName header; the CamelOverruleFileName is a header that is used only once, and makes it easier as this avoids to temporary store CamelFileName and have to restore it afterwards." - }, - "bridgeErrorHandler": { - "kind": "parameter", - "displayName": "Bridge Error Handler", - "group": "consumer", - "label": "consumer", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored." - }, - "delete": { - "kind": "parameter", - "displayName": "Delete", - "group": "consumer", - "label": "consumer", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "If true, the file will be deleted after it is processed successfully." - }, - "moveFailed": { - "kind": "parameter", - "displayName": "Move Failed", - "group": "consumer", - "label": "consumer", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Sets the move failure expression based on Simple language. For example, to move files into a .error subdirectory use: .error. Note: When moving the files to the fail location Camel will handle the error and will not pick up the file again." - }, - "noop": { - "kind": "parameter", - "displayName": "Noop", - "group": "consumer", - "label": "consumer", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "If true, the file is not moved or deleted in any way. This option is good for readonly data, or for ETL type requirements. If noop\u003dtrue, Camel will set idempotent\u003dtrue as well, to avoid consuming the same files over and over again." - }, - "preMove": { - "kind": "parameter", - "displayName": "Pre Move", - "group": "consumer", - "label": "consumer", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Expression (such as File Language) used to dynamically set the filename when moving it before processing. For example to move in-progress files into the order directory set this value to order." - }, - "preSort": { - "kind": "parameter", - "displayName": "Pre Sort", - "group": "consumer", - "label": "consumer", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "When pre-sort is enabled then the consumer will sort the file and directory names during polling, that was retrieved from the file system. You may want to do this in case you need to operate on the files in a sorted order. The pre-sort is executed before the consumer starts to filter, and accept files to process by Camel. This option is default\u003dfalse meaning disabled." - }, - "recursive": { - "kind": "parameter", - "displayName": "Recursive", - "group": "consumer", - "label": "consumer", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "If a directory, will look for files in all the sub-directories as well." - }, - "sendEmptyMessageWhenIdle": { - "kind": "parameter", - "displayName": "Send Empty Message When Idle", - "group": "consumer", - "label": "consumer", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead." - }, - "directoryMustExist": { - "kind": "parameter", - "displayName": "Directory Must Exist", - "group": "consumer (advanced)", - "label": "consumer,advanced", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Similar to the startingDirectoryMustExist option but this applies during polling (after starting the consumer)." - }, - "exceptionHandler": { - "kind": "parameter", - "displayName": "Exception Handler", - "group": "consumer (advanced)", - "label": "consumer,advanced", - "required": false, - "type": "object", - "javaType": "org.apache.camel.spi.ExceptionHandler", - "optionalPrefix": "consumer.", - "deprecated": false, - "secret": false, - "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored." - }, - "exchangePattern": { - "kind": "parameter", - "displayName": "Exchange Pattern", - "group": "consumer (advanced)", - "label": "consumer,advanced", - "required": false, - "type": "object", - "javaType": "org.apache.camel.ExchangePattern", - "enum": [ - "InOnly", - "InOut", - "InOptionalOut" - ], - "deprecated": false, - "secret": false, - "description": "Sets the exchange pattern when the consumer creates an exchange." - }, - "extendedAttributes": { - "kind": "parameter", - "displayName": "Extended Attributes", - "group": "consumer (advanced)", - "label": "consumer,advanced", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "To define which file attributes of interest. Like posix:permissions,posix:owner,basic:lastAccessTime, it supports basic wildcard like posix:, basic:lastAccessTime" - }, - "inProgressRepository": { - "kind": "parameter", - "displayName": "In Progress Repository", - "group": "consumer (advanced)", - "label": "consumer,advanced", - "required": false, - "type": "object", - "javaType": "org.apache.camel.spi.IdempotentRepository", - "deprecated": false, - "secret": false, - "description": "A pluggable in-progress repository org.apache.camel.spi.IdempotentRepository. The in-progress repository is used to account the current in progress files being consumed. By default a memory based repository is used." - }, - "localWorkDirectory": { - "kind": "parameter", - "displayName": "Local Work Directory", - "group": "consumer (advanced)", - "label": "consumer,advanced", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "When consuming, a local work directory can be used to store the remote file content directly in local files, to avoid loading the content into memory. This is beneficial, if you consume a very big remote file and thus can conserve memory." - }, - "onCompletionExceptionHandler": { - "kind": "parameter", - "displayName": "On Completion Exception Handler", - "group": "consumer (advanced)", - "label": "consumer,advanced", - "required": false, - "type": "object", - "javaType": "org.apache.camel.spi.ExceptionHandler", - "deprecated": false, - "secret": false, - "description": "To use a custom org.apache.camel.spi.ExceptionHandler to handle any thrown exceptions that happens during the file on completion process where the consumer does either a commit or rollback. The default implementation will log any exception at WARN level and ignore." - }, - "pollStrategy": { - "kind": "parameter", - "displayName": "Poll Strategy", - "group": "consumer (advanced)", - "label": "consumer,advanced", - "required": false, - "type": "object", - "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", - "deprecated": false, - "secret": false, - "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel." - }, - "probeContentType": { - "kind": "parameter", - "displayName": "Probe Content Type", - "group": "consumer (advanced)", - "label": "consumer,advanced", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Whether to enable probing of the content type. If enable then the consumer uses Files#probeContentType(java.nio.file.Path) to determine the content-type of the file, and store that as a header with key Exchange#FILE_CONTENT_TYPE on the Message." - }, - "processStrategy": { - "kind": "parameter", - "displayName": "Process Strategy", - "group": "consumer (advanced)", - "label": "consumer,advanced", - "required": false, - "type": "object", - "javaType": "org.apache.camel.component.file.GenericFileProcessStrategy\u003cjava.io.File\u003e", - "deprecated": false, - "secret": false, - "description": "A pluggable org.apache.camel.component.file.GenericFileProcessStrategy allowing you to implement your own readLock option or similar. Can also be used when special conditions must be met before a file can be consumed, such as a special ready file exists. If this option is set then the readLock option does not apply." - }, - "startingDirectoryMustExist": { - "kind": "parameter", - "displayName": "Starting Directory Must Exist", - "group": "consumer (advanced)", - "label": "consumer,advanced", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Whether the starting directory must exist. Mind that the autoCreate option is default enabled, which means the starting directory is normally auto created if it doesn\u0027t exist. You can disable autoCreate and enable this to ensure the starting directory must exist. Will thrown an exception if the directory doesn\u0027t exist." - }, - "startingDirectoryMustHaveAccess": { - "kind": "parameter", - "displayName": "Starting Directory Must Have Access", - "group": "consumer (advanced)", - "label": "consumer,advanced", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Whether the starting directory has access permissions. Mind that the startingDirectoryMustExist parameter must be set to true in order to verify that the directory exists. Will thrown an exception if the directory doesn\u0027t have read and write permissions." - }, - "appendChars": { - "kind": "parameter", - "displayName": "Append Chars", - "group": "producer", - "label": "producer", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Used to append characters (text) after writing files. This can for example be used to add new lines or other separators when writing and appending to existing files. To specify new-line (slash-n or slash-r) or tab (slash-t) characters then escape with an extra slash, eg slash-slash-n." - }, - "fileExist": { - "kind": "parameter", - "displayName": "File Exist", - "group": "producer", - "label": "producer", - "required": false, - "type": "object", - "javaType": "org.apache.camel.component.file.GenericFileExist", - "enum": [ - "Override", - "Append", - "Fail", - "Ignore", - "Move", - "TryRename" - ], - "deprecated": false, - "secret": false, - "defaultValue": "Override", - "description": "What to do if a file already exists with the same name. Override, which is the default, replaces the existing file. - Append - adds content to the existing file. - Fail - throws a GenericFileOperationException, indicating that there is already an existing file. - Ignore - silently ignores the problem and does not override the existing file, but assumes everything is okay. - Move - option requires to use the moveExisting option to be configured as well. The option eagerDeleteTargetFile can be used to control what to do if an moving the file, and there exists already an existing file, otherwise causing the move operation to fail. The Move option will move any existing files, before writing the target file. - TryRename is only applicable if tempFileName option is in use. This allows to try renaming the file from the temporary name to the actual name, without doing any exists check. This check may be faster on some file systems and especially FTP servers." - }, - "flatten": { - "kind": "parameter", - "displayName": "Flatten", - "group": "producer", - "label": "producer", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Flatten is used to flatten the file name path to strip any leading paths, so it\u0027s just the file name. This allows you to consume recursively into sub-directories, but when you eg write the files to another directory they will be written in a single directory. Setting this to true on the producer enforces that any file name in CamelFileName header will be stripped for any leading paths." - }, - "jailStartingDirectory": { - "kind": "parameter", - "displayName": "Jail Starting Directory", - "group": "producer", - "label": "producer", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": true, - "description": "Used for jailing (restricting) writing files to the starting directory (and sub) only. This is enabled by default to not allow Camel to write files to outside directories (to be more secured out of the box). You can turn this off to allow writing files to directories outside the starting directory, such as parent or root folders." - }, - "lazyStartProducer": { - "kind": "parameter", - "displayName": "Lazy Start Producer", - "group": "producer", - "label": "producer", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel\u0027s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing." - }, - "moveExisting": { - "kind": "parameter", - "displayName": "Move Existing", - "group": "producer", - "label": "producer", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Expression (such as File Language) used to compute file name to use when fileExist\u003dMove is configured. To move files into a backup subdirectory just enter backup. This option only supports the following File Language tokens: file:name, file:name.ext, file:name.noext, file:onlyname, file:onlyname.noext, file:ext, and file:parent. Notice the file:parent is not supported by the FTP component, as the FTP component can only move any existing files to a relative directory based on current dir as base." - }, - "tempFileName": { - "kind": "parameter", - "displayName": "Temp File Name", - "group": "producer", - "label": "producer", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "The same as tempPrefix option but offering a more fine grained control on the naming of the temporary filename as it uses the File Language. The location for tempFilename is relative to the final file location in the option \u0027fileName\u0027, not the target directory in the base uri. For example if option fileName includes a directory prefix: dir/finalFilename then tempFileName is relative to that subdirectory dir." - }, - "tempPrefix": { - "kind": "parameter", - "displayName": "Temp Prefix", - "group": "producer", - "label": "producer", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "This option is used to write the file using a temporary name and then, after the write is complete, rename it to the real name. Can be used to identify files being written and also avoid consumers (not using exclusive read locks) reading in progress files. Is often used by FTP when uploading big files." - }, - "allowNullBody": { - "kind": "parameter", - "displayName": "Allow Null Body", - "group": "producer (advanced)", - "label": "producer,advanced", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Used to specify if a null body is allowed during file writing. If set to true then an empty file will be created, when set to false, and attempting to send a null body to the file component, a GenericFileWriteException of \u0027Cannot write null body to file.\u0027 will be thrown. If the fileExist option is set to \u0027Override\u0027, then the file will be truncated, and if set to append the file will remain unchanged." - }, - "chmod": { - "kind": "parameter", - "displayName": "Chmod", - "group": "producer (advanced)", - "label": "producer,advanced", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Specify the file permissions which is sent by the producer, the chmod value must be between 000 and 777; If there is a leading digit like in 0755 we will ignore it." - }, - "chmodDirectory": { - "kind": "parameter", - "displayName": "Chmod Directory", - "group": "producer (advanced)", - "label": "producer,advanced", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Specify the directory permissions used when the producer creates missing directories, the chmod value must be between 000 and 777; If there is a leading digit like in 0755 we will ignore it." - }, - "eagerDeleteTargetFile": { - "kind": "parameter", - "displayName": "Eager Delete Target File", - "group": "producer (advanced)", - "label": "producer,advanced", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": true, - "description": "Whether or not to eagerly delete any existing target file. This option only applies when you use fileExists\u003dOverride and the tempFileName option as well. You can use this to disable (set it to false) deleting the target file before the temp file is written. For example you may write big files and want the target file to exists during the temp file is being written. This ensure the target file is only deleted until the very last moment, just before the temp file is being renamed to the target filename. This option is also used to control whether to delete any existing files when fileExist\u003dMove is enabled, and an existing file exists. If this option copyAndDeleteOnRenameFails false, then an exception will be thrown if an existing file existed, if its true, then the existing file is deleted before the move operation." - }, - "forceWrites": { - "kind": "parameter", - "displayName": "Force Writes", - "group": "producer (advanced)", - "label": "producer,advanced", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": true, - "description": "Whether to force syncing writes to the file system. You can turn this off if you do not want this level of guarantee, for example if writing to logs / audit logs etc; this would yield better performance." - }, - "keepLastModified": { - "kind": "parameter", - "displayName": "Keep Last Modified", - "group": "producer (advanced)", - "label": "producer,advanced", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Will keep the last modified timestamp from the source file (if any). Will use the Exchange.FILE_LAST_MODIFIED header to located the timestamp. This header can contain either a java.util.Date or long with the timestamp. If the timestamp exists and the option is enabled it will set this timestamp on the written file. Note: This option only applies to the file producer. You cannot use this option with any of the ftp producers." - }, - "moveExistingFileStrategy": { - "kind": "parameter", - "displayName": "Move Existing File Strategy", - "group": "producer (advanced)", - "label": "producer,advanced", - "required": false, - "type": "object", - "javaType": "org.apache.camel.component.file.strategy.FileMoveExistingStrategy", - "deprecated": false, - "secret": false, - "description": "Strategy (Custom Strategy) used to move file with special naming token to use when fileExist\u003dMove is configured. By default, there is an implementation used if no custom strategy is provided" - }, - "autoCreate": { - "kind": "parameter", - "displayName": "Auto Create", - "group": "advanced", - "label": "advanced", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": true, - "description": "Automatically create missing directories in the file\u0027s pathname. For the file consumer, that means creating the starting directory. For the file producer, it means the directory the files should be written to." - }, - "basicPropertyBinding": { - "kind": "parameter", - "displayName": "Basic Property Binding", - "group": "advanced", - "label": "advanced", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" - }, - "bufferSize": { - "kind": "parameter", - "displayName": "Buffer Size", - "group": "advanced", - "label": "advanced", - "required": false, - "type": "integer", - "javaType": "int", - "deprecated": false, - "secret": false, - "defaultValue": 131072, - "description": "Buffer size in bytes used for writing files (or in case of FTP for downloading and uploading files)." - }, - "copyAndDeleteOnRenameFail": { - "kind": "parameter", - "displayName": "Copy And Delete On Rename Fail", - "group": "advanced", - "label": "advanced", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": true, - "description": "Whether to fallback and do a copy and delete file, in case the file could not be renamed directly. This option is not available for the FTP component." - }, - "renameUsingCopy": { - "kind": "parameter", - "displayName": "Rename Using Copy", - "group": "advanced", - "label": "advanced", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Perform rename operations using a copy and delete strategy. This is primarily used in environments where the regular rename operation is unreliable (e.g. across different file systems or networks). This option takes precedence over the copyAndDeleteOnRenameFail parameter that will automatically fall back to the copy and delete strategy, but only after additional delays." - }, - "synchronous": { - "kind": "parameter", - "displayName": "Synchronous", - "group": "advanced", - "label": "advanced", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported)." - }, - "antExclude": { - "kind": "parameter", - "displayName": "Ant Exclude", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Ant style filter exclusion. If both antInclude and antExclude are used, antExclude takes precedence over antInclude. Multiple exclusions may be specified in comma-delimited format." - }, - "antFilterCaseSensitive": { - "kind": "parameter", - "displayName": "Ant Filter Case Sensitive", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": true, - "description": "Sets case sensitive flag on ant filter." - }, - "antInclude": { - "kind": "parameter", - "displayName": "Ant Include", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Ant style filter inclusion. Multiple inclusions may be specified in comma-delimited format." - }, - "eagerMaxMessagesPerPoll": { - "kind": "parameter", - "displayName": "Eager Max Messages Per Poll", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": true, - "description": "Allows for controlling whether the limit from maxMessagesPerPoll is eager or not. If eager then the limit is during the scanning of files. Where as false would scan all files, and then perform sorting. Setting this option to false allows for sorting all files first, and then limit the poll. Mind that this requires a higher memory usage as all file details are in memory to perform the sorting." - }, - "exclude": { - "kind": "parameter", - "displayName": "Exclude", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Is used to exclude files, if filename matches the regex pattern (matching is case in-senstive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris" - }, - "filter": { - "kind": "parameter", - "displayName": "Filter", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "object", - "javaType": "org.apache.camel.component.file.GenericFileFilter\u003cjava.io.File\u003e", - "deprecated": false, - "secret": false, - "description": "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method." - }, - "filterDirectory": { - "kind": "parameter", - "displayName": "Filter Directory", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Filters the directory based on Simple language. For example to filter on current date, you can use a simple date pattern such as ${date:now:yyyMMdd}" - }, - "filterFile": { - "kind": "parameter", - "displayName": "Filter File", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Filters the file based on Simple language. For example to filter on file size, you can use ${file:size} 5000" - }, - "idempotent": { - "kind": "parameter", - "displayName": "Idempotent", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "boolean", - "javaType": "java.lang.Boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Option to use the Idempotent Consumer EIP pattern to let Camel skip already processed files. Will by default use a memory based LRUCache that holds 1000 entries. If noop\u003dtrue then idempotent will be enabled as well to avoid consuming the same files over and over again." - }, - "idempotentKey": { - "kind": "parameter", - "displayName": "Idempotent Key", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "To use a custom idempotent key. By default the absolute path of the file is used. You can use the File Language, for example to use the file name and file size, you can do: idempotentKey\u003d${file:name}-${file:size}" - }, - "idempotentRepository": { - "kind": "parameter", - "displayName": "Idempotent Repository", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "object", - "javaType": "org.apache.camel.spi.IdempotentRepository", - "deprecated": false, - "secret": false, - "description": "A pluggable repository org.apache.camel.spi.IdempotentRepository which by default use MemoryMessageIdRepository if none is specified and idempotent is true." - }, - "include": { - "kind": "parameter", - "displayName": "Include", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris" - }, - "maxDepth": { - "kind": "parameter", - "displayName": "Max Depth", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "integer", - "javaType": "int", - "deprecated": false, - "secret": false, - "defaultValue": 2147483647, - "description": "The maximum depth to traverse when recursively processing a directory." - }, - "maxMessagesPerPoll": { - "kind": "parameter", - "displayName": "Max Messages Per Poll", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "integer", - "javaType": "int", - "deprecated": false, - "secret": false, - "description": "To define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g. 1000 to avoid when starting up the server that there are thousands of files. Set a value of 0 or negative to disabled it. Notice: If this option is in use then the File and FTP components will limit before any sorting. For example if you have 100000 files and use maxMessagesPerPoll\u003d500, then only the first 500 files will be picked up, and then sorted. You can use the eagerMaxMessagesPerPoll option and set this to false to allow to scan all files first and then sort afterwards." - }, - "minDepth": { - "kind": "parameter", - "displayName": "Min Depth", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "integer", - "javaType": "int", - "deprecated": false, - "secret": false, - "description": "The minimum depth to start processing when recursively processing a directory. Using minDepth\u003d1 means the base directory. Using minDepth\u003d2 means the first sub directory." - }, - "move": { - "kind": "parameter", - "displayName": "Move", - "group": "filter", - "label": "consumer,filter", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Expression (such as Simple Language) used to dynamically set the filename when moving it after processing. To move files into a .done subdirectory just enter .done." - }, - "exclusiveReadLockStrategy": { - "kind": "parameter", - "displayName": "Exclusive Read Lock Strategy", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "object", - "javaType": "org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy\u003cjava.io.File\u003e", - "deprecated": false, - "secret": false, - "description": "Pluggable read-lock as a org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy implementation." - }, - "readLock": { - "kind": "parameter", - "displayName": "Read Lock", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "enum": [ - "none", - "markerFile", - "fileLock", - "rename", - "changed", - "idempotent", - "idempotent-changed", - "idempotent-rename" - ], - "deprecated": false, - "secret": false, - "defaultValue": "none", - "description": "Used by consumer, to only poll the files if it has exclusive read-lock on the file (i.e. the file is not in-progress or being written). Camel will wait until the file lock is granted. This option provides the build in strategies: - none - No read lock is in use - markerFile - Camel creates a marker file (fileName.camelLock) and then holds a lock on it. This option is not available for the FTP component - changed - Changed is using file length/modification timestamp to detect whether the file is currently being copied or not. Will at least use 1 sec to determine this, so this option cannot consume files as fast as the others, but can be more reliable as the JDK IO API cannot always determine whether a file is currently being used by another process. The option readLockCheckInterval can be used to set the check frequency. - fileLock - is for using java.nio.channels.FileLock. This option is not avail for Windows OS and the FTP component. This approach should be avoided when accessing a remote file system via a mount/share unless that file system supports distributed file locks. - rename - rename is for using a try to rename the file as a test if we can get exclusive read-lock. - idempotent - (only for file component) idempotent is for using a idempotentRepository as the read-lock. This allows to use read locks that supports clustering if the idempotent repository implementation supports that. - idempotent-changed - (only for file component) idempotent-changed is for using a idempotentRepository and changed as the combined read-lock. This allows to use read locks that supports clustering if the idempotent repository implementation supports that. - idempotent-rename - (only for file component) idempotent-rename is for using a idempotentRepository and rename as the combined read-lock. This allows to use read locks that supports clustering if the idempotent repository implementation supports that.Notice: The various read locks is not all suited to work in clustered mode, where concurrent consumers on different nodes is competing for the same files on a shared file system. The markerFile using a close to atomic operation to create the empty marker file, but its not guaranteed to work in a cluster. The fileLock may work better but then the file system need to support distributed file locks, and so on. Using the idempotent read lock can support clustering if the idempotent repository supports clustering, such as Hazelcast Component or Infinispan." - }, - "readLockCheckInterval": { - "kind": "parameter", - "displayName": "Read Lock Check Interval", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "integer", - "javaType": "long", - "deprecated": false, - "secret": false, - "defaultValue": 1000, - "description": "Interval in millis for the read-lock, if supported by the read lock. This interval is used for sleeping between attempts to acquire the read lock. For example when using the changed read lock, you can set a higher interval period to cater for slow writes. The default of 1 sec. may be too fast if the producer is very slow writing the file. Notice: For FTP the default readLockCheckInterval is 5000. The readLockTimeout value must be higher than readLockCheckInterval, but a rule of thumb is to have a timeout that is at least 2 or more times higher than the readLockCheckInterval. This is needed to ensure that amble time is allowed for the read lock process to try to grab the lock before the timeout was hit." - }, - "readLockDeleteOrphanLockFiles": { - "kind": "parameter", - "displayName": "Read Lock Delete Orphan Lock Files", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": true, - "description": "Whether or not read lock with marker files should upon startup delete any orphan read lock files, which may have been left on the file system, if Camel was not properly shutdown (such as a JVM crash). If turning this option to false then any orphaned lock file will cause Camel to not attempt to pickup that file, this could also be due another node is concurrently reading files from the same shared directory." - }, - "readLockIdempotentReleaseAsync": { - "kind": "parameter", - "displayName": "Read Lock Idempotent Release Async", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "Whether the delayed release task should be synchronous or asynchronous. See more details at the readLockIdempotentReleaseDelay option." - }, - "readLockIdempotentReleaseAsyncPoolSize": { - "kind": "parameter", - "displayName": "Read Lock Idempotent Release Async Pool Size", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "integer", - "javaType": "int", - "deprecated": false, - "secret": false, - "description": "The number of threads in the scheduled thread pool when using asynchronous release tasks. Using a default of 1 core threads should be sufficient in almost all use-cases, only set this to a higher value if either updating the idempotent repository is slow, or there are a lot of files to process. This option is not in-use if you use a shared thread pool by configuring the readLockIdempotentReleaseExecutorService option. See more details at the readLockIdempotentReleaseDelay option." - }, - "readLockIdempotentReleaseDelay": { - "kind": "parameter", - "displayName": "Read Lock Idempotent Release Delay", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "integer", - "javaType": "int", - "deprecated": false, - "secret": false, - "description": "Whether to delay the release task for a period of millis. This can be used to delay the release tasks to expand the window when a file is regarded as read-locked, in an active/active cluster scenario with a shared idempotent repository, to ensure other nodes cannot potentially scan and acquire the same file, due to race-conditions. By expanding the time-window of the release tasks helps prevents these situations. Note delaying is only needed if you have configured readLockRemoveOnCommit to true." - }, - "readLockIdempotentReleaseExecutorService": { - "kind": "parameter", - "displayName": "Read Lock Idempotent Release Executor Service", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "object", - "javaType": "java.util.concurrent.ScheduledExecutorService", - "deprecated": false, - "secret": false, - "description": "To use a custom and shared thread pool for asynchronous release tasks. See more details at the readLockIdempotentReleaseDelay option." - }, - "readLockLoggingLevel": { - "kind": "parameter", - "displayName": "Read Lock Logging Level", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "object", - "javaType": "org.apache.camel.LoggingLevel", - "enum": [ - "TRACE", - "DEBUG", - "INFO", - "WARN", - "ERROR", - "OFF" - ], - "deprecated": false, - "secret": false, - "defaultValue": "DEBUG", - "description": "Logging level used when a read lock could not be acquired. By default a DEBUG is logged. You can change this level, for example to OFF to not have any logging. This option is only applicable for readLock of types: changed, fileLock, idempotent, idempotent-changed, idempotent-rename, rename." - }, - "readLockMarkerFile": { - "kind": "parameter", - "displayName": "Read Lock Marker File", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": true, - "description": "Whether to use marker file with the changed, rename, or exclusive read lock types. By default a marker file is used as well to guard against other processes picking up the same files. This behavior can be turned off by setting this option to false. For example if you do not want to write marker files to the file systems by the Camel application." - }, - "readLockMinAge": { - "kind": "parameter", - "displayName": "Read Lock Min Age", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "integer", - "javaType": "long", - "deprecated": false, - "secret": false, - "defaultValue": 0, - "description": "This option is applied only for readLock\u003dchanged. It allows to specify a minimum age the file must be before attempting to acquire the read lock. For example use readLockMinAge\u003d300s to require the file is at last 5 minutes old. This can speedup the changed read lock as it will only attempt to acquire files which are at least that given age." - }, - "readLockMinLength": { - "kind": "parameter", - "displayName": "Read Lock Min Length", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "integer", - "javaType": "long", - "deprecated": false, - "secret": false, - "defaultValue": 1, - "description": "This option is applied only for readLock\u003dchanged. It allows you to configure a minimum file length. By default Camel expects the file to contain data, and thus the default value is 1. You can set this option to zero, to allow consuming zero-length files." - }, - "readLockRemoveOnCommit": { - "kind": "parameter", - "displayName": "Read Lock Remove On Commit", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "This option is applied only for readLock\u003didempotent. It allows to specify whether to remove the file name entry from the idempotent repository when processing the file is succeeded and a commit happens. By default the file is not removed which ensures that any race-condition do not occur so another active node may attempt to grab the file. Instead the idempotent repository may support eviction strategies that you can configure to evict the file name entry after X minutes - this ensures no problems with race conditions. See more details at the readLockIdempotentReleaseDelay option." - }, - "readLockRemoveOnRollback": { - "kind": "parameter", - "displayName": "Read Lock Remove On Rollback", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": true, - "description": "This option is applied only for readLock\u003didempotent. It allows to specify whether to remove the file name entry from the idempotent repository when processing the file failed and a rollback happens. If this option is false, then the file name entry is confirmed (as if the file did a commit)." - }, - "readLockTimeout": { - "kind": "parameter", - "displayName": "Read Lock Timeout", - "group": "lock", - "label": "consumer,lock", - "required": false, - "type": "integer", - "javaType": "long", - "deprecated": false, - "secret": false, - "defaultValue": 10000, - "description": "Optional timeout in millis for the read-lock, if supported by the read-lock. If the read-lock could not be granted and the timeout triggered, then Camel will skip the file. At next poll Camel, will try the file again, and this time maybe the read-lock could be granted. Use a value of 0 or lower to indicate forever. Currently fileLock, changed and rename support the timeout. Notice: For FTP the default readLockTimeout value is 20000 instead of 10000. The readLockTimeout value must be higher than readLockCheckInterval, but a rule of thumb is to have a timeout that is at least 2 or more times higher than the readLockCheckInterval. This is needed to ensure that amble time is allowed for the read lock process to try to grab the lock before the timeout was hit." - }, - "backoffErrorThreshold": { - "kind": "parameter", - "displayName": "Backoff Error Threshold", - "group": "scheduler", - "label": "consumer,scheduler", - "required": false, - "type": "integer", - "javaType": "int", - "deprecated": false, - "secret": false, - "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." - }, - "backoffIdleThreshold": { - "kind": "parameter", - "displayName": "Backoff Idle Threshold", - "group": "scheduler", - "label": "consumer,scheduler", - "required": false, - "type": "integer", - "javaType": "int", - "deprecated": false, - "secret": false, - "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." - }, - "backoffMultiplier": { - "kind": "parameter", - "displayName": "Backoff Multiplier", - "group": "scheduler", - "label": "consumer,scheduler", - "required": false, - "type": "integer", - "javaType": "int", - "deprecated": false, - "secret": false, - "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be configured." - }, - "delay": { - "kind": "parameter", - "displayName": "Delay", - "group": "scheduler", - "label": "consumer,scheduler", - "required": false, - "type": "integer", - "javaType": "long", - "deprecated": false, - "secret": false, - "defaultValue": 500, - "description": "Milliseconds before the next poll." - }, - "greedy": { - "kind": "parameter", - "displayName": "Greedy", - "group": "scheduler", - "label": "consumer,scheduler", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." - }, - "initialDelay": { - "kind": "parameter", - "displayName": "Initial Delay", - "group": "scheduler", - "label": "consumer,scheduler", - "required": false, - "type": "integer", - "javaType": "long", - "deprecated": false, - "secret": false, - "defaultValue": 1000, - "description": "Milliseconds before the first poll starts." - }, - "repeatCount": { - "kind": "parameter", - "displayName": "Repeat Count", - "group": "scheduler", - "label": "consumer,scheduler", - "required": false, - "type": "integer", - "javaType": "long", - "deprecated": false, - "secret": false, - "defaultValue": 0, - "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." - }, - "runLoggingLevel": { - "kind": "parameter", - "displayName": "Run Logging Level", - "group": "scheduler", - "label": "consumer,scheduler", - "required": false, - "type": "object", - "javaType": "org.apache.camel.LoggingLevel", - "enum": [ - "TRACE", - "DEBUG", - "INFO", - "WARN", - "ERROR", - "OFF" - ], - "deprecated": false, - "secret": false, - "defaultValue": "TRACE", - "description": "The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for that." - }, - "scheduledExecutorService": { - "kind": "parameter", - "displayName": "Scheduled Executor Service", - "group": "scheduler", - "label": "consumer,scheduler", - "required": false, - "type": "object", - "javaType": "java.util.concurrent.ScheduledExecutorService", - "deprecated": false, - "secret": false, - "description": "Allows for configuring a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." - }, - "scheduler": { - "kind": "parameter", - "displayName": "Scheduler", - "group": "scheduler", - "label": "consumer,scheduler", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "enum": [ - "none", - "spring", - "quartz" - ], - "deprecated": false, - "secret": false, - "defaultValue": "none", - "description": "To use a cron scheduler from either camel-spring or camel-quartz component" - }, - "schedulerProperties": { - "kind": "parameter", - "displayName": "Scheduler Properties", - "group": "scheduler", - "label": "consumer,scheduler", - "required": false, - "type": "object", - "javaType": "java.util.Map\u003cjava.lang.String, java.lang.Object\u003e", - "prefix": "scheduler.", - "multiValue": true, - "deprecated": false, - "secret": false, - "description": "To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler." - }, - "startScheduler": { - "kind": "parameter", - "displayName": "Start Scheduler", - "group": "scheduler", - "label": "consumer,scheduler", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": true, - "description": "Whether the scheduler should be auto started." - }, - "timeUnit": { - "kind": "parameter", - "displayName": "Time Unit", - "group": "scheduler", - "label": "consumer,scheduler", - "required": false, - "type": "object", - "javaType": "java.util.concurrent.TimeUnit", - "enum": [ - "NANOSECONDS", - "MICROSECONDS", - "MILLISECONDS", - "SECONDS", - "MINUTES", - "HOURS", - "DAYS" - ], - "deprecated": false, - "secret": false, - "defaultValue": "MILLISECONDS", - "description": "Time unit for initialDelay and delay options." - }, - "useFixedDelay": { - "kind": "parameter", - "displayName": "Use Fixed Delay", - "group": "scheduler", - "label": "consumer,scheduler", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": true, - "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." - }, - "shuffle": { - "kind": "parameter", - "displayName": "Shuffle", - "group": "sort", - "label": "consumer,sort", - "required": false, - "type": "boolean", - "javaType": "boolean", - "deprecated": false, - "secret": false, - "defaultValue": false, - "description": "To shuffle the list of files (sort in random order)" - }, - "sortBy": { - "kind": "parameter", - "displayName": "Sort By", - "group": "sort", - "label": "consumer,sort", - "required": false, - "type": "string", - "javaType": "java.lang.String", - "deprecated": false, - "secret": false, - "description": "Built-in sort by using the File Language. Supports nested sorts, so you can have a sort by file name and as a 2nd group sort by modified date." - }, - "sorter": { - "kind": "parameter", - "displayName": "Sorter", - "group": "sort", - "label": "consumer,sort", - "required": false, - "type": "object", - "javaType": "java.util.Comparator\u003corg.apache.camel.component.file.GenericFile\u003cjava.io.File\u003e\u003e", - "deprecated": false, - "secret": false, - "description": "Pluggable sorter as a java.util.Comparator class." - } - } - } -} diff --git a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/templates/file-adapter/init.ftl b/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/templates/file-adapter/init.ftl deleted file mode 100644 index 5606a2bc..00000000 --- a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/templates/file-adapter/init.ftl +++ /dev/null @@ -1,55 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint"}] - - - - - - - - - - [#if properties??] - [#if properties.ext_createResourceProvider??] - [#if properties.ext_createResourceProvider] - - - - - [#if properties.ext_ignoreFolders??] - - [/#if] - [#if properties.ext_ignoreResources??] - - [/#if] - - - - - - - - - [/#if] - [/#if] - [/#if] - - - [#if properties??] - [#list properties as key, value] - [#if !key?starts_with("##") && !key?starts_with("__") && !key?starts_with("ext_")] [#-- we skip additional properties --] - [#if key?starts_with("file_")] [#-- we add parent component properties --] - - [#else] - - [/#if] - [/#if] - [/#list] - [/#if] - - - diff --git a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/templates/file-adapter/init.private.ftl b/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/templates/file-adapter/init.private.ftl deleted file mode 100644 index ea27522b..00000000 --- a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/templates/file-adapter/init.private.ftl +++ /dev/null @@ -1,39 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint.fragment"}] - - - [#if properties??] - [#if properties.ext_createResourceProvider??] - [#if properties.ext_createResourceProvider] - - - - - - - - - - - - - [/#if] - [/#if] - [/#if] - - - [#if properties??] - [#list properties as key, value] - [#if !key?starts_with("##") && !key?starts_with("__") && !key?starts_with("ext_")] [#-- we skip additional properties --] - [#if key?starts_with("file_")] [#-- we add parent component properties --] - - [#else] - - [/#if] - [/#if] - [/#list] - [/#if] - diff --git a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/templates/file-adapter/ref.ftl b/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/templates/file-adapter/ref.ftl deleted file mode 100644 index 6afdd23a..00000000 --- a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/ru/entaxy/templates/file-adapter/ref.ftl +++ /dev/null @@ -1,3 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint.fragment"}] - diff --git a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/from.ftl b/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/from.ftl deleted file mode 100644 index 182a155c..00000000 --- a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/from.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - file-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#include 'queryParameters.ftl'] - diff --git a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/init.ftl b/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/init.ftl deleted file mode 100644 index 373a80ef..00000000 --- a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/init.ftl +++ /dev/null @@ -1,74 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint"}] -[#-- - - ~~~~~~licensing~~~~~~ - file-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] - - - - - [#if connection.properties??] - - [#list connection.properties as key, value] - - [/#list] - - [/#if] - - - - - - - - - - [#if connection.properties??] - [#list connection.properties as key, value] - - [/#list] - [/#if] - - - diff --git a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/queryParameters.ftl b/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/queryParameters.ftl deleted file mode 100644 index 44ad0ba4..00000000 --- a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/queryParameters.ftl +++ /dev/null @@ -1,47 +0,0 @@ -[#ftl] -[#-- - - ~~~~~~licensing~~~~~~ - file-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#assign queryParameters] - [#if connection.options??] - [@compress single_line=true] - ?[#list connection.options as key, value][=key]=[=value][#sep]&[/#list] - [/@compress] - [/#if] -[/#assign] diff --git a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/ref.ftl b/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/ref.ftl deleted file mode 100644 index cdf3f5ce..00000000 --- a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/ref.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - file-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] - diff --git a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/to.ftl b/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/to.ftl deleted file mode 100644 index a9ffe9c8..00000000 --- a/platform/runtime/base/connecting/adapter/file-adapter/src/main/resources/template/to.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - file-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#include 'queryParameters.ftl'] - diff --git a/platform/runtime/base/connecting/adapter/h2-adapter/LICENSE.txt b/platform/runtime/base/connecting/adapter/h2-adapter/LICENSE.txt deleted file mode 100644 index 4ae94b75..00000000 --- a/platform/runtime/base/connecting/adapter/h2-adapter/LICENSE.txt +++ /dev/null @@ -1,175 +0,0 @@ - ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ - -Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) -версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего -Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН -7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, -д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу -https://www.emdev.ru/about (далее - Компания). - -Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» -(или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, -Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в -настоящем документе, в противном случае, он должен не использовать или не получать доступ -к Программному обеспечению. - - 1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ - -a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии -или редакции, исключительные права на которую принадлежат Правообладателю. -b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные -права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ -для ЭВМ № 2021610848 от 19.01.2021 года. -c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта -https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. -d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также -личные неимущественные права авторов произведений на результат интеллектуальной деятельности. -e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование -ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка -включает предоставление Пользователю неисключительного права использования ПО, в том числе -получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение -патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается -Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается -для каждого Пользователя индивидуально в Сертификате. -f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), -подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное -обеспечение в ограниченном объёме и на определённый период времени. -g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, -предоставленных Пользователю согласно условиям Подписки. -h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного -обеспечения. -i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий -из одного или нескольких файлов, который может быть прочтён человеком. -j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля -программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. -Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый -продукт. -k) Некоммерческое использование – индивидуальное личное использование Пользователем программного -обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации -возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая -выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. - - 2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - -2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного -обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом -воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения -в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. -2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит -неисключительный характер. -2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, -лицензия на ограниченное использование Программного обеспечения. -2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования -имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан -обратиться в службу поддержки Правообладателя по адресу: https://entaxy.ru/ для изменения -вида лицензии с Базовой бесплатной версии на Подписки. -2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для -пробного использования программного обеспечения – не ограничен. -2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, -модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, -без разрешения Правообладателя не допускается. - - 3. АВТОРСКОЕ ПРАВО. - -3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение -и любые его копии принадлежат Правообладателю. -3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, -к которому можно получить доступ с помощью Программного обеспечения, является собственностью -соответствующего владельца контента и защищается применимым законодательством об авторском -праве или другими законами и договорами об интеллектуальной собственности. -3.3. Условия использования Программного обеспечения. -Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь -придерживается следующих условий: -3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять -какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании -Программного обеспечения или на нем. -3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, -расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать -Программное обеспечение. -3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования -ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. -3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено -использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. - - 4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» - -4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю -на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с -использованием Пользователем: -4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в -Программное обеспечение; -4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями -настоящего соглашения; -4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, -или данными, не предоставленными Пользователю Правообладателем; -4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. - - -5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ -ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ -И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ -ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ -И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ -ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. - - 6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. -НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ -ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, -ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; -ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. -ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ -ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; -КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ -ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. - - 7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: -Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия -(включая, но не ограничиваясь) по: --дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) - Программного обеспечения; --модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный -код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, -включёнными в Программное обеспечение и описанными непосредственно в документации к нему; --созданию условий для использования Программного обеспечения лицами, не имеющими прав на -использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство -третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа -к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; --распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). - - 8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. - -8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из -лицензионных продуктов, используемых на законных основаниях, а -именно https://entaxy.ru/libs/licenses/root-aggregated.deps. -8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть -совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. -8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться -Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, -содержащих все изменения и дополнения программного обеспечения. - - 9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. - -9.1. Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым -программным обеспечением. -9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно -с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм -«Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. -9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий -пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, -прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер -ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства -Российской Федерации. - - 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. - -10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет -право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, -недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий -пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере -2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения -исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). -10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое -законодательство – Российской Федерации. -10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, -остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать -исполнять свои обязанности в соответствии с этими положениями. diff --git a/platform/runtime/base/connecting/adapter/h2-adapter/pom.xml b/platform/runtime/base/connecting/adapter/h2-adapter/pom.xml deleted file mode 100644 index d9da8172..00000000 --- a/platform/runtime/base/connecting/adapter/h2-adapter/pom.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - ru.entaxy.esb.platform.runtime.base.connecting - adapter - 1.9.0 - - - 4.0.0 - ru.entaxy.esb.platform.runtime.base.connecting.adapter - h2-adapter - bundle - - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: H2 ADAPTER - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: H2 ADAPTER - - - - * - 1.4.199 - - - - - - org.apache.felix - maven-bundle-plugin - true - - - true - - - - - - - - - - org.apache.camel - camel-jdbc - ${camel.version} - - - diff --git a/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/example/org.ops4j.datasource-entaxy.esb.storage.cfg b/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/example/org.ops4j.datasource-entaxy.esb.storage.cfg deleted file mode 100644 index 4970b367..00000000 --- a/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/example/org.ops4j.datasource-entaxy.esb.storage.cfg +++ /dev/null @@ -1,34 +0,0 @@ -### -# ~~~~~~licensing~~~~~~ -# h2-adapter -# ========== -# Copyright (C) 2020 - 2023 EmDev LLC -# ========== -# You may not use this file except in accordance with the License Terms of the Copyright -# Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property -# rights to the Software and any copies are the property of the Copyright Holder. Unless -# it is explicitly allowed the Copyright Holder, the User is prohibited from using the -# Software for commercial purposes to provide services to third parties. -# -# The Copyright Holder hereby declares that the Software is provided on an "AS IS". -# Under no circumstances does the Copyright Holder guarantee or promise that the -# Software provided by him will be suitable or not suitable for the specific purposes -# of the User, that the Software will meet all commercial and personal subjective -# expectations of the User, that the Software will work properly, without technical -# errors, quickly and uninterruptedly. -# -# Under no circumstances shall the Copyright Holder or its Affiliates is not liable -# to the User for any direct or indirect losses of the User, his expenses or actual -# damage, including, downtime; loss of bussines; lost profit; lost earnings; loss -# or damage to data, property, etc. -# ~~~~~~/licensing~~~~~~ -### -dataSourceName=entaxy.esb.storage -osgi.jdbc.driver.name=H2 JDBC Driver - -databaseName=${karaf.data}/storage -user=sa -password= -pool=dbcp2 -xa=true -jdbc.pool.maxTotal=50 diff --git a/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/ru/entaxy/adapter/metadata.json b/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/ru/entaxy/adapter/metadata.json deleted file mode 100644 index da3898b0..00000000 --- a/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/ru/entaxy/adapter/metadata.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "adapter": { - "id": "h2.adapter.${h2.version}", - "name": "h2Adapter", - "description": "H2 adapter to interact with databases.", - "fields": [ - { - "name": "dataSourceName", - "type": "String", - "default": "dataSource", - "property": false, - "option": false - }, - - { - "name": "dataSource", - "type": "DataSource", - "property": true - }, - { - "name": "lazyStartProducer", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "autowiredEnabled", - "type": "boolean", - "default": "true", - "property": true - }, - { - "name": "connectionStrategy", - "type": "ConnectionStrategy", - "property": true, - "option": true - }, - - { - "name": "allowNamedParameters", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "outputClass", - "property": true, - "option": true - }, - { - "name": "outputType", - "type": "JdbcOutputType", - "default": "SelectList", - "option": true - }, - { - "name": "parameters", - "default": "Map", - "option": true - }, - { - "name": "readSize", - "type": "int", - "option": true - }, - { - "name": "resetAutoCommit", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "transacted", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "useGetBytesForBlob", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "useHeadersAsParameters", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "useJDBC4ColumnNameAndLabelSemantics", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "beanRowMapper", - "type": "BeanRowMapper", - "option": true - }, - { - "name": "prepareStatementStrategy", - "type": "JdbcPrepareStatementStrategy", - "option": true - } - ], - "generators":[ - { - "type": "pathParameter", - "generator": "", - "config": { - "expression": "${dataSourceName}" - } - }, - { - "type": "init", - "generator": "" - }, - { - "type": "ref", - "generator": "" - }, - { - "type": "from", - "generator": "" - }, - { - "type": "to", - "generator": "" - } - ] - } -} \ No newline at end of file diff --git a/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/template/init.ftl b/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/template/init.ftl deleted file mode 100644 index 1d057d7b..00000000 --- a/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/template/init.ftl +++ /dev/null @@ -1,79 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint"} /] -[#-- - - ~~~~~~licensing~~~~~~ - h2-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] - - - - - [#if connection.properties??] - - [#list connection.properties as key, value] - - [/#list] - - [/#if] - - - - - - - - - - [#-- //TODO change template for property reference usage instead of text value --] - - [#if connection.properties??] - [#list connection.properties as key, value] - - [/#list] - [/#if] - - - - - diff --git a/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/template/queryParameters.ftl b/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/template/queryParameters.ftl deleted file mode 100644 index d957450a..00000000 --- a/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/template/queryParameters.ftl +++ /dev/null @@ -1,47 +0,0 @@ -[#ftl] -[#-- - - ~~~~~~licensing~~~~~~ - h2-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#assign queryParameters] - [#if connection.options??] - [@compress single_line=true] - ?[#list connection.options as key, value][=key]=[=value][#sep]&[/#list] - [/@compress] - [/#if] -[/#assign] diff --git a/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/template/ref.ftl b/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/template/ref.ftl deleted file mode 100644 index 01eefc71..00000000 --- a/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/template/ref.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - h2-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] - diff --git a/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/template/to.ftl b/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/template/to.ftl deleted file mode 100644 index dc64cb7f..00000000 --- a/platform/runtime/base/connecting/adapter/h2-adapter/src/main/resources/template/to.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - h2-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#include 'queryParameters.ftl'] - diff --git a/platform/runtime/base/connecting/adapter/jms-adapter/LICENSE.txt b/platform/runtime/base/connecting/adapter/jms-adapter/LICENSE.txt deleted file mode 100644 index 4ae94b75..00000000 --- a/platform/runtime/base/connecting/adapter/jms-adapter/LICENSE.txt +++ /dev/null @@ -1,175 +0,0 @@ - ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ - -Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) -версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего -Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН -7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, -д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу -https://www.emdev.ru/about (далее - Компания). - -Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» -(или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, -Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в -настоящем документе, в противном случае, он должен не использовать или не получать доступ -к Программному обеспечению. - - 1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ - -a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии -или редакции, исключительные права на которую принадлежат Правообладателю. -b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные -права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ -для ЭВМ № 2021610848 от 19.01.2021 года. -c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта -https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. -d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также -личные неимущественные права авторов произведений на результат интеллектуальной деятельности. -e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование -ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка -включает предоставление Пользователю неисключительного права использования ПО, в том числе -получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение -патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается -Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается -для каждого Пользователя индивидуально в Сертификате. -f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), -подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное -обеспечение в ограниченном объёме и на определённый период времени. -g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, -предоставленных Пользователю согласно условиям Подписки. -h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного -обеспечения. -i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий -из одного или нескольких файлов, который может быть прочтён человеком. -j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля -программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. -Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый -продукт. -k) Некоммерческое использование – индивидуальное личное использование Пользователем программного -обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации -возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая -выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. - - 2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - -2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного -обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом -воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения -в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. -2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит -неисключительный характер. -2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, -лицензия на ограниченное использование Программного обеспечения. -2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования -имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан -обратиться в службу поддержки Правообладателя по адресу: https://entaxy.ru/ для изменения -вида лицензии с Базовой бесплатной версии на Подписки. -2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для -пробного использования программного обеспечения – не ограничен. -2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, -модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, -без разрешения Правообладателя не допускается. - - 3. АВТОРСКОЕ ПРАВО. - -3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение -и любые его копии принадлежат Правообладателю. -3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, -к которому можно получить доступ с помощью Программного обеспечения, является собственностью -соответствующего владельца контента и защищается применимым законодательством об авторском -праве или другими законами и договорами об интеллектуальной собственности. -3.3. Условия использования Программного обеспечения. -Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь -придерживается следующих условий: -3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять -какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании -Программного обеспечения или на нем. -3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, -расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать -Программное обеспечение. -3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования -ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. -3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено -использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. - - 4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» - -4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю -на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с -использованием Пользователем: -4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в -Программное обеспечение; -4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями -настоящего соглашения; -4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, -или данными, не предоставленными Пользователю Правообладателем; -4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. - - -5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ -ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ -И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ -ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ -И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ -ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. - - 6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. -НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ -ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, -ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; -ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. -ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ -ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; -КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ -ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. - - 7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: -Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия -(включая, но не ограничиваясь) по: --дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) - Программного обеспечения; --модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный -код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, -включёнными в Программное обеспечение и описанными непосредственно в документации к нему; --созданию условий для использования Программного обеспечения лицами, не имеющими прав на -использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство -третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа -к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; --распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). - - 8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. - -8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из -лицензионных продуктов, используемых на законных основаниях, а -именно https://entaxy.ru/libs/licenses/root-aggregated.deps. -8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть -совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. -8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться -Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, -содержащих все изменения и дополнения программного обеспечения. - - 9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. - -9.1. Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым -программным обеспечением. -9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно -с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм -«Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. -9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий -пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, -прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер -ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства -Российской Федерации. - - 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. - -10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет -право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, -недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий -пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере -2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения -исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). -10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое -законодательство – Российской Федерации. -10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, -остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать -исполнять свои обязанности в соответствии с этими положениями. diff --git a/platform/runtime/base/connecting/adapter/jms-adapter/pom.xml b/platform/runtime/base/connecting/adapter/jms-adapter/pom.xml deleted file mode 100644 index e6451dc4..00000000 --- a/platform/runtime/base/connecting/adapter/jms-adapter/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - ru.entaxy.esb.platform.runtime.base.connecting - adapter - 1.9.0 - - - 4.0.0 - ru.entaxy.esb.platform.runtime.base.connecting.adapter - jms-adapter - bundle - - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: JMS ADAPTER - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: JMS ADAPTER - - - - * - - - - - - org.apache.felix - maven-bundle-plugin - true - - - true - - - - - - - diff --git a/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/ru/entaxy/adapter/metadata.json b/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/ru/entaxy/adapter/metadata.json deleted file mode 100644 index 1116fab9..00000000 --- a/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/ru/entaxy/adapter/metadata.json +++ /dev/null @@ -1,689 +0,0 @@ -{ - "adapter": { - "id": "jms.adapter.1", - "name": "jmsAdapter", - "description": "JMS adapter to interact with queues and topics.", - "fields": [ - { - "name": "destinationType", - "type": "String", - "default": "queue", - "property": false, - "option": false - }, - { - "name": "destinationName", - "type": "String", - "property": false, - "option": false - }, - - { - "name": "clientId", - "property": true, - "option": true - }, - { - "name": "connectionFactory", - "type": "ConnectionFactory", - "property": true, - "option": true - }, - { - "name": "disableReplyTo", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "durableSubscriptionName", - "property": true, - "option": true - }, - { - "name": "jmsMessageType", - "type": "JmsMessageType", - "property": true, - "option": true - }, - { - "name": "replyTo", - "property": true, - "option": true - }, - { - "name": "testConnectionOnStartup", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "acknowledgementModeName", - "default": "AUTO_ACKNOWLEDGE", - "property": true, - "option": true - }, - { - "name": "artemisConsumerPriority", - "type": "int", - "property": true, - "option": true - }, - { - "name": "asyncConsumer", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "autoStartup", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "cacheLevel", - "type": "int", - "property": true, - "option": true - }, - { - "name": "cacheLevelName", - "default": "CACHE_AUTO", - "property": true, - "option": true - }, - { - "name": "concurrentConsumers", - "type": "int", - "default": "1", - "property": true, - "option": true - }, - { - "name": "maxConcurrentConsumers", - "type": "int", - "property": true, - "option": true - }, - { - "name": "replyToDeliveryPersistent", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "selector", - "property": true, - "option": true - }, - { - "name": "subscriptionDurable", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "subscriptionName", - "property": true, - "option": true - }, - { - "name": "subscriptionShared", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "acceptMessagesWhileStopping", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "allowReplyManagerQuickStop", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "consumerType", - "type": "ConsumerType", - "default": "Default", - "property": true, - "option": true - }, - { - "name": "defaultTaskExecutorType", - "type": "DefaultTaskExecutorType", - "property": true, - "option": true - }, - { - "name": "eagerLoadingOfProperties", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "eagerPoisonBody", - "default": "Poison JMS message due to ${exception.message}", - "property": true, - "option": true - }, - { - "name": "exceptionHandler", - "type": "ExceptionHandler", - "option": true - }, - { - "name": "exchangePattern", - "type": "ExchangePattern", - "option": true - }, - { - "name": "exposeListenerSession", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "replyToSameDestinationAllowed", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "taskExecutor", - "type": "TaskExecutor", - "property": true, - "option": true - }, - { - "name": "deliveryDelay", - "type": "long", - "default": "-1", - "property": true, - "option": true - }, - { - "name": "deliveryMode", - "type": "Integer", - "property": true, - "option": true - }, - { - "name": "deliveryPersistent", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "explicitQosEnabled", - "type": "Boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "formatDateHeadersToIso8601", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "lazyStartProducer", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "preserveMessageQos", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "priority", - "type": "int", - "default": "4", - "property": true, - "option": true - }, - { - "name": "replyToConcurrentConsumers", - "type": "int", - "default": "1", - "property": true, - "option": true - }, - { - "name": "replyToMaxConcurrentConsumers", - "type": "int", - "property": true, - "option": true - }, - { - "name": "replyToOnTimeoutMaxConcurrentConsumers", - "type": "int", - "default": "1", - "property": true, - "option": true - }, - { - "name": "replyToOverride", - "property": true, - "option": true - }, - { - "name": "replyToType", - "type": "ReplyToType", - "property": true, - "option": true - }, - { - "name": "requestTimeout", - "type": "long", - "default": "20000", - "property": true, - "option": true - }, - { - "name": "timeToLive", - "type": "long", - "default": "-1", - "property": true, - "option": true - }, - { - "name": "allowAdditionalHeaders", - "property": true, - "option": true - }, - { - "name": "allowNullBody", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "alwaysCopyMessage", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "correlationProperty", - "property": true, - "option": true - }, - { - "name": "disableTimeToLive", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "forceSendOriginalMessage", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "includeSentJMSMessageID", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "replyToCacheLevelName", - "property": true, - "option": true - }, - { - "name": "replyToDestinationSelectorName", - "property": true, - "option": true - }, - { - "name": "streamMessageTypeEnabled", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "allowAutoWiredConnectionFactory", - "type": "boolean", - "default": "true", - "property": true - }, - { - "name": "allowAutoWiredDestinationResolver", - "type": "boolean", - "default": "true", - "property": true - }, - { - "name": "allowSerializedHeaders", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "artemisStreamingEnabled", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "asyncStartListener", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "asyncStopListener", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "autowiredEnabled", - "type": "boolean", - "default": "true", - "property": true - }, - { - "name": "configuration", - "type": "JmsConfiguration", - "property": true - }, - { - "name": "destinationResolver", - "type": "DestinationResolver", - "property": true, - "option": true - }, - { - "name": "errorHandler", - "type": "ErrorHandler", - "property": true, - "option": true - }, - { - "name": "exceptionListener", - "type": "ExceptionListener", - "property": true, - "option": true - }, - { - "name": "headerFilterStrategy", - "type": "HeaderFilterStrategy", - "property": true, - "option": true - }, - { - "name": "idleConsumerLimit", - "type": "int", - "default": "1", - "property": true, - "option": true - }, - { - "name": "idleTaskExecutionLimit", - "type": "int", - "default": "1", - "property": true, - "option": true - }, - { - "name": "includeAllJMSXProperties", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "jmsKeyFormatStrategy", - "type": "JmsKeyFormatStrategy", - "property": true, - "option": true - }, - { - "name": "mapJmsMessage", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "maxMessagesPerTask", - "type": "int", - "default": "-1", - "property": true, - "option": true - }, - { - "name": "messageConverter", - "type": "MessageConverter", - "property": true, - "option": true - }, - { - "name": "messageCreatedStrategy", - "type": "MessageCreatedStrategy", - "property": true, - "option": true - }, - { - "name": "messageIdEnabled", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "messageListenerContainerFactory", - "type": "MessageListenerContainerFactory", - "property": true, - "option": true - }, - { - "name": "messageTimestampEnabled", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "pubSubNoLocal", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "queueBrowseStrategy", - "type": "QueueBrowseStrategy", - "property": true - }, - { - "name": "receiveTimeout", - "type": "long", - "default": "1000", - "property": true, - "option": true - }, - { - "name": "recoveryInterval", - "type": "long", - "default": "5000", - "property": true, - "option": true - }, - { - "name": "requestTimeoutCheckerInterval", - "type": "long", - "default": "1000", - "property": true, - "option": true - }, - { - "name": "synchronous", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "transferException", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "transferExchange", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "useMessageIDAsCorrelationID", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "waitForProvisionCorrelationToBeUpdatedCounter", - "type": "int", - "default": "50", - "property": true, - "option": true - }, - { - "name": "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime", - "type": "long", - "default": "100", - "property": true, - "option": true - }, - { - "name": "errorHandlerLoggingLevel", - "type": "LoggingLevel", - "default": "WARN", - "property": true, - "option": true - }, - { - "name": "errorHandlerLogStackTrace", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "password", - "property": true, - "option": true - }, - { - "name": "username", - "property": true, - "option": true - }, - { - "name": "transacted", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "transactedInOut", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "lazyCreateTransactionManager", - "type": "boolean", - "default": "true", - "property": true, - "option": true - }, - { - "name": "transactionManager", - "type": "PlatformTransactionManager", - "property": true, - "option": true - }, - { - "name": "transactionName", - "property": true, - "option": true - }, - { - "name": "transactionTimeout", - "type": "int", - "default": "-1", - "property": true, - "option": true - } - ], - "generators":[ - { - "type": "pathParameter", - "generator": "", - "config": { - "expression": "${destinationType}:${destinationName}" - } - }, - { - "type": "init", - "generator": "" - }, - { - "type": "ref", - "generator": "" - }, - { - "type": "from", - "generator": "" - }, - { - "type": "to", - "generator": "" - } - ] - } -} \ No newline at end of file diff --git a/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/from.ftl b/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/from.ftl deleted file mode 100644 index 739b784c..00000000 --- a/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/from.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - jms-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#include 'queryParameters.ftl'] - diff --git a/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/init.ftl b/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/init.ftl deleted file mode 100644 index c9477402..00000000 --- a/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/init.ftl +++ /dev/null @@ -1,78 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint"}] -[#-- - - ~~~~~~licensing~~~~~~ - jms-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] - - - - - [#if connection.properties??] - - [#list connection.properties as key, value] - - [/#list] - - [/#if] - - - - - - - - - - [#-- //TODO change template for property reference usage instead of text value --] - - [#if connection.properties??] - [#list connection.properties as key, value] - - [/#list] - [/#if] - - - - - diff --git a/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/queryParameters.ftl b/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/queryParameters.ftl deleted file mode 100644 index 08862ced..00000000 --- a/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/queryParameters.ftl +++ /dev/null @@ -1,47 +0,0 @@ -[#ftl] -[#-- - - ~~~~~~licensing~~~~~~ - jms-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#assign queryParameters] - [#if connection.options??] - [@compress single_line=true] - ?[#list connection.options as key, value][=key]=[=value][#sep]&[/#list] - [/@compress] - [/#if] -[/#assign] diff --git a/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/ref.ftl b/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/ref.ftl deleted file mode 100644 index 5a7f23fb..00000000 --- a/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/ref.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - jms-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] - diff --git a/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/to.ftl b/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/to.ftl deleted file mode 100644 index 3569a44d..00000000 --- a/platform/runtime/base/connecting/adapter/jms-adapter/src/main/resources/template/to.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - jms-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#include 'queryParameters.ftl'] - diff --git a/platform/runtime/base/connecting/adapter/pom.xml b/platform/runtime/base/connecting/adapter/pom.xml deleted file mode 100644 index eb139f89..00000000 --- a/platform/runtime/base/connecting/adapter/pom.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - ru.entaxy.esb.platform.runtime.base - connecting - 1.9.0 - - - 4.0.0 - ru.entaxy.esb.platform.runtime.base.connecting - adapter - pom - - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER - - - adapters-core - file-adapter - jms-adapter - artemis-adapter - postgresql-adapter - h2-adapter - amqp-adapter - artemis-amqp-adapter - rabbitmq-amqp-adapter - - diff --git a/platform/runtime/base/connecting/adapter/postgresql-adapter/LICENSE.txt b/platform/runtime/base/connecting/adapter/postgresql-adapter/LICENSE.txt deleted file mode 100644 index 4ae94b75..00000000 --- a/platform/runtime/base/connecting/adapter/postgresql-adapter/LICENSE.txt +++ /dev/null @@ -1,175 +0,0 @@ - ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ - -Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) -версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего -Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН -7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, -д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу -https://www.emdev.ru/about (далее - Компания). - -Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» -(или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, -Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в -настоящем документе, в противном случае, он должен не использовать или не получать доступ -к Программному обеспечению. - - 1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ - -a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии -или редакции, исключительные права на которую принадлежат Правообладателю. -b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные -права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ -для ЭВМ № 2021610848 от 19.01.2021 года. -c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта -https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. -d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также -личные неимущественные права авторов произведений на результат интеллектуальной деятельности. -e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование -ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка -включает предоставление Пользователю неисключительного права использования ПО, в том числе -получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение -патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается -Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается -для каждого Пользователя индивидуально в Сертификате. -f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), -подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное -обеспечение в ограниченном объёме и на определённый период времени. -g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, -предоставленных Пользователю согласно условиям Подписки. -h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного -обеспечения. -i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий -из одного или нескольких файлов, который может быть прочтён человеком. -j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля -программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. -Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый -продукт. -k) Некоммерческое использование – индивидуальное личное использование Пользователем программного -обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации -возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая -выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. - - 2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - -2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного -обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом -воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения -в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. -2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит -неисключительный характер. -2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, -лицензия на ограниченное использование Программного обеспечения. -2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования -имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан -обратиться в службу поддержки Правообладателя по адресу: https://entaxy.ru/ для изменения -вида лицензии с Базовой бесплатной версии на Подписки. -2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для -пробного использования программного обеспечения – не ограничен. -2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, -модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, -без разрешения Правообладателя не допускается. - - 3. АВТОРСКОЕ ПРАВО. - -3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение -и любые его копии принадлежат Правообладателю. -3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, -к которому можно получить доступ с помощью Программного обеспечения, является собственностью -соответствующего владельца контента и защищается применимым законодательством об авторском -праве или другими законами и договорами об интеллектуальной собственности. -3.3. Условия использования Программного обеспечения. -Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь -придерживается следующих условий: -3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять -какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании -Программного обеспечения или на нем. -3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, -расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать -Программное обеспечение. -3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования -ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. -3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено -использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. - - 4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» - -4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю -на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с -использованием Пользователем: -4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в -Программное обеспечение; -4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями -настоящего соглашения; -4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, -или данными, не предоставленными Пользователю Правообладателем; -4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. - - -5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ -ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ -И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ -ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ -И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ -ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. - - 6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. -НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ -ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, -ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; -ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. -ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ -ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; -КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ -ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. - - 7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: -Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия -(включая, но не ограничиваясь) по: --дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) - Программного обеспечения; --модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный -код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, -включёнными в Программное обеспечение и описанными непосредственно в документации к нему; --созданию условий для использования Программного обеспечения лицами, не имеющими прав на -использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство -третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа -к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; --распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). - - 8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. - -8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из -лицензионных продуктов, используемых на законных основаниях, а -именно https://entaxy.ru/libs/licenses/root-aggregated.deps. -8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть -совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. -8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться -Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, -содержащих все изменения и дополнения программного обеспечения. - - 9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. - -9.1. Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым -программным обеспечением. -9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно -с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм -«Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. -9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий -пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, -прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер -ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства -Российской Федерации. - - 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. - -10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет -право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, -недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий -пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере -2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения -исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). -10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое -законодательство – Российской Федерации. -10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, -остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать -исполнять свои обязанности в соответствии с этими положениями. diff --git a/platform/runtime/base/connecting/adapter/postgresql-adapter/pom.xml b/platform/runtime/base/connecting/adapter/postgresql-adapter/pom.xml deleted file mode 100644 index 2545dfa2..00000000 --- a/platform/runtime/base/connecting/adapter/postgresql-adapter/pom.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - ru.entaxy.esb.platform.runtime.base.connecting - adapter - 1.9.0 - - - 4.0.0 - ru.entaxy.esb.platform.runtime.base.connecting.adapter - postgresql-adapter - bundle - - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: POSTGRESQL ADAPTER - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: POSTGRESQL ADAPTER - - - - * - - - - - - org.apache.felix - maven-bundle-plugin - true - - - true - - - - - - - - - - org.apache.camel - camel-jdbc - ${camel.version} - - - diff --git a/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/ru/entaxy/adapter/metadata.json b/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/ru/entaxy/adapter/metadata.json deleted file mode 100644 index dfb5f23a..00000000 --- a/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/ru/entaxy/adapter/metadata.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "adapter": { - "id": "postgresql.adapter.${postgresql.version}", - "name": "postgresqlAdapter", - "description": "Postgresql adapter to interact with databases.", - "fields": [ - { - "name": "dataSourceName", - "type": "String", - "default": "dataSource", - "property": false, - "option": false - }, - - { - "name": "dataSource", - "type": "DataSource", - "property": true - }, - { - "name": "lazyStartProducer", - "type": "boolean", - "default": "false", - "property": true, - "option": true - }, - { - "name": "autowiredEnabled", - "type": "boolean", - "default": "true", - "property": true - }, - { - "name": "connectionStrategy", - "type": "ConnectionStrategy", - "property": true, - "option": true - }, - - { - "name": "allowNamedParameters", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "outputClass", - "property": true, - "option": true - }, - { - "name": "outputType", - "type": "JdbcOutputType", - "default": "SelectList", - "option": true - }, - { - "name": "parameters", - "default": "Map", - "option": true - }, - { - "name": "readSize", - "type": "int", - "option": true - }, - { - "name": "resetAutoCommit", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "transacted", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "useGetBytesForBlob", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "useHeadersAsParameters", - "type": "boolean", - "default": "false", - "option": true - }, - { - "name": "useJDBC4ColumnNameAndLabelSemantics", - "type": "boolean", - "default": "true", - "option": true - }, - { - "name": "beanRowMapper", - "type": "BeanRowMapper", - "option": true - }, - { - "name": "prepareStatementStrategy", - "type": "JdbcPrepareStatementStrategy", - "option": true - } - ], - "generators":[ - { - "type": "pathParameter", - "generator": "", - "config": { - "expression": "${dataSourceName}" - } - }, - { - "type": "init", - "generator": "" - }, - { - "type": "ref", - "generator": "" - }, - { - "type": "from", - "generator": "" - }, - { - "type": "to", - "generator": "" - } - ] - } -} \ No newline at end of file diff --git a/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/template/init.ftl b/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/template/init.ftl deleted file mode 100644 index 3857ae49..00000000 --- a/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/template/init.ftl +++ /dev/null @@ -1,79 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint"} /] -[#-- - - ~~~~~~licensing~~~~~~ - postgresql-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] - - - - - [#if connection.properties??] - - [#list connection.properties as key, value] - - [/#list] - - [/#if] - - - - - - - - - - [#-- //TODO change template for property reference usage instead of text value --] - - [#if connection.properties??] - [#list connection.properties as key, value] - - [/#list] - [/#if] - - - - - diff --git a/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/template/queryParameters.ftl b/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/template/queryParameters.ftl deleted file mode 100644 index 04af73dd..00000000 --- a/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/template/queryParameters.ftl +++ /dev/null @@ -1,47 +0,0 @@ -[#ftl] -[#-- - - ~~~~~~licensing~~~~~~ - postgresql-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#assign queryParameters] - [#if connection.options??] - [@compress single_line=true] - ?[#list connection.options as key, value][=key]=[=value][#sep]&[/#list] - [/@compress] - [/#if] -[/#assign] diff --git a/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/template/ref.ftl b/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/template/ref.ftl deleted file mode 100644 index 315ddbee..00000000 --- a/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/template/ref.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - postgresql-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] - diff --git a/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/template/to.ftl b/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/template/to.ftl deleted file mode 100644 index a83a0ab5..00000000 --- a/platform/runtime/base/connecting/adapter/postgresql-adapter/src/main/resources/template/to.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - postgresql-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#include 'queryParameters.ftl'] - diff --git a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/LICENSE.txt b/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/LICENSE.txt deleted file mode 100644 index 4ae94b75..00000000 --- a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/LICENSE.txt +++ /dev/null @@ -1,175 +0,0 @@ - ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ - -Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) -версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего -Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН -7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, -д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу -https://www.emdev.ru/about (далее - Компания). - -Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» -(или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, -Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в -настоящем документе, в противном случае, он должен не использовать или не получать доступ -к Программному обеспечению. - - 1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ - -a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии -или редакции, исключительные права на которую принадлежат Правообладателю. -b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные -права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ -для ЭВМ № 2021610848 от 19.01.2021 года. -c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта -https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. -d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также -личные неимущественные права авторов произведений на результат интеллектуальной деятельности. -e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование -ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка -включает предоставление Пользователю неисключительного права использования ПО, в том числе -получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение -патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается -Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается -для каждого Пользователя индивидуально в Сертификате. -f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), -подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное -обеспечение в ограниченном объёме и на определённый период времени. -g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, -предоставленных Пользователю согласно условиям Подписки. -h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного -обеспечения. -i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий -из одного или нескольких файлов, который может быть прочтён человеком. -j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля -программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. -Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый -продукт. -k) Некоммерческое использование – индивидуальное личное использование Пользователем программного -обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации -возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая -выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. - - 2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - -2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного -обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом -воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения -в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. -2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит -неисключительный характер. -2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, -лицензия на ограниченное использование Программного обеспечения. -2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования -имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан -обратиться в службу поддержки Правообладателя по адресу: https://entaxy.ru/ для изменения -вида лицензии с Базовой бесплатной версии на Подписки. -2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для -пробного использования программного обеспечения – не ограничен. -2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, -модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, -без разрешения Правообладателя не допускается. - - 3. АВТОРСКОЕ ПРАВО. - -3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение -и любые его копии принадлежат Правообладателю. -3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, -к которому можно получить доступ с помощью Программного обеспечения, является собственностью -соответствующего владельца контента и защищается применимым законодательством об авторском -праве или другими законами и договорами об интеллектуальной собственности. -3.3. Условия использования Программного обеспечения. -Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь -придерживается следующих условий: -3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять -какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании -Программного обеспечения или на нем. -3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, -расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать -Программное обеспечение. -3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования -ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. -3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено -использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. - - 4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» - -4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю -на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с -использованием Пользователем: -4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в -Программное обеспечение; -4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями -настоящего соглашения; -4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, -или данными, не предоставленными Пользователю Правообладателем; -4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. - - -5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ -ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ -И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ -ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ -И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ -ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. - - 6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. -НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ -ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, -ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; -ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. -ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ -ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; -КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ -ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. - - 7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: -Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия -(включая, но не ограничиваясь) по: --дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) - Программного обеспечения; --модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный -код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, -включёнными в Программное обеспечение и описанными непосредственно в документации к нему; --созданию условий для использования Программного обеспечения лицами, не имеющими прав на -использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство -третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа -к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; --распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). - - 8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. - -8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из -лицензионных продуктов, используемых на законных основаниях, а -именно https://entaxy.ru/libs/licenses/root-aggregated.deps. -8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть -совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. -8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться -Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, -содержащих все изменения и дополнения программного обеспечения. - - 9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. - -9.1. Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым -программным обеспечением. -9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно -с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм -«Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. -9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий -пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, -прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер -ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства -Российской Федерации. - - 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. - -10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет -право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, -недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий -пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере -2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения -исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). -10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое -законодательство – Российской Федерации. -10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, -остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать -исполнять свои обязанности в соответствии с этими положениями. diff --git a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/README.md b/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/README.md deleted file mode 100644 index a0b72b67..00000000 --- a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/README.md +++ /dev/null @@ -1 +0,0 @@ -Для корректной работы rabbitmq с amqp необходимо подключить плагин rabbitmq_amqp1_0 в rabbitmq \ No newline at end of file diff --git a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/pom.xml b/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/pom.xml deleted file mode 100644 index 6837a441..00000000 --- a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - ru.entaxy.esb.platform.runtime.base.connecting - adapter - 1.9.0 - - - 4.0.0 - ru.entaxy.esb.platform.runtime.base.connecting.adapter - rabbitmq-amqp-adapter - bundle - - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: RABBITMQ AMQP ADAPTER - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: RABBITMQ AMQP ADAPTER - - - - * - - - - - - org.apache.felix - maven-bundle-plugin - true - - - true - - - - - - - diff --git a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/Dockerfile b/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/Dockerfile deleted file mode 100644 index 8ae10ca9..00000000 --- a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/Dockerfile +++ /dev/null @@ -1,2 +0,0 @@ -FROM rabbitmq:3.9-management -RUN rabbitmq-plugins enable --offline rabbitmq_amqp1_0 diff --git a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/ru/entaxy/adapter/metadata.json b/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/ru/entaxy/adapter/metadata.json deleted file mode 100644 index 9dc44170..00000000 --- a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/ru/entaxy/adapter/metadata.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "adapter": { - "id": "rabbitmq.amqp.adapter.1", - "name": "rabbitmqAmqpAdapter", - "description": "Messaging with AMQP protocol using Apache QPid Client.", - "fields": [ - { - "name": "destinationType", - "type": "String", - "default": "queue", - "property": false, - "option": false - }, - { - "name": "destinationName", - "type": "String", - "property": false, - "option": false - }, - - { - "name": "clientId", - "property": true, - "option": true - }, - { - "name": "acknowledgementModeName", - "default": "AUTO_ACKNOWLEDGE", - "property": true, - "option": true - }, - { - "name": "exchangePattern", - "type": "ExchangePattern", - "option": true - }, - { - "name": "password", - "property": true, - "option": true - }, - { - "name": "url", - "property": true, - "option": true - }, - { - "name": "username", - "property": true, - "option": true - } - ], - "generators":[ - { - "type": "pathParameter", - "generator": "", - "config": { - "expression": "${destinationType}:${destinationName}" - } - }, - { - "type": "init", - "generator": "" - }, - { - "type": "ref", - "generator": "" - }, - { - "type": "from", - "generator": "" - }, - { - "type": "to", - "generator": "" - } - ] - } -} diff --git a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/from.ftl b/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/from.ftl deleted file mode 100644 index 04f46f0f..00000000 --- a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/from.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - rabbitmq-amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#include 'queryParameters.ftl'] - diff --git a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/init.ftl b/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/init.ftl deleted file mode 100644 index a1517d58..00000000 --- a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/init.ftl +++ /dev/null @@ -1,86 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint"}] -[#-- - - ~~~~~~licensing~~~~~~ - rabbitmq-amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#assign factoryProperties = ["url", "username", "password"]] -[#function exceptFactoryProperties(propertyName)] - [#return !factoryProperties?seq_contains(propertyName)] -[/#function] - - - - - [#if connection.properties??] - - [#list connection.properties as key, value] - - [/#list] - - [/#if] - - - - - - - - - - [#-- //TODO change template for property reference usage instead of text value --] - - [#if connection.properties??] - [#list connection.properties?keys?filter(exceptFactoryProperties) as key] - - [/#list] - [/#if] - - - - - - - - - diff --git a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/queryParameters.ftl b/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/queryParameters.ftl deleted file mode 100644 index af82f814..00000000 --- a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/queryParameters.ftl +++ /dev/null @@ -1,48 +0,0 @@ -[#ftl] -[#-- - - ~~~~~~licensing~~~~~~ - rabbitmq-amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#assign queryParameters] - [#if connection.options??] - [@compress single_line=true] - ?[#list connection.options as key, value][=key]=[=value][#sep]&[/#list] - [/@compress] - [/#if] -[/#assign] - diff --git a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/ref.ftl b/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/ref.ftl deleted file mode 100644 index 6a980aae..00000000 --- a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/ref.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - rabbitmq-amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] - diff --git a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/to.ftl b/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/to.ftl deleted file mode 100644 index 263cbed3..00000000 --- a/platform/runtime/base/connecting/adapter/rabbitmq-amqp-adapter/src/main/resources/template/to.ftl +++ /dev/null @@ -1,42 +0,0 @@ -[#ftl attributes={"generated.type":"blueprint-node"}] -[#-- - - ~~~~~~licensing~~~~~~ - rabbitmq-amqp-adapter - ========== - Copyright (C) 2020 - 2023 EmDev LLC - ========== - You may not use this file except in accordance with the License Terms of - the Copyright - Holder located at: https://entaxy.ru/eula . All copyrights, all - intellectual property - rights to the Software and any copies are the property of the Copyright - Holder. Unless - it is explicitly allowed the Copyright Holder, the User is prohibited - from using the - Software for commercial purposes to provide services to third parties. - - The Copyright Holder hereby declares that the Software is provided on an - "AS IS". - Under no circumstances does the Copyright Holder guarantee or promise - that the - Software provided by him will be suitable or not suitable for the - specific purposes - of the User, that the Software will meet all commercial and personal - subjective - expectations of the User, that the Software will work properly, without - technical - errors, quickly and uninterruptedly. - - Under no circumstances shall the Copyright Holder or its Affiliates is - not liable - to the User for any direct or indirect losses of the User, his expenses - or actual - damage, including, downtime; loss of bussines; lost profit; lost - earnings; loss - or damage to data, property, etc. - ~~~~~~/licensing~~~~~~ - ---] -[#include 'queryParameters.ftl'] - diff --git a/platform/runtime/base/connecting/connection/LICENSE.txt b/platform/runtime/base/connecting/connection/LICENSE.txt deleted file mode 100644 index 4ae94b75..00000000 --- a/platform/runtime/base/connecting/connection/LICENSE.txt +++ /dev/null @@ -1,175 +0,0 @@ - ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ - -Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) -версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего -Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН -7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, -д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу -https://www.emdev.ru/about (далее - Компания). - -Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» -(или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, -Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в -настоящем документе, в противном случае, он должен не использовать или не получать доступ -к Программному обеспечению. - - 1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ - -a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии -или редакции, исключительные права на которую принадлежат Правообладателю. -b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные -права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ -для ЭВМ № 2021610848 от 19.01.2021 года. -c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта -https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. -d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также -личные неимущественные права авторов произведений на результат интеллектуальной деятельности. -e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование -ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка -включает предоставление Пользователю неисключительного права использования ПО, в том числе -получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение -патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается -Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается -для каждого Пользователя индивидуально в Сертификате. -f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), -подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное -обеспечение в ограниченном объёме и на определённый период времени. -g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, -предоставленных Пользователю согласно условиям Подписки. -h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного -обеспечения. -i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий -из одного или нескольких файлов, который может быть прочтён человеком. -j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля -программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. -Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый -продукт. -k) Некоммерческое использование – индивидуальное личное использование Пользователем программного -обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации -возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая -выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. - - 2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - -2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного -обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом -воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения -в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. -2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит -неисключительный характер. -2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, -лицензия на ограниченное использование Программного обеспечения. -2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования -имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан -обратиться в службу поддержки Правообладателя по адресу: https://entaxy.ru/ для изменения -вида лицензии с Базовой бесплатной версии на Подписки. -2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для -пробного использования программного обеспечения – не ограничен. -2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, -модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, -без разрешения Правообладателя не допускается. - - 3. АВТОРСКОЕ ПРАВО. - -3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение -и любые его копии принадлежат Правообладателю. -3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, -к которому можно получить доступ с помощью Программного обеспечения, является собственностью -соответствующего владельца контента и защищается применимым законодательством об авторском -праве или другими законами и договорами об интеллектуальной собственности. -3.3. Условия использования Программного обеспечения. -Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь -придерживается следующих условий: -3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять -какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании -Программного обеспечения или на нем. -3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, -расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать -Программное обеспечение. -3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования -ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. -3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено -использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. - - 4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» - -4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю -на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с -использованием Пользователем: -4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в -Программное обеспечение; -4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями -настоящего соглашения; -4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, -или данными, не предоставленными Пользователю Правообладателем; -4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. - - -5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ -ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ -И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ -ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ -И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ -ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. - - 6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. -НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ -ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, -ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; -ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. -ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ -ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; -КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ -ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. - - 7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: -Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия -(включая, но не ограничиваясь) по: --дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) - Программного обеспечения; --модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный -код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, -включёнными в Программное обеспечение и описанными непосредственно в документации к нему; --созданию условий для использования Программного обеспечения лицами, не имеющими прав на -использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство -третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа -к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; --распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). - - 8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. - -8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из -лицензионных продуктов, используемых на законных основаниях, а -именно https://entaxy.ru/libs/licenses/root-aggregated.deps. -8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть -совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. -8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться -Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, -содержащих все изменения и дополнения программного обеспечения. - - 9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. - -9.1. Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым -программным обеспечением. -9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно -с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм -«Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. -9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий -пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, -прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер -ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства -Российской Федерации. - - 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. - -10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет -право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, -недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий -пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере -2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения -исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). -10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое -законодательство – Российской Федерации. -10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, -остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать -исполнять свои обязанности в соответствии с этими положениями. diff --git a/platform/runtime/base/connecting/connection/pom.xml b/platform/runtime/base/connecting/connection/pom.xml deleted file mode 100644 index 9a587941..00000000 --- a/platform/runtime/base/connecting/connection/pom.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - ru.entaxy.esb.platform.runtime.base - connecting - 1.9.0 - - - 4.0.0 - ru.entaxy.esb.platform.runtime.base.connecting - connection - bundle - - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: CONNECTION - ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: CONNECTION - - - - ru.entaxy.esb.platform.runtime.base.connecting.connection, - ru.entaxy.esb.platform.runtime.base.connecting.connection.util - - - - - - ru.entaxy.esb.platform.runtime.base.connecting.adapter - adapters-core - ${project.version} - - - diff --git a/platform/runtime/base/connecting/connection/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/connection/Connection.java b/platform/runtime/base/connecting/connection/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/connection/Connection.java deleted file mode 100644 index 04d0e5f9..00000000 --- a/platform/runtime/base/connecting/connection/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/connection/Connection.java +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * connection - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.connection; - -import java.util.Properties; - -public interface Connection { - public static final String PID_PREFIX = "ru.entaxy.esb.connection."; - public String getUuid(); - public String getName(); - public boolean isPlatform(); - public String getAdapterName(); - public String getPathParameter(); - public Properties getProperties(); - public Properties getOptions(); - public String getConfigurationPid(); - public String getScope(); -} diff --git a/platform/runtime/base/connecting/connection/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/connection/ConnectionImpl.java b/platform/runtime/base/connecting/connection/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/connection/ConnectionImpl.java deleted file mode 100644 index ed135ab6..00000000 --- a/platform/runtime/base/connecting/connection/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/connection/ConnectionImpl.java +++ /dev/null @@ -1,116 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * connection - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.connection; - -import java.util.Properties; - -public class ConnectionImpl implements Connection { - private String uuid; - private String name; - private boolean platform; - private String adapterName; - private String pathParameter; - private Properties properties; - private Properties options; - private String scope; - - @Override - public String getUuid() { - return uuid; - } - - public void setUuid(String uuid) { - this.uuid = uuid; - } - - @Override - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - @Override - public boolean isPlatform() { - return platform; - } - - public void setPlatform(boolean platform) { - this.platform = platform; - } - - @Override - public String getAdapterName() { - return adapterName; - } - - public void setAdapterName(String adapterName) { - this.adapterName = adapterName; - } - - @Override - public String getPathParameter() { - return pathParameter; - } - - public void setPathParameter(String pathParameter) { - this.pathParameter = pathParameter; - } - - @Override - public Properties getProperties() { - return properties; - } - - public void setProperties(Properties properties) { - this.properties = properties; - } - - @Override - public Properties getOptions() { - return options; - } - - public void setOptions(Properties options) { - this.options = options; - } - - @Override - public String getConfigurationPid() { - return PID_PREFIX + name.replace('-', '.'); - } - - @Override - public String getScope() { - return scope; - } - - public void setScope(String scope) { - this.scope = scope; - } -} diff --git a/platform/runtime/base/connecting/connection/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/connection/util/ConnectionUtil.java b/platform/runtime/base/connecting/connection/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/connection/util/ConnectionUtil.java deleted file mode 100644 index ad76644d..00000000 --- a/platform/runtime/base/connecting/connection/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/connection/util/ConnectionUtil.java +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * ~~~~~~licensing~~~~~~ - * connection - * ========== - * Copyright (C) 2020 - 2023 EmDev LLC - * ========== - * You may not use this file except in accordance with the License Terms of the Copyright - * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property - * rights to the Software and any copies are the property of the Copyright Holder. Unless - * it is explicitly allowed the Copyright Holder, the User is prohibited from using the - * Software for commercial purposes to provide services to third parties. - * - * The Copyright Holder hereby declares that the Software is provided on an "AS IS". - * Under no circumstances does the Copyright Holder guarantee or promise that the - * Software provided by him will be suitable or not suitable for the specific purposes - * of the User, that the Software will meet all commercial and personal subjective - * expectations of the User, that the Software will work properly, without technical - * errors, quickly and uninterruptedly. - * - * Under no circumstances shall the Copyright Holder or its Affiliates is not liable - * to the User for any direct or indirect losses of the User, his expenses or actual - * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss - * or damage to data, property, etc. - * ~~~~~~/licensing~~~~~~ - */ -package ru.entaxy.esb.platform.runtime.base.connecting.connection.util; - -import java.util.HashMap; -import java.util.Map; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api.Adapter; -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.util.AdapterUtil; -import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.util.ConnectionUsageType; -import ru.entaxy.esb.platform.runtime.base.connecting.connection.Connection; -import ru.entaxy.esb.platform.runtime.base.connecting.generator.Generated; - -public class ConnectionUtil { - private static final Logger log = LoggerFactory.getLogger(ConnectionUtil.class); - - // TODO: 09.07.2021 Artifact wrapper needed instead of Blueprint (not only blueprint can be return from generator) - - public static Generated get(Connection connection, String usageType) throws Exception { - Adapter adapter = AdapterUtil.getAdapter(connection.getAdapterName()); - Map map = new HashMap<>(); - map.put("connectionName", connection.getName()); - map.put("connection", connection); - return adapter.generate(usageType, map); - } - public static Generated getInit(Connection connection) throws Exception { - return get(connection, ConnectionUsageType.INIT); - } - - public static Generated getRef(Connection connection) throws Exception { - return get(connection, ConnectionUsageType.REF); - } - - public static Generated getFrom(Connection connection) throws Exception { - return get(connection, ConnectionUsageType.FROM); - } - - public static Generated getTo(Connection connection) throws Exception { - return get(connection, ConnectionUsageType.TO); - } - -/* - @Deprecated - public static Blueprint getBlueprint(Connection connection, String usageType) throws Exception { - Adapter adapter = AdapterUtil.getAdapter(connection.getAdapterName()); - Map map = new HashMap<>(); - map.put("connectionName", connection.getName()); - map.put("connection", connection); - return adapter.generateBlueprint(usageType, map); - } - @Deprecated - public static Blueprint getBlueprintInit(Connection connection) throws Exception { - return getBlueprint(connection, ConnectionUsageType.INIT); - } - - @Deprecated - public static Blueprint getBlueprintRef(Connection connection) throws Exception { - return getBlueprint(connection, ConnectionUsageType.REF); - } - - @Deprecated - public static Blueprint getBlueprintFrom(Connection connection) throws Exception { - return getBlueprint(connection, ConnectionUsageType.FROM); - } - - @Deprecated - public static Blueprint getBlueprintTo(Connection connection) throws Exception { - return getBlueprint(connection, ConnectionUsageType.TO); - } - -*/ -} diff --git a/platform/runtime/base/connecting/generator/common-templates-collection/pom.xml b/platform/runtime/base/connecting/generator/common-templates-collection/pom.xml index 0f3aa6cb..24666422 100644 --- a/platform/runtime/base/connecting/generator/common-templates-collection/pom.xml +++ b/platform/runtime/base/connecting/generator/common-templates-collection/pom.xml @@ -3,7 +3,7 @@ ru.entaxy.esb.platform.runtime.base.connecting generator - 1.9.0 + 1.10.0 ru.entaxy.esb.platform.runtime.base.connecting.generator common-templates-collection diff --git a/platform/runtime/base/connecting/generator/ftl-generator/pom.xml b/platform/runtime/base/connecting/generator/ftl-generator/pom.xml index 18dfde0b..979c9301 100644 --- a/platform/runtime/base/connecting/generator/ftl-generator/pom.xml +++ b/platform/runtime/base/connecting/generator/ftl-generator/pom.xml @@ -4,7 +4,7 @@ ru.entaxy.esb.platform.runtime.base.connecting generator - 1.9.0 + 1.10.0 4.0.0 @@ -33,11 +33,6 @@ generator-api ${project.version} - - ru.entaxy.esb.system.core - template - ${project.version} - org.freemarker freemarker diff --git a/platform/runtime/base/connecting/generator/ftl-generator/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/generator/ftl/FTLGenerator.java b/platform/runtime/base/connecting/generator/ftl-generator/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/generator/ftl/FTLGenerator.java index d2729ee1..c0edc524 100644 --- a/platform/runtime/base/connecting/generator/ftl-generator/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/generator/ftl/FTLGenerator.java +++ b/platform/runtime/base/connecting/generator/ftl-generator/src/main/java/ru/entaxy/esb/platform/runtime/base/connecting/generator/ftl/FTLGenerator.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * ftl-generator * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property @@ -52,215 +52,213 @@ import freemarker.template.Template; import freemarker.template.TemplateException; import ru.entaxy.base.generator.template.TemplateAwareGenerator; import ru.entaxy.base.generator.template.TemplateImpl; +import ru.entaxy.base.generator.template.exception.TemplateNotFound; import ru.entaxy.esb.platform.runtime.base.connecting.generator.AbstractSelfPublishGenerator; import ru.entaxy.esb.platform.runtime.base.connecting.generator.Generated; import ru.entaxy.esb.platform.runtime.base.connecting.generator.Generator; import ru.entaxy.esb.platform.runtime.base.connecting.generator.GeneratorService; import ru.entaxy.esb.platform.runtime.base.connecting.generator.factory.GeneratorFactory; -import ru.entaxy.esb.system.common.exception.TemplateNotFound; @Component( - service = {GeneratorService.class}, - property = {GeneratorService.PROP_GENERATOR_TYPE + "=" + FTLGenerator.GENERATOR_NAME}, - immediate = true -) -public class FTLGenerator extends AbstractSelfPublishGenerator - implements Generator, TemplateAwareGenerator { + service = {GeneratorService.class}, + property = {GeneratorService.PROP_GENERATOR_TYPE + "=" + FTLGenerator.GENERATOR_NAME}, + immediate = true) +public class FTLGenerator extends AbstractSelfPublishGenerator + implements Generator, TemplateAwareGenerator { + + public final static String GENERATOR_NAME = "ftl"; - public final static String GENERATOR_NAME = "ftl"; - private static final Logger log = LoggerFactory.getLogger(FTLGenerator.class); public static final String PROP_TEMPLATE_NAME = "template.name"; public static final String PROP_TEMPLATE_PATH = "template.path"; - + private static final String ATTR_GENERATED_TYPE = "generated.type"; - + private static final String FTL_EXTENSION = ".ftl"; private static final String XML_EXTENSION = ".xml"; - + private static final String DEFAULT_TEMPLATE_PATH = "/template/"; - + // private BlueprintGenerator blueprintGenerator; private ru.entaxy.base.generator.template.Template template; @Activate public void activate() { - GeneratorFactory.register(FTLGenerator.GENERATOR_NAME, this); + GeneratorFactory.register(FTLGenerator.GENERATOR_NAME, this); } - + @Deactivate public void deactivate() { - GeneratorFactory.unregister(GENERATOR_NAME); + GeneratorFactory.unregister(GENERATOR_NAME); } - + @Override public List getSupportedTemplateTypes() { - return Arrays.asList(new String[] {"ftl"}); + return Arrays.asList(new String[] {"ftl"}); } - + @Override public Generated generate(ru.entaxy.base.generator.template.Template template, Map properties) - throws Exception { - return generateForTemplate(template, properties); + throws Exception { + return generateForTemplate(template, properties); } - + @Override public Generated generate(Map properties) throws Exception { - prepareTemplate(properties); - return generateForTemplate(template, properties); + prepareTemplate(properties); + return generateForTemplate(template, properties); } - + @Override public boolean isGeneratable(Map properties) throws Exception { - prepareTemplate(properties); - if (template == null) - return false; - URL templateURL = template.getTemplateLocation()==null - ?FrameworkUtil.getBundle(FTLGenerator.class).getEntry(DEFAULT_TEMPLATE_PATH) - :template.getTemplateLocation(); - try { - Template temp = getTemplateByFullName(templateURL, template.getTemplateFullName()); - return (temp != null); - } catch (Exception e) { - return false; - } + prepareTemplate(properties); + if (template == null) + return false; + URL templateURL = template.getTemplateLocation() == null + ? FrameworkUtil.getBundle(FTLGenerator.class).getEntry(DEFAULT_TEMPLATE_PATH) + : template.getTemplateLocation(); + try { + Template temp = getTemplateByFullName(templateURL, template.getTemplateFullName()); + return (temp != null); + } catch (Exception e) { + return false; + } } - - public Generated generateForTemplate(ru.entaxy.base.generator.template.Template template, - Map properties) throws Exception { - URL templateURL = template.getTemplateLocation()==null - ?FrameworkUtil.getBundle(FTLGenerator.class).getEntry(DEFAULT_TEMPLATE_PATH) - :template.getTemplateLocation(); - try { - return doGenerate( - templateURL, - template.getTemplateFullName(), - properties); - } catch (Exception e) { - log.error("Error generating for template [" + template.getId() + "]", e); - throw e; - } + public Generated generateForTemplate(ru.entaxy.base.generator.template.Template template, + Map properties) throws Exception { + + URL templateURL = template.getTemplateLocation() == null + ? FrameworkUtil.getBundle(FTLGenerator.class).getEntry(DEFAULT_TEMPLATE_PATH) + : template.getTemplateLocation(); + try { + return doGenerate( + templateURL, + template.getTemplateFullName(), + properties); + } catch (Exception e) { + log.error("Error generating for template [" + template.getId() + "]", e); + throw e; + } } protected static class Enricher { - Generated origin; - - Map properties = new HashMap<>(); - - String extraPrefix = "extra."; - - public Enricher(Generated origin) { - this.origin = origin; - } - - public Enricher cleanOrigin() { - this.origin.getProperties().clear(); - return this; - } - - public Enricher property(String name, Object value) { - properties.put(name, value); - return this; - } - - public Enricher properties(Map properties) { - this.properties.putAll(properties); - return this; - } - - public Enricher extraPrefix(String extraPrefix) { - this.extraPrefix = extraPrefix; - return this; - } + Generated origin; - public Enricher extra(String name, Object value) { - properties.put(extraPrefix + name, value); - return this; - } - - public Enricher extras(Map properties) { - for (Map.Entry entry: properties.entrySet()) - this.properties.put(extraPrefix + entry.getKey(), entry.getValue()); - return this; - } + Map properties = new HashMap<>(); - public Generated get() { - this.origin.getProperties().putAll(this.properties); - this.origin.getProperties().put("_extraPrefix", extraPrefix); - return this.origin; - } + String extraPrefix = "extra."; + + public Enricher(Generated origin) { + this.origin = origin; + } + + public Enricher cleanOrigin() { + this.origin.getProperties().clear(); + return this; + } + + public Enricher property(String name, Object value) { + properties.put(name, value); + return this; + } + + public Enricher properties(Map properties) { + this.properties.putAll(properties); + return this; + } + + public Enricher extraPrefix(String extraPrefix) { + this.extraPrefix = extraPrefix; + return this; + } + + public Enricher extra(String name, Object value) { + properties.put(extraPrefix + name, value); + return this; + } + + public Enricher extras(Map properties) { + for (Map.Entry entry : properties.entrySet()) + this.properties.put(extraPrefix + entry.getKey(), entry.getValue()); + return this; + } + + public Generated get() { + this.origin.getProperties().putAll(this.properties); + this.origin.getProperties().put("_extraPrefix", extraPrefix); + return this.origin; + } } - + protected static Enricher enrich(Generated origin) { - return new Enricher(origin); + return new Enricher(origin); } private Generated doGenerate(URL templateUrl, String templateFullName, Map params) throws IOException, TemplateException, TemplateNotFound { Template temp = getTemplateByFullName(templateUrl, templateFullName); Object value = temp.getCustomAttribute(FTLGenerator.ATTR_GENERATED_TYPE); - String type = null==value?null:value.toString(); - log.debug("--TEMPLATE--\n" + templateUrl.toString() + templateFullName + "\ngenerated.type: " + (null==value?Generated.GENERATED_TYPE_UNKNOWN:value.toString())); + String type = null == value ? null : value.toString(); + log.debug("--TEMPLATE--\n" + templateUrl.toString() + templateFullName + "\ngenerated.type: " + + (null == value ? Generated.GENERATED_TYPE_UNKNOWN : value.toString())); try (StringWriter writer = new StringWriter()) { temp.process(params, writer); return enrich(Generated.create(type, writer.toString())) - .properties(params) - .extraPrefix("generator.") - .extra("templateUrl", templateUrl) - .extra("templateFullName", value) - .get(); + .properties(params) + .extraPrefix("generator.") + .extra("templateUrl", templateUrl) + .extra("templateFullName", value) + .get(); } } - - + + protected void prepareTemplate(Map generationProperties) { - if (this.template != null) - return; - - Map finalProperties = new HashMap<>(); - finalProperties.putAll(initialProperties); - finalProperties.putAll(generationProperties); - - TemplateImpl temp = new TemplateImpl(); - temp.setBundleContext( - (BundleContext)finalProperties.getOrDefault(Generator.PROP_TARGET_BUNDLE_CONTEXT - , FrameworkUtil.getBundle(FTLGenerator.class).getBundleContext()) - ); - temp.setTemplateName((String)finalProperties.getOrDefault(PROP_TEMPLATE_NAME - , (String)finalProperties.getOrDefault(Generator.PROP_USAGE_TYPE - , "root"))); - temp.setPath((String)finalProperties.getOrDefault(PROP_TEMPLATE_NAME - , DEFAULT_TEMPLATE_PATH) - ); - - temp.setTemplateFullName(temp.getTemplateFileName() + FTL_EXTENSION); - - this.template = temp; - + if (this.template != null) + return; + + Map finalProperties = new HashMap<>(); + finalProperties.putAll(initialProperties); + finalProperties.putAll(generationProperties); + + TemplateImpl temp = new TemplateImpl(); + temp.setBundleContext( + (BundleContext) finalProperties.getOrDefault(Generator.PROP_TARGET_BUNDLE_CONTEXT, + FrameworkUtil.getBundle(FTLGenerator.class).getBundleContext())); + temp.setTemplateName((String) finalProperties.getOrDefault(PROP_TEMPLATE_NAME, + (String) finalProperties.getOrDefault(Generator.PROP_USAGE_TYPE, "root"))); + temp.setPath((String) finalProperties.getOrDefault(PROP_TEMPLATE_NAME, DEFAULT_TEMPLATE_PATH)); + + temp.setTemplateFullName(temp.getTemplateFileName() + FTL_EXTENSION); + + this.template = temp; + } - + private Generated doGenerate(URL templateUrl, String templateName, String systemName, Map params) throws IOException, TemplateException, TemplateNotFound { Template temp = getTemplateByName(templateUrl, templateName); Object value = temp.getCustomAttribute(FTLGenerator.ATTR_GENERATED_TYPE); - String type = null==value?null:value.toString(); - log.info("--BLUEPRINT--\n" + templateUrl.toString() + templateName + "\ngenerated.type: " + (null==value?Generated.GENERATED_TYPE_UNKNOWN:value.toString())); + String type = null == value ? null : value.toString(); + log.info("--BLUEPRINT--\n" + templateUrl.toString() + templateName + "\ngenerated.type: " + + (null == value ? Generated.GENERATED_TYPE_UNKNOWN : value.toString())); try (StringWriter writer = new StringWriter()) { temp.process(params, writer); - return Generated.create(type, writer.toString()); + return Generated.create(type, writer.toString()); } } - private Template getTemplateByFullName(URL templateUrl, String templateFullName) throws IOException, TemplateNotFound { + private Template getTemplateByFullName(URL templateUrl, String templateFullName) + throws IOException, TemplateNotFound { Configuration cfg = getConfiguration(templateUrl); return cfg.getTemplate(templateFullName); } - + private Template getTemplateByName(URL templateUrl, String templateName) throws IOException, TemplateNotFound { - return getTemplateByFullName(templateUrl, templateName + FTL_EXTENSION); + return getTemplateByFullName(templateUrl, templateName + FTL_EXTENSION); } private Configuration getConfiguration(URL templateUrl) throws TemplateNotFound { @@ -270,6 +268,9 @@ public class FTLGenerator extends AbstractSelfPublishGenerator freemarkerConfig.setTemplateLoader(getURLTemplateLoader(templateUrl)); freemarkerConfig.setInterpolationSyntax(SQUARE_BRACKET_INTERPOLATION_SYNTAX); freemarkerConfig.setTagSyntax(SQUARE_BRACKET_TAG_SYNTAX); + //no localization of number and boolean + freemarkerConfig.setNumberFormat("computer"); + freemarkerConfig.setBooleanFormat("c"); return freemarkerConfig; } @@ -278,14 +279,14 @@ public class FTLGenerator extends AbstractSelfPublishGenerator @Override protected URL getURL(String templateName) { try { - if (templateName.contains(":")) - return new URL(templateName); + if (templateName.contains(":")) + return new URL(templateName); return new URL(templateUrl + templateName); } catch (MalformedURLException e) { - // skip printing typical error - // while searching for template - if ((templateUrl!=null) || (!"root.ftl".equals(templateName))) - log.error(e.getMessage(), e); + // skip printing typical error + // while searching for template + if ((templateUrl != null) || (!"root.ftl".equals(templateName))) + log.error(e.getMessage(), e); } return null; } diff --git a/platform/runtime/base/connecting/generator/generator-api/pom.xml b/platform/runtime/base/connecting/generator/generator-api/pom.xml index 83feafbe..7dd1f889 100644 --- a/platform/runtime/base/connecting/generator/generator-api/pom.xml +++ b/platform/runtime/base/connecting/generator/generator-api/pom.xml @@ -4,7 +4,7 @@ ru.entaxy.esb.platform.runtime.base.connecting generator - 1.9.0 + 1.10.0 4.0.0 @@ -18,6 +18,7 @@ ru.entaxy.base.generator.template, + ru.entaxy.base.generator.template.exception, ru.entaxy.esb.platform.runtime.base.connecting.generator @@ -46,11 +47,6 @@ 1.4.0 compile - - ru.entaxy.esb.system.core - template - ${project.version} - diff --git a/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/Template.java b/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/Template.java index a6b8da5a..5e8eb68d 100644 --- a/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/Template.java +++ b/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/Template.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * generator-api * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/TemplateAwareGenerator.java b/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/TemplateAwareGenerator.java index e9036564..81e98faf 100644 --- a/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/TemplateAwareGenerator.java +++ b/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/TemplateAwareGenerator.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * generator-api * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/TemplateImpl.java b/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/TemplateImpl.java index 78822cac..d32f7128 100644 --- a/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/TemplateImpl.java +++ b/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/TemplateImpl.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * generator-api * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/TemplateService.java b/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/TemplateService.java index 80450643..2eb6b4bd 100644 --- a/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/TemplateService.java +++ b/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/TemplateService.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * generator-api * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/impl/Activator.java b/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/impl/Activator.java index 76767a69..1a642e0b 100644 --- a/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/impl/Activator.java +++ b/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/impl/Activator.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * generator-api * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property diff --git a/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/impl/LegacyTemplateAdapter.java b/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/impl/LegacyTemplateAdapter.java index 0ffd14b6..66c5c42c 100644 --- a/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/impl/LegacyTemplateAdapter.java +++ b/platform/runtime/base/connecting/generator/generator-api/src/main/java/ru/entaxy/base/generator/template/impl/LegacyTemplateAdapter.java @@ -2,7 +2,7 @@ * ~~~~~~licensing~~~~~~ * generator-api * ========== - * Copyright (C) 2020 - 2023 EmDev LLC + * Copyright (C) 2020 - 2024 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property @@ -41,100 +41,99 @@ import org.osgi.service.component.annotations.Reference; import org.osgi.service.component.annotations.ReferenceCardinality; import org.osgi.service.component.annotations.ReferencePolicy; +import ru.entaxy.base.generator.template.LegacyTemplate; import ru.entaxy.base.generator.template.TemplateService; -import ru.entaxy.esb.system.core.template.Template; @Component(immediate = true) public class LegacyTemplateAdapter { - BundleContext bundleContext = null; - - List