This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-spring-boot-examples.git
commit 0d35c375402ae8afd13daff77bedff212ddcbc2d Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Wed Sep 14 08:24:28 2022 +0200 Removed sap server example for license reasons Signed-off-by: Andrea Cosentino <anco...@gmail.com> --- sapjcoserver/.gitignore | 38 ---- sapjcoserver/lib/readme.txt | 8 - sapjcoserver/pom.xml | 122 ------------- sapjcoserver/readme.assets/Picture1.png | Bin 131646 -> 0 bytes sapjcoserver/readme.assets/Picture2.png | Bin 23859 -> 0 bytes sapjcoserver/readme.assets/Picture3.png | Bin 90266 -> 0 bytes sapjcoserver/readme.assets/Picture4.png | Bin 54109 -> 0 bytes sapjcoserver/readme.assets/Picture5.png | Bin 9447 -> 0 bytes sapjcoserver/readme.assets/sapjco.png | Bin 13966 -> 0 bytes sapjcoserver/readme.md | 54 ------ .../main/java/sample/camel/AbapCallHandler.java | 112 ------------ .../sample/camel/CamelSapServerApplication.java | 22 --- .../java/sample/camel/SAPtoFileRouteBuilder.java | 18 -- .../sample/camel/SimpleAbapConnectorServer.java | 201 --------------------- .../camel/util/MyDestinationDataProvider.java | 43 ----- .../sample/camel/util/MyServerDataProvider.java | 41 ----- .../src/main/java/sample/camel/util/XMLUtil.java | 50 ----- sapjcoserver/src/main/resources/application.yaml | 32 ---- .../camel/SampleJCOServerApplicationTests.java | 52 ------ 19 files changed, 793 deletions(-) diff --git a/sapjcoserver/.gitignore b/sapjcoserver/.gitignore deleted file mode 100644 index 5820ce0..0000000 --- a/sapjcoserver/.gitignore +++ /dev/null @@ -1,38 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ - -#### logs ### -/log/ -*.log -*.gz - -#### jar ### -*.jar -*.war -*.zip - -sapoutput - diff --git a/sapjcoserver/lib/readme.txt b/sapjcoserver/lib/readme.txt deleted file mode 100644 index 4ffc30c..0000000 --- a/sapjcoserver/lib/readme.txt +++ /dev/null @@ -1,8 +0,0 @@ - -# please download sap's jco's lib , and copy jco jars and dll files to sapjcoserver/lib directory due to SAP license. -Below is example for sapjco3, if you use different version, please modify jar's name in pom.xml. - - sapjco3.jar - sapidoc3.jar - sapjco3.dll - libsapjco3.so \ No newline at end of file diff --git a/sapjcoserver/pom.xml b/sapjcoserver/pom.xml deleted file mode 100644 index 40af4d6..0000000 --- a/sapjcoserver/pom.xml +++ /dev/null @@ -1,122 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.camel.springboot.example</groupId> - <artifactId>examples</artifactId> - <version>3.19.0-SNAPSHOT</version> - </parent> - - <groupId>org.apache.camel.springboot.example</groupId> - <artifactId>camel-example-spring-boot-sapjcoserver</artifactId> - <name>Camel SB Examples :: SAP JCOServer</name> - <description>An example showing how to work with Camel,SAP JCOServer and Spring Boot</description> - <properties> - <category>SAP</category> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - </properties> - - <dependencyManagement> - - <dependencies> - <!-- Spring Boot BOM --> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-dependencies</artifactId> - <version>${spring-boot-version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - - <!-- Camel BOM --> - <dependency> - <groupId>org.apache.camel.springboot</groupId> - <artifactId>camel-spring-boot-bom</artifactId> - <version>${project.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - </dependencies> - - </dependencyManagement> - - <dependencies> - <!-- Spring Boot --> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter</artifactId> - <exclusions> - <exclusion> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - </exclusion> - </exclusions> - </dependency> - - <!-- Camel --> - <dependency> - <groupId>org.apache.camel.springboot</groupId> - <artifactId>camel-spring-boot-starter</artifactId> - </dependency> - - - <!-- https://mvnrepository.com/artifact/org.json/json --> - <dependency> - <groupId>org.json</groupId> - <artifactId>json</artifactId> - <version>20210307</version> - </dependency> - - <dependency> - <groupId>com.sap.conn.jco</groupId> - <artifactId>sapjco</artifactId> - <version>3</version> - <scope>system</scope> - <systemPath>${basedir}/lib/sapjco3.jar</systemPath> - </dependency> - - <dependency> - <groupId>com.sap.conn.jco</groupId> - <artifactId>sapidoc</artifactId> - <version>3</version> - <scope>system</scope> - <systemPath>${basedir}/lib/sapidoc3.jar</systemPath> - </dependency> - - - <!-- test --> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-test-spring-junit5</artifactId> - <scope>test</scope> - </dependency> - - </dependencies> - - - - <build> - <plugins> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - <version>${spring-boot-version}</version> - <executions> - <execution> - <goals> - <goal>repackage</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> -</project> diff --git a/sapjcoserver/readme.assets/Picture1.png b/sapjcoserver/readme.assets/Picture1.png deleted file mode 100644 index db22876..0000000 Binary files a/sapjcoserver/readme.assets/Picture1.png and /dev/null differ diff --git a/sapjcoserver/readme.assets/Picture2.png b/sapjcoserver/readme.assets/Picture2.png deleted file mode 100644 index 53eafc5..0000000 Binary files a/sapjcoserver/readme.assets/Picture2.png and /dev/null differ diff --git a/sapjcoserver/readme.assets/Picture3.png b/sapjcoserver/readme.assets/Picture3.png deleted file mode 100644 index c8abf9e..0000000 Binary files a/sapjcoserver/readme.assets/Picture3.png and /dev/null differ diff --git a/sapjcoserver/readme.assets/Picture4.png b/sapjcoserver/readme.assets/Picture4.png deleted file mode 100644 index c9bb470..0000000 Binary files a/sapjcoserver/readme.assets/Picture4.png and /dev/null differ diff --git a/sapjcoserver/readme.assets/Picture5.png b/sapjcoserver/readme.assets/Picture5.png deleted file mode 100644 index d49828d..0000000 Binary files a/sapjcoserver/readme.assets/Picture5.png and /dev/null differ diff --git a/sapjcoserver/readme.assets/sapjco.png b/sapjcoserver/readme.assets/sapjco.png deleted file mode 100644 index 1b9ee70..0000000 Binary files a/sapjcoserver/readme.assets/sapjco.png and /dev/null differ diff --git a/sapjcoserver/readme.md b/sapjcoserver/readme.md deleted file mode 100644 index 9372f95..0000000 --- a/sapjcoserver/readme.md +++ /dev/null @@ -1,54 +0,0 @@ -# Integrate Sap JCOServer with Springboot and Apache Camel - -### The usecase - -SAP ABAP RFC call -> SpringBoot+ApacheCamel -> FileSystem - -I wrote a springboot+Apachecamel Application to demonstrate how to receive the ABAP function's result and store it at file system. - -### prepare sap jco connector libs - -copy jco jars, .dll (for windows), and .so(for linux) files to lib directory as below shown - - - - -### run apache camel springboot application - -For linux -``` -export ASHOST=<jco client ashost> -export GWHOST=<jco server gwhost> -``` -For windows -``` -set ASHOST=<jco client ashost> -set GWHOST=<jco server gwhost> -``` -run test -``` -mvn -Dtest=sample.camel.SampleJCOServerApplicationTests test -``` -run program -``` -mvn spring-boot:run -``` - - - -### execute ABAP function in SAP System -``` -Execute Tcode se37 -> STFC_CONNECTION (SAP default Test Function) -``` - - -put RFC Target System (it is ...not... as same as progid configured in application.yaml file) and input parameter - - -### check result and output - -You will see ABAP function's result at console - - -The result of ABAP function is also stored as file by camel in your local computer where your java program runs - \ No newline at end of file diff --git a/sapjcoserver/src/main/java/sample/camel/AbapCallHandler.java b/sapjcoserver/src/main/java/sample/camel/AbapCallHandler.java deleted file mode 100644 index 69660e4..0000000 --- a/sapjcoserver/src/main/java/sample/camel/AbapCallHandler.java +++ /dev/null @@ -1,112 +0,0 @@ -package sample.camel; - -import java.util.Iterator; -import org.apache.camel.ProducerTemplate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -import com.sap.conn.jco.JCoField; -import com.sap.conn.jco.JCoFunction; -import com.sap.conn.jco.JCoParameterList; -import com.sap.conn.jco.server.JCoServerContext; -import com.sap.conn.jco.server.JCoServerFunctionHandler; - -import sample.camel.util.XMLUtil; - -@Component("abapCallHandler") -public class AbapCallHandler implements JCoServerFunctionHandler { - - @Value("${jco.server.rfc.name}") - private String RFC_FUNCTION_NAME; - - @Autowired - private ProducerTemplate producerTemplate; - - @Value("${jco.server.rfc.importparam.exist}") - public boolean isImportParamExisted; - @Value("${jco.server.rfc.exportparam.exist}") - public boolean isExportParamExisted; - @Value("${jco.server.rfc.tableparam.exist}") - public boolean isTableParamExisted; - - private static Logger logger = LoggerFactory.getLogger(AbapCallHandler.class); - - public String getRFCName() { - return this.RFC_FUNCTION_NAME; - } - - private void printRequestInformation(JCoServerContext serverCtx, JCoFunction function) { - logger.info("----------------------------------------------------------------"); - logger.info("call : " + function.getName()); - logger.info("ConnectionId : " + serverCtx.getConnectionID()); - logger.info("SessionId : " + serverCtx.getSessionID()); - logger.info("TID : " + serverCtx.getTID()); - logger.info("repository name : " + serverCtx.getRepository().getName()); - logger.info("is in transaction : " + serverCtx.isInTransaction()); - logger.info("is stateful : " + serverCtx.isStatefulSession()); - logger.info("----------------------------------------------------------------"); - logger.info("gwhost: " + serverCtx.getServer().getGatewayHost()); - logger.info("gwserv: " + serverCtx.getServer().getGatewayService()); - logger.info("progid: " + serverCtx.getServer().getProgramID()); - logger.info("----------------------------------------------------------------"); - logger.info("attributes : "); - logger.info(serverCtx.getConnectionAttributes().toString()); - logger.info("----------------------------------------------------------------"); - } - - public void handleRequest(JCoServerContext serverCtx, JCoFunction function) { - // Check if the called function is the supported one. - if (!function.getName().equals(RFC_FUNCTION_NAME)) { - logger.error("Function '" + function.getName() + "' is no supported to be handled!"); - return; - } - printRequestInformation(serverCtx, function); - - String xmlResultTable = null; - - if (isImportParamExisted) { - logger.info("--------------------- Import ParamList ------------------------------------------"); - Iterator<JCoField> importIterator = function.getImportParameterList().iterator(); - StringBuilder importParamBuilder=new StringBuilder(); - while (importIterator != null && importIterator.hasNext()) { - JCoField importParam = importIterator.next(); - logger.info(importParam.getName() + " " + importParam.getValue() + "\n "); - importParamBuilder.append(importParam.getName() + " " + importParam.getValue() + "\n "); - } - producerTemplate.sendBody("direct:saprfc", "get result from sap " + importParamBuilder.toString()); - - } else { - logger.info("--------------------- No Import ParamList ------------------------------------------"); - } - - if (isTableParamExisted) { - logger.info("--------------------- TableParameterList------------------------------------------"); - JCoParameterList tables = function.getTableParameterList(); - - if (tables != null) { - xmlResultTable = XMLUtil.prettyPrintXml(tables.toXML()); - logger.info("Table Result as XML " + " \n" + XMLUtil.prettyPrintXml(xmlResultTable) + "\n "); - producerTemplate.sendBody("direct:saprfc", "get result from sap " + xmlResultTable); - } - } else { - logger.info("--------------------- No TableParameterList------------------------------------------"); - } - - if (isExportParamExisted) { - logger.info("--------------------- Export ParamList ------------------------------------------"); - Iterator<JCoField> exportIterator = function.getExportParameterList().iterator(); - StringBuilder exportParamBuilder=new StringBuilder(); - while (exportIterator != null && exportIterator.hasNext()) { - JCoField exportParam = exportIterator.next(); - logger.info(exportParam.getName() + " " + exportParam.getValue() + "\n "); - exportParamBuilder.append(exportParam.getName() + " " + exportParam.getValue() + "\n "); - producerTemplate.sendBody("direct:saprfc", "get result from sap " + exportParamBuilder.toString()); - } - } else { - logger.info("--------------------- No Export ParamList ------------------------------------------"); - } - } -} \ No newline at end of file diff --git a/sapjcoserver/src/main/java/sample/camel/CamelSapServerApplication.java b/sapjcoserver/src/main/java/sample/camel/CamelSapServerApplication.java deleted file mode 100644 index 957f1f9..0000000 --- a/sapjcoserver/src/main/java/sample/camel/CamelSapServerApplication.java +++ /dev/null @@ -1,22 +0,0 @@ -package sample.camel; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - - -@SpringBootApplication -public class CamelSapServerApplication { - - private static final Logger LOG = LoggerFactory.getLogger(CamelSapServerApplication.class); - - - - public static void main(String[] args) { - SpringApplication.run(CamelSapServerApplication.class, args); - LOG.info("CamelSapServerApplication is up and running"); - } - - -} diff --git a/sapjcoserver/src/main/java/sample/camel/SAPtoFileRouteBuilder.java b/sapjcoserver/src/main/java/sample/camel/SAPtoFileRouteBuilder.java deleted file mode 100644 index c9e744a..0000000 --- a/sapjcoserver/src/main/java/sample/camel/SAPtoFileRouteBuilder.java +++ /dev/null @@ -1,18 +0,0 @@ -package sample.camel; - -import org.apache.camel.builder.RouteBuilder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; - - -@Component -public class SAPtoFileRouteBuilder extends RouteBuilder { - - private static final Logger LOG = LoggerFactory.getLogger(SAPtoFileRouteBuilder.class); - public void configure() throws Exception { - from("direct:saprfc").id("route: direct_saprfc") - .log("Processing ..... ${body}") - .to("file:sapoutput"); - } -} \ No newline at end of file diff --git a/sapjcoserver/src/main/java/sample/camel/SimpleAbapConnectorServer.java b/sapjcoserver/src/main/java/sample/camel/SimpleAbapConnectorServer.java deleted file mode 100644 index 21c36ec..0000000 --- a/sapjcoserver/src/main/java/sample/camel/SimpleAbapConnectorServer.java +++ /dev/null @@ -1,201 +0,0 @@ -package sample.camel; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Properties; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -import com.sap.conn.jco.JCoException; -import com.sap.conn.jco.ext.DestinationDataProvider; -import com.sap.conn.jco.ext.ServerDataProvider; -import com.sap.conn.jco.server.DefaultServerHandlerFactory; -import com.sap.conn.jco.server.JCoServer; -import com.sap.conn.jco.server.JCoServerContextInfo; -import com.sap.conn.jco.server.JCoServerErrorListener; -import com.sap.conn.jco.server.JCoServerExceptionListener; -import com.sap.conn.jco.server.JCoServerFactory; -import com.sap.conn.jco.server.JCoServerFunctionHandler; -import com.sap.conn.jco.server.JCoServerState; -import com.sap.conn.jco.server.JCoServerStateChangedListener; - -import sample.camel.util.MyDestinationDataProvider; -import sample.camel.util.MyServerDataProvider; - -@Component("simpleAbapConnectorServer") -public class SimpleAbapConnectorServer - implements JCoServerErrorListener, JCoServerExceptionListener, JCoServerStateChangedListener, InitializingBean { - - private static Logger logger = LoggerFactory.getLogger(SimpleAbapConnectorServer.class); - - @Value("${sap.system.name}") - private String sapSystemName; - - @Value("${jco.client.ashost}") - private String jcoClientashost; - - @Value("${jco.client.client}") - private String jcoClientclient; - - @Value("${jco.client.lang}") - private String jcoClientlang; - - @Value("${jco.client.sysnr}") - private String jcoClientsysnr; - - @Value("${jco.client.user}") - private String jcoClientuser; - - @Value("${jco.client.passwd}") - private String jcoClientpasswd; - - @Value("${jco.client.network}") - private String jcoClientnetwork; - - @Value("${jco.server.connection_count}") - private String jcoServerConnection_count; - - @Value("${jco.server.gwhost}") - private String jcoServerGwhost; - - @Value("${jco.server.gwserv}") - private String jcoServerGwserv; - - @Value("${jco.server.progid}") - private String jcoServerProgid; - - @Value("${jco.server.repository_destination}") - private String jcoServerRepository_destination; - - @Value("${jco.server.rfc.name}") - private String jcoServerrfcname; - - @Value("${jco.server.rfc.tableparam.exist}") - private String jcoServerRfcTableparamExist; - - @Autowired - MyDestinationDataProvider myDestinationDataProvider; - - @Autowired - MyServerDataProvider myServerDataProvider; - - @Autowired - AbapCallHandler abapCallHandler; - - - public void init() { - Properties destinationProperties = new Properties(); - destinationProperties.setProperty(DestinationDataProvider.JCO_ASHOST, jcoClientashost); - destinationProperties.setProperty(DestinationDataProvider.JCO_SYSNR, jcoClientsysnr); - destinationProperties.setProperty(DestinationDataProvider.JCO_CLIENT, jcoClientclient); - destinationProperties.setProperty(DestinationDataProvider.JCO_USER, jcoClientuser); - destinationProperties.setProperty(DestinationDataProvider.JCO_PASSWD, jcoClientpasswd); - destinationProperties.setProperty(DestinationDataProvider.JCO_LANG, jcoClientlang); - destinationProperties.setProperty(DestinationDataProvider.JCO_NETWORK, jcoClientnetwork); - - - Properties serverProperties = new Properties(); - - serverProperties.setProperty(ServerDataProvider.JCO_CONNECTION_COUNT, jcoServerConnection_count); - serverProperties.setProperty(ServerDataProvider.JCO_GWHOST, jcoServerGwhost); - serverProperties.setProperty(ServerDataProvider.JCO_GWSERV, jcoServerGwserv); - serverProperties.setProperty(ServerDataProvider.JCO_PROGID, jcoServerProgid); - serverProperties.setProperty(ServerDataProvider.JCO_REP_DEST, jcoServerRepository_destination); - - myDestinationDataProvider.addDestination(sapSystemName, destinationProperties); - com.sap.conn.jco.ext.Environment.registerDestinationDataProvider(myDestinationDataProvider); - myServerDataProvider.addServer(sapSystemName, serverProperties); - com.sap.conn.jco.ext.Environment.registerServerDataProvider(myServerDataProvider); - - } - - - - - public void serve() { - JCoServer server; - try { - server = JCoServerFactory.getServer( - sapSystemName); - } catch (JCoException e) { - throw new RuntimeException("Unable to create the server " - + sapSystemName - + ", because of " + e.getMessage(), e); - } - - DefaultServerHandlerFactory.FunctionHandlerFactory factory = new DefaultServerHandlerFactory.FunctionHandlerFactory(); - factory.registerHandler(abapCallHandler.getRFCName(), abapCallHandler); - server.setCallHandlerFactory(factory); - - // Add listener for errors. - server.addServerErrorListener(this); - // Add listener for exceptions. - server.addServerExceptionListener(this); - // Add server state change listener. - server.addServerStateChangedListener(this); - - // Stop server when get end from SystemIn - new Thread(()->{ - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String line = null; - try { - while ((line = br.readLine()) != null) { - // Check if the server should be ended. - if (line.equalsIgnoreCase("end")) { - // Stop the server. - server.stop(); - } - } - } catch (IOException e) { - e.printStackTrace(); - } - }).start(); - - // Start the server - server.start(); - logger.info("The program can be stopped typing 'END'"); - } - - @Override - public void serverExceptionOccurred(JCoServer jcoServer, String connectionId, JCoServerContextInfo arg2, - Exception exception) { - logger.error("Exception occured on " + jcoServer.getProgramID() + " connection " + connectionId, exception); - } - - @Override - public void serverErrorOccurred(JCoServer jcoServer, String connectionId, JCoServerContextInfo arg2, Error error) { - logger.error("Error occured on " + jcoServer.getProgramID() + " connection " + connectionId, error); - } - - @Override - public void serverStateChangeOccurred(JCoServer server, JCoServerState oldState, JCoServerState newState) { - // Defined states are: STARTED, DEAD, ALIVE, STOPPED; - // see JCoServerState class for details. - // Details for connections managed by a server instance - // are available via JCoServerMonitor - logger.info("Server state changed from " + oldState.toString() + " to " + newState.toString() - + " on server with program id " + server.getProgramID()); - if (newState.equals(JCoServerState.ALIVE)) { - logger.info("Server with program ID '" + server.getProgramID() + "' is running"); - } - if (newState.equals(JCoServerState.STOPPED)) { - logger.info("Exit program"); - System.exit(0); - } - } - - @Override - public void afterPropertiesSet() throws Exception { - init(); - logger.info(" SimpleAbapConnectorServer is ready to start"); - serve(); - } - - -} \ No newline at end of file diff --git a/sapjcoserver/src/main/java/sample/camel/util/MyDestinationDataProvider.java b/sapjcoserver/src/main/java/sample/camel/util/MyDestinationDataProvider.java deleted file mode 100644 index abfce1b..0000000 --- a/sapjcoserver/src/main/java/sample/camel/util/MyDestinationDataProvider.java +++ /dev/null @@ -1,43 +0,0 @@ -package sample.camel.util; - - -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; - -import com.sap.conn.jco.ext.DestinationDataEventListener; -import com.sap.conn.jco.ext.DestinationDataProvider; - -@Component("myDestinationDataProvider") -public class MyDestinationDataProvider implements DestinationDataProvider { - - private static final Logger LOG = LoggerFactory.getLogger(MyDestinationDataProvider.class); - Map<String, Properties> propertiesForDestinationName = new HashMap<String, Properties>(); - - public void addDestination(String destinationName, Properties properties) { - propertiesForDestinationName.put(destinationName, properties); - } - - public Properties getDestinationProperties(String destinationName) { - if (propertiesForDestinationName.containsKey(destinationName)) { - return propertiesForDestinationName.get(destinationName); - } else { - throw new RuntimeException("JCo destination not found: " + destinationName); - } - } - - @Override - public boolean supportsEvents() { - return false; - } - - @Override - public void setDestinationDataEventListener(DestinationDataEventListener arg0) { - // TODO Auto-generated method stub - - } -} \ No newline at end of file diff --git a/sapjcoserver/src/main/java/sample/camel/util/MyServerDataProvider.java b/sapjcoserver/src/main/java/sample/camel/util/MyServerDataProvider.java deleted file mode 100644 index ef8025c..0000000 --- a/sapjcoserver/src/main/java/sample/camel/util/MyServerDataProvider.java +++ /dev/null @@ -1,41 +0,0 @@ -package sample.camel.util; - -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; - -import com.sap.conn.jco.ext.ServerDataEventListener; -import com.sap.conn.jco.ext.ServerDataProvider; - -@Component("myServerDataProvider") -public class MyServerDataProvider implements ServerDataProvider { - - private static final Logger LOG = LoggerFactory.getLogger(MyServerDataProvider.class); - - Map<String, Properties> propertiesForServerName = new HashMap<String, Properties>(); - - public void addServer(String destinationName, Properties properties) { - propertiesForServerName.put(destinationName, properties); - } - - public Properties getServerProperties(String serverName) { - if (propertiesForServerName.containsKey(serverName)) { - return propertiesForServerName.get(serverName); - } else { - throw new RuntimeException("JCo server not found: " + serverName); - } - } - - @Override - public void setServerDataEventListener(ServerDataEventListener listener) { - } - - @Override - public boolean supportsEvents() { - return false; - } -} \ No newline at end of file diff --git a/sapjcoserver/src/main/java/sample/camel/util/XMLUtil.java b/sapjcoserver/src/main/java/sample/camel/util/XMLUtil.java deleted file mode 100644 index f8b76e3..0000000 --- a/sapjcoserver/src/main/java/sample/camel/util/XMLUtil.java +++ /dev/null @@ -1,50 +0,0 @@ -package sample.camel.util; - - - -import java.io.PrintWriter; -import java.io.StringReader; -import java.io.StringWriter; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; - -import org.w3c.dom.Document; -import org.xml.sax.InputSource; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class XMLUtil { - static Logger logger = LoggerFactory.getLogger("XMLUtil"); - - public static String prettyPrintXml(String xmlStringToBeFormatted) { - String formattedXmlString = null; - try { - DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); - documentBuilderFactory.setValidating(false); - DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); - InputSource inputSource = new InputSource(new StringReader(xmlStringToBeFormatted)); - Document document = documentBuilder.parse(inputSource); - - Transformer transformer = TransformerFactory.newInstance().newTransformer(); - transformer.setOutputProperty(OutputKeys.INDENT, "yes"); - transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); - - StreamResult streamResult = new StreamResult(new StringWriter()); - DOMSource dOMSource = new DOMSource(document); - transformer.transform(dOMSource, streamResult); - formattedXmlString = streamResult.getWriter().toString().trim(); - } catch (Exception ex) { - StringWriter sw = new StringWriter(); - ex.printStackTrace(new PrintWriter(sw)); - logger.error(sw.toString()); - } - return formattedXmlString; - } -} diff --git a/sapjcoserver/src/main/resources/application.yaml b/sapjcoserver/src/main/resources/application.yaml deleted file mode 100644 index 4b3f38d..0000000 --- a/sapjcoserver/src/main/resources/application.yaml +++ /dev/null @@ -1,32 +0,0 @@ -camel: - springboot: - main-run-controller: 'true' - -sap: - system: - name: TESTSAP -jco: - client: - ashost: ${ASHOST} - client: 600 - lang: en - sysnr: 01 - user: username - passwd: password - network: lan - - server: - connection_count: 2 - gwhost: ${GWHOST} - gwserv: 3300 - progid: PROGID - repository_destination: TESTSAP - - rfc: - name: STFC_CONNECTION - exportparam: - exist: false - importparam: - exist: true - tableparam: - exist: false \ No newline at end of file diff --git a/sapjcoserver/src/test/java/sample/camel/SampleJCOServerApplicationTests.java b/sapjcoserver/src/test/java/sample/camel/SampleJCOServerApplicationTests.java deleted file mode 100644 index 9fa93d6..0000000 --- a/sapjcoserver/src/test/java/sample/camel/SampleJCOServerApplicationTests.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package sample.camel; - - -import org.apache.camel.CamelContext; -import org.apache.camel.ProducerTemplate; -import org.apache.camel.component.mock.MockEndpoint; -import org.apache.camel.test.spring.junit5.CamelSpringBootTest; -import org.apache.camel.test.spring.junit5.MockEndpoints; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.annotation.DirtiesContext.MethodMode; - -@CamelSpringBootTest -@SpringBootTest -@MockEndpoints("file:sapoutput") -public class SampleJCOServerApplicationTests { - - @Autowired - ProducerTemplate producerTemplate; - - - @Autowired - CamelContext camelContext; - - @Test - @DirtiesContext(methodMode = MethodMode.AFTER_METHOD) - public void testSendMsg() throws Exception { - MockEndpoint mockfile = camelContext.getEndpoint("mock:file:sapoutput", MockEndpoint.class); - String msg="ABAP RFC TEST"; - mockfile.expectedBodiesReceived(msg); - producerTemplate.sendBody("direct:saprfc", msg); - mockfile.assertIsSatisfied(); - } -}