release version 1.11.0
This commit is contained in:
		
							
								
								
									
										76
									
								
								platform-backward-compat/blueprint-generator-service/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								platform-backward-compat/blueprint-generator-service/pom.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,76 @@ | ||||
| <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||
|   <modelVersion>4.0.0</modelVersion> | ||||
|   <parent> | ||||
|     <groupId>ru.entaxy.platform</groupId> | ||||
|     <artifactId>platform-backward-compat</artifactId> | ||||
|     <version>1.11.0</version> | ||||
|   </parent> | ||||
|   <groupId>ru.entaxy.platform.backward-compat</groupId> | ||||
|   <artifactId>blueprint-generator-service</artifactId> | ||||
|   <packaging>bundle</packaging> | ||||
|   <name>ENTAXY :: PLATFORM :: BACKWARD COMPATIBILITY :: BLUEPRINT GENERATOR SERVICE</name> | ||||
|   <description>ENTAXY :: PLATFORM :: BACKWARD COMPATIBILITY :: BLUEPRINT GENERATOR SERVICE</description> | ||||
|    | ||||
|   <properties> | ||||
|   	<bundle.osgi.export.pkg>ru.entaxy.platform.core.blueprint.generator</bundle.osgi.export.pkg> | ||||
|   </properties> | ||||
|    | ||||
|  	<dependencies> | ||||
| 		<dependency> | ||||
| 			<groupId>org.apache.karaf</groupId> | ||||
| 			<artifactId>org.apache.karaf.util</artifactId> | ||||
| 		</dependency> | ||||
| 		<!-- dependency> | ||||
| 			<groupId>ru.entaxy.esb.platform.runtime.base</groupId> | ||||
| 			<artifactId>base-support</artifactId> | ||||
| 			<version>${project.version}</version> | ||||
| 		</dependency> | ||||
|         <dependency> | ||||
|             <groupId>com.google.code.gson</groupId> | ||||
|             <artifactId>gson</artifactId> | ||||
|         </dependency--> | ||||
| 	  	<dependency> | ||||
| 	  		<groupId>org.osgi</groupId> | ||||
| 	  		<artifactId>org.osgi.service.component.annotations</artifactId> | ||||
| 	  		<version>1.4.0</version> | ||||
| 	  		<scope>compile</scope> | ||||
| 	  	</dependency> | ||||
| 	  	<!-- dependency> | ||||
| 	  		<groupId>ru.entaxy.esb.system.core</groupId> | ||||
| 	  		<artifactId>template</artifactId> | ||||
| 	  		<version>${project.version}</version> | ||||
| 	  	</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.connecting.generator | ||||
| 	  		</groupId> | ||||
| 	  		<artifactId>generator-factory</artifactId> | ||||
| 	  		<version>${project.version}</version> | ||||
| 	  	</dependency> | ||||
|  	</dependencies> | ||||
|    | ||||
| 	  <build> | ||||
| 	  	<plugins> | ||||
| 		    <plugin> | ||||
| 		        <groupId>org.apache.felix</groupId> | ||||
| 		        <artifactId>maven-bundle-plugin</artifactId> | ||||
| 		        <version>${maven-bundle-plugin.version}</version> | ||||
| 		        <extensions>true</extensions> | ||||
| 		        <configuration> | ||||
| 		            <instructions> | ||||
| 		            	<Entaxy-Template-Provider>true</Entaxy-Template-Provider> | ||||
| 		            	<_dsannotations>*</_dsannotations> | ||||
| 		            </instructions> | ||||
| 		        </configuration> | ||||
| 		    </plugin> | ||||
| 	  	</plugins> | ||||
| 	  </build> | ||||
|    | ||||
| </project> | ||||
| @@ -0,0 +1,69 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * blueprint-generator | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.core.blueprint.generator; | ||||
|  | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
|  | ||||
| public class Blueprint { | ||||
|  | ||||
|     private String name; | ||||
|     private byte[] body; | ||||
|  | ||||
|     private Map<String, Object> properties = new HashMap<>(); | ||||
|      | ||||
|     public Blueprint(String name, byte[] body) { | ||||
|         this.name = name; | ||||
|         this.body = body; | ||||
|     } | ||||
|  | ||||
|     public String getName() { | ||||
|         return name; | ||||
|     } | ||||
|  | ||||
|     public void setName(String name) { | ||||
|         this.name = name; | ||||
|     } | ||||
|  | ||||
|     public byte[] getBody() { | ||||
|         return body; | ||||
|     } | ||||
|  | ||||
|     public void setBody(byte[] body) { | ||||
|         this.body = body; | ||||
|     } | ||||
|  | ||||
|     public Map<String, Object> getProperties() { | ||||
| 		return properties; | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
|     public String toString() { | ||||
|         return "Blueprint{" + | ||||
|                 "name='" + name + '\'' + | ||||
|                 '}'; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,38 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * blueprint-generator | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.core.blueprint.generator; | ||||
|  | ||||
| import java.net.URL; | ||||
| import java.util.Map; | ||||
|  | ||||
| public interface BlueprintGenerator { | ||||
|  | ||||
|     Blueprint createBlueprint(URL templateUrl, String templateName, String systemName, Map<String, String> params) | ||||
|             throws Exception; | ||||
|  | ||||
|     Blueprint createBlueprint(String templateName, String systemName, Map<String, String> params) | ||||
|             throws Exception; | ||||
| } | ||||
| @@ -0,0 +1,113 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * blueprint-generator | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.core.blueprint.generator; | ||||
|  | ||||
| import java.net.URL; | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
|  | ||||
| import org.osgi.service.component.annotations.Component; | ||||
| import org.osgi.service.component.annotations.Reference; | ||||
| import org.osgi.service.component.annotations.ReferenceCardinality; | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
|  | ||||
| import ru.entaxy.base.generator.template.Template; | ||||
| import ru.entaxy.base.generator.template.TemplateAwareGenerator; | ||||
| import ru.entaxy.base.generator.template.TemplateImpl; | ||||
| import ru.entaxy.base.generator.template.TemplateService; | ||||
| 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; | ||||
|  | ||||
| @Component(service = {BlueprintGenerator.class}, immediate = true) | ||||
| public class BlueprintGeneratorImpl implements BlueprintGenerator { | ||||
|  | ||||
|     private static final Logger LOG = LoggerFactory.getLogger(BlueprintGeneratorImpl.class); | ||||
|     private static final String SYSTEM_NAME = "systemName"; | ||||
|  | ||||
|     @Reference(cardinality = ReferenceCardinality.MANDATORY) | ||||
|     protected TemplateService templateService; | ||||
|      | ||||
|     @Override | ||||
|     public Blueprint createBlueprint(URL templateUrl, String templateName, String systemName, Map<String, String> params) | ||||
|             throws Exception { | ||||
|     	TemplateImpl template = new TemplateImpl(); | ||||
|     	template.setTemplateName(templateName); | ||||
|     	template.setTemplateLocation(templateUrl.toString()); | ||||
|     	template.setType("ftl"); | ||||
|         return createBlueprintWithTemplate(template, systemName, params); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Blueprint createBlueprint(String templateName, String systemName, Map<String, String> params) throws Exception { | ||||
|     	Template template = templateService.getTemplateById(templateName); | ||||
|     	if (template == null) { | ||||
|     		LOG.error("Template not found: [{}]", templateName); | ||||
|     		// TODO throw exception | ||||
|     		return null; | ||||
|     	} | ||||
|         return createBlueprintWithTemplate(template, systemName, params); | ||||
|     } | ||||
|  | ||||
|     protected Blueprint createBlueprintWithTemplate(ru.entaxy.base.generator.template.Template template, | ||||
|     		String systemName, Map<String, String> params) throws Exception { | ||||
|     	TemplateAwareGenerator generator = GeneratorFactory.createGenerator(template); | ||||
|     	if (generator == null) { | ||||
|     		LOG.error("Generator not found for template: [{}]", template.getId()); | ||||
|     		// TODO throw exception | ||||
|     		return null; | ||||
|     	} | ||||
|     	addSystemParam(params, systemName); | ||||
|     	Map<String, Object> parameters = new HashMap<>(); | ||||
|     	parameters.putAll(params); | ||||
|     	Generated result = generator.generate(template,parameters); | ||||
|     	if ((result == null) || (result.getObject() == null)) { | ||||
|     		LOG.error("Generator returned null for template: [{}]", template.getId()); | ||||
|     		// TODO throw exception | ||||
|     		return null; | ||||
|     	} | ||||
|     	if (!Generated.GENERATED_TYPE_BLUEPRINT.equals(result.getType())) { | ||||
| 			LOG.error("Generator returned type [{}], while [{}] is expected for template: [{}]" | ||||
| 					, result.getType() | ||||
| 					, Generated.GENERATED_TYPE_BLUEPRINT | ||||
| 					, template.getId()); | ||||
| 			// TODO throw exception | ||||
| 			return null; | ||||
|     	} | ||||
|     	Blueprint blueprint = new Blueprint(template.getTemplateName(), result.getObject().toString().getBytes()); | ||||
|     	blueprint.getProperties().putAll(result.getProperties()); | ||||
|     	blueprint.getProperties().put("template.name", template.getTemplateName()); | ||||
|     	blueprint.getProperties().put("template.id", template.getId()); | ||||
|     	blueprint.getProperties().put("template.type", template.getType()); | ||||
|     	return blueprint; | ||||
|     } | ||||
|      | ||||
|     private void addSystemParam(Map<String, String> params, String systemName) { | ||||
|         params.put(SYSTEM_NAME, systemName); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,39 @@ | ||||
| [#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" | ||||
|            xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> | ||||
|  | ||||
|     <bean id="inConnectorCollector" class="ru.entaxy.esb.system.profile.commons.InConnectorCollector"/> | ||||
|  | ||||
|     <bean id="system-profile" class="ru.entaxy.esb.system.registry.systems.profile.impl.defaults.DefaultSystemProfile" | ||||
|           activation="eager"> | ||||
|         <property name="systemName" value="[=systemName]"/> | ||||
|         <property name="profileOutput" ref="profileOutput"/> | ||||
|     </bean> | ||||
|  | ||||
|     <bean id="profileOutput" class="ru.entaxy.esb.system.profile.commons.profile_output.ProfileOutputImpl" | ||||
|           activation="eager"> | ||||
|         <property name="systemName" value="[=systemName]"/> | ||||
|     </bean> | ||||
|  | ||||
|     <service activation="eager" auto-export="interfaces" ref="system-profile"/> | ||||
|  | ||||
|     <reference id="pooledConnectionFactory" interface="javax.jms.ConnectionFactory"/> | ||||
|  | ||||
|     <bean id="jms" class="org.apache.camel.component.jms.JmsComponent"> | ||||
|         <property name="connectionFactory" ref="pooledConnectionFactory"/> | ||||
|     </bean> | ||||
|  | ||||
|     <camelContext id="profile-[=systemName]" xmlns="http://camel.apache.org/schema/blueprint"> | ||||
|         <route> | ||||
|             <from uri="direct-vm:profile-[=systemName]-enter-point"/> | ||||
|             <log message="Message ${headers} send to bridge" loggingLevel="TRACE"/> | ||||
|             <toD uri="permission:checkSystemAccessException?objectId=${headers.X-SystemId}&subjectId=[=systemName]"/> | ||||
|             <setHeader name="NTX_DestinationPointAfterBridge"> | ||||
|                 <simple>system:[=systemName]</simple> | ||||
|             </setHeader> | ||||
|             <to uri="jms:queue:entaxy.local.out.[=origin]"/> | ||||
|         </route> | ||||
|     </camelContext> | ||||
| </blueprint> | ||||
| @@ -0,0 +1,48 @@ | ||||
| [#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" | ||||
|            xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> | ||||
|  | ||||
|     <reference id="entaxy-broker" interface="org.apache.camel.Component" | ||||
|                filter="(connection.name=entaxy-broker)"/> | ||||
|  | ||||
|     <camelContext id="route-[=systemName]" xmlns="http://camel.apache.org/schema/blueprint"> | ||||
|         <route> | ||||
|             <from uri="direct-vm:profile-[=systemName]-exit-point"/> | ||||
|             <log message="Message ${headers} send to route" loggingLevel="TRACE"/> | ||||
|  | ||||
|             <when> | ||||
|                 <simple>${headers.ENTAXY_Destination} == 'nsi' | ||||
|                     && ${headers.ENTAXY_DestinationType} == null | ||||
|                 </simple> | ||||
|                 <setHeader name="NTX_NSI_Answer"> | ||||
|                     <simple>true</simple> | ||||
|                 </setHeader> | ||||
|                 <to uri="entaxy-broker:queue:entaxy.nsi.entry.point?exchangePattern=InOnly"/> | ||||
|             </when> | ||||
|  | ||||
|             <choice> | ||||
|                 <when> | ||||
|                     <simple>${headers.ENTAXY_DestinationType} == 'system.name'</simple> | ||||
|                     <toD uri="system:${headers.ENTAXY_Destination}"/> | ||||
|                 </when> | ||||
|                 <when> | ||||
|                     <simple>${headers.ENTAXY_DestinationType} == 'system-group.name'</simple> | ||||
|                     <toD uri="system-group:${headers.ENTAXY_Destination}"/> | ||||
|                 </when> | ||||
|                 <when> | ||||
|                     <simple>${headers.ENTAXY_DestinationType} == 'queue.name'</simple> | ||||
|                     <toD uri="entaxy-broker:queue:${headers.ENTAXY_Destination}"/> | ||||
|                 </when> | ||||
|                 <when> | ||||
|                     <simple>${headers.ENTAXY_DestinationType} == 'topic.name'</simple> | ||||
|                     <toD uri="entaxy-broker:topic:${headers.ENTAXY_Destination}"/> | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     <toD uri="system:${headers.ENTAXY_Destination}"/> | ||||
|                 </otherwise> | ||||
|             </choice> | ||||
|         </route> | ||||
|     </camelContext> | ||||
| </blueprint> | ||||
| @@ -0,0 +1,23 @@ | ||||
| { | ||||
| 	"templates":[ | ||||
| 		{ | ||||
| 			"id":"bridge-profile", | ||||
| 			/* by default: | ||||
| 			"name":"{id}", | ||||
| 			"type":"ftl", | ||||
| 			"path":"DEFAULT_PATH" | ||||
| 			"filename":"{id}" | ||||
| 			"fullname":"{id}.{type}", | ||||
| 			*/ | ||||
| 			"description":"Ftl template for bridge profile" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"id":"default-route", | ||||
| 			"description":"Ftl template for default route from profile" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"id":"profile", | ||||
| 			"description":"Ftl template for system profile" | ||||
| 		} | ||||
| 	] | ||||
| } | ||||
| @@ -0,0 +1,75 @@ | ||||
| [#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" | ||||
|            xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> | ||||
|  | ||||
|     <reference-list id="outConnector" | ||||
|                     interface="ru.entaxy.esb.system.profile.commons.connectors.out.OutConnector" | ||||
|                     filter="(systemName=[=systemName])" availability="optional"> | ||||
|         <reference-listener ref="profileOutput" | ||||
|                             bind-method="register" unbind-method="unregister"/> | ||||
|     </reference-list> | ||||
|  | ||||
|     <reference-list id="inConnector" | ||||
|                     interface="ru.entaxy.esb.system.profile.commons.connectors.in.InConnector" | ||||
|                     filter="(systemName=[=systemName])" availability="optional"> | ||||
|         <reference-listener ref="inConnectorCollector" | ||||
|                             bind-method="register" unbind-method="unregister"/> | ||||
|     </reference-list> | ||||
|  | ||||
|     <bean id="inConnectorCollector" class="ru.entaxy.esb.system.profile.commons.InConnectorCollector"/> | ||||
|  | ||||
|     <bean id="system-profile" class="ru.entaxy.esb.system.registry.systems.profile.impl.defaults.DefaultSystemProfile" | ||||
|           activation="eager"> | ||||
|         <property name="systemName" value="[=systemName]"/> | ||||
|         <property name="profileOutput" ref="profileOutput"/> | ||||
|         <property name="inConnectorCollector" ref="inConnectorCollector"/> | ||||
|     </bean> | ||||
|  | ||||
|     <bean id="profileOutput" class="ru.entaxy.esb.system.profile.commons.profile_output.ProfileOutputImpl" | ||||
|           activation="eager"> | ||||
|         <property name="systemName" value="[=systemName]"/> | ||||
|     </bean> | ||||
|  | ||||
|     <service activation="eager" auto-export="interfaces" ref="system-profile"/> | ||||
|  | ||||
|     <reference id="pooledConnectionFactory" interface="javax.jms.ConnectionFactory"/> | ||||
|  | ||||
|     <bean id="jms" class="org.apache.camel.component.jms.JmsComponent"> | ||||
|         <property name="connectionFactory" ref="pooledConnectionFactory"/> | ||||
|     </bean> | ||||
|  | ||||
|     <camelContext id="profile-[=systemName]" xmlns="http://camel.apache.org/schema/blueprint"> | ||||
|  | ||||
|         <route> | ||||
|             <from uri="direct-vm:profile-[=systemName]-exit-dispatcher"/> | ||||
|             <log message="Message ${headers} send to profile dispatcher" loggingLevel="TRACE"/> | ||||
|             <choice> | ||||
|                 <when> | ||||
|                     <simple>${headers.NTX_NextPoint} != null</simple> | ||||
|                     <setProperty name="NTX_Tmp"> | ||||
|                         <simple>${headers.NTX_NextPoint}</simple> | ||||
|                     </setProperty> | ||||
|                     <removeHeader headerName="NTX_NextPoint"/> | ||||
|                     <toD uri="${exchangeProperty.NTX_Tmp}"/> | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     <to uri="direct-vm:profile-[=systemName]-exit-point"/> | ||||
|                 </otherwise> | ||||
|             </choice> | ||||
|         </route> | ||||
|  | ||||
|         <route> | ||||
|             <from uri="direct-vm:profile-[=systemName]-enter-point"/> | ||||
|             <log message="Message ${headers} send to profile output" loggingLevel="TRACE"/> | ||||
| [#--            <choice>--] | ||||
| [#--                <when>--] | ||||
| [#--                    <simple>${headers.NTX_Origin} == null</simple>--] | ||||
| [#--                    <toD uri="permission:checkSystemAccessException?objectId=${headers.X-SystemId}&subjectId=[=systemName]"/>--] | ||||
| [#--                </when>--] | ||||
| [#--            </choice>--] | ||||
|             <to uri="bean:profileOutput?method=sendTo"/> | ||||
|         </route> | ||||
|     </camelContext> | ||||
| </blueprint> | ||||
							
								
								
									
										175
									
								
								platform-backward-compat/connector-storage/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								platform-backward-compat/connector-storage/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,175 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
| @@ -1,16 +1,18 @@ | ||||
| <?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/xsd/maven-4.0.0.xsd"> | ||||
|     <modelVersion>4.0.0</modelVersion> | ||||
| 
 | ||||
| 	<parent> | ||||
|         <artifactId>connector-implementation</artifactId> | ||||
|         <groupId>ru.entaxy.esb.platform.runtime.core.objects-implementations</groupId> | ||||
|         <version>1.10.0</version> | ||||
| 		<groupId>ru.entaxy.platform</groupId> | ||||
| 		<artifactId>platform-backward-compat</artifactId> | ||||
| 		<version>1.11.0</version> | ||||
| 	</parent> | ||||
|     <groupId>ru.entaxy.esb.platform.runtime.core.objects-implementations.connector-implementation</groupId> | ||||
| 
 | ||||
| 	<groupId>ru.entaxy.platform.backward-compat</groupId> | ||||
|     <artifactId>connector-storage</artifactId> | ||||
|     <packaging>bundle</packaging> | ||||
|     <name>ENTAXY  :: PLATFORM :: CORE :: OBJECTS IMPLEMENTATIONS :: CONNECTOR :: STORAGE</name> | ||||
|     <description>ENTAXY  :: PLATFORM :: CORE :: OBJECTS IMPLEMENTATIONS :: CONNECTOR :: STORAGE</description> | ||||
|     <name>ENTAXY :: PLATFORM :: BACKWARD COMPATIBILITY :: CONNECTOR :: STORAGE</name> | ||||
|     <description>ENTAXY :: PLATFORM :: BACKWARD COMPATIBILITY :: CONNECTOR :: STORAGE</description> | ||||
| 
 | ||||
|     <properties> | ||||
|         <bundle.osgi.export.pkg>ru.entaxy.platform.base.objects.connector.storage</bundle.osgi.export.pkg> | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * connector-storage | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2025 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 | ||||
							
								
								
									
										47
									
								
								platform-backward-compat/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								platform-backward-compat/pom.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||
|   <modelVersion>4.0.0</modelVersion> | ||||
|   <parent> | ||||
|     <groupId>ru.entaxy.esb</groupId> | ||||
|     <artifactId>root</artifactId> | ||||
|     <version>1.11.0</version> | ||||
|   </parent> | ||||
|   <groupId>ru.entaxy.platform</groupId> | ||||
|   <artifactId>platform-backward-compat</artifactId> | ||||
|   <packaging>pom</packaging> | ||||
|   <name>ENTAXY :: PLATFORM :: BACKWARD COMPATIBILITY</name> | ||||
|   <description>ENTAXY :: PLATFORM :: BACKWARD COMPATIBILITY</description> | ||||
|    | ||||
|   <dependencies> | ||||
|         <dependency> | ||||
|             <groupId>com.google.code.gson</groupId> | ||||
|             <artifactId>gson</artifactId> | ||||
|         </dependency> | ||||
| 	  	<dependency> | ||||
| 	  		<groupId>org.osgi</groupId> | ||||
| 	  		<artifactId>org.osgi.service.component.annotations</artifactId> | ||||
| 	  	</dependency>         | ||||
|         <dependency> | ||||
|         	<groupId>org.apache.felix</groupId> | ||||
|         	<artifactId>org.apache.felix.scr</artifactId> | ||||
|         </dependency> | ||||
| 	  	<dependency> | ||||
| 	  		<groupId>ru.entaxy.esb.platform.runtime.base</groupId> | ||||
| 	  		<artifactId>base-support</artifactId> | ||||
| 	  		<version>${project.version}</version> | ||||
| 	  	</dependency> | ||||
| 	  	<dependency> | ||||
| 	  		<groupId>ru.entaxy.esb.platform.runtime.base.objects-base</groupId> | ||||
| 	  		<artifactId>objects-core</artifactId> | ||||
| 	  		<version>${project.version}</version> | ||||
| 	  	</dependency> | ||||
|   </dependencies> | ||||
|    | ||||
|   <modules> | ||||
| 	  <module>blueprint-generator-service</module> | ||||
| 	  <module>profile-management-service-adapters</module> | ||||
| 	  <module>connector-storage</module> | ||||
| 	  <module>profile-storage</module> | ||||
|   </modules> | ||||
|    | ||||
| </project> | ||||
| @@ -0,0 +1,175 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
| @@ -0,0 +1,131 @@ | ||||
| <?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/xsd/maven-4.0.0.xsd"> | ||||
|     <modelVersion>4.0.0</modelVersion> | ||||
|  | ||||
|   <parent> | ||||
|     <groupId>ru.entaxy.platform</groupId> | ||||
|     <artifactId>platform-backward-compat</artifactId> | ||||
|     <version>1.11.0</version> | ||||
|   </parent> | ||||
|  | ||||
| 	<groupId>ru.entaxy.platform.backward-compat</groupId> | ||||
|     <artifactId>profile-management-service-adapters</artifactId> | ||||
|     <packaging>bundle</packaging> | ||||
|  | ||||
|     <name>ENTAXY :: PLATFORM :: BACKWARD COMPATIBILITY :: PROFILE MANAGEMENT SERVICE ADAPTERS</name> | ||||
|     <description>ENTAXY :: PLATFORM :: BACKWARD COMPATIBILITY :: PROFILE MANAGEMENT SERVICE ADAPTERS</description> | ||||
|  | ||||
|     <properties> | ||||
|         <bundle.osgi.export.pkg> | ||||
|         	<!-- ru.entaxy.esb.platform.core.management.profile.to_remove, | ||||
|         	ru.entaxy.esb.platform.core.management.profile.to_remove.api --> | ||||
|         </bundle.osgi.export.pkg> | ||||
|         <bundle.osgi.private.pkg> | ||||
|         	ru.entaxy.esb.platform.core.management.profile.adapters | ||||
|         	<!-- ru.entaxy.esb.platform.base.management.core.utils, | ||||
|         	ru.entaxy.platform.base.support.osgi.tracker, | ||||
|         	ru.entaxy.platform.base.support.osgi.tracker.filter, | ||||
|         	ru.entaxy.esb.platform.core.management.profile.to_remove.impl* --> | ||||
|         </bundle.osgi.private.pkg> | ||||
|     </properties> | ||||
|  | ||||
|     <dependencies> | ||||
| 	  	<dependency> | ||||
| 	  		<groupId>org.osgi</groupId> | ||||
| 	  		<artifactId>org.osgi.service.component.annotations</artifactId> | ||||
| 	  		<version>1.4.0</version> | ||||
| 	  		<scope>compile</scope> | ||||
| 	  	</dependency>         | ||||
|         <dependency> | ||||
|         	<groupId>org.apache.felix</groupId> | ||||
|         	<artifactId>org.apache.felix.scr</artifactId> | ||||
|         	<version>2.1.20</version> | ||||
|         </dependency> | ||||
| 	  	<dependency> | ||||
| 	  		<groupId> | ||||
| 	  			ru.entaxy.esb.platform.runtime.base | ||||
| 	  		</groupId> | ||||
| 	  		<artifactId>base-support</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.core.management</groupId> | ||||
| 		    <artifactId>profile-management</artifactId> | ||||
| 	  		<version>${project.version}</version> | ||||
| 	  	</dependency> | ||||
| 	  	<dependency> | ||||
| 		    <groupId>ru.entaxy.esb.system.management.profile.manager</groupId> | ||||
| 		    <artifactId>profile-manager</artifactId> | ||||
| 	  		<version>${project.version}</version> | ||||
| 	  	</dependency> | ||||
|         <dependency> | ||||
|             <groupId>ru.entaxy.esb.system.registry.systems</groupId> | ||||
|             <artifactId>system-api</artifactId> | ||||
|             <version>${project.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
| 		    <groupId>ru.entaxy.esb.system.management</groupId> | ||||
| 		    <artifactId>system-management-api</artifactId> | ||||
|             <version>${project.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|         	<groupId> | ||||
|         		ru.entaxy.esb.system.management.connector.manager | ||||
|         	</groupId> | ||||
|         	<artifactId>connector-manager</artifactId> | ||||
|             <version>${project.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>ru.entaxy.esb.system.management.bundle.jpa</groupId> | ||||
|             <artifactId>bundle-service</artifactId> | ||||
|             <version>${project.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|         	<groupId>ru.entaxy.esb.system.registry.connector</groupId> | ||||
|         	<artifactId>connector-api</artifactId> | ||||
|         	<version>${project.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|         	<groupId>ru.entaxy.esb.system.registry.connector</groupId> | ||||
|         	<artifactId>connector-impl</artifactId> | ||||
|         	<version>${project.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|         	<groupId>ru.entaxy.esb.system.core.permission</groupId> | ||||
|         	<artifactId>permission-api</artifactId> | ||||
|         	<version>${project.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>ru.entaxy.platform.security.jaas</groupId> | ||||
|             <artifactId>entaxy-legacy-auth-api</artifactId> | ||||
|             <version>${project.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|         	<groupId> | ||||
|         		ru.entaxy.esb.system.management.permission.manager | ||||
|         	</groupId> | ||||
|         	<artifactId>permission-manager</artifactId> | ||||
|         	<version>${project.version}</version> | ||||
|         </dependency> | ||||
|     </dependencies> | ||||
|     <build> | ||||
|         <plugins> | ||||
|             <plugin> | ||||
|                 <groupId>org.apache.felix</groupId> | ||||
|                 <artifactId>maven-bundle-plugin</artifactId> | ||||
|                 <extensions>true</extensions> | ||||
|                 <configuration> | ||||
|                     <instructions> | ||||
|                         <_dsannotations>*</_dsannotations> | ||||
|                     </instructions> | ||||
|                 </configuration> | ||||
|             </plugin> | ||||
|         </plugins> | ||||
|     </build> | ||||
|  | ||||
| </project> | ||||
| @@ -0,0 +1,52 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * profile-management-service-adapters | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.core.management.profile.adapters; | ||||
|  | ||||
| import org.osgi.service.component.annotations.Component; | ||||
| import org.osgi.service.component.annotations.Reference; | ||||
| import org.osgi.service.component.annotations.ReferenceCardinality; | ||||
|  | ||||
| import ru.entaxy.esb.system.auth.basic.jpa.api.BasicAuthService; | ||||
| import ru.entaxy.platform.core.management.profile.support.legacy.AccountManager; | ||||
|  | ||||
| @Component(service = AccountManager.class, immediate = true) | ||||
| public class AccountManagerAdapter implements AccountManager { | ||||
|  | ||||
|     @Reference(cardinality = ReferenceCardinality.MANDATORY) | ||||
|     BasicAuthService basicAuthService; | ||||
|  | ||||
|     @Override | ||||
|     public String getAccountForSystem(String systemUuid) throws Exception { | ||||
|         return basicAuthService.getBySystem(systemUuid).get().getLogin(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void createAccountForSystem(String login, String password, String systemUUID, String createdBy, | ||||
|             String editedBy) throws Exception { | ||||
|         basicAuthService.saveCommon(login, password, systemUUID, createdBy, editedBy); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,135 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * profile-management-service-adapters | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.core.management.profile.adapters; | ||||
|  | ||||
| import java.util.Map; | ||||
|  | ||||
| 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 ru.entaxy.esb.system.connector.entity.Connector; | ||||
| import ru.entaxy.esb.system.connector.impl.ConnectorService; | ||||
| import ru.entaxy.esb.system.jpa.SystemService; | ||||
| import ru.entaxy.esb.system.jpa.entity.System; | ||||
| import ru.entaxy.esb.system.management.bundle.jpa.dto.BundleDto; | ||||
| import ru.entaxy.esb.system.management.bundle.jpa.dto.BundleStatus; | ||||
| import ru.entaxy.esb.system.management.connector.manager.ConnectorManager; | ||||
| import ru.entaxy.esb.system.management.connector.manager.dto.ConnectorDto; | ||||
|  | ||||
| @Component(service = ru.entaxy.platform.core.management.profile.support.legacy.ConnectorManager.class, immediate = true) | ||||
| public class ConnectorManagerAdapter | ||||
|         implements ru.entaxy.platform.core.management.profile.support.legacy.ConnectorManager { | ||||
|  | ||||
|     @Reference(service = ConnectorManager.class, cardinality = ReferenceCardinality.MANDATORY, | ||||
|             collectionType = CollectionType.SERVICE) | ||||
|     ConnectorManager connectorManager; | ||||
|  | ||||
|     @Reference(service = SystemService.class, cardinality = ReferenceCardinality.MANDATORY, | ||||
|             collectionType = CollectionType.SERVICE) | ||||
|     SystemService systemService; | ||||
|  | ||||
|     @Reference(service = ConnectorService.class, cardinality = ReferenceCardinality.MANDATORY, | ||||
|             collectionType = CollectionType.SERVICE) | ||||
|     ConnectorService connectorService; | ||||
|  | ||||
|     @Override | ||||
|     public void addConnector(String idOrName, String connectorFactoryId, Map<String, String> parameters) | ||||
|             throws Exception { | ||||
|  | ||||
|         System system = getSystemByIdOrName(idOrName); | ||||
|         if (system == null) | ||||
|             throw new IllegalArgumentException("System not found by Id or Name [" + idOrName + "]"); | ||||
|         ConnectorDto connectorDto = new ConnectorDto(); | ||||
|         connectorDto.setConnectorParams(parameters); | ||||
|         connectorDto.setSystemUuid(system.getUuid()); | ||||
|         connectorDto.setTemplateName(connectorFactoryId); | ||||
|  | ||||
|         // FIXME remove hardcoded | ||||
|         connectorDto.setCreatedBy("admin"); | ||||
|  | ||||
|         checkBundleResult(connectorManager.installConnector(connectorDto), BundleStatus.ACTIVE); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void removeConnector(String idOrName, String connectorName) throws Exception { | ||||
|  | ||||
|         System system = getSystemByIdOrName(idOrName); | ||||
|         if (system == null) | ||||
|             throw new IllegalArgumentException("System not found by Id or Name [" + idOrName + "]"); | ||||
|  | ||||
|         Connector connector = connectorService.getConnectorByName(connectorName); | ||||
|         if (connector == null) | ||||
|             throw new IllegalArgumentException("Connector not found by Name [" + connectorName + "]"); | ||||
|  | ||||
|         checkBundleResult(connectorManager.uninstallConnector(connector), BundleStatus.UNINSTALL); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void startConnector(String idOrName, String connectorName) throws Exception { | ||||
|  | ||||
|         System system = getSystemByIdOrName(idOrName); | ||||
|         if (system == null) | ||||
|             throw new IllegalArgumentException("System not found by Id or Name [" + idOrName + "]"); | ||||
|  | ||||
|         Connector connector = connectorService.getConnectorByName(connectorName); | ||||
|         if (connector == null) | ||||
|             throw new IllegalArgumentException("Connector not found by Name [" + connectorName + "]"); | ||||
|  | ||||
|         checkBundleResult(connectorManager.startConnector(connector), BundleStatus.ACTIVE); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void stopConnector(String idOrName, String connectorName) throws Exception { | ||||
|  | ||||
|         System system = getSystemByIdOrName(idOrName); | ||||
|         if (system == null) | ||||
|             throw new IllegalArgumentException("System not found by Id or Name [" + idOrName + "]"); | ||||
|  | ||||
|         Connector connector = connectorService.getConnectorByName(connectorName); | ||||
|         if (connector == null) | ||||
|             throw new IllegalArgumentException("Connector not found by Name [" + connectorName + "]"); | ||||
|  | ||||
|         checkBundleResult(connectorManager.stopConnector(connector), BundleStatus.RESOLVED); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     protected System getSystemByIdOrName(String idOrName) { | ||||
|         System result = systemService.getByName(idOrName); | ||||
|         if (result == null) | ||||
|             result = systemService.getByUuid(idOrName); | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     protected void checkBundleResult(BundleDto bundleDto, BundleStatus expectedStatus) throws Exception { | ||||
|         if ((bundleDto == null) || !expectedStatus.equals(bundleDto.getStatus())) | ||||
|             throw new Exception("Result bundle is null or in a wrong state"); | ||||
|  | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,114 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * profile-management-service-adapters | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.core.management.profile.adapters; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
|  | ||||
| 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 ru.entaxy.esb.system.core.permission.jpa.PermissionService; | ||||
| import ru.entaxy.esb.system.core.permission.jpa.entity.Permission; | ||||
| import ru.entaxy.esb.system.jpa.SystemService; | ||||
| import ru.entaxy.esb.system.management.permission.manager.dto.PermissionDto; | ||||
| import ru.entaxy.platform.core.management.profile.support.legacy.PermissionManager; | ||||
|  | ||||
| @Component(service = PermissionManager.class, | ||||
|         immediate = true) | ||||
| public class PermissionManagerAdapter implements PermissionManager { | ||||
|  | ||||
|     @Reference(service = ru.entaxy.esb.system.management.permission.manager.PermissionManager.class, | ||||
|             cardinality = ReferenceCardinality.MANDATORY, | ||||
|             collectionType = CollectionType.SERVICE) | ||||
|     ru.entaxy.esb.system.management.permission.manager.PermissionManager permissionManager; | ||||
|  | ||||
|     @Reference(service = PermissionService.class, cardinality = ReferenceCardinality.MANDATORY, | ||||
|             collectionType = CollectionType.SERVICE) | ||||
|     PermissionService permissionService; | ||||
|  | ||||
|     @Reference(service = SystemService.class, cardinality = ReferenceCardinality.MANDATORY, | ||||
|             collectionType = CollectionType.SERVICE) | ||||
|     SystemService systemService; | ||||
|  | ||||
|     @Override | ||||
|     public List<String> getObjectPermissions(String objectId) throws Exception { | ||||
|         ru.entaxy.esb.system.jpa.entity.System system = getRequiredSystemByIdOrName(objectId); | ||||
|         List<Permission> permissions = permissionService.getAllById(system.getId(), "system"); | ||||
|         long systemId = system.getId(); | ||||
|         List<String> result = new ArrayList<>(); | ||||
|         for (Permission perm : permissions) { | ||||
|             if (perm.getObjectId() == systemId) { | ||||
|                 if ("system".equals(perm.getSubjectType())) { | ||||
|                     ru.entaxy.esb.system.jpa.entity.System s = systemService.get(Long.parseLong(perm.getSubjectId())); | ||||
|                     if (s != null) | ||||
|                         result.add(s.getName()); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public List<String> getSubjectPermissions(String subjectId) throws Exception { | ||||
|         ru.entaxy.esb.system.jpa.entity.System system = getRequiredSystemByIdOrName(subjectId); | ||||
|         List<Permission> permissions = permissionService.getAllById(system.getId(), "system"); | ||||
|         String systemId = system.getId() + ""; | ||||
|         List<String> result = new ArrayList<>(); | ||||
|         for (Permission perm : permissions) { | ||||
|             if (perm.getSubjectId().equals(systemId)) { | ||||
|                 ru.entaxy.esb.system.jpa.entity.System s = systemService.get(perm.getObjectId()); | ||||
|                 if (s != null) | ||||
|                     result.add(s.getName()); | ||||
|             } | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void createPermission(String objectId, String subjectId) throws Exception { | ||||
|         PermissionDto dto = new PermissionDto(objectId, subjectId); | ||||
|         permissionManager.createPermission(dto); | ||||
|     } | ||||
|  | ||||
|     protected ru.entaxy.esb.system.jpa.entity.System getSystemByIdOrName(String idOrName) { | ||||
|         ru.entaxy.esb.system.jpa.entity.System result = systemService.getByName(idOrName); | ||||
|         if (result == null) | ||||
|             result = systemService.getByUuid(idOrName); | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     protected ru.entaxy.esb.system.jpa.entity.System getRequiredSystemByIdOrName(String idOrName) throws Exception { | ||||
|         ru.entaxy.esb.system.jpa.entity.System result = systemService.getByName(idOrName); | ||||
|         if (result == null) | ||||
|             result = systemService.getByUuid(idOrName); | ||||
|         if (result == null) | ||||
|             throw new IllegalArgumentException("System not found by Id or Name: [" + idOrName + "]"); | ||||
|         return result; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,112 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * profile-management-service-adapters | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.core.management.profile.adapters; | ||||
|  | ||||
| import javax.naming.OperationNotSupportedException; | ||||
|  | ||||
| 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 ru.entaxy.esb.system.jpa.SystemService; | ||||
| import ru.entaxy.esb.system.jpa.entity.System; | ||||
| import ru.entaxy.esb.system.management.profile.manager.ProfileManager; | ||||
| import ru.entaxy.esb.system.management.profile.manager.dto.ProfileDto; | ||||
| import ru.entaxy.esb.system.management.profile.manager.mapper.ProfileMapper; | ||||
|  | ||||
| @Component( | ||||
|         service = {ru.entaxy.platform.core.management.profile.support.legacy.ProfileManager.class}, immediate = true) | ||||
| public class ProfileManagerAdapter implements ru.entaxy.platform.core.management.profile.support.legacy.ProfileManager { | ||||
|  | ||||
|     @Reference(service = ProfileManager.class, cardinality = ReferenceCardinality.MANDATORY, | ||||
|             collectionType = CollectionType.SERVICE) | ||||
|     ProfileManager profileManager; | ||||
|  | ||||
|     @Reference(service = ProfileMapper.class, cardinality = ReferenceCardinality.MANDATORY, | ||||
|             collectionType = CollectionType.SERVICE) | ||||
|     ProfileMapper profileMapper; | ||||
|  | ||||
|     @Reference(service = SystemService.class, cardinality = ReferenceCardinality.MANDATORY, | ||||
|             collectionType = CollectionType.SERVICE) | ||||
|     SystemService systemService; | ||||
|  | ||||
|     @Override | ||||
|     public void createProfile(String id, String name, String description) throws Exception { | ||||
|         ProfileDto dto = new ProfileDto(); | ||||
|         dto.setUuid(id); | ||||
|         dto.setName(name); | ||||
|         dto.setDescription(description); | ||||
|  | ||||
|         // TODO get the user name from JMX, | ||||
|         // need to investigate, how | ||||
|         dto.setCreatedBy("admin"); | ||||
|  | ||||
|         profileManager.installProfile(dto); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void startProfile(String idOrName) throws Exception { | ||||
|         ProfileDto dto = getProfileForSystem(getSystemByIdOrName(idOrName)); | ||||
|         if (dto == null) | ||||
|             throw new IllegalArgumentException("System/profile not found for [" + idOrName + "]"); | ||||
|         profileManager.startProfile(dto); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void stopProfile(String idOrName) throws Exception { | ||||
|         ProfileDto dto = getProfileForSystem(getSystemByIdOrName(idOrName)); | ||||
|         if (dto == null) | ||||
|             throw new IllegalArgumentException("System/profile not found for [" + idOrName + "]"); | ||||
|         profileManager.stopProfile(dto); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void uninstallProfile(String idOrName) throws Exception { | ||||
|         ProfileDto dto = getProfileForSystem(getSystemByIdOrName(idOrName)); | ||||
|         if (dto == null) | ||||
|             throw new IllegalArgumentException("System/profile not found for [" + idOrName + "]"); | ||||
|         profileManager.uninstallProfile(dto); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getProfileConfig(String idOrName) throws Exception { | ||||
|         throw new OperationNotSupportedException(); | ||||
|     } | ||||
|  | ||||
|     protected System getSystemByIdOrName(String idOrName) { | ||||
|         System result = systemService.getByName(idOrName); | ||||
|         if (result == null) | ||||
|             result = systemService.getByUuid(idOrName); | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     protected ProfileDto getProfileForSystem(System system) { | ||||
|         if (system == null) | ||||
|             return null; | ||||
|         return profileMapper.toProfileDto(system); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,46 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * profile-management-service-adapters | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.core.management.profile.adapters; | ||||
|  | ||||
| import org.osgi.service.component.annotations.Component; | ||||
| import org.osgi.service.component.annotations.Reference; | ||||
| import org.osgi.service.component.annotations.ReferenceCardinality; | ||||
|  | ||||
| import ru.entaxy.esb.system.jpa.SystemService; | ||||
| import ru.entaxy.platform.core.management.profile.support.legacy.SystemManager; | ||||
|  | ||||
| @Component(service = SystemManager.class, immediate = true) | ||||
| public class SystemManagerAdapter implements SystemManager { | ||||
|  | ||||
|     @Reference(cardinality = ReferenceCardinality.MANDATORY) | ||||
|     SystemService systemService; | ||||
|  | ||||
|     @Override | ||||
|     public String getUUIDbyName(String name) throws Exception { | ||||
|         return systemService.getByName(name).getUuid(); | ||||
|     } | ||||
|  | ||||
| } | ||||
							
								
								
									
										175
									
								
								platform-backward-compat/profile-storage/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								platform-backward-compat/profile-storage/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,175 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
| @@ -1,15 +1,17 @@ | ||||
| <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||
|   <modelVersion>4.0.0</modelVersion> | ||||
| 
 | ||||
| 	<parent> | ||||
|     <groupId>ru.entaxy.esb.platform.runtime.core.objects-implementations</groupId> | ||||
|     <artifactId>profile-implementation</artifactId> | ||||
|     <version>1.10.0</version> | ||||
| 		<groupId>ru.entaxy.platform</groupId> | ||||
| 		<artifactId>platform-backward-compat</artifactId> | ||||
| 		<version>1.11.0</version> | ||||
| 	</parent> | ||||
|   <groupId>ru.entaxy.esb.platform.runtime.core.objects-implementations.profile-implementation</groupId> | ||||
| 
 | ||||
| 	<groupId>ru.entaxy.platform.backward-compat</groupId> | ||||
|   <artifactId>profile-storage</artifactId> | ||||
|   <packaging>bundle</packaging> | ||||
|   <name>ENTAXY  :: PLATFORM :: CORE :: OBJECTS IMPLEMENTATIONS :: PROFILE :: STORAGE</name> | ||||
|   <description>ENTAXY  :: PLATFORM :: CORE :: OBJECTS IMPLEMENTATIONS :: PROFILE :: STORAGE</description> | ||||
|   <name>ENTAXY :: PLATFORM :: BACKWARD COMPATIBILITY :: PROFILE :: STORAGE</name> | ||||
|   <description>ENTAXY :: PLATFORM :: BACKWARD COMPATIBILITY :: PROFILE :: STORAGE</description> | ||||
|    | ||||
|   <properties> | ||||
|   	<bundle.osgi.export.pkg>ru.entaxy.platform.base.objects.profile.storage</bundle.osgi.export.pkg> | ||||
| @@ -2,7 +2,7 @@ | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * test-producers | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2023 EmDev LLC | ||||
|  * Copyright (C) 2020 - 2025 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 | ||||
							
								
								
									
										153
									
								
								platform-backward-compat/src/main/features/features.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										153
									
								
								platform-backward-compat/src/main/features/features.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,153 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!-- | ||||
|   ~~~~~~licensing~~~~~~ | ||||
|   platform-backward-compat | ||||
|   ========== | ||||
|   Copyright (C) 2020 - 2025 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~~~~~~ | ||||
|   --> | ||||
|  | ||||
| <features name="${project.artifactId}-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.6.0" | ||||
|     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||||
|     xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.6.0 http://karaf.apache.org/xmlns/features/v1.6.0"> | ||||
|  | ||||
| 	<!-- platform repo --> | ||||
|     <repository>mvn:ru.entaxy.esb/platform/${project.version}/xml/features</repository> | ||||
|  | ||||
| 	<feature name="entaxy-backward-compatibility-modules" version="${project.version}"> | ||||
|  | ||||
|     	<!-- @platform --> | ||||
| 		<feature dependency="true">entaxy-platform</feature> | ||||
| 	 | ||||
| 		<feature version="${project.version}">entaxy-backward-compatibility-resources</feature> | ||||
| 	 | ||||
| 		<feature version="${project.version}">entaxy-bc-system</feature> | ||||
| 		 | ||||
| 		<feature version="${project.version}">entaxy-bc-api</feature> | ||||
| 		 | ||||
| 		<feature version="${project.version}">entaxy-bc-impl</feature> | ||||
|  | ||||
| 		<feature version="${project.version}">entaxy-bc-management</feature> | ||||
|  | ||||
| 		<feature version="${project.version}">entaxy-bc-modules</feature> | ||||
| 		 | ||||
| 	</feature>      | ||||
|      | ||||
|     <!-- will be installed in assembly --> | ||||
|     <feature name="entaxy-backward-compatibility-resources" version="${project.version}"> | ||||
| 		<configfile finalname="${karaf.etc}/scripts/entaxy.bc.shell.script" override="true"> | ||||
| 			mvn:ru.entaxy.platform/platform-backward-compat/${project.version}/script/entaxy.bc.shell | ||||
| 		</configfile>          | ||||
|     </feature> | ||||
|      | ||||
|     <feature name="entaxy-bc-system" version="${project.version}" start-level="${bundle.startlevel.system}"> | ||||
|     	<!-- @platform --> | ||||
| 		<feature dependency="true">entaxy-platform</feature> | ||||
|         <configfile finalname="${karaf.etc}/ru.entaxy.esb.cfg" override="false"> | ||||
|             mvn:ru.entaxy.esb.system/system-parent/${project.version}/cfg/ru.entaxy.esb | ||||
|         </configfile> | ||||
| 		<configfile finalname="${karaf.etc}/org.apache.felix.hc.generalchecks.BundlesStartedCheck-system.cfg" override="true"> | ||||
| 			mvn:ru.entaxy.esb.system/system-parent/${project.version}/cfg/org.apache.felix.hc.generalchecks.BundlesStartedCheck-system | ||||
| 		</configfile>  | ||||
|     	<bundle>mvn:ru.entaxy.esb.system.commons/system-commons/${project.version}</bundle> | ||||
|     	<bundle>mvn:ru.entaxy.esb.system.core/template/${project.version}</bundle> | ||||
|     </feature> | ||||
| 	 | ||||
| 	<feature name="entaxy-bc-api" version="${project.version}" start-level="${bundle.startlevel.objects}"> | ||||
|  | ||||
|     	<feature dependency="true">entaxy-bc-system</feature> | ||||
|  | ||||
| 		<bundle>mvn:ru.entaxy.platform.security.jaas/entaxy-legacy-auth-api/${project.version}</bundle> | ||||
|         <bundle>mvn:ru.entaxy.esb.system.registry.systems/system-api/${project.version}</bundle> | ||||
|         <bundle>mvn:ru.entaxy.esb.system.registry.connector/connector-api/${project.version}</bundle> | ||||
|  | ||||
|         <bundle>mvn:ru.entaxy.esb.system.core.permission/permission-api/${project.version}</bundle> | ||||
| 	     | ||||
| 	    <!--  | ||||
| 	    <capability> | ||||
|             osgi.service;objectClass=org.hibernate.SessionFactory;effective:=active; | ||||
|         </capability> | ||||
|         -->         | ||||
| 	</feature> | ||||
| 	 | ||||
| 	<feature name="entaxy-bc-impl" version="${project.version}" start-level="${bundle.startlevel.objects}"> | ||||
|  | ||||
|     	<feature dependency="true">entaxy-bc-api</feature> | ||||
|  | ||||
| 		<bundle>mvn:ru.entaxy.platform.security.jaas/entaxy-legacy-auth/${project.version}</bundle> | ||||
|  | ||||
|         <bundle>mvn:ru.entaxy.esb.system.registry.systems/system-impl/${project.version}</bundle> | ||||
|  | ||||
|         <bundle>mvn:ru.entaxy.esb.system.registry.connector/connector-impl/${project.version}</bundle> | ||||
|  | ||||
|         <bundle>mvn:ru.entaxy.esb.system.core.permission/permission-common/${project.version}</bundle> | ||||
|         <bundle>mvn:ru.entaxy.esb.system.core.permission/permission-handler/${project.version}</bundle> | ||||
|         <bundle>mvn:ru.entaxy.esb.system.core.permission/permission-component/${project.version}</bundle> | ||||
|         <bundle>mvn:ru.entaxy.esb.system.core.permission/permission-impl/${project.version}</bundle> | ||||
|  | ||||
| 		<!--  | ||||
|         <capability> | ||||
|             osgi.service;objectClass=org.hibernate.SessionFactory;effective:=active; | ||||
|         </capability> | ||||
|          --> | ||||
| 		<!--           | ||||
| 		<capability> | ||||
|             osgi.service;effective:=active;objectClass=javax.sql.DataSource;osgi.jndi.service.name=entaxy.esb.storage; | ||||
|         </capability> | ||||
| 		--> | ||||
| 	</feature> | ||||
|  | ||||
| 	<feature name="entaxy-bc-management" version="${project.version}" start-level="${bundle.startlevel.management}"> | ||||
|  | ||||
|     	<feature dependency="true">entaxy-bc-api</feature> | ||||
|     	<feature dependency="true">entaxy-bc-impl</feature> | ||||
|  | ||||
| 		<bundle>mvn:ru.entaxy.platform.backward-compat/blueprint-generator-service/${project.version}</bundle> | ||||
|  | ||||
|     	<bundle>mvn:ru.entaxy.esb.system.core.dispatcher/dispatcher/${project.version}</bundle> | ||||
|         <bundle>mvn:ru.entaxy.esb.system.management.bundle.jpa/bundle-service/${project.version}</bundle> | ||||
|  | ||||
|         <bundle>mvn:ru.entaxy.esb.system.management.bundle.manager/bundle-manager/${project.version}</bundle> | ||||
|         <bundle>mvn:ru.entaxy.esb.system.management.connector.manager/connector-manager/${project.version}</bundle> | ||||
|  | ||||
|         <bundle>mvn:ru.entaxy.esb.system.management.profile.manager/profile-manager/${project.version}</bundle> | ||||
|         <bundle>mvn:ru.entaxy.esb.system.management.bridge.profile.manager/bridge-profile-manager/${project.version}</bundle> | ||||
|         <bundle>mvn:ru.entaxy.esb.system.management.route.manager/route-manager/${project.version}</bundle> | ||||
|  | ||||
|         <bundle>mvn:ru.entaxy.esb.system.management.permission.manager/permission-manager/${project.version}</bundle> | ||||
|     	<bundle>mvn:ru.entaxy.esb.system.auth.basic.htpasswd/htpasswd/${project.version}</bundle>	 | ||||
|  | ||||
|         <bundle>mvn:ru.entaxy.esb.system.management/system-management-api/${project.version}</bundle> | ||||
|  | ||||
| 		<!--  | ||||
|         <capability> | ||||
|             osgi.service;objectClass=org.hibernate.SessionFactory;effective:=active; | ||||
|         </capability> | ||||
| 		 --> | ||||
| 	</feature> | ||||
| 	 | ||||
|     <feature name="entaxy-bc-modules" version="${project.version}" start-level="${bundle.startlevel.management}"> | ||||
| 		<bundle>mvn:ru.entaxy.platform.backward-compat/profile-management-service-adapters/${project.version}</bundle> | ||||
| 		<bundle>mvn:ru.entaxy.platform.backward-compat/profile-storage/${project.version}</bundle> | ||||
| 		<bundle>mvn:ru.entaxy.platform.backward-compat/connector-storage/${project.version}</bundle> | ||||
|     </feature> | ||||
|      | ||||
| </features> | ||||
| @@ -0,0 +1,60 @@ | ||||
| entaxy:back-comp = { | ||||
|  | ||||
| 	service = (service:get org.apache.karaf.features.FeaturesService) | ||||
|  | ||||
| 	if { $1'' equals "install" } { | ||||
| 	 | ||||
| 		# check repo | ||||
| 		_repo = (feature:repo-list | grep ru.entaxy.platform/platform-backward-compat) | ||||
| 		_repo_length = ($_repo length) | ||||
| 		if { $_repo_length'' equals "0" } { | ||||
| 			echo "Installing feature repo ru.entaxy.platform/platform-backward-compat/${project.version}" | ||||
| 			feature:repo-add mvn:ru.entaxy.platform/platform-backward-compat/${project.version}/xml/features | ||||
| 		} | ||||
| 		 | ||||
| 		_platform_feature = ($service getFeature entaxy-platform) | ||||
| 		_feature_id = $_platform_feature getId | ||||
| 		_status = ($service getState $_feature_id) toString | ||||
| 		 | ||||
| 		if { $_status equals "Uninstalled" } { | ||||
| 			echo "Entaxy Platform not found, installation aborted" | ||||
| 		} else { | ||||
| 			_bc_feature = ($service getFeature entaxy-backward-compatibility-modules) | ||||
| 			_feature_id = $_bc_feature getId | ||||
| 			_status = ($service getState $_feature_id) toString | ||||
| 			 | ||||
| 			if { $_status equals "Uninstalled" } { | ||||
| 				echo "Installing feature 'entaxy-backward-compatibility-modules'" | ||||
| 				feature:install -r -v entaxy-backward-compatibility-modules | ||||
| 				echo | ||||
| 				echo " --> DONE" | ||||
| 			} else { | ||||
| 				echo "Feature 'entaxy-backward-compatibility-modules' is already installed" | ||||
| 			} | ||||
| 			 | ||||
| 		} | ||||
| 	 | ||||
| 	} else { | ||||
| 		if { $1'' equals "uninstall" } { | ||||
| 			echo "Uninstalling feature 'entaxy-backward-compatibility-modules'" | ||||
| 			feature:uninstall -r -v entaxy-backward-compatibility-modules | ||||
| 			echo | ||||
| 			echo " --> DONE" | ||||
| 		} else { | ||||
|  | ||||
| 			_bc_feature = ($service getFeature entaxy-backward-compatibility-modules) | ||||
| 			_feature_id = $_bc_feature getId | ||||
| 			_status = ($service getState $_feature_id) toString | ||||
|  | ||||
| 			if { $_status equals "Uninstalled" } { | ||||
| 				echo | ||||
| 				echo " --> UNINSTALLED" | ||||
| 			} else { | ||||
| 				echo | ||||
| 				echo " --> INSTALLED" | ||||
| 			} | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
| } | ||||
| @@ -0,0 +1,5 @@ | ||||
| <!-- --> | ||||
| <configfile finalname="scripts/entaxy.bc.shell.script" override="true"> | ||||
| 	mvn:ru.entaxy.platform/platform-backward-compat/1.11.0/script/entaxy.bc.shell | ||||
| </configfile> | ||||
| <!-- --> | ||||
							
								
								
									
										175
									
								
								platform-provided-modules/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								platform-provided-modules/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,175 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
							
								
								
									
										91
									
								
								platform-provided-modules/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								platform-provided-modules/pom.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,91 @@ | ||||
| <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||
|     <modelVersion>4.0.0</modelVersion> | ||||
|     <parent> | ||||
|         <groupId>ru.entaxy.esb</groupId> | ||||
|         <artifactId>root</artifactId> | ||||
|         <version>1.11.0</version> | ||||
|     </parent> | ||||
|     <groupId>ru.entaxy</groupId> | ||||
|     <artifactId>platform-provided-modules</artifactId> | ||||
|     <packaging>pom</packaging> | ||||
|     <name>ENTAXY :: PLATFORM PROVIDED MODULES</name> | ||||
|     <description>ENTAXY :: PLATFORM PROVIDED MODULES</description> | ||||
|  | ||||
|     <build> | ||||
|  | ||||
|         <resources> | ||||
|             <resource> | ||||
|                 <directory>src/main/provided</directory> | ||||
|                 <filtering>true</filtering> | ||||
|                 <targetPath>${project.build.directory}/provided</targetPath> | ||||
|             </resource> | ||||
|             <resource> | ||||
|                 <directory>src/main/support</directory> | ||||
|                 <filtering>true</filtering> | ||||
|                 <targetPath>${project.build.directory}/support</targetPath> | ||||
|             </resource> | ||||
|         </resources> | ||||
|  | ||||
|         <plugins> | ||||
|             <plugin> | ||||
|                 <groupId>org.codehaus.mojo</groupId> | ||||
|                 <artifactId>build-helper-maven-plugin</artifactId> | ||||
|                 <version>${build-helper-maven-plugin.version}</version> | ||||
|                 <executions> | ||||
|                     <execution> | ||||
|                         <id>attach-provided</id> | ||||
|                         <goals> | ||||
|                             <goal>attach-artifact</goal> | ||||
|                         </goals> | ||||
|                     </execution> | ||||
|                 </executions> | ||||
|                 <configuration> | ||||
|                     <artifacts> | ||||
|                         <artifact> | ||||
|                             <file>${project.build.directory}/provided/ui.xml | ||||
|                             </file> | ||||
|                             <type>xml</type> | ||||
|                             <classifier>ui</classifier> | ||||
|                         </artifact> | ||||
|                         <artifact> | ||||
|                             <file>${project.build.directory}/support/ui/collect-ui-features.xslt | ||||
|                             </file> | ||||
|                             <type>xslt</type> | ||||
|                             <classifier>collect-ui-features</classifier> | ||||
|                         </artifact> | ||||
|                         <artifact> | ||||
|                             <file>${project.build.directory}/support/ui/process-ui-modules.xslt | ||||
|                             </file> | ||||
|                             <type>xslt</type> | ||||
|                             <classifier>process-ui-modules</classifier> | ||||
|                         </artifact> | ||||
|                     </artifacts> | ||||
|                 </configuration> | ||||
|             </plugin> | ||||
|             <plugin> | ||||
|                 <artifactId>maven-install-plugin</artifactId> | ||||
|                 <executions> | ||||
|                     <execution> | ||||
|                         <id>install-provided-modules-data</id> | ||||
|                         <phase>package</phase> | ||||
|                         <goals> | ||||
|                             <goal>install-file</goal> | ||||
|                         </goals> | ||||
|                         <configuration> | ||||
|                             <groupId>${platform.provided.groupId}</groupId> | ||||
|                             <artifactId>${platform.provided.data.artifactId}</artifactId> | ||||
|                             <version>${project.version}</version> | ||||
|                             <classifier>ui</classifier> | ||||
|                             <packaging>xml</packaging> | ||||
|                             <generatePom>false</generatePom> | ||||
|                             <file>${project.build.directory}/provided/ui.xml</file> | ||||
|                         </configuration> | ||||
|                     </execution> | ||||
|                 </executions> | ||||
|             </plugin> | ||||
|  | ||||
|         </plugins> | ||||
|     </build> | ||||
|  | ||||
| </project> | ||||
							
								
								
									
										27
									
								
								platform-provided-modules/src/main/provided/ui.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								platform-provided-modules/src/main/provided/ui.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| <!-- | ||||
|   ~~~~~~licensing~~~~~~ | ||||
|   platform-provided-modules | ||||
|   ========== | ||||
|   Copyright (C) 2020 - 2025 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~~~~~~ | ||||
|   --> | ||||
| <provided-modules> | ||||
| </provided-modules> | ||||
| @@ -0,0 +1,54 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!-- | ||||
|   ~~~~~~licensing~~~~~~ | ||||
|   platform-provided-modules | ||||
|   ========== | ||||
|   Copyright (C) 2020 - 2025 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~~~~~~ | ||||
|   --> | ||||
|  | ||||
| <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions"> | ||||
| 	<xsl:output method="text" version="1.0" encoding="UTF-8" indent="yes"/> | ||||
| 	 | ||||
| 	<xsl:template match="/"> | ||||
| 		<xsl:apply-templates select="child::element()" /> | ||||
| 	</xsl:template>	 | ||||
| 	 | ||||
| 	<xsl:template match="//*:feature[*:capability]"> | ||||
| 		<xsl:variable name="current-feature" select="." /> | ||||
| 		<xsl:for-each select="./*:capability"> | ||||
| 			<xsl:for-each select=".//text()"> | ||||
| 				<xsl:variable name="cap" select="normalize-space(.)" /> | ||||
| 				<xsl:choose> | ||||
| 					<xsl:when test="starts-with($cap,'entaxy.ui.module;')"> | ||||
| 						<xsl:text><![CDATA[<feature>]]></xsl:text><xsl:value-of select="$current-feature/@name" /><xsl:text><![CDATA[</feature>]]></xsl:text><xsl:text> | ||||
| </xsl:text> | ||||
| 					</xsl:when> | ||||
| 				</xsl:choose> | ||||
| 			</xsl:for-each>	 | ||||
| 		</xsl:for-each> | ||||
| 	</xsl:template> | ||||
| 	 | ||||
| 	<xsl:template name="default-remove" match="node()|@*"> | ||||
| 		<xsl:apply-templates select="node()|@*" /> | ||||
| 	</xsl:template>	 | ||||
| 	 | ||||
| </xsl:stylesheet> | ||||
| @@ -0,0 +1,52 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!-- | ||||
|   ~~~~~~licensing~~~~~~ | ||||
|   platform-provided-modules | ||||
|   ========== | ||||
|   Copyright (C) 2020 - 2025 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~~~~~~ | ||||
|   --> | ||||
|  | ||||
| <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions"> | ||||
| 	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> | ||||
| 	 | ||||
| 	<xsl:template match="/provided-modules/repository"> | ||||
| 		<xsl:variable name="url" select="@url" /> | ||||
| 		<xsl:choose> | ||||
| 			<xsl:when test="/provided-modules/new-modules/repository[@url=$url]"> | ||||
| 			</xsl:when> | ||||
| 			<xsl:otherwise> | ||||
| 				<xsl:copy-of select="." /> | ||||
| 			</xsl:otherwise> | ||||
| 		</xsl:choose> | ||||
| 	</xsl:template> | ||||
| 	 | ||||
| 	<xsl:template match="/provided-modules/new-modules"> | ||||
| 		<xsl:apply-templates select="child::node()" /> | ||||
| 	</xsl:template>	 | ||||
| 			 | ||||
|     <xsl:template name="default-copy" match="node()|@*"> | ||||
|         <xsl:copy> | ||||
|             <xsl:apply-templates select="node()|@*"/> | ||||
|         </xsl:copy> | ||||
|     </xsl:template> | ||||
|     	 | ||||
| </xsl:stylesheet> | ||||
							
								
								
									
										175
									
								
								platform/integration/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								platform/integration/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,175 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
							
								
								
									
										175
									
								
								platform/integration/applications/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								platform/integration/applications/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,175 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
							
								
								
									
										175
									
								
								platform/integration/applications/application-api/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								platform/integration/applications/application-api/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,175 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
							
								
								
									
										43
									
								
								platform/integration/applications/application-api/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								platform/integration/applications/application-api/pom.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||
|   <modelVersion>4.0.0</modelVersion> | ||||
|   <parent> | ||||
|     <groupId>ru.entaxy.platform.integration</groupId> | ||||
|     <artifactId>applications</artifactId> | ||||
|     <version>1.11.0</version> | ||||
|   </parent> | ||||
|   <groupId>ru.entaxy.platform.integration.applications</groupId> | ||||
|   <artifactId>application-api</artifactId> | ||||
|   <packaging>bundle</packaging> | ||||
|   <name>ENTAXY :: PLATFORM :: INTEGRATION :: APPLICATIONS :: API</name> | ||||
|   <description>ENTAXY :: PLATFORM :: INTEGRATION :: APPLICATIONS :: API</description> | ||||
|    | ||||
|   <properties> | ||||
| 	  <bundle.osgi.export.pkg> | ||||
| 	  	ru.entaxy.platform.integration.applications, | ||||
| 	  	ru.entaxy.platform.integration.applications.descriptor, | ||||
| 	  	ru.entaxy.platform.integration.applications.exceptions, | ||||
| 	  	ru.entaxy.platform.integration.applications.item.project, | ||||
| 	  	ru.entaxy.platform.integration.applications.storage, | ||||
| 	  	ru.entaxy.platform.integration.applications.utils		   | ||||
| 	  </bundle.osgi.export.pkg> | ||||
|   </properties> | ||||
|    | ||||
|   <dependencies> | ||||
| 	  <dependency> | ||||
| 	  	<groupId>ru.entaxy.esb.platform.runtime.base.resources</groupId> | ||||
| 	  	<artifactId>resources-api</artifactId> | ||||
| 	  	<version>${project.version}</version> | ||||
| 	  </dependency> | ||||
| 	  <dependency> | ||||
| 	  	<groupId>ru.entaxy.esb.platform.runtime.core</groupId> | ||||
| 	  	<artifactId>object-runtime-core</artifactId> | ||||
| 	  	<version>${project.version}</version> | ||||
| 	  </dependency> | ||||
| 	  <dependency> | ||||
| 		  <groupId>ru.entaxy.esb.platform.runtime.core</groupId> | ||||
| 		  <artifactId>artifact-management</artifactId> | ||||
| 	  	<version>${project.version}</version> | ||||
| 	  </dependency> | ||||
|   </dependencies> | ||||
|    | ||||
| </project> | ||||
| @@ -0,0 +1,48 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications; | ||||
|  | ||||
| import java.util.List; | ||||
| import java.util.stream.Collectors; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.descriptor.ApplicationDescriptor; | ||||
|  | ||||
| public interface ApplicationContent { | ||||
|  | ||||
|     ApplicationDescriptor getDescriptor(); | ||||
|  | ||||
|     List<ApplicationItem> getItems(); | ||||
|  | ||||
|     default List<ApplicationItem> getEditables() { | ||||
|         return getItems().stream().filter(item -> item.isEditable()).collect(Collectors.toList()); | ||||
|     }; | ||||
|  | ||||
|     default List<ApplicationItem> getRevisionables() { | ||||
|         return getItems().stream().filter(item -> item.isRevisionable()).collect(Collectors.toList()); | ||||
|     }; | ||||
|  | ||||
|     List<ApplicationResource> getResources(); | ||||
| } | ||||
| @@ -0,0 +1,46 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications; | ||||
|  | ||||
| import java.io.InputStream; | ||||
|  | ||||
| public interface ApplicationItem { | ||||
|  | ||||
|     InputStream getInputStream(); | ||||
|  | ||||
|     void update(InputStream inputStream) throws Exception; | ||||
|  | ||||
|     boolean isEditable(); | ||||
|  | ||||
|     boolean isRevisionable(); | ||||
|  | ||||
|     String getLocation(); | ||||
|  | ||||
|     EntaxyApplication.ITEM_TYPE getType(); | ||||
|  | ||||
|     String getId(); | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,139 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import java.util.stream.Collectors; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ApplicationException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ProjectAlreadyExistsException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ProjectException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.StorageException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.StorageNotEnabledException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.StorageNotFoundException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ProjectVersionException; | ||||
|  | ||||
| public interface ApplicationManager { | ||||
|  | ||||
|     // storages | ||||
|  | ||||
|     ApplicationStorage getStorage(String storageName); | ||||
|  | ||||
|     default List<ApplicationStorage> getActiveStorages() { | ||||
|         return getStorages(true); | ||||
|     }; | ||||
|  | ||||
|     default List<ApplicationStorage> getStorages(boolean enabledOnly) { | ||||
|         if (!enabledOnly) | ||||
|             return getAllStorages(); | ||||
|         return getAllStorages().stream().filter(s -> s.isEnabled()).collect(Collectors.toList()); | ||||
|     }; | ||||
|  | ||||
|     List<ApplicationStorage> getAllStorages(); | ||||
|  | ||||
|     void addStorage(ApplicationStorage applicationStorage) throws StorageException; | ||||
|  | ||||
|     void removeStorage(ApplicationStorage applicationStorage) throws StorageException; | ||||
|  | ||||
|     // projects | ||||
|  | ||||
|     default EntaxyApplicationProject createProject(String storageName, String applicationName, String initialVersion) | ||||
|             throws ProjectException, StorageException { | ||||
|         ApplicationStorage storage = getStorage(storageName); | ||||
|         if (storage == null) | ||||
|             throw new StorageNotFoundException(storageName); | ||||
|         if (!storage.isEnabled()) | ||||
|             throw new StorageNotEnabledException(storageName); | ||||
|         EntaxyApplicationProject app = storage.getProject(applicationName); | ||||
|         if (app != null) | ||||
|             throw new ProjectAlreadyExistsException(applicationName); | ||||
|         app = storage.createProject(applicationName); | ||||
|         app.createVersion(initialVersion); | ||||
|         return app; | ||||
|     }; | ||||
|  | ||||
|     default List<EntaxyApplicationProject> getProjects() { | ||||
|         List<EntaxyApplicationProject> result = new ArrayList<>(); | ||||
|         for (ApplicationStorage storage : getActiveStorages()) { | ||||
|             result.addAll(storage.getProjects()); | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     default List<EntaxyApplicationProject> getProjects(String storageName) | ||||
|             throws ProjectException, StorageException { | ||||
|         ApplicationStorage storage = getStorage(storageName); | ||||
|         if (storage == null) | ||||
|             throw new StorageNotFoundException(storageName); | ||||
|         return getProjects(storage); | ||||
|     } | ||||
|  | ||||
|     default List<EntaxyApplicationProject> getProjects(ApplicationStorage storage) | ||||
|             throws ProjectException, StorageException { | ||||
|         if (!storage.isEnabled()) | ||||
|             throw new StorageNotEnabledException(storage.getName()); | ||||
|         return storage.getProjects(); | ||||
|     } | ||||
|  | ||||
|     void exportToFile(EntaxyApplicationProjectVersion version, String filePath) throws ProjectVersionException; | ||||
|  | ||||
|     void exportToRepository(EntaxyApplicationProjectVersion version, String repositoryName) throws ProjectVersionException; | ||||
|  | ||||
|     // applications | ||||
|  | ||||
|     default List<EntaxyApplication> getApplications() { | ||||
|         List<EntaxyApplication> result = new ArrayList<>(); | ||||
|         for (ApplicationStorage storage : getActiveStorages()) { | ||||
|             result.addAll(storage.getApplications()); | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     default List<EntaxyApplication> getApplications(String storageName) | ||||
|             throws ProjectException, StorageException { | ||||
|         ApplicationStorage storage = getStorage(storageName); | ||||
|         if (storage == null) | ||||
|             throw new StorageNotFoundException(storageName); | ||||
|         return getApplications(storage); | ||||
|     } | ||||
|  | ||||
|     default List<EntaxyApplication> getApplications(ApplicationStorage storage) | ||||
|             throws ProjectException, StorageException { | ||||
|         if (!storage.isEnabled()) | ||||
|             throw new StorageNotEnabledException(storage.getName()); | ||||
|         return storage.getApplications(); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     EntaxyApplication importApplicationFromFile(String storageName, String filePath) | ||||
|             throws ApplicationException, StorageException; | ||||
|  | ||||
|     EntaxyApplication importApplicationFromRepository(String storageName, String mavenUrl) | ||||
|             throws ApplicationException, StorageException; | ||||
|  | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,70 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications; | ||||
|  | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
|  | ||||
| import ru.entaxy.esb.resources.EntaxyResource; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ItemException; | ||||
| import ru.entaxy.platform.objects.runtime.EntaxyRuntimeObject; | ||||
| import ru.entaxy.platform.objects.runtime.EntaxyRuntimeObjectResource; | ||||
|  | ||||
| public interface ApplicationProjectContent { | ||||
|  | ||||
|     public interface STANDARD_PROPERTIES { | ||||
|         String APPLICATION = "application"; | ||||
|         String GROUP = "group"; | ||||
|         String VERSION = "version"; | ||||
|         String CREATED_ON = "createdOn"; | ||||
|         String CREATED_BY = "createdBy"; | ||||
|         String MODIFIED_ON = "modifiedOn"; | ||||
|         String MODIFIED_BY = "modifiedBy"; | ||||
|     } | ||||
|  | ||||
|     List<ApplicationProjectItem> getItems(); | ||||
|  | ||||
|     <T extends ApplicationProjectItem> List<T> getItems(Class<T> itemClass); | ||||
|  | ||||
|     void addItem(ApplicationProjectItem item) throws ItemException; | ||||
|  | ||||
|     void ignoreItem(ApplicationProjectItem item) throws ItemException; | ||||
|  | ||||
|     void removeItem(ApplicationProjectItem item) throws ItemException; | ||||
|  | ||||
|     default boolean isConsistent() { | ||||
|         return getItems().stream().filter(item -> (item.isRequired() && !item.isIgnored())).count() == 0; | ||||
|     } | ||||
|  | ||||
|     ApplicationProjectItem addObject(EntaxyRuntimeObject runtimeObject); | ||||
|  | ||||
|     ApplicationProjectItem addResource(EntaxyRuntimeObjectResource runtimeObjectResource); | ||||
|  | ||||
|     ApplicationProjectItem addResource(EntaxyResource entaxyResource); | ||||
|  | ||||
|     Map<String, Object> getProperties(); | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,49 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| public interface ApplicationProjectInfo { | ||||
|  | ||||
|  | ||||
|     String getName(); | ||||
|  | ||||
|     String getGroup(); | ||||
|  | ||||
|     long getCreatedOn(); | ||||
|  | ||||
|     String getCreatedBy(); | ||||
|  | ||||
|     long getLastModifiedOn(); | ||||
|  | ||||
|     String getLastModifiedBy(); | ||||
|  | ||||
|     String getLatestVersion(); | ||||
|  | ||||
|     List<String> getAvailableVersions(); | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,55 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| public interface ApplicationProjectItem { | ||||
|  | ||||
|     String getId(); | ||||
|  | ||||
|     EntaxyApplication.ITEM_SCOPE getScope(); | ||||
|  | ||||
|     EntaxyApplication.ITEM_TYPE getType(); | ||||
|  | ||||
|     boolean isGhost(); | ||||
|  | ||||
|     boolean isRequired(); | ||||
|  | ||||
|     List<ApplicationProjectItem> getRequiredBy(); | ||||
|  | ||||
|     List<ApplicationProjectItem> getRequirements(); | ||||
|  | ||||
|     List<ApplicationProjectItem> getColocated(); | ||||
|  | ||||
|     boolean isIgnored(); | ||||
|  | ||||
|     void ignore(); | ||||
|  | ||||
|     boolean isPlatform(); | ||||
|      | ||||
|     boolean isDeleted(); | ||||
| } | ||||
| @@ -0,0 +1,34 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications; | ||||
|  | ||||
| import java.io.InputStream; | ||||
|  | ||||
| public interface ApplicationResource { | ||||
|  | ||||
|     InputStream getInputStream(); | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,93 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications; | ||||
|  | ||||
| import java.io.IOException; | ||||
| import java.io.InputStream; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ApplicationException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ProjectException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.StorageException; | ||||
|  | ||||
| public interface ApplicationStorage { | ||||
|  | ||||
|     // storage itself | ||||
|  | ||||
|     String getName(); | ||||
|  | ||||
|     String getType(); | ||||
|  | ||||
|     Map<String, Object> getInfo(); | ||||
|  | ||||
|     boolean isEnabled(); | ||||
|  | ||||
|     void enable(); | ||||
|  | ||||
|     void disable(); | ||||
|  | ||||
|     // projects | ||||
|  | ||||
|     List<EntaxyApplicationProject> getProjects(); | ||||
|  | ||||
|     EntaxyApplicationProject getProject(String applicationName); | ||||
|  | ||||
|     void addProject(EntaxyApplicationProject project) throws ProjectException, StorageException; | ||||
|  | ||||
|     void removeProject(EntaxyApplicationProject project) throws ProjectException, StorageException; | ||||
|  | ||||
|     EntaxyApplicationProject createProject(String applicationName) | ||||
|             throws ProjectException, StorageException; | ||||
|  | ||||
|     // applications | ||||
|  | ||||
|     public interface ApplicationImportContent { | ||||
|  | ||||
|         Map<String, ApplicationImportItem> getItems(); | ||||
|  | ||||
|         void clear(); | ||||
|     } | ||||
|  | ||||
|     public interface ApplicationImportItem { | ||||
|         String getName(); | ||||
|  | ||||
|         String getLocation(); | ||||
|  | ||||
|         String getPath(); | ||||
|  | ||||
|         InputStream getInputStream() throws IOException; | ||||
|     } | ||||
|  | ||||
|     List<EntaxyApplication> getApplications(); | ||||
|  | ||||
|     EntaxyApplication getApplication(String applicationName); | ||||
|  | ||||
|     void removeApplication(EntaxyApplication application) throws ApplicationException, StorageException; | ||||
|  | ||||
|     EntaxyApplication createApplication(ApplicationImportContent content) throws ApplicationException, StorageException; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,83 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| import ru.entaxy.esb.resources.EntaxyResource.RESOURCE_SCOPE; | ||||
| import ru.entaxy.platform.base.objects.EntaxyObject.OBJECT_RELATION_SCOPE; | ||||
|  | ||||
| public interface EntaxyApplication { | ||||
|  | ||||
|     String DESCRIPTOR_NAME = "descriptor.json"; | ||||
|  | ||||
|     String DEFAULT_GROUP_ID = "entaxy.application"; | ||||
|  | ||||
|     enum ITEM_TYPE { | ||||
|         OBJECT, | ||||
|         CONFIG, | ||||
|         BUNDLE, | ||||
|         RESOURCE, | ||||
|         FEATURES | ||||
|     } | ||||
|  | ||||
|     enum ITEM_SCOPE { | ||||
|         DESIGN, | ||||
|         RUNTIME, | ||||
|         UNKNOWN; | ||||
|  | ||||
|         public static ITEM_SCOPE convert(OBJECT_RELATION_SCOPE originScope) { | ||||
|             try { | ||||
|                 return ITEM_SCOPE.valueOf(originScope.name().toUpperCase()); | ||||
|             } catch (Exception e) { | ||||
|                 return UNKNOWN; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public static ITEM_SCOPE convert(RESOURCE_SCOPE originScope) { | ||||
|             try { | ||||
|                 return ITEM_SCOPE.valueOf(originScope.name().toUpperCase()); | ||||
|             } catch (Exception e) { | ||||
|                 return UNKNOWN; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     String getName(); | ||||
|  | ||||
|     ApplicationStorage getStorage(); | ||||
|  | ||||
|     List<EntaxyApplicationVersion> getVersions(); | ||||
|  | ||||
|     EntaxyApplicationVersion getLatestVersion(); | ||||
|  | ||||
|     EntaxyApplicationVersion getVersion(String version); | ||||
|  | ||||
|     void removeVersion(String version); | ||||
|  | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,56 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ProjectVersionException; | ||||
|  | ||||
| public interface EntaxyApplicationProject { | ||||
|     String getName(); | ||||
|  | ||||
|     String getGroup(); | ||||
|  | ||||
|     ApplicationStorage getStorage(); | ||||
|  | ||||
|     void save(); | ||||
|  | ||||
|     void disgard(); | ||||
|  | ||||
|     List<EntaxyApplicationProjectVersion> getVersions(); | ||||
|  | ||||
|     EntaxyApplicationProjectVersion getLatestVersion(); | ||||
|  | ||||
|     EntaxyApplicationProjectVersion getVersion(String version); | ||||
|  | ||||
|     EntaxyApplicationProjectVersion createVersion(String version) throws ProjectVersionException; | ||||
|  | ||||
|     EntaxyApplicationProjectVersion createVersion(String version, String fromVersion) throws ProjectVersionException; | ||||
|  | ||||
|     void removeVersion(String version); | ||||
|  | ||||
|     ApplicationProjectInfo getInfo(); | ||||
| } | ||||
| @@ -0,0 +1,84 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications; | ||||
|  | ||||
| import java.io.InputStream; | ||||
| import java.net.URL; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.descriptor.ApplicationDescriptor; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ProjectVersionException; | ||||
|  | ||||
| public interface EntaxyApplicationProjectVersion extends ApplicationProjectContent { | ||||
|  | ||||
|     public enum VERSION_STATUS { | ||||
|         NEW, | ||||
|         MODIFIED, | ||||
|         BUILT | ||||
|     } | ||||
|  | ||||
|     EntaxyApplicationProject getApplication(); | ||||
|  | ||||
|     String getVersionNumber(); | ||||
|  | ||||
|     default int compareTo(EntaxyApplicationProjectVersion otherVersion) { | ||||
|         String[] thisV = otherVersion.getVersionNumber().split("\\."); | ||||
|         String[] otherV = otherVersion.getVersionNumber().split("\\."); | ||||
|  | ||||
|         for (int i = 0; i < Math.max(thisV.length, otherV.length); i++) { | ||||
|             try { | ||||
|                 int thisValue = Integer.parseInt(thisV[i]); | ||||
|                 int otherValue = Integer.parseInt(otherV[i]); | ||||
|                 if (thisValue > otherValue) | ||||
|                     return 1; | ||||
|                 if (thisValue < otherValue) | ||||
|                     return -1; | ||||
|             } catch (Exception ignore) { | ||||
|                 continue; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     void save(); | ||||
|  | ||||
|     void disgard(); | ||||
|  | ||||
|     URL build() throws ProjectVersionException; | ||||
|  | ||||
|     boolean isBuildAvailable(); | ||||
|  | ||||
|     URL getBuildUrl(); | ||||
|  | ||||
|     InputStream getBuild(); | ||||
|  | ||||
|     ApplicationDescriptor getBuildInfo(); | ||||
|  | ||||
|     VERSION_STATUS getStatus(); | ||||
|  | ||||
|     boolean isDirty(); | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,61 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.exceptions.RevisionException; | ||||
|  | ||||
| public interface EntaxyApplicationRevision extends ApplicationContent { | ||||
|  | ||||
|     public enum REVISION_STATUS { | ||||
|         NEW, | ||||
|         CONFIGURED, | ||||
|         DEPLOYED, | ||||
|         INSTALLED, | ||||
|         UNINSTALLED | ||||
|     } | ||||
|  | ||||
|     int getRevisionNumber(); | ||||
|  | ||||
|     REVISION_STATUS getStatus(); | ||||
|  | ||||
|     void configure() throws RevisionException; | ||||
|  | ||||
|     void deploy() throws RevisionException; | ||||
|  | ||||
|     default void install(boolean devMode) throws RevisionException { | ||||
|         if (devMode) | ||||
|             installDev(); | ||||
|         else | ||||
|             install(); | ||||
|     }; | ||||
|  | ||||
|     void install() throws RevisionException; | ||||
|  | ||||
|     void installDev() throws RevisionException; | ||||
|  | ||||
|     void uninstall() throws RevisionException; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,90 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ApplicationVersionException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.RevisionException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.RevisionIllegalNumber; | ||||
|  | ||||
| public interface EntaxyApplicationVersion extends ApplicationContent { | ||||
|  | ||||
|     EntaxyApplication getApplication(); | ||||
|  | ||||
|     String getVersionNumber(); | ||||
|  | ||||
|     List<EntaxyApplicationRevision> getRevisions(); | ||||
|  | ||||
|     EntaxyApplicationRevision getLastRevision(); | ||||
|  | ||||
|     default int compareTo(EntaxyApplicationVersion otherVersion) { | ||||
|         String[] thisV = otherVersion.getVersionNumber().split("\\."); | ||||
|         String[] otherV = otherVersion.getVersionNumber().split("\\."); | ||||
|  | ||||
|         for (int i = 0; i < Math.max(thisV.length, otherV.length); i++) { | ||||
|             try { | ||||
|                 int thisValue = Integer.parseInt(thisV[i]); | ||||
|                 int otherValue = Integer.parseInt(otherV[i]); | ||||
|                 if (thisValue > otherValue) | ||||
|                     return 1; | ||||
|                 if (thisValue < otherValue) | ||||
|                     return -1; | ||||
|             } catch (Exception ignore) { | ||||
|                 continue; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     default EntaxyApplicationRevision getRevision(String revision) throws RevisionException { | ||||
|         int rev = -1; | ||||
|         try { | ||||
|             rev = Integer.parseInt(revision); | ||||
|         } catch (Exception ignore) { | ||||
|  | ||||
|         } | ||||
|         if (rev < 0) | ||||
|             throw new RevisionIllegalNumber(getApplication().getName(), getVersionNumber(), revision); | ||||
|         return getRevision(rev); | ||||
|     }; | ||||
|  | ||||
|     EntaxyApplicationRevision getRevision(int revision); | ||||
|  | ||||
|     // creates next revision from last revision | ||||
|     default EntaxyApplicationRevision createRevision() throws ApplicationVersionException { | ||||
|         if (getLastRevision() == null) | ||||
|             // create initial revision | ||||
|             return createRevision(-1); | ||||
|         return createRevision(getLastRevision().getRevisionNumber()); | ||||
|     }; | ||||
|  | ||||
|     // creates next revision from given revision | ||||
|     // -1 means create origin revision | ||||
|     EntaxyApplicationRevision createRevision(int fromRevision) throws ApplicationVersionException; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,84 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.descriptor; | ||||
|  | ||||
| import ru.entaxy.platform.base.support.CommonUtils; | ||||
| import ru.entaxy.platform.integration.applications.EntaxyApplication; | ||||
|  | ||||
| public class ApplicationComponent { | ||||
|  | ||||
|     public String id; | ||||
|     public EntaxyApplication.ITEM_TYPE type; | ||||
|     public String internalLocation; | ||||
|     public String mavenLocation; | ||||
|     public String targetProtocol; | ||||
|     public String targetLocation; | ||||
|     public String targetQueryString; | ||||
|  | ||||
|     public int priority; | ||||
|  | ||||
|     public String getId() { | ||||
|         return id; | ||||
|     } | ||||
|  | ||||
|     public EntaxyApplication.ITEM_TYPE getType() { | ||||
|         return type; | ||||
|     } | ||||
|  | ||||
|     public String getInternalLocation() { | ||||
|         return internalLocation; | ||||
|     } | ||||
|  | ||||
|     public String getMavenLocation() { | ||||
|         return mavenLocation; | ||||
|     } | ||||
|  | ||||
|     public String getTargetLocation() { | ||||
|         return targetLocation; | ||||
|     } | ||||
|  | ||||
|     public int getPriority() { | ||||
|         return priority; | ||||
|     } | ||||
|  | ||||
|     public String getTargetProtocol() { | ||||
|         return targetProtocol; | ||||
|     } | ||||
|  | ||||
|     public String getTargetQueryString() { | ||||
|         return targetQueryString; | ||||
|     } | ||||
|  | ||||
|     public String getFullTargetLocation() { | ||||
|         StringBuffer result = new StringBuffer(); | ||||
|         if (CommonUtils.isValid(targetProtocol)) | ||||
|             result.append(targetProtocol).append(':'); | ||||
|         result.append(targetLocation); | ||||
|         if (CommonUtils.isValid(targetQueryString)) | ||||
|             result.append('?').append(targetQueryString); | ||||
|         return result.toString(); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,50 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.descriptor; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.EntaxyApplication; | ||||
|  | ||||
| public class ApplicationContentItem { | ||||
|  | ||||
|     public String id; | ||||
|     public EntaxyApplication.ITEM_TYPE type; | ||||
|     public String componentId; | ||||
|  | ||||
|     public String getId() { | ||||
|         return id; | ||||
|     } | ||||
|  | ||||
|     public EntaxyApplication.ITEM_TYPE getType() { | ||||
|         return type; | ||||
|     } | ||||
|  | ||||
|     public String getComponentId() { | ||||
|         return componentId; | ||||
|     } | ||||
|  | ||||
|  | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,112 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.descriptor; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import java.util.stream.Collectors; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.EntaxyApplication; | ||||
| import ru.entaxy.platform.integration.applications.EntaxyApplication.ITEM_TYPE; | ||||
|  | ||||
| public class ApplicationDescriptor { | ||||
|  | ||||
|     public String name; | ||||
|     public String group; | ||||
|     public String version; | ||||
|     public String buildOn; | ||||
|     public String buildBy; | ||||
|  | ||||
|     public String mavenUrl; | ||||
|     public String mavenAsset; | ||||
|  | ||||
|     public ApplicationFeatures features; | ||||
|  | ||||
|     public volatile List<ApplicationRequirement> requirements = new ArrayList<>(); | ||||
|  | ||||
|     public volatile List<ApplicationContentItem> items = new ArrayList<>(); | ||||
|  | ||||
|     public volatile List<ApplicationComponent> components = new ArrayList<>(); | ||||
|  | ||||
|     public String getName() { | ||||
|         return name; | ||||
|     } | ||||
|  | ||||
|     public String getGroup() { | ||||
|         return group; | ||||
|     } | ||||
|  | ||||
|     public String getVersion() { | ||||
|         return version; | ||||
|     } | ||||
|  | ||||
|     public String getBuildOn() { | ||||
|         return buildOn; | ||||
|     } | ||||
|  | ||||
|     public String getBuildBy() { | ||||
|         return buildBy; | ||||
|     } | ||||
|  | ||||
|     public String getMavenUrl() { | ||||
|         return mavenUrl; | ||||
|     } | ||||
|  | ||||
|     public String getMavenAsset() { | ||||
|         return mavenAsset; | ||||
|     } | ||||
|  | ||||
|     public List<ApplicationRequirement> getRequirements() { | ||||
|         return requirements; | ||||
|     } | ||||
|  | ||||
|     public List<ApplicationContentItem> getItems() { | ||||
|         return items; | ||||
|     } | ||||
|  | ||||
|     public List<ApplicationComponent> getComponents() { | ||||
|         return components; | ||||
|     } | ||||
|  | ||||
|     public List<ApplicationComponent> getComponents(EntaxyApplication.ITEM_TYPE type) { | ||||
|         if (type == null) | ||||
|             return getComponents(); | ||||
|         return components.stream().filter(comp -> type.equals(comp.type)).collect(Collectors.toList()); | ||||
|     } | ||||
|  | ||||
|     public List<ApplicationComponent> getBundleComponents() { | ||||
|         return getComponents(ITEM_TYPE.BUNDLE); | ||||
|     } | ||||
|  | ||||
|     public List<ApplicationComponent> getConfigComponents() { | ||||
|         return getComponents(ITEM_TYPE.CONFIG); | ||||
|     } | ||||
|  | ||||
|     public ApplicationFeatures getFeatures() { | ||||
|         return features; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,43 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.descriptor; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.EntaxyApplication; | ||||
|  | ||||
| public class ApplicationFeatures extends ApplicationComponent { | ||||
|  | ||||
|     public static final String DEV_FEATURE_SUFFIX = "-dev"; | ||||
|  | ||||
|     public ApplicationFeatures() { | ||||
|         id = "application.features"; | ||||
|         type = EntaxyApplication.ITEM_TYPE.FEATURES; | ||||
|     } | ||||
|  | ||||
|     public String getDevId() { | ||||
|         return getId() + DEV_FEATURE_SUFFIX; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,50 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.descriptor; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.EntaxyApplication; | ||||
|  | ||||
| public class ApplicationRequirement { | ||||
|  | ||||
|     public String id; | ||||
|     public EntaxyApplication.ITEM_TYPE type; | ||||
|     public EntaxyApplication.ITEM_SCOPE scope; | ||||
|  | ||||
|     public String getId() { | ||||
|         return id; | ||||
|     } | ||||
|  | ||||
|     public EntaxyApplication.ITEM_TYPE getType() { | ||||
|         return type; | ||||
|     } | ||||
|  | ||||
|     public EntaxyApplication.ITEM_SCOPE getScope() { | ||||
|         return scope; | ||||
|     } | ||||
|  | ||||
|  | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,41 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ApplicationCausedException extends ApplicationException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ApplicationCausedException(String applicationName, Throwable cause) { | ||||
|         super(applicationName, cause); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Application exception on [%s]: %s", applicationName, getCause().getMessage()); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,40 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ApplicationDescriptorIsInvalid extends ApplicationException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ApplicationDescriptorIsInvalid(String applicationName) { | ||||
|         super(applicationName); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected String getMessageInfo() { | ||||
|         return "descriptor is invalid"; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,40 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ApplicationDescriptorNotFound extends ApplicationException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ApplicationDescriptorNotFound(String applicationName) { | ||||
|         super(applicationName); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected String getMessageInfo() { | ||||
|         return "descriptor not found"; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,60 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public abstract class ApplicationException extends EntaxyApplicationsException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|     protected String applicationName; | ||||
|  | ||||
|     public ApplicationException(String applicationName) { | ||||
|         super(); | ||||
|         this.applicationName = applicationName; | ||||
|     } | ||||
|  | ||||
|     public ApplicationException(String applicationName, Throwable cause) { | ||||
|         super(cause); | ||||
|         this.applicationName = applicationName; | ||||
|     } | ||||
|  | ||||
|     public String getApplicationName() { | ||||
|         return applicationName; | ||||
|     } | ||||
|  | ||||
|     public void setApplicationName(String applicationName) { | ||||
|         this.applicationName = applicationName; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Application %s: [%s]", getMessageInfo(), applicationName); | ||||
|     } | ||||
|  | ||||
|     protected String getMessageInfo() { | ||||
|         return "exception"; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,42 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ApplicationImportCausedException extends ApplicationException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ApplicationImportCausedException(String applicationName, Throwable cause) { | ||||
|         super(applicationName, cause); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Application exception while importing from [%s]: %s", applicationName, | ||||
|                 getCause().getMessage()); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,41 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ApplicationNotFoundException extends ApplicationException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ApplicationNotFoundException(String applicationName) { | ||||
|         super(applicationName); | ||||
|         // TODO Auto-generated constructor stub | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected String getMessageInfo() { | ||||
|         return "not found"; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,40 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ApplicationVersionAlreadyExists extends ApplicationVersionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ApplicationVersionAlreadyExists(String applicationName, String versionNumber) { | ||||
|         super(applicationName, versionNumber); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected String getMessageInfo() { | ||||
|         return "already exists"; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,42 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ApplicationVersionCausedException extends ApplicationVersionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ApplicationVersionCausedException(String applicationName, Throwable e, String versionNumber) { | ||||
|         super(applicationName, e, versionNumber); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Aplication version exception: [%s]/[%s]; %s", getApplicationName(), getVersionNumber(), | ||||
|                 getCause().getMessage()); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,61 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ApplicationVersionException extends ApplicationException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     String versionNumber; | ||||
|  | ||||
|     public ApplicationVersionException(String applicationName, String versionNumber) { | ||||
|         super(applicationName); | ||||
|         setVersionNumber(versionNumber); | ||||
|     } | ||||
|  | ||||
|     public ApplicationVersionException(String applicationName, Throwable e, String versionNumber) { | ||||
|         super(applicationName, e); | ||||
|         setVersionNumber(versionNumber); | ||||
|     } | ||||
|  | ||||
|     public String getVersionNumber() { | ||||
|         return versionNumber; | ||||
|     } | ||||
|  | ||||
|     public void setVersionNumber(String versionNumber) { | ||||
|         this.versionNumber = versionNumber; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Application version %s: [%s]/[%s]", getMessageInfo(), applicationName, versionNumber); | ||||
|     } | ||||
|  | ||||
|     protected String getMessageInfo() { | ||||
|         return "caused exception"; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,36 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ApplicationVersionHasInstalledException extends ApplicationVersionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|      | ||||
|     public ApplicationVersionHasInstalledException(String applicationName, String versionNumber) { | ||||
|         super(applicationName, versionNumber); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,40 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class EntaxyApplicationsException extends Exception { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public EntaxyApplicationsException() { | ||||
|         super(); | ||||
|     } | ||||
|  | ||||
|     public EntaxyApplicationsException(Throwable cause) { | ||||
|         super(cause); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,47 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public abstract class ItemException extends ProjectVersionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     protected String itemId; | ||||
|  | ||||
|     public ItemException(String applicationName, String versionNumber, String itemId) { | ||||
|         super(applicationName, versionNumber); | ||||
|         this.itemId = itemId; | ||||
|     } | ||||
|  | ||||
|     public String getItemId() { | ||||
|         return itemId; | ||||
|     } | ||||
|  | ||||
|     public void setItemId(String itemId) { | ||||
|         this.itemId = itemId; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,42 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ItemIsGhostException extends ItemException { | ||||
|  | ||||
|  | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ItemIsGhostException(String applicationName, String versionNumber, String itemId) { | ||||
|         super(applicationName, versionNumber, itemId); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Item operation not allowed for ghost: [%s]", itemId); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,42 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ItemIsPlatformException extends ItemException { | ||||
|  | ||||
|  | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ItemIsPlatformException(String applicationName, String versionNumber, String itemId) { | ||||
|         super(applicationName, versionNumber, itemId); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Item operation not allowed for platform object: [%s]", itemId); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,40 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ItemNotFoundException extends ItemException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ItemNotFoundException(String applicationName, String versionNumber, String itemId) { | ||||
|         super(applicationName, versionNumber, itemId); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Item [%s] not found in [%s]/[%s]", itemId, applicationName, versionNumber); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,41 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ProjectAlreadyExistsException extends ProjectException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ProjectAlreadyExistsException(String applicationName) { | ||||
|         super(applicationName); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Application [%s] already exists", applicationName); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,51 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public abstract class ProjectException extends EntaxyApplicationsException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|     protected String applicationName; | ||||
|  | ||||
|     public ProjectException(String applicationName) { | ||||
|         super(); | ||||
|         this.applicationName = applicationName; | ||||
|     } | ||||
|  | ||||
|     public ProjectException(String applicationName, Throwable cause) { | ||||
|         super(cause); | ||||
|         this.applicationName = applicationName; | ||||
|     } | ||||
|  | ||||
|     public String getApplicationName() { | ||||
|         return applicationName; | ||||
|     } | ||||
|  | ||||
|     public void setApplicationName(String applicationName) { | ||||
|         this.applicationName = applicationName; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,39 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ProjectNotFoundException extends ProjectException { | ||||
|  | ||||
|     public ProjectNotFoundException(String applicationName) { | ||||
|         super(applicationName); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Application [%s] not found", applicationName); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,41 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ProjectVersionBuildNotAvailable extends ProjectVersionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ProjectVersionBuildNotAvailable(String applicationName, String versionNumber) { | ||||
|         super(applicationName, versionNumber); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected String getMessageInfo() { | ||||
|         return "bild not available"; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,41 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ProjectVersionCausedException extends ProjectVersionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ProjectVersionCausedException(String applicationName, String versionNumber, Throwable cause) { | ||||
|         super(applicationName, versionNumber, cause); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Version exception on [%s]/[%s]: %s", applicationName, versionNumber, | ||||
|                 getCause().getMessage()); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,61 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ProjectVersionException extends ProjectException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     protected String versionNumber; | ||||
|  | ||||
|     public ProjectVersionException(String applicationName, String versionNumber) { | ||||
|         super(applicationName); | ||||
|         this.versionNumber = versionNumber; | ||||
|     } | ||||
|  | ||||
|     public ProjectVersionException(String applicationName, String versionNumber, Throwable cause) { | ||||
|         super(applicationName, cause); | ||||
|         this.versionNumber = versionNumber; | ||||
|     } | ||||
|  | ||||
|     public String getVersionNumber() { | ||||
|         return versionNumber; | ||||
|     } | ||||
|  | ||||
|     public void setVersionNumber(String versionNumber) { | ||||
|         this.versionNumber = versionNumber; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Version %s: [%s]/[%s]", getMessageInfo(), applicationName, versionNumber); | ||||
|     } | ||||
|  | ||||
|     protected String getMessageInfo() { | ||||
|         return "caused exception"; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,41 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ProjectVersionIsDirtyException extends ProjectVersionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ProjectVersionIsDirtyException(String applicationName, String versionNumber) { | ||||
|         super(applicationName, versionNumber); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected String getMessageInfo() { | ||||
|         return "is dirty"; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,41 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ProjectVersionNotConsistentException extends ProjectVersionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ProjectVersionNotConsistentException(String applicationName, String versionNumber) { | ||||
|         super(applicationName, versionNumber); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected String getMessageInfo() { | ||||
|         return "not consistent"; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,40 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class ProjectVersionNotFoundException extends ProjectVersionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public ProjectVersionNotFoundException(String applicationName, String versionNumber) { | ||||
|         super(applicationName, versionNumber); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessageInfo() { | ||||
|         return "not found"; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,41 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class RevisionCausedException extends RevisionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public RevisionCausedException(String applicationName, Throwable e, String versionNumber, int revisionNumber) { | ||||
|         super(applicationName, e, versionNumber, revisionNumber); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Application revision [%s]/[%s]:[%d] caused exception: %s", getApplicationName(), | ||||
|                 getVersionNumber(), getRevisionNumber(), getCause().getMessage()); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,62 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class RevisionException extends ApplicationVersionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|     int revisionNumber; | ||||
|  | ||||
|     public RevisionException(String applicationName, String versionNumber, int revisionNumber) { | ||||
|         super(applicationName, versionNumber); | ||||
|         setRevisionNumber(revisionNumber); | ||||
|     } | ||||
|  | ||||
|     public RevisionException(String applicationName, Throwable e, String versionNumber, int revisionNumber) { | ||||
|         super(applicationName, e, versionNumber); | ||||
|         setRevisionNumber(revisionNumber); | ||||
|     } | ||||
|  | ||||
|     public int getRevisionNumber() { | ||||
|         return revisionNumber; | ||||
|     } | ||||
|  | ||||
|     public void setRevisionNumber(int revisionNumber) { | ||||
|         this.revisionNumber = revisionNumber; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Application revision %s: [%s]/[%s]:[%d]", getMessageInfo(), getApplicationName(), | ||||
|                 getVersionNumber(), getRevisionNumber()); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected String getMessageInfo() { | ||||
|         return "caused exception"; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,53 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class RevisionIllegalNumber extends RevisionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     String illegalNumber; | ||||
|  | ||||
|     public RevisionIllegalNumber(String applicationName, String versionNumber, String illegalNumber) { | ||||
|         super(applicationName, versionNumber, 0); | ||||
|         setIllegalNumber(illegalNumber); | ||||
|     } | ||||
|  | ||||
|     public String getIllegalNumber() { | ||||
|         return illegalNumber; | ||||
|     } | ||||
|  | ||||
|     public void setIllegalNumber(String illegalNumber) { | ||||
|         this.illegalNumber = illegalNumber; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Illegal revision number [%s] in application: [%s]/[%s]", illegalNumber, | ||||
|                 getApplicationName(), getVersionNumber()); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,50 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.EntaxyApplicationRevision.REVISION_STATUS; | ||||
|  | ||||
| public class RevisionIllegalTransition extends RevisionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     protected REVISION_STATUS fromStatus; | ||||
|  | ||||
|     protected REVISION_STATUS toStatus; | ||||
|  | ||||
|     public RevisionIllegalTransition(String applicationName, String versionNumber, int revisionNumber, | ||||
|             REVISION_STATUS fromStatus, REVISION_STATUS toStatus) { | ||||
|         super(applicationName, versionNumber, revisionNumber); | ||||
|         this.fromStatus = fromStatus; | ||||
|         this.toStatus = toStatus; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected String getMessageInfo() { | ||||
|         return String.format("transition not allowed from [%s] to [%s]", fromStatus.name(), toStatus.name()); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,40 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class RevisionNotConfigurable extends RevisionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public RevisionNotConfigurable(String applicationName, String versionNumber, int revisionNumber) { | ||||
|         super(applicationName, versionNumber, revisionNumber); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected String getMessageInfo() { | ||||
|         return "not configurable"; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,40 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class RevisionNotFound extends RevisionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public RevisionNotFound(String applicationName, String versionNumber, int revisionNumber) { | ||||
|         super(applicationName, versionNumber, revisionNumber); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected String getMessageInfo() { | ||||
|         return "not found"; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,53 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.descriptor.ApplicationRequirement; | ||||
|  | ||||
| public class RevisionRequirementsNotSatisfied extends RevisionException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     protected List<ApplicationRequirement> requirements; | ||||
|  | ||||
|     public RevisionRequirementsNotSatisfied(String applicationName, String versionNumber, int revisionNumber, | ||||
|             List<ApplicationRequirement> requirements) { | ||||
|         super(applicationName, versionNumber, revisionNumber); | ||||
|         this.requirements = requirements; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected String getMessageInfo() { | ||||
|         String data = "requirements not satisfied:"; | ||||
|         for (ApplicationRequirement req : requirements) | ||||
|             data = data.concat("\n\t").concat(req.getId()).concat(": ").concat(req.getType().name()).concat(" / ") | ||||
|                     .concat(req.getScope().name()); | ||||
|         return data.concat("\n"); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,38 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public abstract class StorageException extends EntaxyApplicationsException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|     protected String storageName; | ||||
|  | ||||
|     public StorageException(String storageName) { | ||||
|         super(); | ||||
|         this.storageName = storageName; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,41 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class StorageNotEnabledException extends StorageException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public StorageNotEnabledException(String storageName) { | ||||
|         super(storageName); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Storage [%s] not enabled", this.storageName); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,41 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.exceptions; | ||||
|  | ||||
| public class StorageNotFoundException extends StorageException { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     public StorageNotFoundException(String storageName) { | ||||
|         super(storageName); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getMessage() { | ||||
|         return String.format("Storage [%s] not found", this.storageName); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,34 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.item.project; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.ApplicationProjectItem; | ||||
|  | ||||
| public interface EntaxyBundleItem extends ApplicationProjectItem { | ||||
|     long getBundleId(); | ||||
|  | ||||
|     String getBundleSymbolicName(); | ||||
| } | ||||
| @@ -0,0 +1,30 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.item.project; | ||||
|  | ||||
| public interface EntaxyConfigItem extends EntaxyObjectItem { | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,34 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.item.project; | ||||
|  | ||||
| import ru.entaxy.platform.objects.runtime.EntaxyRuntimeObject; | ||||
|  | ||||
| public interface EntaxyObjectItem extends EntaxyBundleItem { | ||||
|  | ||||
|     EntaxyRuntimeObject getObject(); | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,35 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.item.project; | ||||
|  | ||||
| import ru.entaxy.esb.resources.EntaxyResource; | ||||
| import ru.entaxy.platform.integration.applications.ApplicationProjectItem; | ||||
|  | ||||
| public interface EntaxyResourceItem extends ApplicationProjectItem { | ||||
|  | ||||
|     EntaxyResource getResource(); | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,96 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.storage; | ||||
|  | ||||
| import java.util.Collections; | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.ApplicationStorage; | ||||
|  | ||||
| public abstract class AbstractApplicationStorage implements ApplicationStorage { | ||||
|  | ||||
|     protected String name; | ||||
|  | ||||
|     protected String type = "unknown"; | ||||
|  | ||||
|     protected boolean isEnabled = true; | ||||
|  | ||||
|     protected Map<String, Object> storageInfo = new HashMap<>(); | ||||
|  | ||||
|     protected AbstractApplicationStorage() { | ||||
|         super(); | ||||
|         if (this.getClass().isAnnotationPresent(ApplicationStorageInfo.class)) { | ||||
|             ApplicationStorageInfo anno = this.getClass().getAnnotation(ApplicationStorageInfo.class); | ||||
|             setName(anno.name()); | ||||
|             setEnabled(anno.defaultEnabled()); | ||||
|             type = anno.type(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void setName(String name) { | ||||
|         this.name = name; | ||||
|     } | ||||
|  | ||||
|     public void setEnabled(boolean isEnabled) { | ||||
|         this.isEnabled = isEnabled; | ||||
|     } | ||||
|  | ||||
|     protected void setInfo(String key, Object value) { | ||||
|         this.storageInfo.put(key, value); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getName() { | ||||
|         return name; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getType() { | ||||
|         return type; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Map<String, Object> getInfo() { | ||||
|         return Collections.unmodifiableMap(storageInfo); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean isEnabled() { | ||||
|         return isEnabled; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void enable() { | ||||
|         setEnabled(true); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void disable() { | ||||
|         setEnabled(false); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,42 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.storage; | ||||
|  | ||||
| import static java.lang.annotation.ElementType.TYPE; | ||||
| import static java.lang.annotation.RetentionPolicy.RUNTIME; | ||||
|  | ||||
| import java.lang.annotation.Retention; | ||||
| import java.lang.annotation.Target; | ||||
|  | ||||
| @Retention(RUNTIME) | ||||
| @Target(TYPE) | ||||
| public @interface ApplicationStorageInfo { | ||||
|     String name(); | ||||
|  | ||||
|     String type() default "unknown"; | ||||
|  | ||||
|     boolean defaultEnabled() default true; | ||||
| } | ||||
| @@ -0,0 +1,30 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-api | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.utils; | ||||
|  | ||||
| public class JarArtifact { | ||||
|  | ||||
| } | ||||
							
								
								
									
										175
									
								
								platform/integration/applications/application-impl/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								platform/integration/applications/application-impl/LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,175 @@ | ||||
|                                  ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ | ||||
|  | ||||
| Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой) | ||||
| версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего | ||||
| Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН | ||||
| 7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова, | ||||
| д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу | ||||
| https://www.emdev.ru/about (далее - Компания). | ||||
|  | ||||
| Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями» | ||||
| (или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения, | ||||
| Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в | ||||
| настоящем документе, в противном случае, он должен не использовать или не получать доступ | ||||
| к Программному обеспечению. | ||||
|  | ||||
|                                     1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ | ||||
|  | ||||
| a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии | ||||
| или редакции, исключительные права на которую принадлежат Правообладателю. | ||||
| b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные | ||||
| права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ | ||||
| для ЭВМ № 2021610848 от 19.01.2021 года. | ||||
| c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта | ||||
| https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО. | ||||
| d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также | ||||
| личные неимущественные права авторов произведений на результат интеллектуальной деятельности. | ||||
| e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование | ||||
| ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка | ||||
| включает предоставление Пользователю неисключительного права использования ПО, в том числе | ||||
| получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение | ||||
| патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается | ||||
| Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается | ||||
| для каждого Пользователя индивидуально в Сертификате. | ||||
| f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром), | ||||
| подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное | ||||
| обеспечение в ограниченном объёме и на определённый период времени. | ||||
| g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО, | ||||
| предоставленных Пользователю согласно условиям Подписки. | ||||
| h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного | ||||
| обеспечения. | ||||
| i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий | ||||
| из одного или нескольких файлов, который может быть прочтён человеком. | ||||
| j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля | ||||
| программы, полученный в результате обработки исходного кода, еще не связанный в полную программу. | ||||
| Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый | ||||
| продукт. | ||||
| k) Некоммерческое использование – индивидуальное личное использование Пользователем программного | ||||
| обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации | ||||
| возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая | ||||
| выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения. | ||||
|  | ||||
|                     2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | ||||
|  | ||||
| 2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного | ||||
| обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом | ||||
| воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения | ||||
| в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ. | ||||
| 2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит | ||||
| неисключительный характер. | ||||
| 2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию, | ||||
| лицензия на ограниченное использование Программного обеспечения. | ||||
| 2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования | ||||
| имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан | ||||
| обратиться в службу поддержки Правообладателя по адресу:  https://entaxy.ru/ для изменения | ||||
| вида лицензии с Базовой бесплатной версии на Подписки. | ||||
| 2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для | ||||
| пробного использования программного обеспечения – не ограничен. | ||||
| 2.6. Использование Пользователем настоящего программного обеспечения в целях разработки, | ||||
| модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю, | ||||
| без разрешения Правообладателя не допускается. | ||||
|  | ||||
|                                 3. АВТОРСКОЕ ПРАВО. | ||||
|  | ||||
| 3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение | ||||
| и любые его копии принадлежат Правообладателю. | ||||
| 3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента, | ||||
| к которому можно получить доступ с помощью Программного обеспечения, является собственностью | ||||
| соответствующего владельца контента и защищается применимым законодательством об авторском | ||||
| праве или другими законами и договорами об интеллектуальной собственности. | ||||
| 3.3. Условия использования Программного обеспечения. | ||||
| Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь | ||||
| придерживается следующих условий: | ||||
| 3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять | ||||
| какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании | ||||
| Программного обеспечения или на нем. | ||||
| 3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать, | ||||
| расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать | ||||
| Программное обеспечение. | ||||
| 3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования | ||||
| ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне. | ||||
| 3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено | ||||
| использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам. | ||||
|  | ||||
|                     4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС» | ||||
|  | ||||
| 4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю | ||||
| на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с | ||||
| использованием Пользователем: | ||||
| 4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в | ||||
| Программное обеспечение; | ||||
| 4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями | ||||
| настоящего соглашения; | ||||
| 4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием, | ||||
| или данными, не предоставленными Пользователю Правообладателем; | ||||
| 4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем. | ||||
|  | ||||
|  | ||||
| 5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ | ||||
| ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ | ||||
| И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ | ||||
| ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ | ||||
| И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ | ||||
| ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО. | ||||
|  | ||||
|                         6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ. | ||||
| НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ | ||||
| ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ, | ||||
| ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ; | ||||
| ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ. | ||||
| ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ | ||||
| ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ; | ||||
| КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ | ||||
| ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ. | ||||
|  | ||||
|                         7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ: | ||||
| Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия | ||||
| (включая, но не ограничиваясь) по: | ||||
| -дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код) | ||||
|  Программного обеспечения; | ||||
| -модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный | ||||
| код Программного обеспечения, за исключением тех изменений, которые вносятся средствами, | ||||
| включёнными в Программное обеспечение и описанными непосредственно в документации к нему; | ||||
| -созданию условий для использования Программного обеспечения лицами, не имеющими прав на | ||||
| использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство | ||||
| третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа | ||||
| к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку; | ||||
| -распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию). | ||||
|  | ||||
|                     8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА. | ||||
|  | ||||
| 8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из | ||||
| лицензионных продуктов, используемых на законных основаниях, а | ||||
| именно https://entaxy.ru/libs/licenses/root-aggregated.deps. | ||||
| 8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть | ||||
| совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения. | ||||
| 8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться | ||||
| Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения, | ||||
| содержащих все изменения и дополнения программного обеспечения. | ||||
|  | ||||
|                         9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. | ||||
|  | ||||
| 9.1.  Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым | ||||
| программным обеспечением. | ||||
| 9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно | ||||
| с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм | ||||
| «Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public. | ||||
| 9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий | ||||
| пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя, | ||||
| прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер | ||||
| ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства | ||||
| Российской Федерации. | ||||
|  | ||||
|                                 10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ. | ||||
|  | ||||
| 10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет | ||||
| право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб, | ||||
| недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий | ||||
| пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере | ||||
| 2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения | ||||
| исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy). | ||||
| 10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое | ||||
| законодательство – Российской Федерации. | ||||
| 10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным, | ||||
| остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать | ||||
| исполнять свои обязанности в соответствии с этими положениями. | ||||
							
								
								
									
										142
									
								
								platform/integration/applications/application-impl/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								platform/integration/applications/application-impl/pom.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,142 @@ | ||||
| <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||
|   <modelVersion>4.0.0</modelVersion> | ||||
|   <parent> | ||||
|     <groupId>ru.entaxy.platform.integration</groupId> | ||||
|     <artifactId>applications</artifactId> | ||||
|     <version>1.11.0</version> | ||||
|   </parent> | ||||
|   <groupId>ru.entaxy.platform.integration.applications</groupId> | ||||
|   <artifactId>application-impl</artifactId> | ||||
|   <packaging>bundle</packaging> | ||||
|   <name>ENTAXY :: PLATFORM :: INTEGRATION :: APPLICATIONS :: IMPL</name> | ||||
|   <description>ENTAXY :: PLATFORM :: INTEGRATION :: APPLICATIONS :: IMPL</description> | ||||
|    | ||||
|   <properties> | ||||
| 	  <bundle.osgi.export.pkg>ru.entaxy.platform.integration.applications.impl, | ||||
| 		  ru.entaxy.platform.integration.applications.impl.*</bundle.osgi.export.pkg> | ||||
|   </properties> | ||||
|    | ||||
|   <build> | ||||
|     <plugins> | ||||
|       <plugin> | ||||
|         <groupId>org.apache.felix</groupId> | ||||
|         <artifactId>maven-bundle-plugin</artifactId> | ||||
|         <extensions>true</extensions> | ||||
|         <configuration> | ||||
|           <instructions> | ||||
|             <Entaxy-Template-Provider>true</Entaxy-Template-Provider> | ||||
|           </instructions> | ||||
|         </configuration> | ||||
|       </plugin> | ||||
|     </plugins> | ||||
|   </build> | ||||
|    | ||||
|   <dependencies> | ||||
|    | ||||
| 	  <dependency> | ||||
| 		  <groupId>ru.entaxy.platform.integration.applications</groupId> | ||||
| 		  <artifactId>application-api</artifactId> | ||||
| 		  <version>${project.version}</version> | ||||
| 		  <exclusions> | ||||
| 		  	<exclusion> | ||||
| 		  		<groupId>org.apache.felix</groupId> | ||||
| 		  		<artifactId>org.apache.felix.scr</artifactId> | ||||
| 		  	</exclusion> | ||||
| 		  </exclusions> | ||||
| 	  </dependency> | ||||
|  	  	<dependency> | ||||
| 	  		<groupId>ru.entaxy.esb.platform.runtime.base</groupId> | ||||
| 	  		<artifactId>base-support</artifactId> | ||||
| 	  		<version>${project.version}</version> | ||||
| 	  		<exclusions> | ||||
| 	  			<exclusion> | ||||
| 	  				<groupId>org.apache.felix</groupId> | ||||
| 	  				<artifactId>org.apache.felix.scr</artifactId> | ||||
| 	  			</exclusion> | ||||
| 	  		</exclusions> | ||||
|  	  	</dependency>		  | ||||
| 	  	<dependency> | ||||
| 	  		 <groupId>ru.entaxy.esb.platform.runtime.core</groupId> | ||||
| 	  		 <artifactId>artifact-management</artifactId> | ||||
| 	  		 <version>${project.version}</version> | ||||
| 	  		 <exclusions> | ||||
| 	  		 	<exclusion> | ||||
| 	  		 		<groupId>org.apache.felix</groupId> | ||||
| 	  		 		<artifactId>org.apache.felix.scr</artifactId> | ||||
| 	  		 	</exclusion> | ||||
| 	  		 	<exclusion> | ||||
| 	  		 		<groupId>org.apache.karaf</groupId> | ||||
| 	  		 		<artifactId>org.apache.karaf.util</artifactId> | ||||
| 	  		 	</exclusion> | ||||
| 	  		 </exclusions> | ||||
| 	  	</dependency> | ||||
| 	  	<dependency> | ||||
| 	  		 <groupId>ru.entaxy.esb.platform.runtime.core</groupId> | ||||
| 	  		 <artifactId>artifact-management-extensions</artifactId> | ||||
| 	  		 <version>${project.version}</version> | ||||
| 	  		 <exclusions> | ||||
| 	  		 	<exclusion> | ||||
| 	  		 		<groupId>org.apache.felix</groupId> | ||||
| 	  		 		<artifactId>org.apache.felix.scr</artifactId> | ||||
| 	  		 	</exclusion> | ||||
| 	  		 	<exclusion> | ||||
| 	  		 		<groupId>org.apache.karaf</groupId> | ||||
| 	  		 		<artifactId>org.apache.karaf.util</artifactId> | ||||
| 	  		 	</exclusion> | ||||
| 	  		 </exclusions> | ||||
| 	  	</dependency> | ||||
| 	  	<dependency> | ||||
| 	  		 <groupId>commons-io</groupId> | ||||
| 	  		 <artifactId>commons-io</artifactId> | ||||
| 	  		 <version>${commons-io.version}</version> | ||||
| 	  	</dependency> | ||||
| 	  	<dependency> | ||||
| 	  		 <groupId>ru.entaxy.esb.platform.runtime.base.connecting.generator</groupId> | ||||
| 	  		 <artifactId>generator-api</artifactId> | ||||
| 	  		 <version>${project.version}</version> | ||||
| 	  		 <exclusions> | ||||
| 	  		 	<exclusion> | ||||
| 	  		 		<groupId>org.apache.felix</groupId> | ||||
| 	  		 		<artifactId>org.apache.felix.scr</artifactId> | ||||
| 	  		 	</exclusion> | ||||
| 	  		 	<exclusion> | ||||
| 	  		 		<groupId>org.apache.karaf</groupId> | ||||
| 	  		 		<artifactId>org.apache.karaf.util</artifactId> | ||||
| 	  		 	</exclusion> | ||||
| 	  		 </exclusions> | ||||
| 	  	</dependency> | ||||
| 	  	<dependency> | ||||
| 	  		 <groupId>ru.entaxy.esb.platform.runtime.base.connecting.generator</groupId> | ||||
| 	  		 <artifactId>generator-factory</artifactId> | ||||
| 	  		 <version>${project.version}</version> | ||||
| 	  		 <exclusions> | ||||
| 	  		 	<exclusion> | ||||
| 	  		 		<groupId>org.apache.felix</groupId> | ||||
| 	  		 		<artifactId>org.apache.felix.scr</artifactId> | ||||
| 	  		 	</exclusion> | ||||
| 	  		 </exclusions> | ||||
| 	  	</dependency> | ||||
| 	  <dependency> | ||||
| 		  <groupId>ru.entaxy.esb.platform.runtime.base</groupId> | ||||
| 		  <artifactId>cellar-extensions</artifactId> | ||||
| 	    	<version>${project.version}</version> | ||||
| 	    	<exclusions> | ||||
| 	    		<exclusion> | ||||
| 	    			<groupId>org.apache.felix</groupId> | ||||
| 	    			<artifactId>org.apache.felix.scr</artifactId> | ||||
| 	    		</exclusion> | ||||
| 	    		<exclusion> | ||||
| 	    			<groupId>org.apache.karaf</groupId> | ||||
| 	    			<artifactId>org.apache.karaf.util</artifactId> | ||||
| 	    		</exclusion> | ||||
| 	    	</exclusions> | ||||
| 	  </dependency>	  	 | ||||
| 	  <dependency> | ||||
| 		  <groupId>ru.entaxy.esb.platform.runtime.core.objects-implementations.config-implementation</groupId> | ||||
| 		  <artifactId>config-runtime</artifactId> | ||||
| 		  <version>${project.version}</version> | ||||
| 	  </dependency> | ||||
|   </dependencies> | ||||
|    | ||||
| </project> | ||||
| @@ -0,0 +1,175 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-impl | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.impl; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
|  | ||||
| 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.ReferencePolicyOption; | ||||
|  | ||||
| import ru.entaxy.platform.integration.applications.ApplicationManager; | ||||
| import ru.entaxy.platform.integration.applications.ApplicationStorage; | ||||
| import ru.entaxy.platform.integration.applications.ApplicationStorage.ApplicationImportContent; | ||||
| import ru.entaxy.platform.integration.applications.EntaxyApplication; | ||||
| import ru.entaxy.platform.integration.applications.EntaxyApplicationProjectVersion; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ApplicationException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ApplicationImportCausedException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.StorageException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.StorageNotEnabledException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.StorageNotFoundException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ProjectVersionBuildNotAvailable; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ProjectVersionCausedException; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ProjectVersionException; | ||||
|  | ||||
| @Component(service = ApplicationManager.class, immediate = true) | ||||
| public class ApplicationManagerImpl implements ApplicationManager { | ||||
|  | ||||
|     protected Map<String, ApplicationStorage> storages = new HashMap<>(); | ||||
|     protected Object storagesLock = new Object(); | ||||
|  | ||||
|     @Reference(cardinality = ReferenceCardinality.MANDATORY, policy = ReferencePolicy.DYNAMIC, | ||||
|             policyOption = ReferencePolicyOption.GREEDY) | ||||
|     volatile ExportImportHelper exportImportHelper; | ||||
|  | ||||
|     @Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC, | ||||
|             policyOption = ReferencePolicyOption.GREEDY, unbind = "unregisterStorage") | ||||
|     public void registerStorage(ApplicationStorage storage) { | ||||
|         synchronized (storagesLock) { | ||||
|             storages.put(storage.getName(), storage); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void unregisterStorage(ApplicationStorage storage) { | ||||
|         synchronized (storagesLock) { | ||||
|             storages.remove(storage.getName()); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     protected ApplicationStorage getStorageUnsafe(String storageName) throws StorageException { | ||||
|         ApplicationStorage storage = storages.get(storageName); | ||||
|         if (storage == null) | ||||
|             throw new StorageNotFoundException(storageName); | ||||
|         if (!storage.isEnabled()) | ||||
|             throw new StorageNotEnabledException(storageName); | ||||
|         return storage; | ||||
|     } | ||||
|  | ||||
|     /* ApplicationManager implementation */ | ||||
|  | ||||
|     @Override | ||||
|     public ApplicationStorage getStorage(String storageName) { | ||||
|         return storages.get(storageName); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public List<ApplicationStorage> getAllStorages() { | ||||
|         return new ArrayList<>(storages.values()); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void addStorage(ApplicationStorage applicationStorage) { | ||||
|         // TODO Auto-generated method stub | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void removeStorage(ApplicationStorage applicationStorage) { | ||||
|         // TODO Auto-generated method stub | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void exportToFile(EntaxyApplicationProjectVersion version, String filePath) throws ProjectVersionException { | ||||
|         if (!version.isBuildAvailable()) | ||||
|             throw new ProjectVersionBuildNotAvailable(version.getApplication().getName(), version.getVersionNumber()); | ||||
|         Map<String, Object> props = new HashMap<>(); | ||||
|         props.put("filePath", filePath); | ||||
|         try { | ||||
|             exportImportHelper.doExport(version, "file", props); | ||||
|         } catch (ProjectVersionException ve) { | ||||
|             throw ve; | ||||
|         } catch (Exception e) { | ||||
|             throw new ProjectVersionCausedException(version.getApplication().getName(), version.getVersionNumber(), e); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void exportToRepository(EntaxyApplicationProjectVersion version, String repositoryName) | ||||
|             throws ProjectVersionException { | ||||
|         if (!version.isBuildAvailable()) | ||||
|             throw new ProjectVersionBuildNotAvailable(version.getApplication().getName(), version.getVersionNumber()); | ||||
|         Map<String, Object> props = new HashMap<>(); | ||||
|         props.put("repositoryName", repositoryName); | ||||
|         try { | ||||
|             exportImportHelper.doExport(version, "repository", props); | ||||
|         } catch (ProjectVersionException ve) { | ||||
|             throw ve; | ||||
|         } catch (Exception e) { | ||||
|             throw new ProjectVersionCausedException(version.getApplication().getName(), version.getVersionNumber(), e); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public EntaxyApplication importApplicationFromFile(String storageName, String filePath) | ||||
|             throws ApplicationException, StorageException { | ||||
|         Map<String, Object> props = new HashMap<>(); | ||||
|         props.put("filePath", filePath); | ||||
|         try { | ||||
|             ApplicationImportContent result = exportImportHelper.doImport("file", props); | ||||
|             return createApplicationFromImport(storageName, result); | ||||
|         } catch (Exception e) { | ||||
|             throw new ApplicationImportCausedException(filePath, e); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public EntaxyApplication importApplicationFromRepository(String storageName, String mavenUrl) | ||||
|             throws ApplicationException, StorageException { | ||||
|         Map<String, Object> props = new HashMap<>(); | ||||
|         props.put("mavenUrl", mavenUrl); | ||||
|         try { | ||||
|             ApplicationImportContent result = exportImportHelper.doImport("repository", props); | ||||
|             return createApplicationFromImport(storageName, result); | ||||
|         } catch (Exception e) { | ||||
|             throw new ApplicationImportCausedException(mavenUrl, e); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     protected EntaxyApplication createApplicationFromImport(String storageName, ApplicationImportContent importContent) | ||||
|             throws Exception { | ||||
|         ApplicationStorage storage = getStorageUnsafe(storageName); | ||||
|         EntaxyApplication result = storage.createApplication(importContent); | ||||
|         importContent.clear(); | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,123 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-impl | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.impl; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
|  | ||||
| import org.apache.karaf.features.Feature; | ||||
| import org.osgi.framework.Bundle; | ||||
| import org.osgi.framework.BundleContext; | ||||
| import org.osgi.service.component.ComponentContext; | ||||
| import org.osgi.service.component.annotations.Activate; | ||||
| import org.osgi.service.component.annotations.Component; | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
|  | ||||
| import ru.entaxy.platform.base.support.CommonUtils; | ||||
| import ru.entaxy.platform.base.support.osgi.bundle.CapabilityDescriptor; | ||||
| import ru.entaxy.platform.base.support.osgi.feature.FeatureCapabilityHelper; | ||||
| import ru.entaxy.platform.base.support.osgi.feature.FeaturesUtils; | ||||
| import ru.entaxy.platform.objects.runtime.EntaxyRuntimeObject; | ||||
| import ru.entaxy.platform.objects.runtime.EntaxyRuntimeObjectExtendedDataProvider; | ||||
|  | ||||
| @Component(service = EntaxyRuntimeObjectExtendedDataProvider.class, immediate = true) | ||||
| public class ApplicationObjectExtendedDataProvider implements EntaxyRuntimeObjectExtendedDataProvider { | ||||
|  | ||||
|     private static final Logger LOG = LoggerFactory.getLogger(ApplicationObjectExtendedDataProvider.class); | ||||
|  | ||||
|     private static final String APPLICATIONS_PROVIDER_ID = "applications"; | ||||
|  | ||||
|     protected final static String APP_NAMESPACE = "entaxy.application"; | ||||
|  | ||||
|     protected BundleContext bundleContext; | ||||
|  | ||||
|     @Activate | ||||
|     public void activate(ComponentContext componentContext) { | ||||
|         this.bundleContext = componentContext.getBundleContext(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getProviderId() { | ||||
|         return APPLICATIONS_PROVIDER_ID; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Map<String, Object> getExtendedData(EntaxyRuntimeObject runtimeObject) { | ||||
|         Map<String, Object> result = new HashMap<>(); | ||||
|         try { | ||||
|             Bundle b = bundleContext.getBundle(runtimeObject.getBundleInfo().getBundleId()); | ||||
|             List<Feature> features = FeaturesUtils.FeaturesHelper.create(bundleContext) | ||||
|                     .withCapabilityNamespace(APP_NAMESPACE) | ||||
|                     .installedOnly() | ||||
|                     .containingBundle(b).find(); | ||||
|             if (features.isEmpty()) | ||||
|                 return null; | ||||
|  | ||||
|             List<Map<String, Object>> applicationData = new ArrayList<>(); | ||||
|             for (Feature feature : features) { | ||||
|                 List<Map<String, Object>> featureApplications = getApplicationData(feature); | ||||
|                 if (!featureApplications.isEmpty()) | ||||
|                     applicationData.addAll(featureApplications); | ||||
|             } | ||||
|  | ||||
|             if (applicationData.isEmpty()) | ||||
|                 return null; | ||||
|  | ||||
|             result.put("application", applicationData); | ||||
|             result.put("managed", true); | ||||
|  | ||||
|         } catch (Exception e) { | ||||
|             result.put("error", String.format("[%s:%s]", e.getClass().getName(), e.getMessage())); | ||||
|             LOG.error(String.format("Error getting extended data for [$s]", runtimeObject.getObjectFullId()), e); | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     protected List<Map<String, Object>> getApplicationData(Feature feature) { | ||||
|         List<Map<String, Object>> result = new ArrayList<>(); | ||||
|  | ||||
|         FeatureCapabilityHelper capabilityHelper = new FeatureCapabilityHelper(feature); | ||||
|         List<CapabilityDescriptor> descriptors = capabilityHelper.getProvidedCapabilities(APP_NAMESPACE); | ||||
|         for (CapabilityDescriptor descriptor : descriptors) { | ||||
|             String name = descriptor.getAttributes().getOrDefault("name", "").toString(); | ||||
|             if (!CommonUtils.isValid(name)) | ||||
|                 continue; | ||||
|             String version = descriptor.getAttributes().getOrDefault("version", "").toString(); | ||||
|             String revision = descriptor.getAttributes().getOrDefault("revision", "").toString(); | ||||
|  | ||||
|             Map<String, Object> data = new HashMap<>(); | ||||
|             data.put("name", name); | ||||
|             data.put("version", version); | ||||
|             data.put("revision", revision); | ||||
|             result.add(data); | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,440 @@ | ||||
| /*- | ||||
|  * ~~~~~~licensing~~~~~~ | ||||
|  * application-impl | ||||
|  * ========== | ||||
|  * Copyright (C) 2020 - 2025 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.integration.applications.impl; | ||||
|  | ||||
| import java.io.File; | ||||
| import java.io.FileOutputStream; | ||||
| import java.io.IOException; | ||||
| import java.io.InputStream; | ||||
| import java.net.URL; | ||||
| import java.nio.file.Files; | ||||
| import java.nio.file.StandardCopyOption; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Calendar; | ||||
| import java.util.HashMap; | ||||
| import java.util.Iterator; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.jar.JarEntry; | ||||
| import java.util.jar.JarFile; | ||||
|  | ||||
| import org.osgi.framework.ServiceException; | ||||
| import org.osgi.service.component.annotations.Activate; | ||||
| import org.osgi.service.component.annotations.Component; | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
|  | ||||
| import com.google.gson.Gson; | ||||
| import com.google.gson.GsonBuilder; | ||||
|  | ||||
| import ru.entaxy.platform.base.support.CommonUtils; | ||||
| import ru.entaxy.platform.base.support.JSONUtils; | ||||
| import ru.entaxy.platform.base.support.osgi.OSGIUtils; | ||||
| import ru.entaxy.platform.core.artifact.Artifact; | ||||
| import ru.entaxy.platform.core.artifact.ArtifactCoordinates; | ||||
| import ru.entaxy.platform.core.artifact.Artifacts; | ||||
| import ru.entaxy.platform.core.artifact.repository.ArtifactRepository; | ||||
| import ru.entaxy.platform.core.artifact.service.ArtifactService; | ||||
| import ru.entaxy.platform.integration.applications.ApplicationStorage.ApplicationImportContent; | ||||
| import ru.entaxy.platform.integration.applications.ApplicationStorage.ApplicationImportItem; | ||||
| import ru.entaxy.platform.integration.applications.EntaxyApplication; | ||||
| import ru.entaxy.platform.integration.applications.EntaxyApplicationProjectVersion; | ||||
| import ru.entaxy.platform.integration.applications.EntaxyApplicationRevision; | ||||
| import ru.entaxy.platform.integration.applications.EntaxyApplicationVersion; | ||||
| import ru.entaxy.platform.integration.applications.descriptor.ApplicationComponent; | ||||
| import ru.entaxy.platform.integration.applications.descriptor.ApplicationDescriptor; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ApplicationDescriptorIsInvalid; | ||||
| import ru.entaxy.platform.integration.applications.exceptions.ApplicationDescriptorNotFound; | ||||
|  | ||||
| @Component(service = ExportImportHelper.class, immediate = true) | ||||
| public class ExportImportHelper { | ||||
|  | ||||
|     private static final Logger LOG = LoggerFactory.getLogger(ExportImportHelper.class); | ||||
|  | ||||
|     public final Map<String, Exporter> exporters = new HashMap<>(); | ||||
|  | ||||
|     public final Map<String, Importer> importers = new HashMap<>(); | ||||
|  | ||||
|     protected static ExportImportHelper INSTANCE = null; | ||||
|  | ||||
|     @Activate | ||||
|     public void activate() { | ||||
|         exporters.put("file", new FileExporter()); | ||||
|         exporters.put("repository", new RepositoryExporter()); | ||||
|         importers.put("file", new FileImporter()); | ||||
|         importers.put("repository", new RepositoryImporter()); | ||||
|         ExportImportHelper.INSTANCE = this; | ||||
|     } | ||||
|  | ||||
|     public void doExport(EntaxyApplicationProjectVersion version, String exporterType, Map<String, Object> properties) | ||||
|             throws Exception { | ||||
|         if (!exporters.containsKey(exporterType)) | ||||
|             return; | ||||
|         Exporter exporter = exporters.get(exporterType); | ||||
|         exporter.execute(version, properties); | ||||
|     } | ||||
|  | ||||
|     public ApplicationImportContent doImport(String importerType, Map<String, Object> properties) | ||||
|             throws Exception { | ||||
|         if (!importers.containsKey(importerType)) | ||||
|             return null; | ||||
|         Importer importer = importers.get(importerType); | ||||
|         return importer.execute(properties); | ||||
|     } | ||||
|  | ||||
|     // importers | ||||
|  | ||||
|  | ||||
|     protected static class JarFileImportContent implements ApplicationImportContent { | ||||
|  | ||||
|         protected interface Cleaner { | ||||
|             void clean() throws Exception; | ||||
|         } | ||||
|  | ||||
|         protected static class FileCleaner implements Cleaner { | ||||
|  | ||||
|             protected File file; | ||||
|  | ||||
|             public FileCleaner(File file) { | ||||
|                 this.file = file; | ||||
|             } | ||||
|  | ||||
|             @Override | ||||
|             public void clean() throws Exception { | ||||
|                 file.delete(); | ||||
|             } | ||||
|  | ||||
|         } | ||||
|  | ||||
|         protected JarFile jarFile; | ||||
|  | ||||
|         protected Map<String, ApplicationImportItem> items; | ||||
|  | ||||
|         protected Cleaner cleaner; | ||||
|  | ||||
|         public JarFileImportContent(JarFile jarFile) { | ||||
|             super(); | ||||
|             items = new HashMap<>(); | ||||
|             this.jarFile = jarFile; | ||||
|             Iterator<JarEntry> entries = jarFile.entries().asIterator(); | ||||
|             while (entries.hasNext()) { | ||||
|                 JarEntryImportItem item = new JarEntryImportItem(jarFile, entries.next()); | ||||
|                 items.put(item.getPath(), item); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public void setCleaner(Cleaner cleaner) { | ||||
|             this.cleaner = cleaner; | ||||
|         } | ||||
|  | ||||
|         @Override | ||||
|         public Map<String, ApplicationImportItem> getItems() { | ||||
|             return items; | ||||
|         } | ||||
|  | ||||
|         @Override | ||||
|         public void clear() { | ||||
|             try { | ||||
|                 jarFile.close(); | ||||
|             } catch (IOException ignore) { | ||||
|                 // NOOP | ||||
|             } | ||||
|             if (cleaner != null) | ||||
|                 try { | ||||
|                     cleaner.clean(); | ||||
|                 } catch (Exception ignore) { | ||||
|                     // NOOP | ||||
|                 } | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     protected static class JarEntryImportItem implements ApplicationImportItem { | ||||
|  | ||||
|         protected JarFile jarFile; | ||||
|         protected JarEntry jarEntry; | ||||
|  | ||||
|         protected String name; | ||||
|         protected String path; | ||||
|         protected String location; | ||||
|  | ||||
|         public JarEntryImportItem(JarFile jarFile, JarEntry jarEntry) { | ||||
|             super(); | ||||
|             this.jarEntry = jarEntry; | ||||
|             this.jarFile = jarFile; | ||||
|             init(); | ||||
|         } | ||||
|  | ||||
|         protected void init() { | ||||
|             path = jarEntry.getName(); | ||||
|             int index = path.lastIndexOf('/'); | ||||
|             if (index > 0) { | ||||
|                 name = path.substring(index + 1); | ||||
|                 location = path.substring(0, index); | ||||
|             } else { | ||||
|                 name = path; | ||||
|                 location = ""; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         @Override | ||||
|         public String getName() { | ||||
|             return name; | ||||
|         } | ||||
|  | ||||
|         @Override | ||||
|         public String getLocation() { | ||||
|             return location; | ||||
|         } | ||||
|  | ||||
|         @Override | ||||
|         public String getPath() { | ||||
|             return path; | ||||
|         } | ||||
|  | ||||
|         @Override | ||||
|         public InputStream getInputStream() throws IOException { | ||||
|             return jarFile.getInputStream(jarEntry); | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     protected abstract static class Importer { | ||||
|  | ||||
|         public abstract ApplicationImportContent execute(Map<String, Object> properties) | ||||
|                 throws Exception; | ||||
|  | ||||
|     } | ||||
|  | ||||
|     protected static class FileImporter extends Importer { | ||||
|  | ||||
|         @Override | ||||
|         public ApplicationImportContent execute(Map<String, Object> properties) throws Exception { | ||||
|             String filePath = properties.getOrDefault("filePath", "").toString(); | ||||
|             if (!CommonUtils.isValid(filePath)) | ||||
|                 throw new IllegalArgumentException("Invalid filePath: " + filePath); | ||||
|             File targetFile = new File(filePath); | ||||
|             if (!targetFile.exists()) | ||||
|                 throw new IllegalArgumentException("File not exists: " + filePath); | ||||
|             if (targetFile.isDirectory()) | ||||
|                 throw new IllegalArgumentException("File is directory: " + filePath); | ||||
|             JarFile jarFile = new JarFile(targetFile); | ||||
|             return new JarFileImportContent(jarFile); | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     protected static class RepositoryImporter extends Importer { | ||||
|  | ||||
|         @Override | ||||
|         public ApplicationImportContent execute(Map<String, Object> properties) throws Exception { | ||||
|             String mavenUrl = properties.getOrDefault("mavenUrl", "").toString(); | ||||
|             if (!CommonUtils.isValid(mavenUrl)) | ||||
|                 throw new IllegalArgumentException("mavenUrl not set"); | ||||
|             if (!mavenUrl.startsWith("mvn:")) | ||||
|                 mavenUrl = "mvn:" + mavenUrl; | ||||
|  | ||||
|             URL url = new URL(mavenUrl); | ||||
|             File tempFile = File.createTempFile("app-import-", Calendar.getInstance().getTimeInMillis() + ""); | ||||
|             try (InputStream is = url.openStream()) { | ||||
|                 Files.copy(is, tempFile.toPath(), StandardCopyOption.REPLACE_EXISTING); | ||||
|             } | ||||
|  | ||||
|             Map<String, Object> props = new HashMap<>(); | ||||
|             props.put("filePath", tempFile.getAbsolutePath()); | ||||
|  | ||||
|             ApplicationImportContent result = ExportImportHelper.INSTANCE.doImport("file", props); | ||||
|             ((JarFileImportContent) result).setCleaner(new JarFileImportContent.FileCleaner(tempFile)); | ||||
|  | ||||
|             return result; | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     // exporters | ||||
|  | ||||
|     protected abstract static class Exporter { | ||||
|  | ||||
|         public abstract void execute(EntaxyApplicationProjectVersion version, Map<String, Object> properties) | ||||
|                 throws Exception; | ||||
|  | ||||
|     } | ||||
|  | ||||
|     protected static class FileExporter extends Exporter { | ||||
|  | ||||
|         @Override | ||||
|         public void execute(EntaxyApplicationProjectVersion version, Map<String, Object> properties) throws Exception { | ||||
|             String filePath = properties.getOrDefault("filePath", "").toString(); | ||||
|             if (filePath.endsWith("/")) { | ||||
|                 // it's directory | ||||
|                 String url = version.getBuildUrl().toString(); | ||||
|                 String fileName = url.substring(url.lastIndexOf('/')); | ||||
|                 filePath = filePath.concat(fileName); | ||||
|             } | ||||
|             if (!CommonUtils.isValid(filePath)) | ||||
|                 return; | ||||
|             File targetFile = new File(filePath); | ||||
|             targetFile.getAbsoluteFile().getParentFile().mkdirs(); | ||||
|             try (FileOutputStream fos = new FileOutputStream(targetFile); | ||||
|                     InputStream is = version.getBuild();) { | ||||
|                 fos.write(is.readAllBytes()); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     protected static class RepositoryExporter extends Exporter { | ||||
|  | ||||
|         @Override | ||||
|         public void execute(EntaxyApplicationProjectVersion version, Map<String, Object> properties) throws Exception { | ||||
|             ArtifactService artifactService = | ||||
|                     OSGIUtils.services().ofClass(ArtifactService.class).waitService(20000).get(); | ||||
|             if (artifactService == null) | ||||
|                 throw new ServiceException("Service not found: ArtifactService.class"); | ||||
|  | ||||
|             String repositoryName = properties.getOrDefault("repositoryName", "").toString(); | ||||
|             if (!CommonUtils.isValid(repositoryName)) | ||||
|                 throw new IllegalArgumentException("repositoryName not set"); | ||||
|  | ||||
|             ArtifactRepository repo = artifactService.getRepository(repositoryName); | ||||
|             if (repo == null) | ||||
|                 throw new IllegalArgumentException("Repository not found: " + repositoryName); | ||||
|             if (repo.isReadOnly()) { | ||||
|                 throw new IllegalArgumentException("Repository " + repositoryName + " is read only."); | ||||
|             } | ||||
|  | ||||
|             Artifact artifact = Artifacts.create(Artifact.ARTIFACT_CATEGORY_JAR); | ||||
|             String mavenCoordinates = version.getBuildInfo().mavenUrl; | ||||
|             artifact.getCoordinates().update(ArtifactCoordinates.fromUrl(mavenCoordinates)); | ||||
|             try (InputStream is = version.getBuild()) { | ||||
|                 artifact.setContent(is); | ||||
|                 repo.deploy(artifact); | ||||
|             } | ||||
|  | ||||
|         } | ||||
|  | ||||
|     } | ||||
|     public static class ApplicationImporter { | ||||
|  | ||||
|         static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); | ||||
|  | ||||
|         protected StorageImportAdapter storageAdapter; | ||||
|  | ||||
|         protected ApplicationDescriptor applicationDescriptor = null; | ||||
|  | ||||
|         public ApplicationImporter(StorageImportAdapter storageAdapter) { | ||||
|             super(); | ||||
|             this.storageAdapter = storageAdapter; | ||||
|         } | ||||
|  | ||||
|         public void executeImport(ApplicationImportContent importContent) throws Exception { | ||||
|             // check descriptor | ||||
|             String applicationName = "unknown"; | ||||
|             ApplicationImportItem descriptorItem = importContent.getItems().get(EntaxyApplication.DESCRIPTOR_NAME); | ||||
|  | ||||
|             if (descriptorItem == null) | ||||
|                 throw new ApplicationDescriptorNotFound(applicationName); | ||||
|             try (InputStream is = descriptorItem.getInputStream()) { | ||||
|                 String descriptorData = new String(is.readAllBytes()); | ||||
|                 applicationDescriptor = | ||||
|                         GSON.fromJson(JSONUtils.getJsonRootObject(descriptorData), ApplicationDescriptor.class); | ||||
|             } catch (Exception e1) { | ||||
|                 throw new ApplicationDescriptorIsInvalid(applicationName); | ||||
|             } | ||||
|             if (applicationDescriptor == null) | ||||
|                 throw new ApplicationDescriptorIsInvalid(applicationName); | ||||
|  | ||||
|             // if something's wrong with descriptor, exception is thrown | ||||
|             storageAdapter.checkDescriptor(applicationDescriptor); | ||||
|             applicationName = applicationDescriptor.name; | ||||
|  | ||||
|             // if something's wrong, exception is thrown | ||||
|             StorageApplicationContentAdapter contentAdapter = | ||||
|                     storageAdapter.getContentAdapter(applicationName, applicationDescriptor); | ||||
|             fillContent(applicationDescriptor, importContent, contentAdapter); | ||||
|             EntaxyApplicationVersion createdVersion = | ||||
|                     storageAdapter.getVersion(applicationName, applicationDescriptor.version); | ||||
|             if (createdVersion == null) { | ||||
|                 throw new java.lang.InstantiationException("Version not created"); | ||||
|             } | ||||
|             EntaxyApplicationRevision revision = createdVersion.createRevision(); | ||||
|             if (revision == null) { | ||||
|                 throw new java.lang.InstantiationException("Revision not created"); | ||||
|             } | ||||
|  | ||||
|         } | ||||
|  | ||||
|         public ApplicationDescriptor getApplicationDescriptor() { | ||||
|             return applicationDescriptor; | ||||
|         } | ||||
|  | ||||
|         protected void fillContent(ApplicationDescriptor descriptor, ApplicationImportContent source, | ||||
|                 StorageApplicationContentAdapter target) throws Exception { | ||||
|  | ||||
|             List<String> locationsToProcess = new ArrayList<>(source.getItems().keySet()); | ||||
|  | ||||
|             // we skip descriptor 'cause it's already there | ||||
|             locationsToProcess.remove(EntaxyApplication.DESCRIPTOR_NAME); | ||||
|  | ||||
|             // we ignore manifest | ||||
|             locationsToProcess.remove("META-INF/MANIFEST.MF"); | ||||
|  | ||||
|  | ||||
|             // load features | ||||
|             if (descriptor.features == null) | ||||
|                 throw new IllegalArgumentException("Features not found in descriptor"); | ||||
|             StorageItemAdapter item = target.createItem(descriptor.features); | ||||
|             try (InputStream is = source.getItems().get(descriptor.features.internalLocation).getInputStream()) { | ||||
|                 item.write(is); | ||||
|             } catch (Exception e) { | ||||
|                 LOG.error("Error writing [" + descriptor.features.internalLocation + "]", e); | ||||
|             } | ||||
|             locationsToProcess.remove(descriptor.features.internalLocation); | ||||
|  | ||||
|             // load components | ||||
|             for (ApplicationComponent comp : descriptor.getComponents()) { | ||||
|                 item = target.createItem(comp); | ||||
|                 try (InputStream is = source.getItems().get(comp.getInternalLocation()).getInputStream()) { | ||||
|                     item.write(is); | ||||
|                 } catch (Exception e) { | ||||
|                     LOG.error("Error writing [" + comp.getInternalLocation() + "]", e); | ||||
|                 } | ||||
|                 locationsToProcess.remove(comp.getInternalLocation()); | ||||
|             } | ||||
|  | ||||
|             // left only resources | ||||
|             for (String location : locationsToProcess) { | ||||
|                 try (InputStream is = source.getItems().get(location).getInputStream()) { | ||||
|                     target.createResource(location, is); | ||||
|                 } catch (Exception e) { | ||||
|                     LOG.error("Error writing [" + location + "]", e); | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|         } | ||||
|  | ||||
|     } | ||||
| } | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user