Merge pull request 'release version 1.10.0' (#14) from 1.10.x into master
Reviewed-on: #14
This commit is contained in:
		| @@ -3,7 +3,7 @@ | ||||
|     <parent> | ||||
|         <artifactId>root</artifactId> | ||||
|         <groupId>ru.entaxy.esb</groupId> | ||||
|         <version>1.9.0</version> | ||||
|         <version>1.10.0</version> | ||||
|     </parent> | ||||
|     <modelVersion>4.0.0</modelVersion> | ||||
|  | ||||
| @@ -14,6 +14,7 @@ | ||||
|  | ||||
|     <modules> | ||||
|         <module>runtime</module> | ||||
|         <module>integration</module> | ||||
|     </modules> | ||||
|  | ||||
|     <profiles> | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
|   <parent> | ||||
|     <groupId>ru.entaxy.esb.platform.runtime</groupId> | ||||
|     <artifactId>base</artifactId> | ||||
|     <version>1.9.0</version> | ||||
|     <version>1.10.0</version> | ||||
|   </parent> | ||||
|   <groupId>ru.entaxy.esb.platform.runtime.base</groupId> | ||||
|   <artifactId>base-support</artifactId> | ||||
| @@ -17,11 +17,16 @@ | ||||
|   		ru.entaxy.platform.base.support.xml, | ||||
|   		ru.entaxy.platform.base.support.osgi, | ||||
|   		ru.entaxy.platform.base.support.osgi.bundle, | ||||
|   		ru.entaxy.platform.base.support.osgi.feature, | ||||
|   		ru.entaxy.platform.base.support.osgi.service, | ||||
|   		ru.entaxy.platform.base.support.osgi.tracker, | ||||
|   		ru.entaxy.platform.base.support.osgi.tracker.filter, | ||||
|   		ru.entaxy.platform.base.support.osgi.filter | ||||
|   		ru.entaxy.platform.base.support.osgi.filter, | ||||
|   		ru.entaxy.platform.base.support.karaf.shell | ||||
|   	</bundle.osgi.export.pkg> | ||||
| 	<bundle.osgi.private.pkg> | ||||
| 		org.apache.felix.gogo.runtime.threadio | ||||
| 	</bundle.osgi.private.pkg>  	 | ||||
|   </properties> | ||||
|    | ||||
|   <dependencies> | ||||
| @@ -48,8 +53,29 @@ | ||||
|     	<artifactId>commons-codec</artifactId> | ||||
|     </dependency> | ||||
|     <dependency> | ||||
|         <groupId>com.google.code.gson</groupId> | ||||
|         <artifactId>gson</artifactId> | ||||
| 		<groupId>ru.entaxy.bundles-repacked</groupId> | ||||
| 		<artifactId>ru.entaxy.bundles-repacked.com.google.code.gson-2.8.5.entaxy</artifactId> | ||||
| 		<version>${gson.version}-ENTAXY</version> | ||||
|     </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> | ||||
| </project> | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * base-support | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
| @@ -33,6 +33,7 @@ import java.util.Dictionary; | ||||
| import java.util.Enumeration; | ||||
| import java.util.HashMap; | ||||
| import java.util.Iterator; | ||||
| import java.util.LinkedHashMap; | ||||
| import java.util.List; | ||||
| import java.util.ListIterator; | ||||
| import java.util.Map; | ||||
| @@ -49,243 +50,256 @@ import org.apache.commons.lang3.StringUtils; | ||||
|  * | ||||
|  */ | ||||
| public class CommonUtils { | ||||
| 	 | ||||
| 	public static final String GUID_0	= "00000000-0000-0000-0000-000000000000"; | ||||
| 	public static final String GUID_f	= "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF"; | ||||
| 	public static final String NULL_GUID_	= GUID_0; | ||||
| 	 | ||||
| 	public static final String PACKET_TYPE_PARAM_NAME = "packetType"; | ||||
|  | ||||
| 	public static class Path { | ||||
| 		 | ||||
| 		public static final String DEFAULT_SEPARATOR = "/"; | ||||
| 		 | ||||
| 		protected String separator = DEFAULT_SEPARATOR; | ||||
| 		protected List<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 GUID_0 = "00000000-0000-0000-0000-000000000000"; | ||||
|     public static final String GUID_f = "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF"; | ||||
|     public static final String NULL_GUID_ = GUID_0; | ||||
|  | ||||
| 	/** | ||||
| 	 * Generates GUID consisting of specified char | ||||
| 	 * @param c | ||||
| 	 * @return | ||||
| 	 */ | ||||
| 	public static String getGUID(char c) { | ||||
| 		return uid2guid(StringUtils.leftPad("", 32, c)); | ||||
| 	} | ||||
| 	 | ||||
| 	/** | ||||
| 	 * Converts UUID to GUID | ||||
| 	 * @param uid | ||||
| 	 * @return | ||||
| 	 */ | ||||
| 	public static String uid2guid(String uid){ | ||||
| 		return uid.replaceFirst("(.{8})(.{4})(.{4})(.{4})(.{8})", "$1-$2-$3-$4-$5").toUpperCase(); | ||||
| 	} | ||||
| 	 | ||||
| 	/** | ||||
| 	 * Converts GUID to UUID | ||||
| 	 * @param uid | ||||
| 	 * @return | ||||
| 	 */ | ||||
| 	public static String guid2uid(String guid){ | ||||
| 		return guid.toLowerCase().replace("-", ""); | ||||
| 	} | ||||
| 	 | ||||
| 	/** | ||||
| 	 * Checks if the string is not null and has something inside after trim | ||||
| 	 *  | ||||
| 	 * @param s | ||||
| 	 * @return | ||||
| 	 */ | ||||
| 	public static boolean isValid(String s){ | ||||
| 		if (s==null) | ||||
| 			return false; | ||||
| 		return s.trim().length()>0; | ||||
| 	} | ||||
| 	 | ||||
| 	/** | ||||
| 	 *  | ||||
| 	 * @param s string to examine | ||||
| 	 * @param def default value | ||||
| 	 * @return s if isValid(s), otherwise def | ||||
| 	 */ | ||||
| 	public static String getValid(String s, String def){ | ||||
| 		return isValid(s)?s:def; | ||||
| 	} | ||||
| 	 | ||||
| 	public static String padLeft(String data, int length){ | ||||
| 		return padLeft(data, length, ' '); | ||||
| 	} | ||||
| 	public static String padRight(String data, int length){ | ||||
| 		return padRight(data, length, ' '); | ||||
| 	} | ||||
|     public static final String PACKET_TYPE_PARAM_NAME = "packetType"; | ||||
|  | ||||
| 	public static String padBoth(String data, int length){ | ||||
| 		return padBoth(data, length, ' '); | ||||
| 	} | ||||
|     public static class Path { | ||||
|  | ||||
| 	public static String padLeft(String data, int length, Character c){ | ||||
| 		String val = data; | ||||
| 		if (data==null) | ||||
| 			val = ""; | ||||
| 		while (val.length()<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 final String DEFAULT_SEPARATOR = "/"; | ||||
|  | ||||
| 	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; | ||||
| 	} | ||||
|         protected String separator = DEFAULT_SEPARATOR; | ||||
|         protected List<String> data = new ArrayList<>(); | ||||
|  | ||||
| 	public static void stream2file(InputStream input, String file) throws Exception { | ||||
| 		File f = new File(file); | ||||
| 		FileOutputStream output = new FileOutputStream(f); | ||||
| 		IOUtils.copy(input, output); | ||||
| 		output.close(); | ||||
| 	} | ||||
| 	 | ||||
| 	public static <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 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(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 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~~~~~~ | ||||
|  * test-producers | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
| @@ -25,54 +25,53 @@ | ||||
|  */ | ||||
| package ru.entaxy.platform.base.support; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.LinkedList; | ||||
| import java.util.List; | ||||
| import java.util.stream.Collectors; | ||||
|  | ||||
| public class DependencySorter { | ||||
|  | ||||
| 	public static interface DependencyProvider<T> { | ||||
| 		List<T> getDependencies(T inspectedObject); | ||||
| 	} | ||||
| 	 | ||||
| 	public static <T> List<T> getSortedList(List<T> origin, DependencyProvider<T> provider) throws Exception { | ||||
| 		List<T> result = new LinkedList<>(); | ||||
| 		 | ||||
| 		// add independent objects | ||||
| 		result.addAll( | ||||
| 			origin.stream().filter(obj -> provider.getDependencies(obj).isEmpty()) | ||||
| 			.collect(Collectors.toList()) | ||||
| 				); | ||||
| 		 | ||||
| 		while (result.size() < origin.size()) { | ||||
| 			List<T> nextObjects = origin.stream().filter(obj->!result.contains(obj)) | ||||
| 				.filter(obj->result.containsAll(provider.getDependencies(obj))) | ||||
| 				.collect(Collectors.toList()); | ||||
| 			if (nextObjects.isEmpty()) | ||||
| 				// TODO create more informative exception | ||||
| 				throw new UnsatisfiedDependenciesException( | ||||
| 						origin.stream().filter(obj->!result.contains(obj)) | ||||
| 							.collect(Collectors.toList()) | ||||
| 					); | ||||
| 			result.addAll(nextObjects); | ||||
| 		} | ||||
| 		 | ||||
| 		return result; | ||||
| 	} | ||||
|     public static interface DependencyProvider<T> { | ||||
|         List<T> getDependencies(T inspectedObject); | ||||
|     } | ||||
|  | ||||
|     public static <T> List<T> getSortedList(List<T> origin, DependencyProvider<T> provider) throws Exception { | ||||
|         List<T> result = new LinkedList<>(); | ||||
|  | ||||
|         // add independent objects | ||||
|         result.addAll( | ||||
|                 origin.stream().filter(obj -> provider.getDependencies(obj).isEmpty()) | ||||
|                         .collect(Collectors.toList())); | ||||
|  | ||||
|         while (result.size() < origin.size()) { | ||||
|             List<T> nextObjects = origin.stream().filter(obj -> !result.contains(obj)) | ||||
|                     .filter(obj -> result.containsAll(provider.getDependencies(obj))) | ||||
|                     .collect(Collectors.toList()); | ||||
|             if (nextObjects.isEmpty()) | ||||
|                 // TODO create more informative exception | ||||
|                 throw new UnsatisfiedDependenciesException( | ||||
|                         origin.stream().filter(obj -> !result.contains(obj)) | ||||
|                                 .collect(Collectors.toList())); | ||||
|             result.addAll(nextObjects); | ||||
|         } | ||||
|  | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     @SuppressWarnings("serial") | ||||
|     public static class UnsatisfiedDependenciesException extends Exception { | ||||
|  | ||||
|         protected List<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~~~~~~ | ||||
|  * base-support | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * base-support | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * base-support | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * base-support | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
| @@ -30,44 +30,63 @@ import java.util.Map; | ||||
|  | ||||
| import org.osgi.framework.Bundle; | ||||
| import org.osgi.framework.wiring.BundleCapability; | ||||
| import org.osgi.framework.wiring.BundleRevision; | ||||
| import org.osgi.framework.wiring.BundleWiring; | ||||
|  | ||||
| public class BundleCapabilityHelper extends CapabilityHelper { | ||||
| 	 | ||||
| 	protected Bundle bundle;  | ||||
|  | ||||
| 	public BundleCapabilityHelper(Bundle bundle) { | ||||
| 		super(); | ||||
| 		this.bundle = bundle; | ||||
| 		setMultipleNamespacesSupported(true); | ||||
| 		load(); | ||||
| 	} | ||||
| 	 | ||||
| 	@Override | ||||
| 	protected void load() { | ||||
| 	    BundleWiring bundleWiring = bundle.adapt(BundleWiring.class); | ||||
| 	    if (bundleWiring == null)  | ||||
| 	    	return; | ||||
| 	    List<BundleCapability> capabilities = bundleWiring.getCapabilities(null); | ||||
| 	    for (BundleCapability cap: capabilities) { | ||||
| 	    	CapabilityDescriptorImpl descriptor = new CapabilityDescriptorImpl(); | ||||
| 	    	descriptor.namespace(cap.getNamespace()); | ||||
| 	    	for (Map.Entry<String, Object> attr: cap.getAttributes().entrySet()) | ||||
| 	    		descriptor.attribute(attr.getKey(), attr.getValue()); | ||||
| 	    	addProvidedCapability(descriptor); | ||||
| 	    } | ||||
| 	} | ||||
| 	 | ||||
| 	public CapabilityDescriptor findObjectDeclaration(String objectId, String objectType) { | ||||
| 		if (this.providedCapabilities == null) | ||||
| 			return null; | ||||
| 		if (this.providedCapabilities.get(objectType) == null) | ||||
| 			return null; | ||||
| 		for (CapabilityDescriptor desc: this.providedCapabilities.get(objectType)) | ||||
| 			if (objectId.equals(desc.getAttributes().getOrDefault("objectId", "").toString())) | ||||
| 				return desc; | ||||
| 		return null; | ||||
| 				 | ||||
| 	} | ||||
| 	 | ||||
|     protected Bundle bundle; | ||||
|  | ||||
|     protected boolean isLoaded = false; | ||||
|  | ||||
|     public BundleCapabilityHelper(Bundle bundle) { | ||||
|         super(); | ||||
|         this.bundle = bundle; | ||||
|         setMultipleNamespacesSupported(true); | ||||
|         load(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void load() { | ||||
|         List<BundleCapability> capabilities = null; | ||||
|         BundleWiring bundleWiring = bundle.adapt(BundleWiring.class); | ||||
|         if (bundleWiring != null) { | ||||
|             capabilities = bundleWiring.getCapabilities(null); | ||||
|         } else { | ||||
|             BundleRevision bundleRevision = bundle.adapt(BundleRevision.class); | ||||
|             if (bundleRevision != null) { | ||||
|                 capabilities = bundleRevision.getDeclaredCapabilities(null); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if (capabilities == null) | ||||
|             return; | ||||
|  | ||||
|         for (BundleCapability cap : capabilities) { | ||||
|             CapabilityDescriptorImpl descriptor = new CapabilityDescriptorImpl(); | ||||
|             descriptor.namespace(cap.getNamespace()); | ||||
|             for (Map.Entry<String, Object> attr : cap.getAttributes().entrySet()) | ||||
|                 descriptor.attribute(attr.getKey(), attr.getValue()); | ||||
|             addProvidedCapability(descriptor); | ||||
|         } | ||||
|  | ||||
|         isLoaded = true; | ||||
|     } | ||||
|  | ||||
|     public CapabilityDescriptor findObjectDeclaration(String objectId, String objectType) { | ||||
|         if (this.providedCapabilities == null) | ||||
|             return null; | ||||
|         if (this.providedCapabilities.get(objectType) == null) | ||||
|             return null; | ||||
|         for (CapabilityDescriptor desc : this.providedCapabilities.get(objectType)) | ||||
|             if (objectId.equals(desc.getAttributes().getOrDefault("objectId", "").toString())) | ||||
|                 return desc; | ||||
|         return null; | ||||
|  | ||||
|     } | ||||
|  | ||||
|     public boolean isLoaded() { | ||||
|         return isLoaded; | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * artifact-management | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
| @@ -25,42 +25,53 @@ | ||||
|  */ | ||||
| package ru.entaxy.platform.base.support.osgi.bundle; | ||||
|  | ||||
| import org.osgi.resource.Capability; | ||||
| import java.util.Map; | ||||
|  | ||||
| import org.osgi.resource.Capability; | ||||
|  | ||||
| public interface CapabilityDescriptor extends Capability { | ||||
|  | ||||
| 	public static final String HEADER_PROVIDE_CAPABILITY = "Provide-Capability"; | ||||
| 	public static final String HEADER_REQUIRE_CAPABILITY = "Require-Capability"; | ||||
| 	 | ||||
| 	public static interface ATTRIBUTE_TYPES { | ||||
| 		 | ||||
| 		public static final String STRING = "String"; | ||||
| 		public static final String VERSION = "Version"; | ||||
| 		public static final String LONG = "Long"; | ||||
| 		public static final String DOUBLE = "Double"; | ||||
| 		public static final String LIST = "List"; | ||||
| 		 | ||||
| 		public static String TYPED_LIST(String itemType) { | ||||
| 			return LIST + "<" + itemType + ">"; | ||||
| 		} | ||||
|     public static final String HEADER_PROVIDE_CAPABILITY = "Provide-Capability"; | ||||
|     public static final String HEADER_REQUIRE_CAPABILITY = "Require-Capability"; | ||||
|  | ||||
| 		public static boolean isList(String itemType) { | ||||
| 			return (itemType!=null) && (itemType.startsWith(LIST)); | ||||
| 		} | ||||
|     public static interface ATTRIBUTE_TYPES { | ||||
|  | ||||
|         public static final String STRING = "String"; | ||||
|         public static final String VERSION = "Version"; | ||||
|         public static final String LONG = "Long"; | ||||
|         public static final String DOUBLE = "Double"; | ||||
|         public static final String LIST = "List"; | ||||
|  | ||||
|         public static String TYPED_LIST(String itemType) { | ||||
|             return LIST + "<" + itemType + ">"; | ||||
|         } | ||||
|  | ||||
|         public static boolean isList(String itemType) { | ||||
|             return (itemType != null) && (itemType.startsWith(LIST)); | ||||
|         } | ||||
|  | ||||
|         public static String itemType(String listType) { | ||||
|             if (!isList(listType)) | ||||
|                 return null; | ||||
|  | ||||
|             return listType.substring(listType.indexOf("<"), listType.indexOf(">")); | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get attributes as they exist without extracting and transforming | ||||
|      *  | ||||
|      * @return map of attributes | ||||
|      */ | ||||
|     public Map<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~~~~~~ | ||||
|  * artifact-management | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
| @@ -25,6 +25,11 @@ | ||||
|  */ | ||||
| package ru.entaxy.platform.base.support.osgi.bundle; | ||||
|  | ||||
| import java.nio.charset.CharsetEncoder; | ||||
| import java.nio.charset.StandardCharsets; | ||||
| import java.util.Base64; | ||||
| import java.util.Base64.Decoder; | ||||
| import java.util.Base64.Encoder; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| @@ -37,130 +42,178 @@ import ru.entaxy.platform.base.support.CommonUtils; | ||||
|  | ||||
| public class CapabilityDescriptorImpl implements CapabilityDescriptor { | ||||
|  | ||||
| 	protected String namespace; | ||||
| 	 | ||||
| 	protected Map<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 String namespace; | ||||
|  | ||||
| 	public CapabilityDescriptorImpl(String namespace) { | ||||
| 		this(); | ||||
| 		namespace(namespace); | ||||
| 	} | ||||
| 	 | ||||
| 	public String getAttributesAsString() { | ||||
| 		return this.attributes.entrySet().stream() | ||||
| 			.map(entry-> | ||||
| 				entry.getKey()  | ||||
| 				+ /* (!ATTRIBUTE_TYPES.STRING.equals(entry.getValue().type)?(*/":" +  entry.getValue().type/* ):"") */  | ||||
| 				+ "=" + entry.getValue().getValueAsString()) | ||||
| 			.collect(Collectors.joining(";")); | ||||
| 	} | ||||
| 	 | ||||
| 	@Override | ||||
| 	public String getNamespace() { | ||||
| 		return this.namespace; | ||||
| 	} | ||||
|     protected Map<String, String> directives = new HashMap<>(); | ||||
|     protected Map<String, AttributeDescriptor> attributes = new HashMap<>(); | ||||
|  | ||||
| 	@Override | ||||
| 	public Map<String, String> getDirectives() { | ||||
| 		return this.directives; | ||||
| 	} | ||||
|     private static class AttributeDescriptor { | ||||
|  | ||||
| 	@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; | ||||
| 	} | ||||
|         public static final String MARKER_BASE64 = "@BASE64"; | ||||
|  | ||||
| 	@Override | ||||
| 	public Resource getResource() { | ||||
| 		// not implemented | ||||
| 		return null; | ||||
| 	} | ||||
|         private static final CharsetEncoder ENCODER = StandardCharsets.ISO_8859_1.newEncoder(); | ||||
|  | ||||
| 	@Override | ||||
| 	public CapabilityDescriptor namespace(String namespace) { | ||||
| 		this.namespace = namespace; | ||||
| 		return this; | ||||
| 	} | ||||
|         private static final Encoder BASE64_ENCODER = Base64.getEncoder(); | ||||
|  | ||||
| 	@Override | ||||
| 	public CapabilityDescriptor attribute(String name, Object value) { | ||||
| 		this.attributes.put(name, new AttributeDescriptor(value)); | ||||
| 		return this; | ||||
| 	} | ||||
|         private static final Decoder BASE64_DECODER = Base64.getDecoder(); | ||||
|  | ||||
| 	@Override | ||||
| 	public CapabilityDescriptor attribute(String name, Object value, String type) { | ||||
| 		this.attributes.put(name, new AttributeDescriptor(value, type)); | ||||
| 		return this; | ||||
| 	} | ||||
| 	 | ||||
| 	public CapabilityDescriptor parseAttribute(String attributeData) { | ||||
| 		 | ||||
| 		String nameType = attributeData.substring(0, attributeData.indexOf("=")); | ||||
| 		if (!CommonUtils.isValid(nameType)) | ||||
| 			return this; | ||||
| 		String[] nameTypeSplit = nameType.split(":"); | ||||
| 		 | ||||
| 		String name = nameTypeSplit[0].trim(); | ||||
| 		 | ||||
| 		String type = (nameTypeSplit.length > 1?nameTypeSplit[1]:CapabilityDescriptor.ATTRIBUTE_TYPES.STRING); | ||||
| 		if (!CommonUtils.isValid(type)) | ||||
| 			type = CapabilityDescriptor.ATTRIBUTE_TYPES.STRING; | ||||
| 		type = type.trim(); | ||||
| 		 | ||||
| 		String value = attributeData.substring(attributeData.indexOf("=")+1); | ||||
| 		if (!CommonUtils.isValid(value)) | ||||
| 			value = ""; | ||||
| 		value = value.trim(); | ||||
| 		 | ||||
| 		Object typedValue = CapabilityTypeHelper.getTypedValue(type, value); | ||||
| 		this.attribute(name, typedValue, type); | ||||
| 		 | ||||
| 		return this; | ||||
| 	} | ||||
| 	 | ||||
|         String type; | ||||
|         Object value; | ||||
|  | ||||
| 	@Override | ||||
| 	public CapabilityDescriptor attributes(Map<String, Object> attributes) { | ||||
| 		if (attributes == null) | ||||
| 			return this; | ||||
| 		for (Entry<String, Object> entry: attributes.entrySet()) { | ||||
| 			this.attribute(entry.getKey(), entry.getValue()); | ||||
| 		} | ||||
| 		return this; | ||||
| 	} | ||||
|         public AttributeDescriptor(Object value) { | ||||
|             this(value, CapabilityTypeHelper.getTypeName(value)); | ||||
|         } | ||||
|  | ||||
|         public AttributeDescriptor(Object value, String type) { | ||||
|             this.type = type; | ||||
|             this.value = value == null ? "" : value; // .toString(); | ||||
|         } | ||||
|  | ||||
|         public String getPackedStringValue(String data) { | ||||
|             if (ENCODER.canEncode(data)) | ||||
|                 return data; | ||||
|             return BASE64_ENCODER.encodeToString(data.getBytes()).concat(MARKER_BASE64); | ||||
|         } | ||||
|  | ||||
|         public String getUnpackedStringValue(String data) { | ||||
|             if (data.endsWith(MARKER_BASE64)) | ||||
|                 return new String(BASE64_DECODER.decode(data.substring(0, data.length() - MARKER_BASE64.length()))); | ||||
|             return data; | ||||
|         } | ||||
|  | ||||
|         public Object getValue() { | ||||
|             if (!CapabilityDescriptor.ATTRIBUTE_TYPES.STRING.equals(type)) | ||||
|                 return value; | ||||
|             return getUnpackedStringValue(value.toString()); | ||||
|         } | ||||
|  | ||||
|         public String getValueAsString() { | ||||
|             if (value == null) | ||||
|                 return null; | ||||
|             if (CapabilityDescriptor.ATTRIBUTE_TYPES.isList(type)) | ||||
|                 return CapabilityTypeHelper.getListAsString((List<?>) value); | ||||
|             if (CapabilityDescriptor.ATTRIBUTE_TYPES.STRING.equals(type)) | ||||
|                 return "\"" + getPackedStringValue(value.toString()) + "\""; | ||||
|             return value.toString(); | ||||
|         } | ||||
|  | ||||
|         public String getRawValueAsString() { | ||||
|             if (value == null) | ||||
|                 return null; | ||||
|             if (CapabilityDescriptor.ATTRIBUTE_TYPES.isList(type)) | ||||
|                 return CapabilityTypeHelper.getListAsString((List<?>) value); | ||||
|             if (CapabilityDescriptor.ATTRIBUTE_TYPES.STRING.equals(type)) | ||||
|                 return "\"" + value.toString() + "\""; | ||||
|             return value.toString(); | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     public CapabilityDescriptorImpl() { | ||||
|         // TODO Auto-generated constructor stub | ||||
|     } | ||||
|  | ||||
|     public CapabilityDescriptorImpl(String namespace) { | ||||
|         this(); | ||||
|         namespace(namespace); | ||||
|     } | ||||
|  | ||||
|     public String getAttributesAsString() { | ||||
|         return this.attributes.entrySet().stream() | ||||
|                 .map(entry -> entry.getKey() | ||||
|                         + /* (!ATTRIBUTE_TYPES.STRING.equals(entry.getValue().type)?( */":" + entry.getValue().type/* | ||||
|                                                                                                                     * ) | ||||
|                                                                                                                     * : | ||||
|                                                                                                                     * "") | ||||
|                                                                                                                     */ | ||||
|                         + "=" + entry.getValue().getValueAsString()) | ||||
|                 .collect(Collectors.joining(";")); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getNamespace() { | ||||
|         return this.namespace; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Map<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~~~~~~ | ||||
|  * test-producers | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
| @@ -28,130 +28,144 @@ package ru.entaxy.platform.base.support.osgi.bundle; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Collections; | ||||
| import java.util.HashMap; | ||||
| import java.util.HashSet; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.Set; | ||||
| import java.util.stream.Collectors; | ||||
|  | ||||
| import ru.entaxy.platform.base.support.CommonUtils; | ||||
|  | ||||
| public class CapabilityHelper { | ||||
|  | ||||
| 	protected boolean isMultipleNamespacesSupported = false; | ||||
| 	 | ||||
| 	protected Map<String, CapabilityDescriptorImpl> requiredCapabilities = new HashMap<>(); | ||||
| 	protected Map<String, List<CapabilityDescriptorImpl>> providedCapabilities = new HashMap<>(); | ||||
| 	 | ||||
| 	public CapabilityHelper() { | ||||
| 		super(); | ||||
| 	} | ||||
|     protected boolean isMultipleNamespacesSupported = false; | ||||
|  | ||||
| 	protected void load() { | ||||
| /*		String existing = this.manifest.getCustomAttributes().get(CapabilityDescriptor.HEADER_PROVIDE_CAPABILITY); | ||||
| 		if (CommonUtils.isValid(existing)) { | ||||
| 			List<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); | ||||
| 		} | ||||
| 	} | ||||
|     protected Map<String, CapabilityDescriptorImpl> requiredCapabilities = new HashMap<>(); | ||||
|     protected Map<String, List<CapabilityDescriptorImpl>> providedCapabilities = new HashMap<>(); | ||||
|      | ||||
|     protected Set<String> osgiCapabilities = new HashSet<>();  | ||||
|  | ||||
| 	 | ||||
| 	 | ||||
| 	protected void addRequiredCapability(CapabilityDescriptorImpl capabilityDescriptorImpl) { | ||||
| 		if (capabilityDescriptorImpl == null) | ||||
| 			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()); | ||||
| 	} | ||||
|     public CapabilityHelper() { | ||||
|         super(); | ||||
|         osgiCapabilities.add("osgi.identity"); | ||||
|         osgiCapabilities.add("osgi.wiring.bundle"); | ||||
|         osgiCapabilities.add("osgi.wiring.host"); | ||||
|     } | ||||
|  | ||||
| 	public List<CapabilityDescriptor> getProvidedCapabilities(String namesoace){ | ||||
| 		if (!this.providedCapabilities.containsKey(namesoace)) | ||||
| 			return new ArrayList<>(); | ||||
| 		return this.providedCapabilities.get(namesoace) | ||||
| 				.stream() | ||||
| 				.map(c -> (CapabilityDescriptor)c) | ||||
| 				.collect(Collectors.toList()); | ||||
| 	} | ||||
| 	 | ||||
| 	 | ||||
| 	public List<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 load() { | ||||
|         /* | ||||
|          * String existing = | ||||
|          * this.manifest.getCustomAttributes().get(CapabilityDescriptor.HEADER_PROVIDE_CAPABILITY); | ||||
|          * if (CommonUtils.isValid(existing)) { 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); } | ||||
|          */ | ||||
|     } | ||||
|  | ||||
| 	public boolean isCapabilityRequired(String namespace) { | ||||
| 		return this.requiredCapabilities.containsKey(namespace); | ||||
| 	} | ||||
| 	 | ||||
| 	public CapabilityDescriptor provideCapability(String namespace) { | ||||
| 		CapabilityDescriptorImpl desc = new CapabilityDescriptorImpl(namespace); | ||||
| 		addProvidedCapability(desc); | ||||
| 		return desc; | ||||
| 	} | ||||
|     protected void addProvidedCapability(CapabilityDescriptorImpl capabilityDescriptorImpl) { | ||||
|         if (capabilityDescriptorImpl == null) | ||||
|             return; | ||||
|         if (!isMultipleNamespacesSupported) { | ||||
|             this.providedCapabilities.put(capabilityDescriptorImpl.getNamespace(), | ||||
|                     Collections.singletonList(capabilityDescriptorImpl)); | ||||
|         } else { | ||||
|             if (!this.providedCapabilities.containsKey(capabilityDescriptorImpl.getNamespace())) | ||||
|                 this.providedCapabilities.put(capabilityDescriptorImpl.getNamespace(), new ArrayList<>()); | ||||
|             this.providedCapabilities.get(capabilityDescriptorImpl.getNamespace()) | ||||
|                     .add(capabilityDescriptorImpl); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| 	public CapabilityDescriptor requireCapability(String namespace) { | ||||
| 		if (!this.requiredCapabilities.containsKey(namespace))  | ||||
| 			this.requiredCapabilities.put(namespace, new CapabilityDescriptorImpl(namespace)); | ||||
| 		return this.requiredCapabilities.get(namespace); | ||||
| 	} | ||||
|  | ||||
| 	public boolean isMultipleNamespacesSupported() { | ||||
| 		return isMultipleNamespacesSupported; | ||||
| 	} | ||||
|  | ||||
| 	public void setMultipleNamespacesSupported(boolean isMultipleNamespacesSupported) { | ||||
| 		this.isMultipleNamespacesSupported = isMultipleNamespacesSupported; | ||||
| 	} | ||||
| 	 | ||||
|     protected void addRequiredCapability(CapabilityDescriptorImpl capabilityDescriptorImpl) { | ||||
|         if (capabilityDescriptorImpl == null) | ||||
|             return; | ||||
|         this.requiredCapabilities.put(capabilityDescriptorImpl.getNamespace(), capabilityDescriptorImpl); | ||||
|     } | ||||
|  | ||||
|     protected List<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~~~~~~ | ||||
|  * test-producers | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * system-commons | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * system-commons | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * system-commons | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * system-commons | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * profile-management | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * profile-management | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * profile-management | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * profile-management | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * profile-management | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * base-support | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * profile-management | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * base-support | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * base-support | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
| @@ -38,16 +38,20 @@ import javax.xml.bind.Marshaller; | ||||
| import javax.xml.bind.Unmarshaller; | ||||
| import javax.xml.parsers.DocumentBuilder; | ||||
| import javax.xml.parsers.DocumentBuilderFactory; | ||||
| import javax.xml.parsers.ParserConfigurationException; | ||||
| import javax.xml.transform.OutputKeys; | ||||
| import javax.xml.transform.Result; | ||||
| import javax.xml.transform.Transformer; | ||||
| import javax.xml.transform.TransformerConfigurationException; | ||||
| import javax.xml.transform.TransformerFactory; | ||||
| import javax.xml.transform.dom.DOMSource; | ||||
| import javax.xml.transform.stream.StreamResult; | ||||
|  | ||||
| /*import net.sf.saxon.TransformerFactoryImpl; | ||||
| import net.sf.saxon.lib.NamespaceConstant; | ||||
| */ | ||||
| /* | ||||
|  * import net.sf.saxon.TransformerFactoryImpl; import net.sf.saxon.lib.NamespaceConstant; | ||||
|  */ | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
| import org.w3c.dom.Document; | ||||
| import org.w3c.dom.Node; | ||||
| import org.w3c.dom.NodeList; | ||||
| @@ -56,195 +60,255 @@ import org.xml.sax.InputSource; | ||||
| import ru.entaxy.platform.base.support.CommonUtils; | ||||
|  | ||||
| public class CommonXMLUtils { | ||||
| 	 | ||||
| 	// GETTING DOCUMENT | ||||
| 	 | ||||
| 	public static Document getDocument(URL url) throws Exception{ | ||||
| 		return getDocument(url.openStream()); | ||||
| 	} | ||||
| 	 | ||||
| 	public static Document getDocument(InputStream stream) throws Exception { | ||||
| 		return getDocument(false, stream); | ||||
| 	} | ||||
| 	public static Document getDocument(boolean namespaceAware, InputStream stream) throws Exception { | ||||
| 		InputSource is = new InputSource(stream); | ||||
| 		return getDocument(namespaceAware, is); | ||||
| 	} | ||||
| 	 | ||||
| 	public static Document newDocument(boolean namespaceAware) throws Exception{ | ||||
| 		return getDocument(namespaceAware, (File)null); | ||||
| 	} | ||||
| 	public static Document getDocument(boolean namespaceAware, String path) throws Exception{ | ||||
| 		return getDocument(namespaceAware, CommonUtils.isValid(path)?(new File(path)):null); | ||||
| 	} | ||||
| 	public static Document getDocument(boolean namespaceAware, File file) throws Exception{ | ||||
| 		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); | ||||
| 		dbf.setNamespaceAware(namespaceAware); | ||||
| 		DocumentBuilder db = dbf.newDocumentBuilder(); | ||||
| 		if (file!=null) | ||||
| 			return db.parse(file); | ||||
| 		else | ||||
| 			return db.newDocument(); | ||||
| 		 | ||||
| 	} | ||||
| 	public static Document newDocument() throws Exception { | ||||
| 		return newDocument(false); | ||||
| 	} | ||||
| 	public static Document getDocument(String path) throws Exception{ | ||||
| 		return getDocument(false, path); | ||||
| 	} | ||||
| 	public static Document parseString(boolean namespaceAware, String xmlData) throws Exception{ | ||||
|     public static final Logger log = LoggerFactory.getLogger(CommonXMLUtils.class); | ||||
|     private static final String XML_SAX_EXTERNAL_GENERAL_ENTITIES = | ||||
|             "http://xml.org/sax/features/external-general-entities"; | ||||
|     private static final String XML_SAX_EXTERNAL_PARAMETER_ENTITIES = | ||||
|             "http://xml.org/sax/features/external-parameter-entities"; | ||||
|  | ||||
|     // GETTING DOCUMENT | ||||
|  | ||||
|     public static Document getDocument(URL url) throws Exception { | ||||
|         return getDocument(url.openStream()); | ||||
|     } | ||||
|  | ||||
|     public static Document getDocument(InputStream stream) throws Exception { | ||||
|         return getDocument(false, stream); | ||||
|     } | ||||
|  | ||||
|     public static Document getDocument(boolean namespaceAware, InputStream stream) throws Exception { | ||||
|         InputSource is = new InputSource(stream); | ||||
|         return getDocument(namespaceAware, is); | ||||
|     } | ||||
|  | ||||
|     public static Document newDocument(boolean namespaceAware) throws Exception { | ||||
|         return getDocument(namespaceAware, (File) null); | ||||
|     } | ||||
|  | ||||
|     public static Document getDocument(boolean namespaceAware, String path) throws Exception { | ||||
|         return getDocument(namespaceAware, CommonUtils.isValid(path) ? (new File(path)) : null); | ||||
|     } | ||||
|  | ||||
|     public static Document getDocument(boolean namespaceAware, File file) throws Exception { | ||||
|         DocumentBuilderFactory dbf = newDocumentBuilderFactoryInstance(); | ||||
|  | ||||
|         dbf.setNamespaceAware(namespaceAware); | ||||
|         DocumentBuilder db = dbf.newDocumentBuilder(); | ||||
|         if (file != null) | ||||
|             return db.parse(file); | ||||
|         else | ||||
|             return db.newDocument(); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     public static Document newDocument() throws Exception { | ||||
|         return newDocument(false); | ||||
|     } | ||||
|  | ||||
|     public static Document getDocument(String path) throws Exception { | ||||
|         return getDocument(false, path); | ||||
|     } | ||||
|  | ||||
|     public static Document parseString(boolean namespaceAware, String xmlData) throws Exception { | ||||
|         InputSource is = new InputSource(new StringReader(xmlData)); | ||||
|         return getDocument(namespaceAware, is); | ||||
| 	}  | ||||
| 	public static Document getDocument(InputSource source) throws Exception { | ||||
| 		return getDocument(false, source); | ||||
| 	} | ||||
| 	public static Document getDocument(boolean namespaceAware, InputSource source) throws Exception { | ||||
|         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); | ||||
|     } | ||||
|  | ||||
|     public static Document getDocument(InputSource source) throws Exception { | ||||
|         return getDocument(false, source); | ||||
|     } | ||||
|  | ||||
|     public static Document getDocument(boolean namespaceAware, InputSource source) throws Exception { | ||||
|         DocumentBuilderFactory factory = newDocumentBuilderFactoryInstance(); | ||||
|  | ||||
|         factory.setNamespaceAware(namespaceAware); | ||||
|         DocumentBuilder builder = factory.newDocumentBuilder(); | ||||
|         Document d = builder.parse( source ); | ||||
| 		return d; | ||||
| 	} | ||||
| 	public static String doc2string(Document doc) throws Exception{ | ||||
| 		//set up a transformer | ||||
| 		TransformerFactory transfac = TransformerFactory.newInstance(); | ||||
| 		Transformer trans = transfac.newTransformer(); | ||||
| 		trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); | ||||
| 		trans.setOutputProperty(OutputKeys.INDENT, "yes"); | ||||
|         Document d = builder.parse(source); | ||||
|         return d; | ||||
|     } | ||||
|  | ||||
| 		//create string from xml tree | ||||
| 		StringWriter sw = new StringWriter(); | ||||
| 		StreamResult result = new StreamResult(sw); | ||||
| 		DOMSource source = new DOMSource(doc); | ||||
| 		trans.transform(source, result); | ||||
| 		String xmlString = sw.toString(); | ||||
|     public static DocumentBuilderFactory newDocumentBuilderFactoryInstance() { | ||||
|         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); | ||||
|  | ||||
| 		return xmlString; | ||||
| 	} | ||||
| 	 | ||||
| 	public static String node2string(Node node) throws Exception { | ||||
| 	    Transformer t = TransformerFactory.newInstance().newTransformer(); | ||||
| 	    t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); | ||||
| 	    StringWriter sw = new StringWriter(); | ||||
| 	    t.transform(new DOMSource(node), new StreamResult(sw)); | ||||
| 	    return sw.toString(); | ||||
| 	} | ||||
| 	 | ||||
| 	// SAVING DOCUMENT | ||||
| 	public static void saveDocument(Document doc, String path) throws Exception{ | ||||
| 		File file = new File(path); | ||||
| 		saveDocument(doc, file); | ||||
| 	} | ||||
|         // Disable external entities declarations | ||||
|         try { | ||||
|             factory.setFeature(XML_SAX_EXTERNAL_GENERAL_ENTITIES, false); | ||||
|             factory.setFeature(XML_SAX_EXTERNAL_PARAMETER_ENTITIES, false); | ||||
|         } catch (ParserConfigurationException e) { | ||||
|             // log.warn(e.getMessage(), e); | ||||
|             log.warn(e.getMessage()); | ||||
|         } | ||||
|  | ||||
| 	public static void saveDocument(Document doc, File file) throws Exception{ | ||||
| 		DOMSource source = new DOMSource(doc); | ||||
| 		Result result = new StreamResult(file); | ||||
| 		Transformer xformer = TransformerFactory.newInstance().newTransformer(); | ||||
|         return factory; | ||||
|     } | ||||
|  | ||||
|     public static TransformerFactory newTransformerFactoryInstance() { | ||||
|         System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl"); | ||||
|         TransformerFactory transformerFactory = TransformerFactory.newInstance(); | ||||
|         // Disable external entities declarations | ||||
|         try { | ||||
|             transformerFactory.setFeature(XML_SAX_EXTERNAL_GENERAL_ENTITIES, false); | ||||
|             transformerFactory.setFeature(XML_SAX_EXTERNAL_PARAMETER_ENTITIES, false); | ||||
|         } catch (TransformerConfigurationException e) { | ||||
|             // log.warn(e.getMessage(), e); | ||||
|             log.warn(e.getMessage()); | ||||
|         } | ||||
|         return transformerFactory; | ||||
|     } | ||||
|  | ||||
|     public static String doc2string(Document doc) throws Exception { | ||||
|         // set up a transformer | ||||
|         TransformerFactory transfac = newTransformerFactoryInstance(); | ||||
|  | ||||
|         Transformer trans = transfac.newTransformer(); | ||||
|         trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); | ||||
|         trans.setOutputProperty(OutputKeys.INDENT, "yes"); | ||||
|  | ||||
|         // create string from xml tree | ||||
|         StringWriter sw = new StringWriter(); | ||||
|         StreamResult result = new StreamResult(sw); | ||||
|         DOMSource source = new DOMSource(doc); | ||||
|         trans.transform(source, result); | ||||
|         String xmlString = sw.toString(); | ||||
|  | ||||
|         return xmlString; | ||||
|     } | ||||
|  | ||||
|     public static String node2string(Node node) throws Exception { | ||||
|         TransformerFactory transfac = newTransformerFactoryInstance(); | ||||
|  | ||||
|         Transformer t = transfac.newTransformer(); | ||||
|         t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); | ||||
|         StringWriter sw = new StringWriter(); | ||||
|         t.transform(new DOMSource(node), new StreamResult(sw)); | ||||
|         return sw.toString(); | ||||
|     } | ||||
|  | ||||
|     // SAVING DOCUMENT | ||||
|     public static void saveDocument(Document doc, String path) throws Exception { | ||||
|         File file = new File(path); | ||||
|         saveDocument(doc, file); | ||||
|     } | ||||
|  | ||||
|     public static void saveDocument(Document doc, File file) throws Exception { | ||||
|         DOMSource source = new DOMSource(doc); | ||||
|         Result result = new StreamResult(file); | ||||
|  | ||||
|         TransformerFactory transfac = newTransformerFactoryInstance(); | ||||
|  | ||||
|         Transformer xformer = transfac.newTransformer(); | ||||
|         xformer.transform(source, result); | ||||
| 	} | ||||
| 	 | ||||
| 	// MARSHAL | ||||
| 	public static void jaxbMarshal(JAXBContext context, JAXBElement<?> object, Node node) throws Exception{ | ||||
| 		Marshaller m = context.createMarshaller(); | ||||
| 		jaxbMarshall(m, object, node); | ||||
| 	} | ||||
| 	public static void jaxbMarshall(Marshaller m, JAXBElement<?> object, Node node) throws Exception{ | ||||
| 		if (node==null || node.getNodeType()!=Node.ELEMENT_NODE) | ||||
| 			throw new IllegalArgumentException("Node is not Element"); | ||||
| 		m.marshal(object, node); | ||||
| 	} | ||||
| 	public static String jaxbMarshall(JAXBContext context, JAXBElement<?> object) throws Exception{ | ||||
| 		String result = null; | ||||
| 		 | ||||
| 		Marshaller m = context.createMarshaller(); | ||||
| 		StringWriter sw = new StringWriter(); | ||||
| 		m.marshal(object, sw); | ||||
| 		result = sw.toString(); | ||||
| 		 | ||||
| 		return result; | ||||
| 	} | ||||
| 	// UNMARSHAL | ||||
| 	/** | ||||
| 	 *  | ||||
| 	 * @param context | ||||
| 	 * @param node | ||||
| 	 * @param classMap | ||||
| 	 * @return | ||||
| 	 * @throws Exception | ||||
| 	 */ | ||||
| 	 | ||||
| 	public static JAXBElement<?> jaxbUnmarshall(JAXBContext context, Node node, HashMap<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 | ||||
|     } | ||||
|  | ||||
|     // 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(); | ||||
| TransformerFactory factory = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl",TransformerFactoryImpl.class.getClassLoader()); | ||||
|  | ||||
|         Source inputS = new StreamSource(is); | ||||
|         transformer.transform(inputS, result); | ||||
| Source xsltS = new StreamSource(xslt.openStream()); | ||||
| Transformer transformer = factory.newTransformer(xsltS); | ||||
| transformer.setOutputProperty(OutputKeys.INDENT, "yes"); | ||||
| transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); | ||||
| transformer.setOutputProperty(OutputKeys.STANDALONE, "yes"); | ||||
|  | ||||
| InputStream is = input.openStream(); | ||||
|  | ||||
| Source inputS = new StreamSource(is); | ||||
| transformer.transform(inputS, result); | ||||
| 		 | ||||
| 	} | ||||
| */	 | ||||
| 	// XPath | ||||
| 	 | ||||
| */ | ||||
|     // XPath | ||||
|  | ||||
| /*	public static XPath createXPath() throws Exception { | ||||
| 		XPathFactory factory = XPathFactory.newInstance(NamespaceConstant.OBJECT_MODEL_SAXON,  | ||||
| 				"net.sf.saxon.xpath.XPathFactoryImpl", net.sf.saxon.xpath.XPathFactoryImpl.class.getClassLoader()); | ||||
| 		XPath xpath = factory.newXPath(); | ||||
|         return xpath; | ||||
| return xpath; | ||||
| 	} | ||||
| 	 | ||||
| 	public static String getStringXPathResult(org.w3c.dom.Node node, String expression) throws Exception { | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
|     <parent> | ||||
|         <groupId>ru.entaxy.esb.platform.runtime</groupId> | ||||
|         <artifactId>base</artifactId> | ||||
|         <version>1.9.0</version> | ||||
|         <version>1.10.0</version> | ||||
|     </parent> | ||||
|     <modelVersion>4.0.0</modelVersion> | ||||
|  | ||||
| @@ -22,19 +22,6 @@ | ||||
|             </resource> | ||||
|         </resources> | ||||
|         <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> | ||||
|                 <groupId>org.apache.maven.plugins</groupId> | ||||
|                 <artifactId>maven-resources-plugin</artifactId> | ||||
| @@ -53,7 +40,7 @@ | ||||
|                 <version>1.12</version> | ||||
|                 <executions> | ||||
|                     <execution> | ||||
|                         <id>attach-artifacts</id> | ||||
|                         <id>attach-branding-properties</id> | ||||
|                         <phase>package</phase> | ||||
|                         <goals> | ||||
|                             <goal>attach-artifact</goal> | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
| # ~~~~~~licensing~~~~~~ | ||||
| # branding | ||||
| # ========== | ||||
| # Copyright (C) 2020 - 2023 EmDev LLC | ||||
| # Copyright (C) 2020 - 2024 EmDev LLC | ||||
| # ========== | ||||
| # You may not use this file except in accordance with the License Terms of the Copyright | ||||
| # Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
|   <parent> | ||||
|     <groupId>ru.entaxy.esb.platform.runtime</groupId> | ||||
|     <artifactId>base</artifactId> | ||||
|     <version>1.9.0</version> | ||||
|     <version>1.10.0</version> | ||||
|   </parent> | ||||
|   <groupId>ru.entaxy.esb.platform.runtime.base</groupId> | ||||
|   <artifactId>config-extensions</artifactId> | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * config-plugin | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
| @@ -43,9 +43,9 @@ import org.slf4j.LoggerFactory; | ||||
|  | ||||
| /** | ||||
|  *  | ||||
|  * Configuration plugin providing resolving references from one config to others | ||||
|  * in a form $PID_OF_OTHER_CONFIG{PROPERTY_NAME} | ||||
|  * e.g. $org.ops4j.pax.url.mvn{org.ops4j.pax.url.mvn.localRepository} | ||||
|  * Configuration plugin providing resolving references from one config to others in a form | ||||
|  * $PID_OF_OTHER_CONFIG{PROPERTY_NAME} e.g. | ||||
|  * $org.ops4j.pax.url.mvn{org.ops4j.pax.url.mvn.localRepository} | ||||
|  *  | ||||
|  * If pid or property not found no changes are made | ||||
|  *  | ||||
| @@ -53,59 +53,58 @@ import org.slf4j.LoggerFactory; | ||||
|  * | ||||
|  */ | ||||
| @Component(service = {ConfigurationPlugin.class}, immediate = true, | ||||
| 	property = { | ||||
| 			 ConfigurationPlugin.CM_RANKING + "=100" | ||||
| 			, "config.plugin.id=ConfigLookupConfigurationPlugin"}) | ||||
|         property = { | ||||
|             ConfigurationPlugin.CM_RANKING + "=100", "config.plugin.id=ConfigLookupConfigurationPlugin"}) | ||||
| public class ConfigLookupConfigurationPlugin implements ConfigurationPlugin { | ||||
|  | ||||
| 	private static final Logger log = LoggerFactory.getLogger(ConfigLookupConfigurationPlugin.class); | ||||
| 	 | ||||
| 	@Reference(cardinality = ReferenceCardinality.MANDATORY) | ||||
| 	protected ConfigurationAdmin configurationAdmin; | ||||
| 	 | ||||
| 	@Override | ||||
| 	public void modifyConfiguration(ServiceReference<?> arg0, Dictionary<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); | ||||
|     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(); | ||||
|                             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~~~~~~ | ||||
|  * configuration-test-1 | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * configuration-test-1 | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * configuration-test-1 | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * configuration-test-1 | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * configuration-test-1 | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * configuration-test-1 | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2024 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|   | ||||
| @@ -1,175 +0,0 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
| @@ -1,175 +0,0 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
| @@ -1,90 +0,0 @@ | ||||
| <?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> | ||||
| @@ -1,65 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * adapters-core | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api; | ||||
|  | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
|  | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.generator.Generated; | ||||
|  | ||||
| public interface Adapter { | ||||
| 	public static final String ADAPTER_CLASS_HEADER_NAME = "Entaxy-Adapter-Class"; | ||||
| 	public static final String ADAPTER_HEADER_NAME = "Entaxy-Adapter"; | ||||
| 	public default boolean isInited() { | ||||
| 		return false; | ||||
| 	} | ||||
| 	public default String getId() { | ||||
| 		return "none"; | ||||
| 	} | ||||
| 	public default String getName() { | ||||
| 		return "Undefined"; | ||||
| 	} | ||||
| 	public default String getDescription() { | ||||
| 		return "Undefined"; | ||||
| 	} | ||||
| 	public default Map<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(); | ||||
| 	} | ||||
|  | ||||
| } | ||||
| @@ -1,206 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * adapters-core | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.impl; | ||||
|  | ||||
| import java.io.BufferedReader; | ||||
| import java.io.IOException; | ||||
| import java.io.InputStreamReader; | ||||
| import java.net.URL; | ||||
| import java.nio.charset.StandardCharsets; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.NoSuchElementException; | ||||
| import java.util.stream.Collectors; | ||||
|  | ||||
| import org.osgi.framework.BundleContext; | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
|  | ||||
| import com.google.gson.Gson; | ||||
| import com.google.gson.GsonBuilder; | ||||
| import com.google.gson.JsonElement; | ||||
| import com.google.gson.JsonObject; | ||||
| import com.google.gson.JsonParser; | ||||
|  | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api.Adapter; | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.metadata.AdapterFieldElement; | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.metadata.AdapterGeneratorElement; | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.metadata.AdapterMetadataElement; | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.generator.Generated; | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.generator.Generator; | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.generator.factory.GeneratorFactory; | ||||
|  | ||||
| public class DefaultAdapter implements Adapter { | ||||
|  | ||||
| 	protected static final Logger log = LoggerFactory.getLogger(DefaultAdapter.class); | ||||
| 	 | ||||
| 	protected BundleContext bundleContext; | ||||
| 	 | ||||
| 	protected boolean isInited = false; | ||||
| 	protected String defaultId = "none"; | ||||
| 	protected String defaultName = "Undefined"; | ||||
| 	protected String defaultDescription = "Undefined"; | ||||
| 	protected AdapterMetadataElement adapterMetadata; | ||||
|  | ||||
| 	@Deprecated | ||||
| 	protected Map<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); | ||||
| 	} | ||||
| } | ||||
| @@ -1,45 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * adapters-core | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.management; | ||||
|  | ||||
| import ru.entaxy.esb.platform.base.management.core.api.RuntimeTypedMBean; | ||||
|  | ||||
| public interface AdapterMBean extends RuntimeTypedMBean { | ||||
|  | ||||
| 	public boolean isInited(); | ||||
| 	 | ||||
| 	public String getId(); | ||||
| 	 | ||||
| 	public String getName(); | ||||
| 	 | ||||
| 	public String getDescription(); | ||||
| 	 | ||||
| 	// public Map<String, String> getOptions(); | ||||
| 	 | ||||
| 	// public Map<String, String> getProperties(); | ||||
| 	 | ||||
| 	 | ||||
| } | ||||
| @@ -1,66 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * adapters-core | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.management; | ||||
|  | ||||
| import javax.management.NotCompliantMBeanException; | ||||
| import javax.management.StandardMBean; | ||||
|  | ||||
| import ru.entaxy.esb.platform.base.management.core.api.EntaxyRuntimeTyped; | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api.Adapter; | ||||
|  | ||||
| //@TODO move string to constant | ||||
| @EntaxyRuntimeTyped(name = "entaxy.runtime.adapter") | ||||
| public class AdapterMBeanImpl extends StandardMBean implements AdapterMBean { | ||||
| 	 | ||||
| 	protected Adapter adapter; | ||||
| 	 | ||||
| 	public AdapterMBeanImpl(Adapter adapter) throws NotCompliantMBeanException { | ||||
| 		super(AdapterMBean.class); | ||||
| 		this.adapter = adapter; | ||||
| 	} | ||||
| 	 | ||||
| 	@Override | ||||
| 	public String getId() { | ||||
| 		return adapter.getId(); | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| 	public boolean isInited() { | ||||
| 		return adapter.isInited(); | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| 	public String getName() { | ||||
| 		return adapter.getName(); | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| 	public String getDescription() { | ||||
| 		return adapter.getDescription(); | ||||
| 	} | ||||
| 	 | ||||
| 	 | ||||
| } | ||||
| @@ -1,42 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * adapters-core | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.management; | ||||
|  | ||||
| import ru.entaxy.esb.platform.base.management.core.ManagementCore; | ||||
| import ru.entaxy.esb.platform.base.management.core.Qualifier; | ||||
|  | ||||
| public interface AdaptersMBean { | ||||
| 	 | ||||
| 	public static final String ADAPTERS_KEY = "category"; | ||||
| 	 | ||||
| 	public static final String ADAPTERS_VALUE = "adapter"; | ||||
| 	 | ||||
| 	public static final Qualifier Q_ADAPTERS = ManagementCore.Q_PLATFORM.qualifier(ADAPTERS_KEY, ADAPTERS_VALUE); | ||||
| 	 | ||||
| 	public static final String Q_ADAPTERS_S = ManagementCore.Q_LOCAL_NODE_S + "," + ADAPTERS_KEY + "=" + ADAPTERS_VALUE; | ||||
| 	 | ||||
| 	public void execute(String value); | ||||
| } | ||||
| @@ -1,119 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * adapters-core | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.management; | ||||
|  | ||||
| import java.util.HashMap; | ||||
| import java.util.Hashtable; | ||||
| import java.util.Map; | ||||
|  | ||||
| import javax.management.DynamicMBean; | ||||
| import javax.management.MBeanRegistration; | ||||
| import javax.management.NotCompliantMBeanException; | ||||
| import javax.management.StandardMBean; | ||||
|  | ||||
| import org.osgi.framework.BundleContext; | ||||
| import org.osgi.framework.ServiceRegistration; | ||||
| import org.osgi.service.component.ComponentContext; | ||||
| import org.osgi.service.component.annotations.Activate; | ||||
| import org.osgi.service.component.annotations.CollectionType; | ||||
| import org.osgi.service.component.annotations.Component; | ||||
| import org.osgi.service.component.annotations.Reference; | ||||
| import org.osgi.service.component.annotations.ReferenceCardinality; | ||||
| import org.osgi.service.component.annotations.ReferencePolicy; | ||||
| import org.osgi.service.component.annotations.ServiceScope; | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
|  | ||||
| import ru.entaxy.esb.platform.base.management.core.ManagementCore; | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api.Adapter; | ||||
|  | ||||
| @Component( | ||||
| 		service = {AdaptersMBean.class, DynamicMBean.class, MBeanRegistration.class}, | ||||
| 		// property = {"jmx.objectname=ru.entaxy.esb:group=platform,category=adapters"}, | ||||
| 		property = {ManagementCore.ENTAXY_JMX_DOMAIN + "=" + AdaptersMBean.Q_ADAPTERS_S}, | ||||
| 		scope = ServiceScope.SINGLETON, | ||||
| 		immediate = true | ||||
| 		) | ||||
| public class AdaptersMBeanImpl extends StandardMBean implements AdaptersMBean { | ||||
|  | ||||
| 	private static final Logger log = LoggerFactory.getLogger(AdaptersMBeanImpl.class); | ||||
| 	 | ||||
| 	protected Map<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"); | ||||
| 	} | ||||
| 	 | ||||
| } | ||||
| @@ -1,77 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * adapters-core | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.metadata; | ||||
|  | ||||
| public class AdapterFieldElement { | ||||
|  | ||||
| 	protected String name; | ||||
| 	protected String type = "String"; | ||||
| 	protected boolean property = false; | ||||
| 	protected boolean option = false; | ||||
| 	protected String defaultValue = ""; | ||||
|  | ||||
| 	public String getName() { | ||||
| 		return name; | ||||
| 	} | ||||
|  | ||||
| 	public void setName(String name) { | ||||
| 		this.name = name; | ||||
| 	} | ||||
|  | ||||
| 	public String getType() { | ||||
| 		return type; | ||||
| 	} | ||||
|  | ||||
| 	public void setType(String type) { | ||||
| 		this.type = type; | ||||
| 	} | ||||
|  | ||||
| 	public boolean isProperty() { | ||||
| 		return property; | ||||
| 	} | ||||
|  | ||||
| 	public void setProperty(boolean isProperty) { | ||||
| 		this.property = isProperty; | ||||
| 	} | ||||
|  | ||||
| 	public boolean isOption() { | ||||
| 		return option; | ||||
| 	} | ||||
|  | ||||
| 	public void setOption(boolean isOption) { | ||||
| 		this.option = isOption; | ||||
| 	} | ||||
|  | ||||
| 	public String getDefault() { | ||||
| 		return defaultValue; | ||||
| 	} | ||||
|  | ||||
| 	public void setDefault(String defaultValue) { | ||||
| 		this.defaultValue = defaultValue; | ||||
| 	} | ||||
| 	 | ||||
| 	 | ||||
| } | ||||
| @@ -1,93 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * adapters-core | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.metadata; | ||||
|  | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
|  | ||||
| import com.google.gson.JsonObject; | ||||
|  | ||||
| import ru.entaxy.platform.base.support.JSONUtils; | ||||
|  | ||||
| public class AdapterGeneratorElement { | ||||
|     protected String type; | ||||
|      | ||||
|     // Default generator is defined in GeneratorFactory | ||||
|     // no need to redefine it here | ||||
|     protected String generator = ""; | ||||
|  | ||||
|     protected JsonObject config; | ||||
|     protected Map<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 + "'}"; | ||||
|     } | ||||
| } | ||||
| @@ -1,85 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * adapters-core | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.metadata; | ||||
|  | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
|  | ||||
| public class AdapterMetadataElement { | ||||
| 	 | ||||
| 	protected static final Logger log = LoggerFactory.getLogger(AdapterMetadataElement.class); | ||||
| 	 | ||||
| 	protected String id; | ||||
| 	protected String name; | ||||
| 	protected String description; | ||||
|  | ||||
| 	protected List<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; | ||||
| 	} | ||||
| 	 | ||||
| } | ||||
| @@ -1,97 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * adapters-core | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.tracker; | ||||
|  | ||||
| import org.osgi.framework.Bundle; | ||||
| import org.osgi.framework.BundleContext; | ||||
| import org.osgi.framework.ServiceRegistration; | ||||
| import org.osgi.framework.wiring.BundleWiring; | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api.Adapter; | ||||
|  | ||||
| import java.lang.reflect.Constructor; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Hashtable; | ||||
| import java.util.List; | ||||
|  | ||||
| public class AdapterHelper { | ||||
| 	 | ||||
| 	protected static final Logger log = LoggerFactory.getLogger(AdapterHelper.class); | ||||
| 	 | ||||
| 	protected BundleContext bundleContext; | ||||
| 	 | ||||
| 	protected List<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); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| @@ -1,62 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * adapters-core | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.tracker; | ||||
|  | ||||
| import org.osgi.framework.Bundle; | ||||
| import org.osgi.framework.BundleContext; | ||||
| import org.osgi.framework.BundleEvent; | ||||
| import org.osgi.util.tracker.BundleTracker; | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api.Adapter; | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.impl.DefaultAdapter; | ||||
|  | ||||
| import java.util.Optional; | ||||
|  | ||||
| public class AdapterTracker extends BundleTracker { | ||||
| 	 | ||||
| 	protected static final Logger log = LoggerFactory.getLogger(AdapterTracker.class); | ||||
| 	 | ||||
| 	protected AdapterHelper helper; | ||||
| 	 | ||||
| 	@SuppressWarnings("unchecked") | ||||
| 	public AdapterTracker(BundleContext bundleContext) { | ||||
| 		super(bundleContext, Bundle.ACTIVE, null); | ||||
| 		this.helper = new AdapterHelper(bundleContext); | ||||
| 	} | ||||
| 	 | ||||
| 	@Override | ||||
| 	public Object addingBundle(Bundle bundle, BundleEvent event) { | ||||
| 		String isAdapter = bundle.getHeaders().get(Adapter.ADAPTER_HEADER_NAME); | ||||
| 		if (Boolean.valueOf(isAdapter)) { | ||||
| 			String className = Optional.ofNullable(bundle.getHeaders(). | ||||
| 					get(Adapter.ADAPTER_CLASS_HEADER_NAME)).orElse(DefaultAdapter.class.getName()); | ||||
| 			log.debug("Adapter class " + className + " FOUND IN BUNDLE " + bundle.getSymbolicName()); | ||||
| 			helper.create(bundle, className); | ||||
| 		} | ||||
| 		return bundle; | ||||
| 	} | ||||
| } | ||||
| @@ -1,72 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * adapters-core | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.tracker; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.Hashtable; | ||||
| import java.util.List; | ||||
|  | ||||
| import javax.management.DynamicMBean; | ||||
| import javax.management.MBeanRegistration; | ||||
|  | ||||
| import org.osgi.framework.BundleActivator; | ||||
| import org.osgi.framework.BundleContext; | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
|  | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.management.AdaptersMBean; | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.management.AdaptersMBeanImpl; | ||||
|  | ||||
| public class AdapterTrackerActivator implements BundleActivator { | ||||
|  | ||||
| 	protected static final Logger log = LoggerFactory.getLogger(AdapterTrackerActivator.class); | ||||
| 	 | ||||
| 	protected AdapterTracker tracker; | ||||
| 	 | ||||
| 	@Override | ||||
| 	public void start(BundleContext context) throws Exception { | ||||
| 		tracker = new AdapterTracker(context); | ||||
| 		tracker.open(); | ||||
| 		/* AdaptersMBeanImpl mbean = new AdaptersMBeanImpl(); | ||||
| 		Hashtable props = new Hashtable(); | ||||
|         props.put("jmx.objectname", "ru.entaxy.esb:type=bundle,name=adapters"); | ||||
|         List<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(); | ||||
| 	} | ||||
|  | ||||
| } | ||||
| @@ -1,49 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * adapters-core | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.util; | ||||
|  | ||||
| import org.osgi.framework.BundleContext; | ||||
| import org.osgi.framework.FrameworkUtil; | ||||
| import org.osgi.framework.InvalidSyntaxException; | ||||
| import org.osgi.framework.ServiceReference; | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
| import ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.api.Adapter; | ||||
|  | ||||
| import java.util.Collection; | ||||
|  | ||||
| public class AdapterUtil { | ||||
|     private static final Logger log = LoggerFactory.getLogger(AdapterUtil.class); | ||||
|     public static Adapter getAdapter(String adapterName) throws InvalidSyntaxException { | ||||
|         String filter = "(adapter.name=" + adapterName + ")"; | ||||
|         log.debug("Get adapter service filtered by: " + filter); | ||||
|         BundleContext bundleContext = FrameworkUtil.getBundle(Adapter.class).getBundleContext(); | ||||
|         Collection<ServiceReference<Adapter>> referenceList = bundleContext.getServiceReferences(Adapter.class, filter); | ||||
|         Adapter adapter = bundleContext.getService(referenceList.iterator().next()); | ||||
|  | ||||
|         return adapter; | ||||
|     } | ||||
| } | ||||
| @@ -1,33 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * adapters-core | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.esb.platform.runtime.base.connecting.adapter.core.util; | ||||
|  | ||||
| public class ConnectionUsageType { // TODO: 09.07.2021 maybe enum usage instead of class planning  | ||||
|     public static final String INIT = "init"; | ||||
|     public static final String REF = "ref"; | ||||
|     public static final String FROM = "from"; | ||||
|     public static final String TO = "to"; | ||||
| } | ||||
| @@ -1,175 +0,0 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
| @@ -1,38 +0,0 @@ | ||||
| <?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> | ||||
| @@ -1,79 +0,0 @@ | ||||
| { | ||||
| 	"adapter": { | ||||
| 		"id": "amqp.adapter.1", | ||||
| 		"name":  "amqpAdapter", | ||||
| 		"description": "Messaging with AMQP protocol using Apache QPid Client.", | ||||
| 		"fields": [ | ||||
| 			{ | ||||
| 				"name": "destinationType", | ||||
| 				"type": "String", | ||||
| 				"default": "queue", | ||||
| 				"property": false, | ||||
| 				"option": false | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "destinationName", | ||||
| 				"type": "String", | ||||
| 				"property": false, | ||||
| 				"option": false | ||||
| 			}, | ||||
|  | ||||
| 			{ | ||||
| 				"name": "clientId", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "acknowledgementModeName", | ||||
| 				"default": "AUTO_ACKNOWLEDGE", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "exchangePattern", | ||||
| 				"type": "ExchangePattern", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "password", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "url", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "username", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			} | ||||
| 		], | ||||
| 		"generators":[ | ||||
| 			{ | ||||
| 				"type": "pathParameter", | ||||
| 				"generator": "", | ||||
| 				"config": { | ||||
| 					"expression": "${destinationType}:${destinationName}" | ||||
| 				} | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "init", | ||||
| 				"generator": "" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "ref", | ||||
| 				"generator": "" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "from", | ||||
| 				"generator": "" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "to", | ||||
| 				"generator": "" | ||||
| 			} | ||||
| 		] | ||||
| 	} | ||||
| } | ||||
| @@ -1,42 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint-node"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     amqp-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#include 'queryParameters.ftl'] | ||||
| <from uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/> | ||||
| @@ -1,86 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     amqp-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#assign factoryProperties = ["url", "username", "password"]] | ||||
| [#function exceptFactoryProperties(propertyName)] | ||||
|     [#return !factoryProperties?seq_contains(propertyName)] | ||||
| [/#function] | ||||
| <?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> | ||||
| @@ -1,48 +0,0 @@ | ||||
| [#ftl] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     amqp-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#assign queryParameters] | ||||
|     [#if connection.options??] | ||||
|         [@compress single_line=true] | ||||
|             ?[#list connection.options as key, value][=key]=[=value][#sep]&[/#list] | ||||
|         [/@compress] | ||||
|     [/#if] | ||||
| [/#assign] | ||||
|  | ||||
| @@ -1,42 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint-node"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     amqp-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| <reference id="[=connection.name]" interface="org.apache.camel.Component" | ||||
|            filter="(connection.name=[=connection.name])"/> | ||||
| @@ -1,42 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint-node"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     amqp-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#include 'queryParameters.ftl'] | ||||
| <to uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/> | ||||
| @@ -1,175 +0,0 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
| @@ -1,38 +0,0 @@ | ||||
| <?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> | ||||
| @@ -1,694 +0,0 @@ | ||||
| { | ||||
| 	"adapter": { | ||||
| 		"id": "artemis.adapter.1", | ||||
| 		"name":  "artemisAdapter", | ||||
| 		"description": "Artemis adapter to interact with queues and topics.", | ||||
| 		"fields": [ | ||||
| 			{ | ||||
| 				"name": "destinationType", | ||||
| 				"type": "String", | ||||
| 				"default": "queue", | ||||
| 				"property": false, | ||||
| 				"option": false | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "destinationName", | ||||
| 				"type": "String", | ||||
| 				"property": false, | ||||
| 				"option": false | ||||
| 			}, | ||||
|  | ||||
| 			{ | ||||
| 				"name": "clientId", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "connectionFactory", | ||||
| 				"type": "ConnectionFactory", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "disableReplyTo", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "durableSubscriptionName", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "jmsMessageType", | ||||
| 				"type": "JmsMessageType", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "replyTo", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "testConnectionOnStartup", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "acknowledgementModeName", | ||||
| 				"default": "AUTO_ACKNOWLEDGE", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "artemisConsumerPriority", | ||||
| 				"type": "int", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "asyncConsumer", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "autoStartup", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "cacheLevel", | ||||
| 				"type": "int", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "cacheLevelName", | ||||
| 				"default": "CACHE_AUTO", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "concurrentConsumers", | ||||
| 				"type": "int", | ||||
| 				"default": "1", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "maxConcurrentConsumers", | ||||
| 				"type": "int", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "replyToDeliveryPersistent", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "selector", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "subscriptionDurable", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "subscriptionName", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "subscriptionShared", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "acceptMessagesWhileStopping", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "allowReplyManagerQuickStop", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "consumerType", | ||||
| 				"type": "ConsumerType", | ||||
| 				"default": "Default", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "defaultTaskExecutorType", | ||||
| 				"type": "DefaultTaskExecutorType", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "eagerLoadingOfProperties", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "eagerPoisonBody", | ||||
| 				"default": "Poison JMS message due to ${exception.message}", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "exceptionHandler", | ||||
| 				"type": "ExceptionHandler", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "exchangePattern", | ||||
| 				"type": "ExchangePattern", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "exposeListenerSession", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "replyToSameDestinationAllowed", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "taskExecutor", | ||||
| 				"type": "TaskExecutor", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "deliveryDelay", | ||||
| 				"type": "long", | ||||
| 				"default": "-1", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "deliveryMode", | ||||
| 				"type": "Integer", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "deliveryPersistent", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "explicitQosEnabled", | ||||
| 				"type": "Boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "formatDateHeadersToIso8601", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "lazyStartProducer", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "preserveMessageQos", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "priority", | ||||
| 				"type": "int", | ||||
| 				"default": "4", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "replyToConcurrentConsumers", | ||||
| 				"type": "int", | ||||
| 				"default": "1", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "replyToMaxConcurrentConsumers", | ||||
| 				"type": "int", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "replyToOnTimeoutMaxConcurrentConsumers", | ||||
| 				"type": "int", | ||||
| 				"default": "1", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "replyToOverride", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "replyToType", | ||||
| 				"type": "ReplyToType", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "requestTimeout", | ||||
| 				"type": "long", | ||||
| 				"default": "20000", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "timeToLive", | ||||
| 				"type": "long", | ||||
| 				"default": "-1", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "allowAdditionalHeaders", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "allowNullBody", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "alwaysCopyMessage", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "correlationProperty", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "disableTimeToLive", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "forceSendOriginalMessage", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "includeSentJMSMessageID", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "replyToCacheLevelName", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "replyToDestinationSelectorName", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "streamMessageTypeEnabled", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "allowAutoWiredConnectionFactory", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "allowAutoWiredDestinationResolver", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "allowSerializedHeaders", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "artemisStreamingEnabled", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "asyncStartListener", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "asyncStopListener", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "autowiredEnabled", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "configuration", | ||||
| 				"type": "JmsConfiguration", | ||||
| 				"property": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "destinationResolver", | ||||
| 				"type": "DestinationResolver", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "errorHandler", | ||||
| 				"type": "ErrorHandler", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "exceptionListener", | ||||
| 				"type": "ExceptionListener", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "headerFilterStrategy", | ||||
| 				"type": "HeaderFilterStrategy", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "idleConsumerLimit", | ||||
| 				"type": "int", | ||||
| 				"default": "1", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "idleTaskExecutionLimit", | ||||
| 				"type": "int", | ||||
| 				"default": "1", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "includeAllJMSXProperties", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "jmsKeyFormatStrategy", | ||||
| 				"type": "JmsKeyFormatStrategy", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "mapJmsMessage", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "maxMessagesPerTask", | ||||
| 				"type": "int", | ||||
| 				"default": "-1", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "messageConverter", | ||||
| 				"type": "MessageConverter", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "messageCreatedStrategy", | ||||
| 				"type": "MessageCreatedStrategy", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "messageIdEnabled", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "messageListenerContainerFactory", | ||||
| 				"type": "MessageListenerContainerFactory", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "messageTimestampEnabled", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "pubSubNoLocal", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "queueBrowseStrategy", | ||||
| 				"type": "QueueBrowseStrategy", | ||||
| 				"property": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "receiveTimeout", | ||||
| 				"type": "long", | ||||
| 				"default": "1000", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "recoveryInterval", | ||||
| 				"type": "long", | ||||
| 				"default": "5000", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "requestTimeoutCheckerInterval", | ||||
| 				"type": "long", | ||||
| 				"default": "1000", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "synchronous", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "transferException", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "transferExchange", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "useMessageIDAsCorrelationID", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "waitForProvisionCorrelationToBeUpdatedCounter", | ||||
| 				"type": "int", | ||||
| 				"default": "50", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime", | ||||
| 				"type": "long", | ||||
| 				"default": "100", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "errorHandlerLoggingLevel", | ||||
| 				"type": "LoggingLevel", | ||||
| 				"default": "WARN", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "errorHandlerLogStackTrace", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "password", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "username", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "transacted", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "transactedInOut", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "lazyCreateTransactionManager", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "transactionManager", | ||||
| 				"type": "PlatformTransactionManager", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "transactionName", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "transactionTimeout", | ||||
| 				"type": "int", | ||||
| 				"default": "-1", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			} | ||||
| 		], | ||||
| 		"generators":[ | ||||
| 			{ | ||||
| 				"type": "pathParameter", | ||||
| 				"generator": "", | ||||
| 				"config": { | ||||
| 					"expression": "${destinationType}:${destinationName}" | ||||
| 				} | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "init", | ||||
| 				"generator": "", | ||||
| 				"config": { | ||||
| 					"param1": "value1", | ||||
| 					"param2": 10, | ||||
| 					"param3": true  | ||||
| 				} | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "ref", | ||||
| 				"generator": "" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "from", | ||||
| 				"generator": "" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "to", | ||||
| 				"generator": "" | ||||
| 			} | ||||
| 		] | ||||
| 	} | ||||
| } | ||||
| @@ -1,42 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint-node"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     artemis-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#include 'queryParameters.ftl'] | ||||
| <from uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/> | ||||
| @@ -1,94 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     artemis-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#assign factoryProperties = ["url", "username", "password", "maxConnections", "maxSessionsPerConnection"]] | ||||
| [#function exceptFactoryProperties(propertyName)] | ||||
|   [#return !factoryProperties?seq_contains(propertyName)] | ||||
| [/#function] | ||||
| <?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> | ||||
| @@ -1,47 +0,0 @@ | ||||
| [#ftl] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     artemis-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#assign queryParameters] | ||||
|     [#if connection.options??] | ||||
|         [@compress single_line=true] | ||||
|             ?[#list connection.options as key, value][=key]=[=value][#sep]&[/#list] | ||||
|          [/@compress] | ||||
|     [/#if] | ||||
| [/#assign] | ||||
| @@ -1,42 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint-node"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     artemis-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| <reference id="[=connection.name]" interface="org.apache.camel.Component" | ||||
|            filter="(connection.name=[=connection.name])"/> | ||||
| @@ -1,42 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint-node"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     artemis-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#include 'queryParameters.ftl'] | ||||
| <to uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/> | ||||
| @@ -1,175 +0,0 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
| @@ -1,38 +0,0 @@ | ||||
| <?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> | ||||
| @@ -1,79 +0,0 @@ | ||||
| { | ||||
| 	"adapter": { | ||||
| 		"id": "artemis.amqp.adapter.1", | ||||
| 		"name":  "artemisAmqpAdapter", | ||||
| 		"description": "Messaging with AMQP protocol using Apache QPid Client.", | ||||
| 		"fields": [ | ||||
| 			{ | ||||
| 				"name": "destinationType", | ||||
| 				"type": "String", | ||||
| 				"default": "queue", | ||||
| 				"property": false, | ||||
| 				"option": false | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "destinationName", | ||||
| 				"type": "String", | ||||
| 				"property": false, | ||||
| 				"option": false | ||||
| 			}, | ||||
|  | ||||
| 			{ | ||||
| 				"name": "clientId", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "acknowledgementModeName", | ||||
| 				"default": "AUTO_ACKNOWLEDGE", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "exchangePattern", | ||||
| 				"type": "ExchangePattern", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "password", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "url", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "username", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			} | ||||
| 		], | ||||
| 		"generators":[ | ||||
| 			{ | ||||
| 				"type": "pathParameter", | ||||
| 				"generator": "", | ||||
| 				"config": { | ||||
| 					"expression": "${destinationType}:${destinationName}" | ||||
| 				} | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "init", | ||||
| 				"generator": "" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "ref", | ||||
| 				"generator": "" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "from", | ||||
| 				"generator": "" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "to", | ||||
| 				"generator": "" | ||||
| 			} | ||||
| 		] | ||||
| 	} | ||||
| } | ||||
| @@ -1,42 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint-node"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     artemis-amqp-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#include 'queryParameters.ftl'] | ||||
| <from uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/> | ||||
| @@ -1,86 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     artemis-amqp-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#assign factoryProperties = ["url", "username", "password"]] | ||||
| [#function exceptFactoryProperties(propertyName)] | ||||
|     [#return !factoryProperties?seq_contains(propertyName)] | ||||
| [/#function] | ||||
| <?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> | ||||
| @@ -1,48 +0,0 @@ | ||||
| [#ftl] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     artemis-amqp-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#assign queryParameters] | ||||
|     [#if connection.options??] | ||||
|         [@compress single_line=true] | ||||
|             ?[#list connection.options as key, value][=key]=[=value][#sep]&[/#list] | ||||
|         [/@compress] | ||||
|     [/#if] | ||||
| [/#assign] | ||||
|  | ||||
| @@ -1,42 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint-node"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     artemis-amqp-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| <reference id="[=connection.name]" interface="org.apache.camel.Component" | ||||
|            filter="(connection.name=[=connection.name])"/> | ||||
| @@ -1,42 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint-node"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     artemis-amqp-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#include 'queryParameters.ftl'] | ||||
| <to uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/> | ||||
| @@ -1,175 +0,0 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
| @@ -1,61 +0,0 @@ | ||||
| <?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> | ||||
| @@ -1,75 +0,0 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * file-adapter | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * ========== | ||||
|  * You may not use this file except in accordance with the License Terms of the Copyright | ||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
|  * rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
|  * it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
|  * Software for commercial purposes to provide services to third parties. | ||||
|  *  | ||||
|  * The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
|  * Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
|  * Software provided by him will be suitable or not suitable for the specific purposes | ||||
|  * of the User, that the Software will meet all commercial and personal subjective | ||||
|  * expectations of the User, that the Software will work properly, without technical | ||||
|  * errors, quickly and uninterruptedly. | ||||
|  *  | ||||
|  * Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
|  * to the User for any direct or indirect losses of the User, his expenses or actual | ||||
|  * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
|  * or damage to data, property, etc. | ||||
|  * ~~~~~~/licensing~~~~~~ | ||||
|  */ | ||||
| package ru.entaxy.platform.adapter.file; | ||||
|  | ||||
| import java.io.File; | ||||
| import java.util.Map; | ||||
|  | ||||
| import org.apache.camel.component.file.FileComponent; | ||||
| import org.apache.camel.component.file.GenericFileEndpoint; | ||||
| import org.apache.camel.util.StringHelper; | ||||
|  | ||||
| import ru.entaxy.platform.base.support.CommonUtils; | ||||
|  | ||||
| public class ExtendedFileComponent extends FileComponent { | ||||
|  | ||||
| 	protected String rootDirectory = ""; | ||||
|  | ||||
| 	@Override | ||||
| 	protected GenericFileEndpoint<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; | ||||
| 	} | ||||
| 	 | ||||
| } | ||||
| @@ -1,540 +0,0 @@ | ||||
| { | ||||
| 	"adapter": { | ||||
| 		"id": "file.adapter.1", | ||||
| 		"name":  "fileAdapter", | ||||
| 		"description": "File adapter to interact with FS.", | ||||
| 		"fields": [ | ||||
| 			{ | ||||
| 				"name": "directoryName", | ||||
| 				"type": "File", | ||||
| 				"default": "./default-directory/", | ||||
| 				"property": false, | ||||
| 				"option": false | ||||
| 			}, | ||||
|  | ||||
| 			{ | ||||
| 				"name": "bridgeErrorHandler", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "lazyStartProducer", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "autowiredEnabled", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true, | ||||
| 				"option": false | ||||
| 			}, | ||||
|  | ||||
| 			{ | ||||
| 				"name": "charset", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "doneFileName", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "fileName", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "delete", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "moveFailed", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "noop", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "preMove", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "preSort", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "recursive", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "sendEmptyMessageWhenIdle", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "directoryMustExist", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "exceptionHandler", | ||||
| 				"type": "ExceptionHandler", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "exchangePattern", | ||||
| 				"type": "ExchangePattern", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "extendedAttributes", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "inProgressRepository", | ||||
| 				"type": "IdempotentRepository", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "IdempotentRepository", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "onCompletionExceptionHandler", | ||||
| 				"type": "ExceptionHandler", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "pollStrategy", | ||||
| 				"type": "PollingConsumerPollStrategy", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "probeContentType", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "processStrategy", | ||||
| 				"type": "GenericFileProcessStrategy", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "startingDirectoryMustExist", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "startingDirectoryMustHaveAccess", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "appendChars", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "fileExist", | ||||
| 				"type": "GenericFileExist", | ||||
| 				"default": "Override", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "flatten", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "jailStartingDirectory", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "moveExisting", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "tempFileName", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "tempPrefix", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "allowNullBody", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "chmod", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "chmodDirectory", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "eagerDeleteTargetFile", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "forceWrites", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "keepLastModified", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "moveExistingFileStrategy", | ||||
| 				"type": "FileMoveExistingStrategy", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "autoCreate", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "bufferSize", | ||||
| 				"type": "int", | ||||
| 				"default": "131072", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "copyAndDeleteOnRenameFail", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "renameUsingCopy", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "synchronous", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "antExclude", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "antFilterCaseSensitive", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "antInclude", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "eagerMaxMessagesPerPoll", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "exclude", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "excludeExt", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "filter", | ||||
| 				"type": "GenericFileFilter", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "filterDirectory", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "filterFile", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "idempotent", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "idempotentKey", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "idempotentRepository", | ||||
| 				"type": "IdempotentRepository", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "include", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "includeExt", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "maxDepth", | ||||
| 				"type": "int", | ||||
| 				"default": "2147483647", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "maxMessagesPerPoll", | ||||
| 				"type": "int", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "minDepth", | ||||
| 				"type": "int", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "move", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "exclusiveReadLockStrategy", | ||||
| 				"type": "GenericFileExclusiveReadLockStrategy", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readLock", | ||||
| 				"default": "none", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readLockCheckInterval", | ||||
| 				"type": "long", | ||||
| 				"default": "1000", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readLockDeleteOrphanLockFiles", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readLockIdempotentReleaseAsync", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readLockIdempotentReleaseAsyncPoolSize", | ||||
| 				"type": "int", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readLockIdempotentReleaseDelay", | ||||
| 				"type": "int", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readLockIdempotentReleaseExecutorService", | ||||
| 				"type": "ScheduledExecutorService", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readLockLoggingLevel", | ||||
| 				"type": "LoggingLevel", | ||||
| 				"default": "DEBUG", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readLockMarkerFile", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readLockMinAge", | ||||
| 				"type": "long", | ||||
| 				"default": "0", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readLockMinLength", | ||||
| 				"type": "long", | ||||
| 				"default": "1", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readLockRemoveOnCommit", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readLockRemoveOnRollback", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readLockTimeout", | ||||
| 				"type": "long", | ||||
| 				"default": "10000", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "backoffErrorThreshold", | ||||
| 				"type": "int", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "backoffIdleThreshold", | ||||
| 				"type": "int", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "backoffMultiplier", | ||||
| 				"type": "int", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "delay", | ||||
| 				"type": "long", | ||||
| 				"default": "500", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "greedy", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "initialDelay", | ||||
| 				"type": "long", | ||||
| 				"default": "1000", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "repeatCount", | ||||
| 				"type": "long", | ||||
| 				"default": "0", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "runLoggingLevel", | ||||
| 				"type": "LoggingLevel", | ||||
| 				"default": "TRACE", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "scheduledExecutorService", | ||||
| 				"type": "ScheduledExecutorService", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "scheduler", | ||||
| 				"type": "Object", | ||||
| 				"default": "none", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "schedulerProperties", | ||||
| 				"type": "Map", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "startScheduler", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "timeUnit", | ||||
| 				"type": "TimeUnit", | ||||
| 				"default": "MILLISECONDS", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "useFixedDelay", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "shuffle", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "sortBy", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "sorter", | ||||
| 				"type": "Comparator", | ||||
| 				"option": true | ||||
| 			} | ||||
| 		], | ||||
| 		"generators":[ | ||||
| 			{ | ||||
| 				"type": "pathParameter", | ||||
| 				"generator": "", | ||||
| 				"config": { | ||||
| 					"expression": "${directoryName}" | ||||
| 				} | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "init", | ||||
| 				"generator": "" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "ref", | ||||
| 				"generator": "" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "from", | ||||
| 				"generator": "" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "to", | ||||
| 				"generator": "" | ||||
| 			} | ||||
| 		] | ||||
| 	} | ||||
| } | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,55 +0,0 @@ | ||||
| [#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> | ||||
| @@ -1,39 +0,0 @@ | ||||
| [#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> | ||||
| @@ -1,3 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint.fragment"}] | ||||
| <reference id="[=objectId]" interface="org.apache.camel.Component" | ||||
|            filter="(connection.name=[=objectId])"/> | ||||
| @@ -1,42 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint-node"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     file-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#include 'queryParameters.ftl'] | ||||
| <from uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/> | ||||
| @@ -1,74 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     file-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| <?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> | ||||
| @@ -1,47 +0,0 @@ | ||||
| [#ftl] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     file-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#assign queryParameters] | ||||
|     [#if connection.options??] | ||||
|         [@compress single_line=true] | ||||
|             ?[#list connection.options as key, value][=key]=[=value][#sep]&[/#list] | ||||
|          [/@compress] | ||||
|     [/#if] | ||||
| [/#assign] | ||||
| @@ -1,42 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint-node"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     file-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| <reference id="[=connection.name]" interface="org.apache.camel.Component" | ||||
|            filter="(connection.name=[=connection.name])"/> | ||||
| @@ -1,42 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint-node"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     file-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#include 'queryParameters.ftl'] | ||||
| <to uri="[=connection.name]:[=connection.pathParameter][=queryParameters]"/> | ||||
| @@ -1,175 +0,0 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
| @@ -1,47 +0,0 @@ | ||||
| <?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> | ||||
| @@ -1,34 +0,0 @@ | ||||
| ### | ||||
| # ~~~~~~licensing~~~~~~ | ||||
| # h2-adapter | ||||
| # ========== | ||||
| # Copyright (C) 2020 - 2023 EmDev LLC | ||||
| # ========== | ||||
| # You may not use this file except in accordance with the License Terms of the Copyright | ||||
| # Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||
| # rights to the Software and any copies are the property of the Copyright Holder. Unless | ||||
| # it is explicitly allowed the Copyright Holder, the User is prohibited from using the | ||||
| # Software for commercial purposes to provide services to third parties. | ||||
| #  | ||||
| # The Copyright Holder hereby declares that the Software is provided on an "AS IS". | ||||
| # Under no circumstances does the Copyright Holder guarantee or promise that the | ||||
| # Software provided by him will be suitable or not suitable for the specific purposes | ||||
| # of the User, that the Software will meet all commercial and personal subjective | ||||
| # expectations of the User, that the Software will work properly, without technical | ||||
| # errors, quickly and uninterruptedly. | ||||
| #  | ||||
| # Under no circumstances shall the Copyright Holder or its Affiliates is not liable | ||||
| # to the User for any direct or indirect losses of the User, his expenses or actual | ||||
| # damage, including, downtime; loss of bussines; lost profit; lost earnings; loss | ||||
| # or damage to data, property, etc. | ||||
| # ~~~~~~/licensing~~~~~~ | ||||
| ### | ||||
| dataSourceName=entaxy.esb.storage | ||||
| osgi.jdbc.driver.name=H2 JDBC Driver | ||||
|  | ||||
| databaseName=${karaf.data}/storage | ||||
| user=sa | ||||
| password= | ||||
| pool=dbcp2 | ||||
| xa=true | ||||
| jdbc.pool.maxTotal=50 | ||||
| @@ -1,134 +0,0 @@ | ||||
| { | ||||
| 	"adapter": { | ||||
| 		"id": "h2.adapter.${h2.version}", | ||||
| 		"name":  "h2Adapter", | ||||
| 		"description": "H2 adapter to interact with databases.", | ||||
| 		"fields": [ | ||||
| 			{ | ||||
| 				"name": "dataSourceName", | ||||
| 				"type": "String", | ||||
| 				"default": "dataSource", | ||||
| 				"property": false, | ||||
| 				"option": false | ||||
| 			}, | ||||
|  | ||||
| 			{ | ||||
| 				"name": "dataSource", | ||||
| 				"type": "DataSource", | ||||
| 				"property": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "lazyStartProducer", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "autowiredEnabled", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"property": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "connectionStrategy", | ||||
| 				"type": "ConnectionStrategy", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
|  | ||||
| 			{ | ||||
| 				"name": "allowNamedParameters", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "outputClass", | ||||
| 				"property": true, | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "outputType", | ||||
| 				"type": "JdbcOutputType", | ||||
| 				"default": "SelectList", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "parameters", | ||||
| 				"default": "Map", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "readSize", | ||||
| 				"type": "int", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "resetAutoCommit", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "transacted", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "useGetBytesForBlob", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "useHeadersAsParameters", | ||||
| 				"type": "boolean", | ||||
| 				"default": "false", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "useJDBC4ColumnNameAndLabelSemantics", | ||||
| 				"type": "boolean", | ||||
| 				"default": "true", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "beanRowMapper", | ||||
| 				"type": "BeanRowMapper", | ||||
| 				"option": true | ||||
| 			}, | ||||
| 			{ | ||||
| 				"name": "prepareStatementStrategy", | ||||
| 				"type": "JdbcPrepareStatementStrategy", | ||||
| 				"option": true | ||||
| 			} | ||||
| 		], | ||||
| 		"generators":[ | ||||
| 			{ | ||||
| 				"type": "pathParameter", | ||||
| 				"generator": "", | ||||
| 				"config": { | ||||
| 					"expression": "${dataSourceName}" | ||||
| 				} | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "init", | ||||
| 				"generator": "" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "ref", | ||||
| 				"generator": "" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "from", | ||||
| 				"generator": "" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"type": "to", | ||||
| 				"generator": "" | ||||
| 			} | ||||
| 		] | ||||
| 	} | ||||
| } | ||||
| @@ -1,79 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint"} /] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     h2-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| <?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> | ||||
| @@ -1,47 +0,0 @@ | ||||
| [#ftl] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     h2-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#assign queryParameters] | ||||
|     [#if connection.options??] | ||||
|         [@compress single_line=true] | ||||
|             ?[#list connection.options as key, value][=key]=[=value][#sep]&[/#list] | ||||
|          [/@compress] | ||||
|     [/#if] | ||||
| [/#assign] | ||||
| @@ -1,42 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint-node"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     h2-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| <reference id="[=connection.name]" interface="org.apache.camel.Component" | ||||
|            filter="(connection.name=[=connection.name])"/> | ||||
| @@ -1,42 +0,0 @@ | ||||
| [#ftl attributes={"generated.type":"blueprint-node"}] | ||||
| [#-- | ||||
|  | ||||
|     ~~~~~~licensing~~~~~~ | ||||
|     h2-adapter | ||||
|     ========== | ||||
|     Copyright (C) 2020 - 2023 EmDev LLC | ||||
|     ========== | ||||
|     You may not use this file except in accordance with the License Terms of | ||||
|     the Copyright | ||||
|     Holder located at: https://entaxy.ru/eula . All copyrights, all | ||||
|     intellectual property | ||||
|     rights to the Software and any copies are the property of the Copyright | ||||
|     Holder. Unless | ||||
|     it is explicitly allowed the Copyright Holder, the User is prohibited | ||||
|     from using the | ||||
|     Software for commercial purposes to provide services to third parties. | ||||
|  | ||||
|     The Copyright Holder hereby declares that the Software is provided on an | ||||
|     "AS IS". | ||||
|     Under no circumstances does the Copyright Holder guarantee or promise | ||||
|     that the | ||||
|     Software provided by him will be suitable or not suitable for the | ||||
|     specific purposes | ||||
|     of the User, that the Software will meet all commercial and personal | ||||
|     subjective | ||||
|     expectations of the User, that the Software will work properly, without | ||||
|     technical | ||||
|     errors, quickly and uninterruptedly. | ||||
|  | ||||
|     Under no circumstances shall the Copyright Holder or its Affiliates is | ||||
|     not liable | ||||
|     to the User for any direct or indirect losses of the User, his expenses | ||||
|     or actual | ||||
|     damage, including, downtime; loss of bussines; lost profit; lost | ||||
|     earnings; loss | ||||
|     or damage to data, property, etc. | ||||
|     ~~~~~~/licensing~~~~~~ | ||||
|  | ||||
| --] | ||||
| [#include 'queryParameters.ftl'] | ||||
| <to uri="[=connection.name]:entaxy[=queryParameters]"/> | ||||
| @@ -1,175 +0,0 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
| @@ -1,38 +0,0 @@ | ||||
| <?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
		Reference in New Issue
	
	Block a user