release version 1.11.0 #16
							
								
								
									
										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"?> | <?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"> | <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> |     <modelVersion>4.0.0</modelVersion> | ||||||
|     <parent> | 
 | ||||||
|         <artifactId>connector-implementation</artifactId> | 	<parent> | ||||||
|         <groupId>ru.entaxy.esb.platform.runtime.core.objects-implementations</groupId> | 		<groupId>ru.entaxy.platform</groupId> | ||||||
|         <version>1.10.0</version> | 		<artifactId>platform-backward-compat</artifactId> | ||||||
|     </parent> | 		<version>1.11.0</version> | ||||||
|     <groupId>ru.entaxy.esb.platform.runtime.core.objects-implementations.connector-implementation</groupId> | 	</parent> | ||||||
|  | 
 | ||||||
|  | 	<groupId>ru.entaxy.platform.backward-compat</groupId> | ||||||
|     <artifactId>connector-storage</artifactId> |     <artifactId>connector-storage</artifactId> | ||||||
|     <packaging>bundle</packaging> |     <packaging>bundle</packaging> | ||||||
|     <name>ENTAXY  :: PLATFORM :: CORE :: OBJECTS IMPLEMENTATIONS :: CONNECTOR :: STORAGE</name> |     <name>ENTAXY :: PLATFORM :: BACKWARD COMPATIBILITY :: CONNECTOR :: STORAGE</name> | ||||||
|     <description>ENTAXY  :: PLATFORM :: CORE :: OBJECTS IMPLEMENTATIONS :: CONNECTOR :: STORAGE</description> |     <description>ENTAXY :: PLATFORM :: BACKWARD COMPATIBILITY :: CONNECTOR :: STORAGE</description> | ||||||
| 
 | 
 | ||||||
|     <properties> |     <properties> | ||||||
|         <bundle.osgi.export.pkg>ru.entaxy.platform.base.objects.connector.storage</bundle.osgi.export.pkg> |         <bundle.osgi.export.pkg>ru.entaxy.platform.base.objects.connector.storage</bundle.osgi.export.pkg> | ||||||
| @@ -2,7 +2,7 @@ | |||||||
|  * ~~~~~~licensing~~~~~~ |  * ~~~~~~licensing~~~~~~ | ||||||
|  * connector-storage |  * 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 |  * You may not use this file except in accordance with the License Terms of the Copyright | ||||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property |  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||||
							
								
								
									
										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"> | <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> |   <modelVersion>4.0.0</modelVersion> | ||||||
|   <parent> | 
 | ||||||
|     <groupId>ru.entaxy.esb.platform.runtime.core.objects-implementations</groupId> | 	<parent> | ||||||
|     <artifactId>profile-implementation</artifactId> | 		<groupId>ru.entaxy.platform</groupId> | ||||||
|     <version>1.10.0</version> | 		<artifactId>platform-backward-compat</artifactId> | ||||||
|   </parent> | 		<version>1.11.0</version> | ||||||
|   <groupId>ru.entaxy.esb.platform.runtime.core.objects-implementations.profile-implementation</groupId> | 	</parent> | ||||||
|  | 
 | ||||||
|  | 	<groupId>ru.entaxy.platform.backward-compat</groupId> | ||||||
|   <artifactId>profile-storage</artifactId> |   <artifactId>profile-storage</artifactId> | ||||||
|   <packaging>bundle</packaging> |   <packaging>bundle</packaging> | ||||||
|   <name>ENTAXY  :: PLATFORM :: CORE :: OBJECTS IMPLEMENTATIONS :: PROFILE :: STORAGE</name> |   <name>ENTAXY :: PLATFORM :: BACKWARD COMPATIBILITY :: PROFILE :: STORAGE</name> | ||||||
|   <description>ENTAXY  :: PLATFORM :: CORE :: OBJECTS IMPLEMENTATIONS :: PROFILE :: STORAGE</description> |   <description>ENTAXY :: PLATFORM :: BACKWARD COMPATIBILITY :: PROFILE :: STORAGE</description> | ||||||
|    |    | ||||||
|   <properties> |   <properties> | ||||||
|   	<bundle.osgi.export.pkg>ru.entaxy.platform.base.objects.profile.storage</bundle.osgi.export.pkg> |   	<bundle.osgi.export.pkg>ru.entaxy.platform.base.objects.profile.storage</bundle.osgi.export.pkg> | ||||||
| @@ -2,7 +2,7 @@ | |||||||
|  * ~~~~~~licensing~~~~~~ |  * ~~~~~~licensing~~~~~~ | ||||||
|  * test-producers |  * 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 |  * You may not use this file except in accordance with the License Terms of the Copyright | ||||||
|  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property |  * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property | ||||||
							
								
								
									
										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