Compare commits
No commits in common. "5cb6857fa17c8404e6a9cb4646628d9c367c079e" and "2034182607ac67fa1998871f61b72e53fa5eeabc" have entirely different histories.
5cb6857fa1
...
2034182607
@ -3,7 +3,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>root</artifactId>
|
<artifactId>root</artifactId>
|
||||||
<groupId>ru.entaxy.esb</groupId>
|
<groupId>ru.entaxy.esb</groupId>
|
||||||
<version>1.10.0</version>
|
<version>1.9.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
@ -14,7 +14,6 @@
|
|||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>runtime</module>
|
<module>runtime</module>
|
||||||
<module>integration</module>
|
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>ru.entaxy.esb.platform.runtime</groupId>
|
<groupId>ru.entaxy.esb.platform.runtime</groupId>
|
||||||
<artifactId>base</artifactId>
|
<artifactId>base</artifactId>
|
||||||
<version>1.10.0</version>
|
<version>1.9.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<groupId>ru.entaxy.esb.platform.runtime.base</groupId>
|
<groupId>ru.entaxy.esb.platform.runtime.base</groupId>
|
||||||
<artifactId>base-support</artifactId>
|
<artifactId>base-support</artifactId>
|
||||||
@ -17,16 +17,11 @@
|
|||||||
ru.entaxy.platform.base.support.xml,
|
ru.entaxy.platform.base.support.xml,
|
||||||
ru.entaxy.platform.base.support.osgi,
|
ru.entaxy.platform.base.support.osgi,
|
||||||
ru.entaxy.platform.base.support.osgi.bundle,
|
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.service,
|
||||||
ru.entaxy.platform.base.support.osgi.tracker,
|
ru.entaxy.platform.base.support.osgi.tracker,
|
||||||
ru.entaxy.platform.base.support.osgi.tracker.filter,
|
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
|
|
||||||
</bundle.osgi.export.pkg>
|
</bundle.osgi.export.pkg>
|
||||||
<bundle.osgi.private.pkg>
|
|
||||||
org.apache.felix.gogo.runtime.threadio
|
|
||||||
</bundle.osgi.private.pkg>
|
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
@ -53,29 +48,8 @@
|
|||||||
<artifactId>commons-codec</artifactId>
|
<artifactId>commons-codec</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>ru.entaxy.bundles-repacked</groupId>
|
<groupId>com.google.code.gson</groupId>
|
||||||
<artifactId>ru.entaxy.bundles-repacked.com.google.code.gson-2.8.5.entaxy</artifactId>
|
<artifactId>gson</artifactId>
|
||||||
<version>${gson.version}-ENTAXY</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.karaf.shell</groupId>
|
|
||||||
<artifactId>org.apache.karaf.shell.core</artifactId>
|
|
||||||
<version>${karaf.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.karaf.features</groupId>
|
|
||||||
<artifactId>org.apache.karaf.features.core</artifactId>
|
|
||||||
<version>${karaf.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.karaf.bundle</groupId>
|
|
||||||
<artifactId>org.apache.karaf.bundle.core</artifactId>
|
|
||||||
<version>${karaf.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.fusesource.jansi</groupId>
|
|
||||||
<artifactId>jansi</artifactId>
|
|
||||||
<version>1.18</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* base-support
|
* base-support
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
@ -33,7 +33,6 @@ import java.util.Dictionary;
|
|||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ListIterator;
|
import java.util.ListIterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -50,256 +49,243 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class CommonUtils {
|
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 final String GUID_0 = "00000000-0000-0000-0000-000000000000";
|
public static class Path {
|
||||||
public static final String GUID_f = "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF";
|
|
||||||
public static final String NULL_GUID_ = GUID_0;
|
public static final String DEFAULT_SEPARATOR = "/";
|
||||||
|
|
||||||
|
protected String separator = DEFAULT_SEPARATOR;
|
||||||
|
protected List<String> 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<String> fragmentsIterator() {
|
||||||
|
return data.iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListIterator<String> fragmentsListIterator() {
|
||||||
|
return data.listIterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> pathHierarchy(){
|
||||||
|
return pathHierarchy(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> pathHierarchy(boolean absolute){
|
||||||
|
List<String> 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<String> iterator() {
|
||||||
|
return pathHierarchy().iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListIterator<String> 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 PACKET_TYPE_PARAM_NAME = "packetType";
|
/**
|
||||||
|
* 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 class Path {
|
public static String padBoth(String data, int length){
|
||||||
|
return padBoth(data, length, ' ');
|
||||||
|
}
|
||||||
|
|
||||||
public static final String DEFAULT_SEPARATOR = "/";
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
protected String separator = DEFAULT_SEPARATOR;
|
public static String padBoth(String data, int length, Character c){
|
||||||
protected List<String> data = new ArrayList<>();
|
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 Path create() {
|
public static void stream2file(InputStream input, String file) throws Exception {
|
||||||
return new Path();
|
File f = new File(file);
|
||||||
}
|
FileOutputStream output = new FileOutputStream(f);
|
||||||
|
IOUtils.copy(input, output);
|
||||||
public static boolean isAbsolute(String path) {
|
output.close();
|
||||||
return isAbsolute(path, DEFAULT_SEPARATOR);
|
}
|
||||||
}
|
|
||||||
|
public static <K, V> Map<K, V> addDictionaryToMap(Dictionary<K, V> source, Map<K, V> sink) {
|
||||||
public static boolean isAbsolute(String path, String separator) {
|
for (Enumeration<K> keys = source.keys(); keys.hasMoreElements();) {
|
||||||
if (!isValid(path))
|
K key = keys.nextElement();
|
||||||
return false;
|
sink.put(key, source.get(key));
|
||||||
return path.trim().startsWith(separator);
|
}
|
||||||
}
|
return sink;
|
||||||
|
}
|
||||||
public Path() {
|
|
||||||
super();
|
public static <K, V> Map<K, V> getDictionaryAsMap(Dictionary<K, V> source) {
|
||||||
}
|
Map<K, V> result = new HashMap<>();
|
||||||
|
CommonUtils.addDictionaryToMap(source, result);
|
||||||
public Path separator(String newSeparator) {
|
return result;
|
||||||
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<String> fragmentsIterator() {
|
|
||||||
return data.iterator();
|
|
||||||
}
|
|
||||||
|
|
||||||
public ListIterator<String> fragmentsListIterator() {
|
|
||||||
return data.listIterator();
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> pathHierarchy() {
|
|
||||||
return pathHierarchy(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> pathHierarchy(boolean absolute) {
|
|
||||||
List<String> 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<String> iterator() {
|
|
||||||
return pathHierarchy().iterator();
|
|
||||||
}
|
|
||||||
|
|
||||||
public ListIterator<String> 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 <K, V> Map<K, V> addDictionaryToMap(Dictionary<K, V> source, Map<K, V> sink) {
|
|
||||||
for (Enumeration<K> keys = source.keys(); keys.hasMoreElements();) {
|
|
||||||
K key = keys.nextElement();
|
|
||||||
sink.put(key, source.get(key));
|
|
||||||
}
|
|
||||||
return sink;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static <K, V> Map<K, V> getDictionaryAsMap(Dictionary<K, V> source) {
|
|
||||||
Map<K, V> result = new HashMap<>();
|
|
||||||
CommonUtils.addDictionaryToMap(source, result);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static <V> Map<String, V> prefixMap(Map<String, V> map, String prefix) {
|
|
||||||
Map<String, V> result = new LinkedHashMap<>();
|
|
||||||
for (Map.Entry<String, V> entry : map.entrySet())
|
|
||||||
result.put(String.format("%s%s", prefix, entry.getKey()), entry.getValue());
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* test-producers
|
* test-producers
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
@ -25,53 +25,54 @@
|
|||||||
*/
|
*/
|
||||||
package ru.entaxy.platform.base.support;
|
package ru.entaxy.platform.base.support;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class DependencySorter {
|
public class DependencySorter {
|
||||||
|
|
||||||
public static interface DependencyProvider<T> {
|
public static interface DependencyProvider<T> {
|
||||||
List<T> getDependencies(T inspectedObject);
|
List<T> getDependencies(T inspectedObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> List<T> getSortedList(List<T> origin, DependencyProvider<T> provider) throws Exception {
|
public static <T> List<T> getSortedList(List<T> origin, DependencyProvider<T> provider) throws Exception {
|
||||||
List<T> result = new LinkedList<>();
|
List<T> result = new LinkedList<>();
|
||||||
|
|
||||||
// add independent objects
|
// add independent objects
|
||||||
result.addAll(
|
result.addAll(
|
||||||
origin.stream().filter(obj -> provider.getDependencies(obj).isEmpty())
|
origin.stream().filter(obj -> provider.getDependencies(obj).isEmpty())
|
||||||
.collect(Collectors.toList()));
|
.collect(Collectors.toList())
|
||||||
|
);
|
||||||
while (result.size() < origin.size()) {
|
|
||||||
List<T> nextObjects = origin.stream().filter(obj -> !result.contains(obj))
|
while (result.size() < origin.size()) {
|
||||||
.filter(obj -> result.containsAll(provider.getDependencies(obj)))
|
List<T> nextObjects = origin.stream().filter(obj->!result.contains(obj))
|
||||||
.collect(Collectors.toList());
|
.filter(obj->result.containsAll(provider.getDependencies(obj)))
|
||||||
if (nextObjects.isEmpty())
|
.collect(Collectors.toList());
|
||||||
// TODO create more informative exception
|
if (nextObjects.isEmpty())
|
||||||
throw new UnsatisfiedDependenciesException(
|
// TODO create more informative exception
|
||||||
origin.stream().filter(obj -> !result.contains(obj))
|
throw new UnsatisfiedDependenciesException(
|
||||||
.collect(Collectors.toList()));
|
origin.stream().filter(obj->!result.contains(obj))
|
||||||
result.addAll(nextObjects);
|
.collect(Collectors.toList())
|
||||||
}
|
);
|
||||||
|
result.addAll(nextObjects);
|
||||||
return result;
|
}
|
||||||
}
|
|
||||||
|
return result;
|
||||||
@SuppressWarnings("serial")
|
}
|
||||||
public static class UnsatisfiedDependenciesException extends Exception {
|
|
||||||
|
|
||||||
protected List<Object> objects;
|
|
||||||
|
|
||||||
public UnsatisfiedDependenciesException(List<?> list) {
|
|
||||||
super("Contains unsatisfied dependencies");
|
|
||||||
this.objects = new ArrayList(list);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Object> getObjects() {
|
|
||||||
return objects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public static class UnsatisfiedDependenciesException extends Exception {
|
||||||
|
|
||||||
|
protected List<Object> objects;
|
||||||
|
|
||||||
|
public UnsatisfiedDependenciesException(List<?> list) {
|
||||||
|
super("Contains unsatisfied dependencies");
|
||||||
|
this.objects.addAll(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Object> getObjects() {
|
||||||
|
return objects;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* base-support
|
* base-support
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* base-support
|
* base-support
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* base-support
|
* base-support
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* base-support
|
* base-support
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
@ -30,63 +30,44 @@ import java.util.Map;
|
|||||||
|
|
||||||
import org.osgi.framework.Bundle;
|
import org.osgi.framework.Bundle;
|
||||||
import org.osgi.framework.wiring.BundleCapability;
|
import org.osgi.framework.wiring.BundleCapability;
|
||||||
import org.osgi.framework.wiring.BundleRevision;
|
|
||||||
import org.osgi.framework.wiring.BundleWiring;
|
import org.osgi.framework.wiring.BundleWiring;
|
||||||
|
|
||||||
public class BundleCapabilityHelper extends CapabilityHelper {
|
public class BundleCapabilityHelper extends CapabilityHelper {
|
||||||
|
|
||||||
|
protected Bundle bundle;
|
||||||
|
|
||||||
protected Bundle bundle;
|
public BundleCapabilityHelper(Bundle bundle) {
|
||||||
|
super();
|
||||||
protected boolean isLoaded = false;
|
this.bundle = bundle;
|
||||||
|
setMultipleNamespacesSupported(true);
|
||||||
public BundleCapabilityHelper(Bundle bundle) {
|
load();
|
||||||
super();
|
}
|
||||||
this.bundle = bundle;
|
|
||||||
setMultipleNamespacesSupported(true);
|
@Override
|
||||||
load();
|
protected void load() {
|
||||||
}
|
BundleWiring bundleWiring = bundle.adapt(BundleWiring.class);
|
||||||
|
if (bundleWiring == null)
|
||||||
@Override
|
return;
|
||||||
protected void load() {
|
List<BundleCapability> capabilities = bundleWiring.getCapabilities(null);
|
||||||
List<BundleCapability> capabilities = null;
|
for (BundleCapability cap: capabilities) {
|
||||||
BundleWiring bundleWiring = bundle.adapt(BundleWiring.class);
|
CapabilityDescriptorImpl descriptor = new CapabilityDescriptorImpl();
|
||||||
if (bundleWiring != null) {
|
descriptor.namespace(cap.getNamespace());
|
||||||
capabilities = bundleWiring.getCapabilities(null);
|
for (Map.Entry<String, Object> attr: cap.getAttributes().entrySet())
|
||||||
} else {
|
descriptor.attribute(attr.getKey(), attr.getValue());
|
||||||
BundleRevision bundleRevision = bundle.adapt(BundleRevision.class);
|
addProvidedCapability(descriptor);
|
||||||
if (bundleRevision != null) {
|
}
|
||||||
capabilities = bundleRevision.getDeclaredCapabilities(null);
|
}
|
||||||
}
|
|
||||||
}
|
public CapabilityDescriptor findObjectDeclaration(String objectId, String objectType) {
|
||||||
|
if (this.providedCapabilities == null)
|
||||||
if (capabilities == null)
|
return null;
|
||||||
return;
|
if (this.providedCapabilities.get(objectType) == null)
|
||||||
|
return null;
|
||||||
for (BundleCapability cap : capabilities) {
|
for (CapabilityDescriptor desc: this.providedCapabilities.get(objectType))
|
||||||
CapabilityDescriptorImpl descriptor = new CapabilityDescriptorImpl();
|
if (objectId.equals(desc.getAttributes().getOrDefault("objectId", "").toString()))
|
||||||
descriptor.namespace(cap.getNamespace());
|
return desc;
|
||||||
for (Map.Entry<String, Object> attr : cap.getAttributes().entrySet())
|
return null;
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* artifact-management
|
* artifact-management
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
@ -25,53 +25,42 @@
|
|||||||
*/
|
*/
|
||||||
package ru.entaxy.platform.base.support.osgi.bundle;
|
package ru.entaxy.platform.base.support.osgi.bundle;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.osgi.resource.Capability;
|
import org.osgi.resource.Capability;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface CapabilityDescriptor extends Capability {
|
public interface CapabilityDescriptor extends Capability {
|
||||||
|
|
||||||
public static final String HEADER_PROVIDE_CAPABILITY = "Provide-Capability";
|
public static final String HEADER_PROVIDE_CAPABILITY = "Provide-Capability";
|
||||||
public static final String HEADER_REQUIRE_CAPABILITY = "Require-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 interface ATTRIBUTE_TYPES {
|
public static boolean isList(String itemType) {
|
||||||
|
return (itemType!=null) && (itemType.startsWith(LIST));
|
||||||
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<String, Object> getRawAttributes();
|
|
||||||
|
|
||||||
public CapabilityDescriptor namespace(String namespace);
|
|
||||||
|
|
||||||
public CapabilityDescriptor attributes(Map<String, Object> 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<String, Object> attributes);
|
||||||
|
public CapabilityDescriptor attribute(String name, Object value);
|
||||||
|
public CapabilityDescriptor attribute(String name, Object value, String type);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* artifact-management
|
* artifact-management
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
@ -25,11 +25,6 @@
|
|||||||
*/
|
*/
|
||||||
package ru.entaxy.platform.base.support.osgi.bundle;
|
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.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -42,178 +37,130 @@ import ru.entaxy.platform.base.support.CommonUtils;
|
|||||||
|
|
||||||
public class CapabilityDescriptorImpl implements CapabilityDescriptor {
|
public class CapabilityDescriptorImpl implements CapabilityDescriptor {
|
||||||
|
|
||||||
protected String namespace;
|
protected String namespace;
|
||||||
|
|
||||||
|
protected Map<String, String> directives = new HashMap<>();
|
||||||
|
protected Map<String, AttributeDescriptor> 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 Map<String, String> directives = new HashMap<>();
|
public CapabilityDescriptorImpl(String namespace) {
|
||||||
protected Map<String, AttributeDescriptor> attributes = new HashMap<>();
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
private static class AttributeDescriptor {
|
@Override
|
||||||
|
public Map<String, String> getDirectives() {
|
||||||
|
return this.directives;
|
||||||
|
}
|
||||||
|
|
||||||
public static final String MARKER_BASE64 = "@BASE64";
|
@Override
|
||||||
|
public Map<String, Object> getAttributes() {
|
||||||
|
Map<String, Object> result = new HashMap<>();
|
||||||
|
for (Map.Entry<String, AttributeDescriptor> entry: this.attributes.entrySet())
|
||||||
|
result.put(entry.getKey(), entry.getValue().value);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private static final CharsetEncoder ENCODER = StandardCharsets.ISO_8859_1.newEncoder();
|
@Override
|
||||||
|
public Resource getResource() {
|
||||||
|
// not implemented
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private static final Encoder BASE64_ENCODER = Base64.getEncoder();
|
@Override
|
||||||
|
public CapabilityDescriptor namespace(String namespace) {
|
||||||
|
this.namespace = namespace;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
private static final Decoder BASE64_DECODER = Base64.getDecoder();
|
@Override
|
||||||
|
public CapabilityDescriptor attribute(String name, Object value) {
|
||||||
|
this.attributes.put(name, new AttributeDescriptor(value));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
String type;
|
@Override
|
||||||
Object value;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public AttributeDescriptor(Object value) {
|
@Override
|
||||||
this(value, CapabilityTypeHelper.getTypeName(value));
|
public CapabilityDescriptor attributes(Map<String, Object> attributes) {
|
||||||
}
|
if (attributes == null)
|
||||||
|
return this;
|
||||||
public AttributeDescriptor(Object value, String type) {
|
for (Entry<String, Object> entry: attributes.entrySet()) {
|
||||||
this.type = type;
|
this.attribute(entry.getKey(), entry.getValue());
|
||||||
this.value = value == null ? "" : value; // .toString();
|
}
|
||||||
}
|
return this;
|
||||||
|
}
|
||||||
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<String, String> getDirectives() {
|
|
||||||
return this.directives;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Map<String, Object> getAttributes() {
|
|
||||||
Map<String, Object> result = new HashMap<>();
|
|
||||||
for (Map.Entry<String, AttributeDescriptor> entry : this.attributes.entrySet())
|
|
||||||
result.put(entry.getKey(), entry.getValue().getValue());
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Map<String, Object> getRawAttributes() {
|
|
||||||
Map<String, Object> result = new HashMap<>();
|
|
||||||
for (Map.Entry<String, AttributeDescriptor> 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<String, Object> attributes) {
|
|
||||||
if (attributes == null)
|
|
||||||
return this;
|
|
||||||
for (Entry<String, Object> entry : attributes.entrySet()) {
|
|
||||||
this.attribute(entry.getKey(), entry.getValue());
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* test-producers
|
* test-producers
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
@ -28,144 +28,130 @@ package ru.entaxy.platform.base.support.osgi.bundle;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import ru.entaxy.platform.base.support.CommonUtils;
|
import ru.entaxy.platform.base.support.CommonUtils;
|
||||||
|
|
||||||
public class CapabilityHelper {
|
public class CapabilityHelper {
|
||||||
|
|
||||||
protected boolean isMultipleNamespacesSupported = false;
|
protected boolean isMultipleNamespacesSupported = false;
|
||||||
|
|
||||||
|
protected Map<String, CapabilityDescriptorImpl> requiredCapabilities = new HashMap<>();
|
||||||
|
protected Map<String, List<CapabilityDescriptorImpl>> providedCapabilities = new HashMap<>();
|
||||||
|
|
||||||
|
public CapabilityHelper() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
protected Map<String, CapabilityDescriptorImpl> requiredCapabilities = new HashMap<>();
|
protected void load() {
|
||||||
protected Map<String, List<CapabilityDescriptorImpl>> providedCapabilities = new HashMap<>();
|
/* String existing = this.manifest.getCustomAttributes().get(CapabilityDescriptor.HEADER_PROVIDE_CAPABILITY);
|
||||||
|
if (CommonUtils.isValid(existing)) {
|
||||||
protected Set<String> osgiCapabilities = new HashSet<>();
|
List<CapabilityDescriptorImpl> list = parse(existing);
|
||||||
|
for (CapabilityDescriptorImpl c: list)
|
||||||
|
addProvidedCapability(c);
|
||||||
|
}
|
||||||
|
existing = this.manifest.getCustomAttributes().get(CapabilityDescriptor.HEADER_REQUIRE_CAPABILITY);
|
||||||
|
if (CommonUtils.isValid(existing)) {
|
||||||
|
List<CapabilityDescriptorImpl> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public CapabilityHelper() {
|
|
||||||
super();
|
|
||||||
osgiCapabilities.add("osgi.identity");
|
protected void addRequiredCapability(CapabilityDescriptorImpl capabilityDescriptorImpl) {
|
||||||
osgiCapabilities.add("osgi.wiring.bundle");
|
if (capabilityDescriptorImpl == null)
|
||||||
osgiCapabilities.add("osgi.wiring.host");
|
return;
|
||||||
}
|
this.requiredCapabilities.put(capabilityDescriptorImpl.getNamespace(), capabilityDescriptorImpl);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected List<CapabilityDescriptorImpl> parse(String capabilities) {
|
||||||
|
List<CapabilityDescriptorImpl> 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++) {
|
||||||
|
result.parseAttribute(parsed[i]);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<CapabilityDescriptor> getProvidedCapabilities(){
|
||||||
|
return this.providedCapabilities.values().stream()
|
||||||
|
.flatMap(List::stream)
|
||||||
|
.map(c -> (CapabilityDescriptor)c)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
protected void load() {
|
public List<CapabilityDescriptor> getProvidedCapabilities(String namesoace){
|
||||||
/*
|
if (!this.providedCapabilities.containsKey(namesoace))
|
||||||
* String existing =
|
return new ArrayList<>();
|
||||||
* this.manifest.getCustomAttributes().get(CapabilityDescriptor.HEADER_PROVIDE_CAPABILITY);
|
return this.providedCapabilities.get(namesoace)
|
||||||
* if (CommonUtils.isValid(existing)) { List<CapabilityDescriptorImpl> list =
|
.stream()
|
||||||
* parse(existing); for (CapabilityDescriptorImpl c: list) addProvidedCapability(c); }
|
.map(c -> (CapabilityDescriptor)c)
|
||||||
* existing =
|
.collect(Collectors.toList());
|
||||||
* this.manifest.getCustomAttributes().get(CapabilityDescriptor.HEADER_REQUIRE_CAPABILITY);
|
}
|
||||||
* if (CommonUtils.isValid(existing)) { List<CapabilityDescriptorImpl> list =
|
|
||||||
* parse(existing); for (CapabilityDescriptorImpl c: list) addRequiredCapability(c); }
|
|
||||||
*/
|
public List<CapabilityDescriptor> 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 addProvidedCapability(CapabilityDescriptorImpl capabilityDescriptorImpl) {
|
public boolean isCapabilityRequired(String namespace) {
|
||||||
if (capabilityDescriptorImpl == null)
|
return this.requiredCapabilities.containsKey(namespace);
|
||||||
return;
|
}
|
||||||
if (!isMultipleNamespacesSupported) {
|
|
||||||
this.providedCapabilities.put(capabilityDescriptorImpl.getNamespace(),
|
public CapabilityDescriptor provideCapability(String namespace) {
|
||||||
Collections.singletonList(capabilityDescriptorImpl));
|
CapabilityDescriptorImpl desc = new CapabilityDescriptorImpl(namespace);
|
||||||
} else {
|
addProvidedCapability(desc);
|
||||||
if (!this.providedCapabilities.containsKey(capabilityDescriptorImpl.getNamespace()))
|
return desc;
|
||||||
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;
|
||||||
|
}
|
||||||
|
|
||||||
protected void addRequiredCapability(CapabilityDescriptorImpl capabilityDescriptorImpl) {
|
public void setMultipleNamespacesSupported(boolean isMultipleNamespacesSupported) {
|
||||||
if (capabilityDescriptorImpl == null)
|
this.isMultipleNamespacesSupported = isMultipleNamespacesSupported;
|
||||||
return;
|
}
|
||||||
this.requiredCapabilities.put(capabilityDescriptorImpl.getNamespace(), capabilityDescriptorImpl);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected List<CapabilityDescriptorImpl> parse(String capabilities) {
|
|
||||||
List<CapabilityDescriptorImpl> 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<CapabilityDescriptor> getProvidedCapabilities() {
|
|
||||||
return this.providedCapabilities.values().stream()
|
|
||||||
.flatMap(List::stream)
|
|
||||||
.map(c -> (CapabilityDescriptor) c)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<CapabilityDescriptor> 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<CapabilityDescriptor> 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<CapabilityDescriptor> 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* test-producers
|
* test-producers
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* system-commons
|
* system-commons
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* system-commons
|
* system-commons
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* system-commons
|
* system-commons
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* system-commons
|
* system-commons
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* profile-management
|
* profile-management
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* profile-management
|
* profile-management
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* profile-management
|
* profile-management
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* profile-management
|
* profile-management
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* profile-management
|
* profile-management
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* base-support
|
* base-support
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* profile-management
|
* profile-management
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* base-support
|
* base-support
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* base-support
|
* base-support
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
@ -38,20 +38,16 @@ import javax.xml.bind.Marshaller;
|
|||||||
import javax.xml.bind.Unmarshaller;
|
import javax.xml.bind.Unmarshaller;
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
|
||||||
import javax.xml.transform.OutputKeys;
|
import javax.xml.transform.OutputKeys;
|
||||||
import javax.xml.transform.Result;
|
import javax.xml.transform.Result;
|
||||||
import javax.xml.transform.Transformer;
|
import javax.xml.transform.Transformer;
|
||||||
import javax.xml.transform.TransformerConfigurationException;
|
|
||||||
import javax.xml.transform.TransformerFactory;
|
import javax.xml.transform.TransformerFactory;
|
||||||
import javax.xml.transform.dom.DOMSource;
|
import javax.xml.transform.dom.DOMSource;
|
||||||
import javax.xml.transform.stream.StreamResult;
|
import javax.xml.transform.stream.StreamResult;
|
||||||
|
|
||||||
/*
|
/*import net.sf.saxon.TransformerFactoryImpl;
|
||||||
* import net.sf.saxon.TransformerFactoryImpl; import net.sf.saxon.lib.NamespaceConstant;
|
import net.sf.saxon.lib.NamespaceConstant;
|
||||||
*/
|
*/
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Node;
|
import org.w3c.dom.Node;
|
||||||
import org.w3c.dom.NodeList;
|
import org.w3c.dom.NodeList;
|
||||||
@ -60,255 +56,195 @@ import org.xml.sax.InputSource;
|
|||||||
import ru.entaxy.platform.base.support.CommonUtils;
|
import ru.entaxy.platform.base.support.CommonUtils;
|
||||||
|
|
||||||
public class CommonXMLUtils {
|
public class CommonXMLUtils {
|
||||||
public static final Logger log = LoggerFactory.getLogger(CommonXMLUtils.class);
|
|
||||||
private static final String XML_SAX_EXTERNAL_GENERAL_ENTITIES =
|
// GETTING DOCUMENT
|
||||||
"http://xml.org/sax/features/external-general-entities";
|
|
||||||
private static final String XML_SAX_EXTERNAL_PARAMETER_ENTITIES =
|
public static Document getDocument(URL url) throws Exception{
|
||||||
"http://xml.org/sax/features/external-parameter-entities";
|
return getDocument(url.openStream());
|
||||||
|
}
|
||||||
// GETTING DOCUMENT
|
|
||||||
|
public static Document getDocument(InputStream stream) throws Exception {
|
||||||
public static Document getDocument(URL url) throws Exception {
|
return getDocument(false, stream);
|
||||||
return getDocument(url.openStream());
|
}
|
||||||
}
|
public static Document getDocument(boolean namespaceAware, InputStream stream) throws Exception {
|
||||||
|
InputSource is = new InputSource(stream);
|
||||||
public static Document getDocument(InputStream stream) throws Exception {
|
return getDocument(namespaceAware, is);
|
||||||
return getDocument(false, stream);
|
}
|
||||||
}
|
|
||||||
|
public static Document newDocument(boolean namespaceAware) throws Exception{
|
||||||
public static Document getDocument(boolean namespaceAware, InputStream stream) throws Exception {
|
return getDocument(namespaceAware, (File)null);
|
||||||
InputSource is = new InputSource(stream);
|
}
|
||||||
return getDocument(namespaceAware, is);
|
public static Document getDocument(boolean namespaceAware, String path) throws Exception{
|
||||||
}
|
return getDocument(namespaceAware, CommonUtils.isValid(path)?(new File(path)):null);
|
||||||
|
}
|
||||||
public static Document newDocument(boolean namespaceAware) throws Exception {
|
public static Document getDocument(boolean namespaceAware, File file) throws Exception{
|
||||||
return getDocument(namespaceAware, (File) null);
|
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
|
||||||
}
|
dbf.setNamespaceAware(namespaceAware);
|
||||||
|
DocumentBuilder db = dbf.newDocumentBuilder();
|
||||||
public static Document getDocument(boolean namespaceAware, String path) throws Exception {
|
if (file!=null)
|
||||||
return getDocument(namespaceAware, CommonUtils.isValid(path) ? (new File(path)) : null);
|
return db.parse(file);
|
||||||
}
|
else
|
||||||
|
return db.newDocument();
|
||||||
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 = newDocumentBuilderFactoryInstance();
|
|
||||||
|
|
||||||
factory.setNamespaceAware(namespaceAware);
|
|
||||||
DocumentBuilder builder = factory.newDocumentBuilder();
|
|
||||||
Document d = builder.parse(source);
|
|
||||||
return d;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DocumentBuilderFactory newDocumentBuilderFactoryInstance() {
|
|
||||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
|
||||||
|
|
||||||
// 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());
|
|
||||||
}
|
|
||||||
|
|
||||||
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<String, Class<? extends Object>> classMap) throws Exception {
|
|
||||||
Unmarshaller um = context.createUnmarshaller();
|
|
||||||
return jaxbUnmarshall(um, node, classMap);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static JAXBElement<?> jaxbUnmarshall(Unmarshaller um, Node node,
|
|
||||||
HashMap<String, Class<? extends Object>> 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();
|
|
||||||
|
|
||||||
Source inputS = new StreamSource(is);
|
|
||||||
transformer.transform(inputS, result);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
*/
|
public static Document newDocument() throws Exception {
|
||||||
// XPath
|
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();
|
||||||
|
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");
|
||||||
|
|
||||||
|
//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 {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
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();
|
||||||
|
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<String, Class<? extends Object>> classMap) throws Exception{
|
||||||
|
Unmarshaller um = context.createUnmarshaller();
|
||||||
|
return jaxbUnmarshall(um, node, classMap);
|
||||||
|
}
|
||||||
|
public static JAXBElement<?> jaxbUnmarshall(Unmarshaller um, Node node, HashMap<String, Class<? extends Object>> 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();
|
||||||
|
|
||||||
|
Source inputS = new StreamSource(is);
|
||||||
|
transformer.transform(inputS, result);
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
// XPath
|
||||||
|
|
||||||
/* public static XPath createXPath() throws Exception {
|
/* public static XPath createXPath() throws Exception {
|
||||||
XPathFactory factory = XPathFactory.newInstance(NamespaceConstant.OBJECT_MODEL_SAXON,
|
XPathFactory factory = XPathFactory.newInstance(NamespaceConstant.OBJECT_MODEL_SAXON,
|
||||||
"net.sf.saxon.xpath.XPathFactoryImpl", net.sf.saxon.xpath.XPathFactoryImpl.class.getClassLoader());
|
"net.sf.saxon.xpath.XPathFactoryImpl", net.sf.saxon.xpath.XPathFactoryImpl.class.getClassLoader());
|
||||||
XPath xpath = factory.newXPath();
|
XPath xpath = factory.newXPath();
|
||||||
return xpath;
|
return xpath;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getStringXPathResult(org.w3c.dom.Node node, String expression) throws Exception {
|
public static String getStringXPathResult(org.w3c.dom.Node node, String expression) throws Exception {
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>ru.entaxy.esb.platform.runtime</groupId>
|
<groupId>ru.entaxy.esb.platform.runtime</groupId>
|
||||||
<artifactId>base</artifactId>
|
<artifactId>base</artifactId>
|
||||||
<version>1.10.0</version>
|
<version>1.9.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
@ -22,6 +22,19 @@
|
|||||||
</resource>
|
</resource>
|
||||||
</resources>
|
</resources>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-install-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<skip>false</skip>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>com.soebes.maven.plugins</groupId>
|
||||||
|
<artifactId>iterator-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<skip>true</skip>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-resources-plugin</artifactId>
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
@ -40,7 +53,7 @@
|
|||||||
<version>1.12</version>
|
<version>1.12</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>attach-branding-properties</id>
|
<id>attach-artifacts</id>
|
||||||
<phase>package</phase>
|
<phase>package</phase>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>attach-artifact</goal>
|
<goal>attach-artifact</goal>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# ~~~~~~licensing~~~~~~
|
# ~~~~~~licensing~~~~~~
|
||||||
# branding
|
# branding
|
||||||
# ==========
|
# ==========
|
||||||
# Copyright (C) 2020 - 2024 EmDev LLC
|
# Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
# ==========
|
# ==========
|
||||||
# You may not use this file except in accordance with the License Terms of the Copyright
|
# 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
|
# Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>ru.entaxy.esb.platform.runtime</groupId>
|
<groupId>ru.entaxy.esb.platform.runtime</groupId>
|
||||||
<artifactId>base</artifactId>
|
<artifactId>base</artifactId>
|
||||||
<version>1.10.0</version>
|
<version>1.9.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<groupId>ru.entaxy.esb.platform.runtime.base</groupId>
|
<groupId>ru.entaxy.esb.platform.runtime.base</groupId>
|
||||||
<artifactId>config-extensions</artifactId>
|
<artifactId>config-extensions</artifactId>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* config-plugin
|
* config-plugin
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* 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
|
* Configuration plugin providing resolving references from one config to others
|
||||||
* $PID_OF_OTHER_CONFIG{PROPERTY_NAME} e.g.
|
* in a form $PID_OF_OTHER_CONFIG{PROPERTY_NAME}
|
||||||
* $org.ops4j.pax.url.mvn{org.ops4j.pax.url.mvn.localRepository}
|
* e.g. $org.ops4j.pax.url.mvn{org.ops4j.pax.url.mvn.localRepository}
|
||||||
*
|
*
|
||||||
* If pid or property not found no changes are made
|
* If pid or property not found no changes are made
|
||||||
*
|
*
|
||||||
@ -53,58 +53,59 @@ import org.slf4j.LoggerFactory;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Component(service = {ConfigurationPlugin.class}, immediate = true,
|
@Component(service = {ConfigurationPlugin.class}, immediate = true,
|
||||||
property = {
|
property = {
|
||||||
ConfigurationPlugin.CM_RANKING + "=100", "config.plugin.id=ConfigLookupConfigurationPlugin"})
|
ConfigurationPlugin.CM_RANKING + "=100"
|
||||||
|
, "config.plugin.id=ConfigLookupConfigurationPlugin"})
|
||||||
public class ConfigLookupConfigurationPlugin implements ConfigurationPlugin {
|
public class ConfigLookupConfigurationPlugin implements ConfigurationPlugin {
|
||||||
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(ConfigLookupConfigurationPlugin.class);
|
private static final Logger log = LoggerFactory.getLogger(ConfigLookupConfigurationPlugin.class);
|
||||||
|
|
||||||
|
@Reference(cardinality = ReferenceCardinality.MANDATORY)
|
||||||
|
protected ConfigurationAdmin configurationAdmin;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void modifyConfiguration(ServiceReference<?> arg0, Dictionary<String, Object> properties) {
|
||||||
|
for (Enumeration<String> 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<String, Object> 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);
|
||||||
|
|
||||||
@Reference(cardinality = ReferenceCardinality.MANDATORY)
|
}
|
||||||
protected ConfigurationAdmin configurationAdmin;
|
}
|
||||||
|
}
|
||||||
@Override
|
|
||||||
public void modifyConfiguration(ServiceReference<?> arg0, Dictionary<String, Object> properties) {
|
|
||||||
for (Enumeration<String> 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<String, Object> 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);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* configuration-test-1
|
* configuration-test-1
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* configuration-test-1
|
* configuration-test-1
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* configuration-test-1
|
* configuration-test-1
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* configuration-test-1
|
* configuration-test-1
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* configuration-test-1
|
* configuration-test-1
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* ~~~~~~licensing~~~~~~
|
* ~~~~~~licensing~~~~~~
|
||||||
* configuration-test-1
|
* configuration-test-1
|
||||||
* ==========
|
* ==========
|
||||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
* Copyright (C) 2020 - 2023 EmDev LLC
|
||||||
* ==========
|
* ==========
|
||||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
* 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
|
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||||
|
175
platform/runtime/base/connecting/adapter/LICENSE.txt
Normal file
175
platform/runtime/base/connecting/adapter/LICENSE.txt
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ
|
||||||
|
|
||||||
|
Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой)
|
||||||
|
версии лицензии для пробного использования программного обеспечения 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. Если какое-либо положение настоящей Лицензии будет признано судом недействительным,
|
||||||
|
остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать
|
||||||
|
исполнять свои обязанности в соответствии с этими положениями.
|
@ -0,0 +1,175 @@
|
|||||||
|
ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ
|
||||||
|
|
||||||
|
Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой)
|
||||||
|
версии лицензии для пробного использования программного обеспечения 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. Если какое-либо положение настоящей Лицензии будет признано судом недействительным,
|
||||||
|
остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать
|
||||||
|
исполнять свои обязанности в соответствии с этими положениями.
|
@ -0,0 +1,90 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting</groupId>
|
||||||
|
<artifactId>adapter</artifactId>
|
||||||
|
<version>1.9.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting.adapter</groupId>
|
||||||
|
<artifactId>adapters-core</artifactId>
|
||||||
|
<packaging>bundle</packaging>
|
||||||
|
|
||||||
|
<name>ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: ADAPTER CORE</name>
|
||||||
|
<description>ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: ADAPTER CORE</description>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<bundle.osgi.export.pkg>
|
||||||
|
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
|
||||||
|
</bundle.osgi.export.pkg>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.felix</groupId>
|
||||||
|
<artifactId>maven-bundle-plugin</artifactId>
|
||||||
|
<extensions>true</extensions>
|
||||||
|
<configuration>
|
||||||
|
<instructions>
|
||||||
|
<Bundle-Activator>ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.tracker.AdapterTrackerActivator</Bundle-Activator>
|
||||||
|
<_dsannotations>*</_dsannotations>
|
||||||
|
</instructions>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.osgi</groupId>
|
||||||
|
<artifactId>osgi.core</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.code.gson</groupId>
|
||||||
|
<artifactId>gson</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting.generator</groupId>
|
||||||
|
<artifactId>generator-api</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base</groupId>
|
||||||
|
<artifactId>management-core</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting.generator</groupId>
|
||||||
|
<artifactId>generator-factory</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.felix</groupId>
|
||||||
|
<artifactId>org.apache.felix.scr</artifactId>
|
||||||
|
<version>2.1.20</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.osgi</groupId>
|
||||||
|
<artifactId>org.osgi.service.component.annotations</artifactId>
|
||||||
|
<version>1.4.0</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,65 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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<String, String> getOptions() {
|
||||||
|
return new HashMap<>();
|
||||||
|
}
|
||||||
|
public default Map<String, String> getProperties() {
|
||||||
|
return new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@Deprecated
|
||||||
|
public default Blueprint generateBlueprint(String type, Map<String, Object> map) throws Exception {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
public default Generated generate(String type, Map<String, Object> map) throws Exception {
|
||||||
|
return Generated.create();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,206 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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<String, Generator> generatorList = new HashMap<>();
|
||||||
|
protected Map<String, GeneratorDescriptor> 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<AdapterGeneratorElement> 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<AdapterGeneratorElement> 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<String, String> getProperties(){
|
||||||
|
return this.adapterMetadata.getFields()
|
||||||
|
.stream()
|
||||||
|
.filter(field -> field.isProperty())
|
||||||
|
.collect(Collectors.toMap(AdapterFieldElement::getName, AdapterFieldElement::getType));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, String> getOptions(){
|
||||||
|
return this.adapterMetadata.getFields()
|
||||||
|
.stream()
|
||||||
|
.filter(field -> field.isOption())
|
||||||
|
.collect(Collectors.toMap(AdapterFieldElement::getName, AdapterFieldElement::getType));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Generated generate(String type, Map<String, Object> 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);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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<String, String> getOptions();
|
||||||
|
|
||||||
|
// public Map<String, String> getProperties();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,66 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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);
|
||||||
|
}
|
@ -0,0 +1,119 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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<Adapter, ServiceRegistration<AdapterMBean>> 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<AdapterMBean> 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<AdapterMBean> reg = this.mbeans.get(adapter);
|
||||||
|
if (reg != null)
|
||||||
|
reg.unregister();
|
||||||
|
this.mbeans.remove(adapter);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(String value) {
|
||||||
|
log.info(">> EXECUTED");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,77 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,93 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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<String, Object> 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<String, Object> getConfigMap() {
|
||||||
|
if (configMap.isEmpty() && (this.config != null))
|
||||||
|
configMap = JSONUtils.element2map(this.config);
|
||||||
|
return configMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConfigMap(Map<String, Object> 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 + "'}";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,85 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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<AdapterFieldElement> fields = new ArrayList<>();
|
||||||
|
|
||||||
|
public List<AdapterGeneratorElement> getGenerators() {
|
||||||
|
return generators;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGenerators(List<AdapterGeneratorElement> generators) {
|
||||||
|
this.generators = generators;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected List<AdapterGeneratorElement> generators = new ArrayList();
|
||||||
|
|
||||||
|
public void addField(AdapterFieldElement field) {
|
||||||
|
this.fields.add(field);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getFieldsCount() {
|
||||||
|
return this.fields.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<AdapterFieldElement> 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,97 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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<Object> objects = new ArrayList<>();
|
||||||
|
protected List<ServiceRegistration> 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<String, String> 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<String, String> entry: adapter.getProperties().entrySet())
|
||||||
|
// props += entry.getKey() + ": " + entry.getValue() + "\n";
|
||||||
|
// String opts = "\n";
|
||||||
|
// for (Map.Entry<String, String> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,72 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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<String> 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,49 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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<ServiceReference<Adapter>> referenceList = bundleContext.getServiceReferences(Adapter.class, filter);
|
||||||
|
Adapter adapter = bundleContext.getService(referenceList.iterator().next());
|
||||||
|
|
||||||
|
return adapter;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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";
|
||||||
|
}
|
@ -0,0 +1,175 @@
|
|||||||
|
ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ
|
||||||
|
|
||||||
|
Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой)
|
||||||
|
версии лицензии для пробного использования программного обеспечения 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. Если какое-либо положение настоящей Лицензии будет признано судом недействительным,
|
||||||
|
остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать
|
||||||
|
исполнять свои обязанности в соответствии с этими положениями.
|
@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting</groupId>
|
||||||
|
<artifactId>adapter</artifactId>
|
||||||
|
<version>1.9.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting.adapter</groupId>
|
||||||
|
<artifactId>amqp-adapter</artifactId>
|
||||||
|
<packaging>bundle</packaging>
|
||||||
|
|
||||||
|
<name>ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: AMQP ADAPTER</name>
|
||||||
|
<description>ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: AMQP ADAPTER</description>
|
||||||
|
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<bundle.osgi.dynamicimport.pkg>*</bundle.osgi.dynamicimport.pkg>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.felix</groupId>
|
||||||
|
<artifactId>maven-bundle-plugin</artifactId>
|
||||||
|
<extensions>true</extensions>
|
||||||
|
<configuration>
|
||||||
|
<instructions>
|
||||||
|
<Entaxy-Adapter>true</Entaxy-Adapter>
|
||||||
|
<Entaxy-Adapter-Class />
|
||||||
|
</instructions>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"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": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
[#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']
|
||||||
|
<from uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/>
|
@ -0,0 +1,86 @@
|
|||||||
|
[#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]
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
|
||||||
|
xsi:schemaLocation="
|
||||||
|
http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"
|
||||||
|
>
|
||||||
|
|
||||||
|
<cm:property-placeholder persistent-id="[=connection.configurationPid]"
|
||||||
|
update-strategy="reload">
|
||||||
|
[#if connection.properties??]
|
||||||
|
<cm:default-properties>
|
||||||
|
[#list connection.properties as key, value]
|
||||||
|
<cm:property name="[=connection.configurationPid].[=key]" value="[=value]"/>
|
||||||
|
[/#list]
|
||||||
|
</cm:default-properties>
|
||||||
|
[/#if]
|
||||||
|
</cm:property-placeholder>
|
||||||
|
|
||||||
|
<service interface="org.apache.camel.Component" ref="[=connection.name]">
|
||||||
|
<service-properties>
|
||||||
|
<entry key="connection.name" value="[=connection.name]"/>
|
||||||
|
</service-properties>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<bean id="[=connection.name]" class="org.apache.camel.component.amqp.AMQPComponent">
|
||||||
|
[#-- //TODO change template for property reference usage instead of text value --]
|
||||||
|
<property name="connectionFactory" ref="connectionFactory"/>
|
||||||
|
[#if connection.properties??]
|
||||||
|
[#list connection.properties?keys?filter(exceptFactoryProperties) as key]
|
||||||
|
<property name="[=key]" value="[='$']{[=connection.configurationPid].[=key]}"/>
|
||||||
|
[/#list]
|
||||||
|
[/#if]
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="connectionFactory" class="org.apache.qpid.jms.JmsConnectionFactory">
|
||||||
|
<argument index="0" value="[='$']{[=connection.configurationPid].username}"/>
|
||||||
|
<argument index="1" value="[='$']{[=connection.configurationPid].password}"/>
|
||||||
|
<argument index="2" value="[='$']{[=connection.configurationPid].url}"/>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
</blueprint>
|
@ -0,0 +1,48 @@
|
|||||||
|
[#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]
|
||||||
|
|
@ -0,0 +1,42 @@
|
|||||||
|
[#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~~~~~~
|
||||||
|
|
||||||
|
--]
|
||||||
|
<reference id="[=connection.name]" interface="org.apache.camel.Component"
|
||||||
|
filter="(connection.name=[=connection.name])"/>
|
@ -0,0 +1,42 @@
|
|||||||
|
[#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']
|
||||||
|
<to uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/>
|
@ -0,0 +1,175 @@
|
|||||||
|
ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ
|
||||||
|
|
||||||
|
Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой)
|
||||||
|
версии лицензии для пробного использования программного обеспечения 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. Если какое-либо положение настоящей Лицензии будет признано судом недействительным,
|
||||||
|
остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать
|
||||||
|
исполнять свои обязанности в соответствии с этими положениями.
|
@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting</groupId>
|
||||||
|
<artifactId>adapter</artifactId>
|
||||||
|
<version>1.9.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting.adapter</groupId>
|
||||||
|
<artifactId>artemis-adapter</artifactId>
|
||||||
|
<packaging>bundle</packaging>
|
||||||
|
|
||||||
|
<name>ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: ARTEMIS ADAPTER</name>
|
||||||
|
<description>ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: ARTEMIS ADAPTER</description>
|
||||||
|
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<bundle.osgi.dynamicimport.pkg>*</bundle.osgi.dynamicimport.pkg>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.felix</groupId>
|
||||||
|
<artifactId>maven-bundle-plugin</artifactId>
|
||||||
|
<extensions>true</extensions>
|
||||||
|
<configuration>
|
||||||
|
<instructions>
|
||||||
|
<Entaxy-Adapter>true</Entaxy-Adapter>
|
||||||
|
<Entaxy-Adapter-Class />
|
||||||
|
</instructions>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
@ -0,0 +1,694 @@
|
|||||||
|
{
|
||||||
|
"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": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
[#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']
|
||||||
|
<from uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/>
|
@ -0,0 +1,94 @@
|
|||||||
|
[#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]
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
|
||||||
|
xsi:schemaLocation="
|
||||||
|
http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"
|
||||||
|
>
|
||||||
|
|
||||||
|
<cm:property-placeholder persistent-id="[=connection.configurationPid]"
|
||||||
|
update-strategy="reload">
|
||||||
|
[#if connection.properties??]
|
||||||
|
<cm:default-properties>
|
||||||
|
[#list connection.properties as key, value]
|
||||||
|
<cm:property name="[=connection.configurationPid].[=key]" value="[=value]"/>
|
||||||
|
[/#list]
|
||||||
|
</cm:default-properties>
|
||||||
|
[/#if]
|
||||||
|
</cm:property-placeholder>
|
||||||
|
|
||||||
|
<service interface="org.apache.camel.Component" ref="[=connection.name]">
|
||||||
|
<service-properties>
|
||||||
|
<entry key="connection.name" value="[=connection.name]"/>
|
||||||
|
</service-properties>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<bean id="[=connection.name]" class="org.apache.camel.component.jms.JmsComponent">
|
||||||
|
[#-- //TODO change template for property reference usage instead of text value --]
|
||||||
|
<property name="connectionFactory" ref="pooledConnectionFactory"/>
|
||||||
|
[#if connection.properties??]
|
||||||
|
[#list connection.properties?keys?filter(exceptFactoryProperties) as key]
|
||||||
|
<property name="[=key]" value="[='$']{[=connection.configurationPid].[=key]}"/>
|
||||||
|
[/#list]
|
||||||
|
[/#if]
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="pooledConnectionFactory" class="org.messaginghub.pooled.jms.JmsPoolConnectionFactory"
|
||||||
|
init-method="start" destroy-method="stop">
|
||||||
|
<property name="maxConnections" value="[='$']{[=connection.configurationPid].maxConnections}"/>
|
||||||
|
<property name="maxSessionsPerConnection"
|
||||||
|
value="[='$']{[=connection.configurationPid].maxSessionsPerConnection}"/>
|
||||||
|
<property name="connectionFactory" ref="artemisConnectionFactory"/>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="artemisConnectionFactory" class="org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory">
|
||||||
|
<argument index="0" value="[='$']{[=connection.configurationPid].url}"/>
|
||||||
|
<argument index="1" value="[='$']{[=connection.configurationPid].username}"/>
|
||||||
|
<argument index="2" value="[='$']{[=connection.configurationPid].password}"/>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
</blueprint>
|
@ -0,0 +1,47 @@
|
|||||||
|
[#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]
|
@ -0,0 +1,42 @@
|
|||||||
|
[#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~~~~~~
|
||||||
|
|
||||||
|
--]
|
||||||
|
<reference id="[=connection.name]" interface="org.apache.camel.Component"
|
||||||
|
filter="(connection.name=[=connection.name])"/>
|
@ -0,0 +1,42 @@
|
|||||||
|
[#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']
|
||||||
|
<to uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/>
|
@ -0,0 +1,175 @@
|
|||||||
|
ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ
|
||||||
|
|
||||||
|
Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой)
|
||||||
|
версии лицензии для пробного использования программного обеспечения 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. Если какое-либо положение настоящей Лицензии будет признано судом недействительным,
|
||||||
|
остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать
|
||||||
|
исполнять свои обязанности в соответствии с этими положениями.
|
@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting</groupId>
|
||||||
|
<artifactId>adapter</artifactId>
|
||||||
|
<version>1.9.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting.adapter</groupId>
|
||||||
|
<artifactId>artemis-amqp-adapter</artifactId>
|
||||||
|
<packaging>bundle</packaging>
|
||||||
|
|
||||||
|
<name>ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: ARTEMIS AMQP ADAPTER</name>
|
||||||
|
<description>ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: ARTEMIS AMQP ADAPTER</description>
|
||||||
|
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<bundle.osgi.dynamicimport.pkg>*</bundle.osgi.dynamicimport.pkg>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.felix</groupId>
|
||||||
|
<artifactId>maven-bundle-plugin</artifactId>
|
||||||
|
<extensions>true</extensions>
|
||||||
|
<configuration>
|
||||||
|
<instructions>
|
||||||
|
<Entaxy-Adapter>true</Entaxy-Adapter>
|
||||||
|
<Entaxy-Adapter-Class />
|
||||||
|
</instructions>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"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": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
[#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']
|
||||||
|
<from uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/>
|
@ -0,0 +1,86 @@
|
|||||||
|
[#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]
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
|
||||||
|
xsi:schemaLocation="
|
||||||
|
http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"
|
||||||
|
>
|
||||||
|
|
||||||
|
<cm:property-placeholder persistent-id="[=connection.configurationPid]"
|
||||||
|
update-strategy="reload">
|
||||||
|
[#if connection.properties??]
|
||||||
|
<cm:default-properties>
|
||||||
|
[#list connection.properties as key, value]
|
||||||
|
<cm:property name="[=connection.configurationPid].[=key]" value="[=value]"/>
|
||||||
|
[/#list]
|
||||||
|
</cm:default-properties>
|
||||||
|
[/#if]
|
||||||
|
</cm:property-placeholder>
|
||||||
|
|
||||||
|
<service interface="org.apache.camel.Component" ref="[=connection.name]">
|
||||||
|
<service-properties>
|
||||||
|
<entry key="connection.name" value="[=connection.name]"/>
|
||||||
|
</service-properties>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<bean id="[=connection.name]" class="org.apache.camel.component.amqp.AMQPComponent">
|
||||||
|
[#-- //TODO change template for property reference usage instead of text value --]
|
||||||
|
<property name="connectionFactory" ref="connectionFactory"/>
|
||||||
|
[#if connection.properties??]
|
||||||
|
[#list connection.properties?keys?filter(exceptFactoryProperties) as key]
|
||||||
|
<property name="[=key]" value="[='$']{[=connection.configurationPid].[=key]}"/>
|
||||||
|
[/#list]
|
||||||
|
[/#if]
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="connectionFactory" class="org.apache.qpid.jms.JmsConnectionFactory">
|
||||||
|
<argument index="0" value="[='$']{[=connection.configurationPid].username}"/>
|
||||||
|
<argument index="1" value="[='$']{[=connection.configurationPid].password}"/>
|
||||||
|
<argument index="2" value="[='$']{[=connection.configurationPid].url}"/>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
</blueprint>
|
@ -0,0 +1,48 @@
|
|||||||
|
[#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]
|
||||||
|
|
@ -0,0 +1,42 @@
|
|||||||
|
[#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~~~~~~
|
||||||
|
|
||||||
|
--]
|
||||||
|
<reference id="[=connection.name]" interface="org.apache.camel.Component"
|
||||||
|
filter="(connection.name=[=connection.name])"/>
|
@ -0,0 +1,42 @@
|
|||||||
|
[#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']
|
||||||
|
<to uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/>
|
@ -0,0 +1,175 @@
|
|||||||
|
ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ
|
||||||
|
|
||||||
|
Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой)
|
||||||
|
версии лицензии для пробного использования программного обеспечения 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. Если какое-либо положение настоящей Лицензии будет признано судом недействительным,
|
||||||
|
остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать
|
||||||
|
исполнять свои обязанности в соответствии с этими положениями.
|
@ -0,0 +1,61 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting</groupId>
|
||||||
|
<artifactId>adapter</artifactId>
|
||||||
|
<version>1.9.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting.adapter</groupId>
|
||||||
|
<artifactId>file-adapter</artifactId>
|
||||||
|
<packaging>bundle</packaging>
|
||||||
|
|
||||||
|
<name>ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: FILE ADAPTER</name>
|
||||||
|
<description>ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: FILE ADAPTER</description>
|
||||||
|
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<bundle.osgi.dynamicimport.pkg>*</bundle.osgi.dynamicimport.pkg>
|
||||||
|
<bundle.osgi.export.pkg>ru.entaxy.platform.adapter.file</bundle.osgi.export.pkg>
|
||||||
|
<bundle.osgi.private.pkg>template,
|
||||||
|
ru.entaxy.adapter</bundle.osgi.private.pkg>
|
||||||
|
<!-- <bundle.osgi.private.pkg>ru.entaxy.adapter</bundle.osgi.private.pkg>-->
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.felix</groupId>
|
||||||
|
<artifactId>maven-bundle-plugin</artifactId>
|
||||||
|
<extensions>true</extensions>
|
||||||
|
<configuration>
|
||||||
|
<instructions>
|
||||||
|
<!-- Entaxy-Adapter>true</Entaxy-Adapter>
|
||||||
|
<Entaxy-Adapter-Class / -->
|
||||||
|
<Entaxy-Factory-Provider>true</Entaxy-Factory-Provider>
|
||||||
|
<Entaxy-Template-Provider>true</Entaxy-Template-Provider>
|
||||||
|
</instructions>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.camel</groupId>
|
||||||
|
<artifactId>camel-file</artifactId>
|
||||||
|
<version>${camel.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.camel</groupId>
|
||||||
|
<artifactId>camel-util</artifactId>
|
||||||
|
<version>${camel.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base</groupId>
|
||||||
|
<artifactId>base-support</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
@ -0,0 +1,75 @@
|
|||||||
|
/*-
|
||||||
|
* ~~~~~~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<File> buildFileEndpoint(String uri, String remaining, Map<String, Object> 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,540 @@
|
|||||||
|
{
|
||||||
|
"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": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,55 @@
|
|||||||
|
[#ftl attributes={"generated.type":"blueprint"}]
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
|
||||||
|
xsi:schemaLocation="
|
||||||
|
http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"
|
||||||
|
>
|
||||||
|
|
||||||
|
<service interface="org.apache.camel.Component" ref="[=objectId]">
|
||||||
|
<service-properties>
|
||||||
|
<entry key="connection.name" value="[=objectId]"/>
|
||||||
|
</service-properties>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
[#if properties??]
|
||||||
|
[#if properties.ext_createResourceProvider??]
|
||||||
|
[#if properties.ext_createResourceProvider]
|
||||||
|
<!-- RESOURCE PROVIDER BEAN -->
|
||||||
|
<bean id="[=objectId].resourceProvider" class="ru.entaxy.esb.resources.provider.FileResourceProvider">
|
||||||
|
<property name="protocol" value="[=objectId]" />
|
||||||
|
<property name="rootDirectory" value="[=properties.rootDirectory]" />
|
||||||
|
[#if properties.ext_ignoreFolders??]
|
||||||
|
<property name="ignoreFolders" value="[=properties.ext_ignoreFolders]" />
|
||||||
|
[/#if]
|
||||||
|
[#if properties.ext_ignoreResources??]
|
||||||
|
<property name="ignoreResources" value="[=properties.ext_ignoreResources]" />
|
||||||
|
[/#if]
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<service interface="ru.entaxy.esb.resources.EntaxyResourceProvider" ref="[=objectId].resourceProvider">
|
||||||
|
<service-properties>
|
||||||
|
<entry key="connection.name" value="[=objectId]"/>
|
||||||
|
<entry key="protocol" value="[=objectId]"/>
|
||||||
|
</service-properties>
|
||||||
|
</service>
|
||||||
|
[/#if]
|
||||||
|
[/#if]
|
||||||
|
[/#if]
|
||||||
|
|
||||||
|
<bean id="[=objectId]" class="ru.entaxy.platform.adapter.file.ExtendedFileComponent">
|
||||||
|
[#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 --]
|
||||||
|
<property name="[=key[5..]]" value="[=value]"/>
|
||||||
|
[#else]
|
||||||
|
<property name="[=key]" value="[=value]"/>
|
||||||
|
[/#if]
|
||||||
|
[/#if]
|
||||||
|
[/#list]
|
||||||
|
[/#if]
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
</blueprint>
|
@ -0,0 +1,39 @@
|
|||||||
|
[#ftl attributes={"generated.type":"blueprint.fragment"}]
|
||||||
|
<!-- <service interface="org.apache.camel.Component" ref="[=objectId]">
|
||||||
|
<service-properties>
|
||||||
|
<entry key="connection.name" value="[=objectId]"/>
|
||||||
|
</service-properties>
|
||||||
|
</service> -->
|
||||||
|
|
||||||
|
[#if properties??]
|
||||||
|
[#if properties.ext_createResourceProvider??]
|
||||||
|
[#if properties.ext_createResourceProvider]
|
||||||
|
<!-- RESOURCE PROVIDER BEAN -->
|
||||||
|
<bean id="[=objectId].resourceProvider" class="ru.entaxy.esb.resources.provider.FileResourceProvider">
|
||||||
|
<property name="protocol" value="[=objectId]" />
|
||||||
|
<property name="rootDirectory" value="[=properties.rootDirectory]" />
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<service interface="ru.entaxy.esb.resources.EntaxyResourceProvider" ref="[=objectId].resourceProvider">
|
||||||
|
<service-properties>
|
||||||
|
<entry key="connection.name" value="[=objectId]"/>
|
||||||
|
<entry key="protocol" value="[=objectId]"/>
|
||||||
|
</service-properties>
|
||||||
|
</service>
|
||||||
|
[/#if]
|
||||||
|
[/#if]
|
||||||
|
[/#if]
|
||||||
|
|
||||||
|
<bean id="[=objectId]" class="ru.entaxy.platform.adapter.file.ExtendedFileComponent">
|
||||||
|
[#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 --]
|
||||||
|
<property name="[=key[5..]]" value="[=value]"/>
|
||||||
|
[#else]
|
||||||
|
<property name="[=key]" value="[=value]"/>
|
||||||
|
[/#if]
|
||||||
|
[/#if]
|
||||||
|
[/#list]
|
||||||
|
[/#if]
|
||||||
|
</bean>
|
@ -0,0 +1,3 @@
|
|||||||
|
[#ftl attributes={"generated.type":"blueprint.fragment"}]
|
||||||
|
<reference id="[=objectId]" interface="org.apache.camel.Component"
|
||||||
|
filter="(connection.name=[=objectId])"/>
|
@ -0,0 +1,42 @@
|
|||||||
|
[#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']
|
||||||
|
<from uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/>
|
@ -0,0 +1,74 @@
|
|||||||
|
[#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~~~~~~
|
||||||
|
|
||||||
|
--]
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
|
||||||
|
xsi:schemaLocation="
|
||||||
|
http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"
|
||||||
|
>
|
||||||
|
|
||||||
|
<cm:property-placeholder persistent-id="[=connection.configurationPid]"
|
||||||
|
update-strategy="reload">
|
||||||
|
[#if connection.properties??]
|
||||||
|
<cm:default-properties>
|
||||||
|
[#list connection.properties as key, value]
|
||||||
|
<cm:property name="[=connection.configurationPid].[=key]" value="[=value]"/>
|
||||||
|
[/#list]
|
||||||
|
</cm:default-properties>
|
||||||
|
[/#if]
|
||||||
|
</cm:property-placeholder>
|
||||||
|
|
||||||
|
<service interface="org.apache.camel.Component" ref="[=connection.name]">
|
||||||
|
<service-properties>
|
||||||
|
<entry key="connection.name" value="[=connection.name]"/>
|
||||||
|
</service-properties>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<bean id="[=connection.name]" class="ru.entaxy.platform.adapter.file.ExtendedFileComponent">
|
||||||
|
[#if connection.properties??]
|
||||||
|
[#list connection.properties as key, value]
|
||||||
|
<property name="[=key]" value="[='$']{[=connection.configurationPid].[=key]}"/>
|
||||||
|
[/#list]
|
||||||
|
[/#if]
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
</blueprint>
|
@ -0,0 +1,47 @@
|
|||||||
|
[#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]
|
@ -0,0 +1,42 @@
|
|||||||
|
[#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~~~~~~
|
||||||
|
|
||||||
|
--]
|
||||||
|
<reference id="[=connection.name]" interface="org.apache.camel.Component"
|
||||||
|
filter="(connection.name=[=connection.name])"/>
|
@ -0,0 +1,42 @@
|
|||||||
|
[#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']
|
||||||
|
<to uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/>
|
175
platform/runtime/base/connecting/adapter/h2-adapter/LICENSE.txt
Normal file
175
platform/runtime/base/connecting/adapter/h2-adapter/LICENSE.txt
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ
|
||||||
|
|
||||||
|
Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой)
|
||||||
|
версии лицензии для пробного использования программного обеспечения 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. Если какое-либо положение настоящей Лицензии будет признано судом недействительным,
|
||||||
|
остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать
|
||||||
|
исполнять свои обязанности в соответствии с этими положениями.
|
47
platform/runtime/base/connecting/adapter/h2-adapter/pom.xml
Normal file
47
platform/runtime/base/connecting/adapter/h2-adapter/pom.xml
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting</groupId>
|
||||||
|
<artifactId>adapter</artifactId>
|
||||||
|
<version>1.9.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting.adapter</groupId>
|
||||||
|
<artifactId>h2-adapter</artifactId>
|
||||||
|
<packaging>bundle</packaging>
|
||||||
|
|
||||||
|
<name>ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: H2 ADAPTER</name>
|
||||||
|
<description>ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: H2 ADAPTER</description>
|
||||||
|
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<bundle.osgi.dynamicimport.pkg>*</bundle.osgi.dynamicimport.pkg>
|
||||||
|
<h2.version>1.4.199</h2.version>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.felix</groupId>
|
||||||
|
<artifactId>maven-bundle-plugin</artifactId>
|
||||||
|
<extensions>true</extensions>
|
||||||
|
<configuration>
|
||||||
|
<instructions>
|
||||||
|
<Entaxy-Adapter>true</Entaxy-Adapter>
|
||||||
|
<Entaxy-Adapter-Class />
|
||||||
|
</instructions>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.camel</groupId>
|
||||||
|
<artifactId>camel-jdbc</artifactId>
|
||||||
|
<version>${camel.version}</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
@ -0,0 +1,34 @@
|
|||||||
|
###
|
||||||
|
# ~~~~~~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
|
@ -0,0 +1,134 @@
|
|||||||
|
{
|
||||||
|
"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": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
[#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~~~~~~
|
||||||
|
|
||||||
|
--]
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
|
||||||
|
xsi:schemaLocation="
|
||||||
|
http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"
|
||||||
|
>
|
||||||
|
|
||||||
|
<cm:property-placeholder persistent-id="[=connection.configurationPid]"
|
||||||
|
update-strategy="reload">
|
||||||
|
[#if connection.properties??]
|
||||||
|
<cm:default-properties>
|
||||||
|
[#list connection.properties as key, value]
|
||||||
|
<cm:property name="[=connection.configurationPid].[=key]" value="[=value]"/>
|
||||||
|
[/#list]
|
||||||
|
</cm:default-properties>
|
||||||
|
[/#if]
|
||||||
|
</cm:property-placeholder>
|
||||||
|
|
||||||
|
<service interface="org.apache.camel.Component" ref="[=connection.name]">
|
||||||
|
<service-properties>
|
||||||
|
<entry key="connection.name" value="[=connection.name]"/>
|
||||||
|
</service-properties>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<bean id="[=connection.name]" class="org.apache.camel.component.jdbc.JdbcComponent">
|
||||||
|
[#-- //TODO change template for property reference usage instead of text value --]
|
||||||
|
<property name="dataSource" ref="dataSource"/>
|
||||||
|
[#if connection.properties??]
|
||||||
|
[#list connection.properties as key, value]
|
||||||
|
<property name="[=key]" value="[='$']{[=connection.configurationPid].[=key]}"/>
|
||||||
|
[/#list]
|
||||||
|
[/#if]
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<reference id="dataSource" interface="javax.sql.DataSource" filter="(osgi.jndi.service.name=[=connection.pathParameter])"
|
||||||
|
availability="mandatory"/>
|
||||||
|
|
||||||
|
</blueprint>
|
@ -0,0 +1,47 @@
|
|||||||
|
[#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]
|
@ -0,0 +1,42 @@
|
|||||||
|
[#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~~~~~~
|
||||||
|
|
||||||
|
--]
|
||||||
|
<reference id="[=connection.name]" interface="org.apache.camel.Component"
|
||||||
|
filter="(connection.name=[=connection.name])"/>
|
@ -0,0 +1,42 @@
|
|||||||
|
[#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']
|
||||||
|
<to uri="[=connection.name]:entaxy[=queryParameters]"/>
|
175
platform/runtime/base/connecting/adapter/jms-adapter/LICENSE.txt
Normal file
175
platform/runtime/base/connecting/adapter/jms-adapter/LICENSE.txt
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ
|
||||||
|
|
||||||
|
Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой)
|
||||||
|
версии лицензии для пробного использования программного обеспечения 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. Если какое-либо положение настоящей Лицензии будет признано судом недействительным,
|
||||||
|
остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать
|
||||||
|
исполнять свои обязанности в соответствии с этими положениями.
|
38
platform/runtime/base/connecting/adapter/jms-adapter/pom.xml
Normal file
38
platform/runtime/base/connecting/adapter/jms-adapter/pom.xml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting</groupId>
|
||||||
|
<artifactId>adapter</artifactId>
|
||||||
|
<version>1.9.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>ru.entaxy.esb.platform.runtime.base.connecting.adapter</groupId>
|
||||||
|
<artifactId>jms-adapter</artifactId>
|
||||||
|
<packaging>bundle</packaging>
|
||||||
|
|
||||||
|
<name>ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: JMS ADAPTER</name>
|
||||||
|
<description>ENTAXY :: PLATFORM :: RUNTIME :: BASE :: CONNECTING :: ADAPTER :: JMS ADAPTER</description>
|
||||||
|
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<bundle.osgi.dynamicimport.pkg>*</bundle.osgi.dynamicimport.pkg>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.felix</groupId>
|
||||||
|
<artifactId>maven-bundle-plugin</artifactId>
|
||||||
|
<extensions>true</extensions>
|
||||||
|
<configuration>
|
||||||
|
<instructions>
|
||||||
|
<Entaxy-Adapter>true</Entaxy-Adapter>
|
||||||
|
<Entaxy-Adapter-Class />
|
||||||
|
</instructions>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user