Skip to content

Instantly share code, notes, and snippets.

View chumpa's full-sized avatar
🌨️
всем привет

Iliya Kuznetsov chumpa

🌨️
всем привет
View GitHub Profile
@chumpa
chumpa / osgi.groovy
Last active September 14, 2023 09:18
CPI получаем версию потока
import com.sap.gateway.ip.core.customdev.util.Message as CpiMsg
import org.apache.camel.*
import org.osgi.framework.*
CpiMsg processData(CpiMsg msg) {
CamelContext ctx = msg.exchange.context
BundleContext octx = FrameworkUtil.getBundle(msg.exchange.getClass()).bundleContext
Bundle cb = octx.getBundle()
Bundle b = octx.getBundles().find{it.symbolicName == ctx.name}
@chumpa
chumpa / Hm.kt
Created April 29, 2023 20:09
kotlinx.serialization 1.5 + xmlutil 0.85 compilation issue
package karlutka.parsers.pi
import kotlinx.serialization.Serializable
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.modules.SerializersModule
import nl.adaptivity.xmlutil.serialization.XML
import nl.adaptivity.xmlutil.serialization.XmlElement
import nl.adaptivity.xmlutil.serialization.XmlSerialName
import nl.adaptivity.xmlutil.serialization.XmlValue
@chumpa
chumpa / яхз.txt
Created February 11, 2022 17:40
Вопросы-Ответы по интеграции
Пишите в комментариях вопросы по SAP-интеграции
@chumpa
chumpa / itext7AddCover.groovy
Created February 11, 2022 17:07
itext7 pdf merger
import com.sap.gateway.ip.core.customdev.util.Message as CpiMsg
import com.itextpdf.kernel.pdf.PdfDocument
import com.itextpdf.kernel.pdf.PdfReader
import com.itextpdf.kernel.pdf.PdfWriter
import com.itextpdf.kernel.utils.PdfMerger
import java.util.zip.ZipInputStream
CpiMsg addCover(CpiMsg msg) {
ZipInputStream zis = new ZipInputStream(getClass().getResourceAsStream("/lib/hero.jar")) // zipped new cover
@chumpa
chumpa / MessageHistory.groovy
Created December 21, 2021 08:28
CPI MessageHistory
import org.apache.camel.*
import java.time.Clock
import java.time.Instant
import java.time.ZoneId
import java.time.format.DateTimeFormatter
CpiMsg finish(CpiMsg msg) {
String body = msg.getBody(String)
List<MessageHistory> history = msg.properties.CamelMessageHistory
@chumpa
chumpa / XmlMapper.groovy
Created December 14, 2021 07:13
XmlMapper.groovy
import groovy.util.slurpersupport.GPathResult
import groovy.xml.StreamingMarkupBuilder
import groovy.xml.streamingmarkupsupport.BaseMarkupBuilder
import javax.xml.transform.OutputKeys
import javax.xml.transform.Source
import javax.xml.transform.Transformer
import javax.xml.transform.TransformerFactory
import javax.xml.transform.stream.StreamResult
import javax.xml.transform.stream.StreamSource
@chumpa
chumpa / XmlMemories.groovy
Last active December 9, 2021 06:03
XmlMemoires
import groovy.util.slurpersupport.GPathResult
import groovy.xml.StreamingMarkupBuilder
import groovy.xml.XmlUtil
import groovy.xml.streamingmarkupsupport.BaseMarkupBuilder
import org.junit.Assert
import org.junit.Before
import org.junit.Test
import org.xmlunit.builder.DiffBuilder
import org.xmlunit.builder.Input
import org.xmlunit.diff.Diff
@chumpa
chumpa / csv.groovy
Created December 1, 2021 11:36
CSV parser on CPI
import org.apache.commons.csv.CSVParser
import org.apache.commons.csv.CSVRecord
import org.apache.commons.csv.CSVFormat
@Test
void csv() {
// в CPI лучше получать не стринг а сразу Reader
String body = """"a","b"
"c","d"
"1","2"
@chumpa
chumpa / CPI groovy binding.groovy
Created November 30, 2021 13:01
CPI groovy binding
import com.sap.gateway.ip.core.customdev.util.Message as CpiMsg
this.a = 1
b = 2
binding.c = "3"
CpiMsg read_bindings(CpiMsg msg) {
String log = """this.a == ${this.a}
this.b == ${this.b}
this = ${this}
@chumpa
chumpa / cpi_getBundleByFullClassName.groovy
Created October 8, 2021 10:40
Скачать CPI OSGI Bundle по имени класса
import com.sap.gateway.ip.core.customdev.util.Message as CpiMsg
//import org.apache.felix.framework.BundleImpl
CpiMsg osgi1(CpiMsg msg) {
String s = msg.getBody(String) ?: "import com.sap.it.api.ITApiFactory"
StringBuilder log = new StringBuilder()
s.eachLine {String q ->
String fqcn = q.startsWith("import ") ? q.substring("import".length()).trim() : q.trim()
log << fqcn << "\n"