Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[swordfish-dev] Chat transcript 25/02/2009

Title: Chat transcript 25/02/2009
[START Transcript 25/02/2009]

Dietmar Wolz
Hi Guillaume, indeed after the fix ODE 1.2 is deployable, but if I deploy the pingpong ODE example (copy PingPong-sa.zip into deploy) using smx4 kernel I get
smx@root:osgi> ERROR: EventDispatcher: Error during dispatch. (java.lang.IncompatibleClassChangeError)
java.lang.IncompatibleClassChangeError
at org.apache.xerces.parsers.AbstractSAXParser.startDocument(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.startDocumentParsing(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.ode.bpel.compiler.bom.BpelObjectFactory.parse(BpelObjectFactory.java:307)
at org.apache.ode.bpel.compiler.BpelC.compile(BpelC.java:317)
at org.apache.ode.store.DeploymentUnitDir.compile(DeploymentUnitDir.java:162)
at org.apache.ode.store.DeploymentUnitDir.compile(DeploymentUnitDir.java:126)
at org.apache.ode.store.ProcessStoreImpl.deploy(ProcessStoreImpl.java:165)
at org.apache.ode.jbi.OdeServiceUnit.deploy(OdeServiceUnit.java:62)
at org.apache.ode.jbi.OdeSUManager.deploy(OdeSUManager.java:57)
at org.apache.servicemix.jbi.deployer.artifacts.ServiceUnitImpl.deploy(ServiceUnitImpl.java:96)
at org.apache.servicemix.jbi.deployer.impl.ServiceAssemblyInstaller.deploySUs(ServiceAssemblyInstaller.java:143)
at org.apache.servicemix.jbi.deployer.impl.ServiceAssemblyInstaller.install(ServiceAssemblyInstaller.java:76)
at org.apache.servicemix.jbi.deployer.impl.Deployer.register(Deployer.java:286)
at org.apache.servicemix.jbi.deployer.impl.AbstractBundleWatcher.onBundleStarted(AbstractBundleWatcher.java:78)
at org.apache.servicemix.jbi.deployer.impl.AbstractBundleWatcher.access$000(AbstractBundleWatcher.java:32)
at org.apache.servicemix.jbi.deployer.impl.AbstractBundleWatcher$1.bundleChanged(AbstractBundleWatcher.java:51)
at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:745)
at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:674)
at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:587)
at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3303)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1504)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:761)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:742)
at org.apache.servicemix.kernel.filemonitor.FileMonitor.refreshPackagesAndStartOrUpdateBundles(FileMonitor.java:547)
at org.apache.servicemix.kernel.filemonitor.FileMonitor.onFilesChanged(FileMonitor.java:299)
at org.apache.servicemix.kernel.filemonitor.FileMonitor$1.filesChanged(FileMonitor.java:151)
at org.apache.servicemix.kernel.filemonitor.Scanner.reportBulkChanges(Scanner.java:431)
at org.apache.servicemix.kernel.filemonitor.Scanner.reportDifferences(Scanner.java:327)
at org.apache.servicemix.kernel.filemonitor.Scanner.scan(Scanner.java:261)
at org.apache.servicemix.kernel.filemonitor.Scanner$1.run(Scanner.java:221)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
end of last week there was a version where I could deploy pingpong successfully

Andrey Kopachevsky
dietmar do you have our endorsed folder in JDK from Sopera Toolswit times?

Andreas Mattes
Good news from BPEL editor testing: The problems from yesterday were rather related to Galileo M5 installation issues. The BPEL editor is now starting up after some minor dependency corrections. Going to test basic functionality.

Guillaume Nodet
afaik, servicemix kernel or nmr does not have any copy of org.apache.xerces*, so not sure what the IncompatibleClassChangeError comes from

Volodymyr Zhabiuk
https://issues.apache.org/activemq/browse/SMX4-230

Andrey Kopachevsky
Ode ping pong example works on my PC
Dietmar I have some similar stack trace because I had endorsed folder from toolsuit times

Dietmar Wolz
will check

Andrey Kopachevsky
there was old xerses.jar
ok

Dietmar Wolz
indeed, removed my endorsed and will check again

Andrey Kopachevsky
so, next step probably should be packaging ode jbi as OSGI bundle

Dietmar Wolz
@Guillaume the installation problem regarding ODE 2.1 is solved, what caused the strange "java.util.zip.ZipException: invalid entry compressed size exception"?
no ZipException, but checking the log after starting ODE 2.1 I find
java.lang.NoClassDefFoundError: org/apache/geronimo/connector/outbound/connectionmanagerconfig/PoolingSupport
at org.apache.ode.jbi.OdeLifeCycle.initDataSource(OdeLifeCycle.java:174)
at org.apache.ode.jbi.OdeLifeCycle.init(OdeLifeCycle.java:115)
at org.apache.servicemix.jbi.deployer.artifacts.ComponentImpl$ComponentWrapper.init(ComponentImpl.java:247)
at org.apache.servicemix.jbi.runtime.impl.ComponentRegistryImpl.doRegister(ComponentRegistryImpl.java:97)
at org.apache.servicemix.jbi.runtime.impl.ComponentRegistryImpl.doRegister(ComponentRegistryImpl.java:37)
at org.apache.servicemix.nmr.core.ServiceRegistryImpl.register(ServiceRegistryImpl.java:47)
at sun.reflect.GeneratedMethodAccessor69.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.osgi.util.internal.ReflectionUtils.invokeMethod(ReflectionUtils.java:108)
at org.springframework.osgi.config.internal.adapter.CustomListenerAdapterUtils.invokeCustomMethods(CustomListenerAdapterUtils.java:155)
at org.springframework.osgi.config.internal.adapter.OsgiServiceLifecycleListenerAdapter.bind(OsgiServiceLifecycleListenerAdapter.java:187)
at org.springframework.osgi.service.importer.support.internal.util.OsgiServiceBindingUtils.callListenersBind(OsgiServiceBindingUtils.java:50)
at org.springframework.osgi.service.importer.support.internal.collection.OsgiServiceCollection$Listener.serviceChanged(OsgiServiceCollection.java:106)
at org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:820)
at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:678)
at org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:609)
at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3314)
at org.apache.felix.framework.Felix.access$000(Felix.java:39)
at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:609)
at org.apache.felix.framework.ServiceRegistry.fireServiceChanged(ServiceRegistry.java:571)
at org.apache.felix.framework.ServiceRegistry.registerService(ServiceRegistry.java:81)
at org.apache.felix.framework.Felix.registerService(Felix.java:2478)
at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:252)
at org.apache.servicemix.jbi.deployer.impl.Deployer.registerService(Deployer.java:532)
at org.apache.servicemix.jbi.deployer.impl.Deployer.registerComponent(Deployer.java:346)
at org.apache.servicemix.jbi.deployer.impl.ComponentInstaller.initComponent(ComponentInstaller.java:372)
at org.apache.servicemix.jbi.deployer.impl.ComponentInstaller.install(ComponentInstaller.java:125)
at org.apache.servicemix.jbi.deployer.impl.Deployer.register(Deployer.java:286)
at org.apache.servicemix.jbi.deployer.impl.AbstractBundleWatcher.onBundleStarted(AbstractBundleWatcher.java:78)
at org.apache.servicemix.jbi.deployer.impl.AbstractBundleWatcher.access$000(AbstractBundleWatcher.java:32)
at org.apache.servicemix.jbi.deployer.impl.AbstractBundleWatcher$1.bundleChanged(AbstractBundleWatcher.java:51)
at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:745)
at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:674)
at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:587)
at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3303)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1504)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:761)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:742)
at org.apache.servicemix.kernel.gshell.osgi.StartBundle.doExecute(StartBundle.java:24)
at org.apache.servicemix.kernel.gshell.osgi.BundleCommand.doExecute(BundleCommand.java:75)
at org.apache.servicemix.kernel.gshell.core.OsgiCommandSupport.execute(OsgiCommandSupport.java:48)
at org.apache.geronimo.gshell.wisdom.command.CommandSupport.executeAction(CommandSupport.java:303)
at org.apache.geronimo.gshell.wisdom.command.StatefulCommand.executeAction(StatefulCommand.java:94)
at org.apache.geronimo.gshell.wisdom.command.CommandSupport.execute(CommandSupport.java:194)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:64)
at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:78)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:57)
at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:40)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy26.execute(Unknown Source)
at org.apache.geronimo.gshell.wisdom.shell.CommandLineExecutorImpl.doExecute(CommandLineExecutorImpl.java:127)
at org.apache.geronimo.gshell.wisdom.shell.CommandLineExecutorImpl.execute(CommandLineExecutorImpl.java:106)
at org.apache.geronimo.gshell.parser.visitor.ExecutingVisitor$1.run(ExecutingVisitor.java:208)
at org.apache.geronimo.gshell.parser.visitor.ExecutingVisitor.executePiped(ExecutingVisitor.java:231)
at org.apache.geronimo.gshell.parser.visitor.ExecutingVisitor.visit(ExecutingVisitor.java:107)
at org.apache.geronimo.gshell.parser.ASTExpression.jjtAccept(ASTExpression.java:17)
at org.apache.geronimo.gshell.parser.SimpleNode.childrenAccept(SimpleNode.java:61)
at org.apache.geronimo.gshell.parser.visitor.ExecutingVisitor.visit(ExecutingVisitor.java:90)
at org.apache.geronimo.gshell.parser.ASTCommandLine.jjtAccept(ASTCommandLine.java:17)
at org.apache.geronimo.gshell.wisdom.shell.CommandLineBuilderImpl$1.execute(CommandLineBuilderImpl.java:96)
at org.apache.geronimo.gshell.wisdom.shell.CommandLineExecutorImpl.execute(CommandLineExecutorImpl.java:71)
at org.apache.geronimo.gshell.wisdom.shell.ShellImpl.execute(ShellImpl.java:172)
at org.apache.geronimo.gshell.wisdom.shell.ShellImpl$2.execute(ShellImpl.java:208)
at org.apache.geronimo.gshell.console.Console.work(Console.java:187)
at org.apache.geronimo.gshell.console.Console.run(Console.java:128)
at org.apache.geronimo.gshell.wisdom.shell.ShellImpl.run(ShellImpl.java:252)
at org.apache.servicemix.kernel.gshell.core.ShellWrapper.run(ShellWrapper.java:81)
at org.apache.servicemix.kernel.gshell.core.LocalConsole.run(LocalConsole.java:125)
at java.lang.Thread.run(Thread.java:613)
any idea?
probably ODE 2.1 has additional dependencies to geronimo. Do we need an additonal dynamic import during installation?

Guillaume Nodet
yes
you need to install the geronimo-connector jar and add a dynamic import onto it
not really sure about the ZipException, i would say the zip is slightly invalid (where the uncompressed size is wrong or something like that)

Andrey Kopachevsky
I had same exception, I've repacked zip but exception still was there
strange that it was reproduced only on jbi 2.1

Dietmar Wolz
Guillaume, thanks for the hint, do you mean you did nothing against the ZipException and it disappeared magically  ?

Guillaume Nodet
no, i've changed the way the osgi bundle is created
not relying on the info from the input zip, but recreating zip entries
so the size is now computed instead of being retrieved from the input zip

Dietmar Wolz
Strange that you can extract the zip and zip it again (I tried using standard zip) and the problem remained, but anyway  thanks for your solution

Andreas Mattes
STATUS: Testing proper runtime functionality of BPEL editor installation under Galileo M5:
Two issues have been found so far:
1. Occasional error at startup: Unable to read workbench state. Workbench UI layout will be reset.
org.eclipse.jface.action.Separator cannot be cast to org.eclipse.jface.action.ToolBarContributionItem
2. When no editors are open at workbench startup, an attempt at expanding a BPEL project in the package explorer causes hang of the workbench. This does not happen with Java Projects even when BPEL process files are inside. The project expands and BPEL files open without problem.
ToDo: finish testing, then have a time-boxed look at the found issues.

Sergey Dneprovskiy
STATUS:
Offsprint because of JMS issues related to robust messaging functionality in SBB 3.2

Dietmar Wolz
STATUS:
current tasks:
a) Try to run BPEL samples
b) Try to deploy the actual Snapshot build of ODE to SMIX4
progress:
a) BPEL samples are deployable and work under MS Windows but not
on the Mac using both jdk 5 and 6, xerces related IncompatibleClassChangeError
b) java.util.zip.ZipException issue solved (Guillaume provided a patch), ODE deployable,
you need to install the geronimo-connector jar and add a dynamic import, task completed
next tasks:
continue with a) investigating the issue further
c) run BPEL samples under Snapshot build of ODE

Andrey Kopachevsky
STATUS
ODE and examples running on windows PC
Pack ode jbi component as osgi bundle - DONE
Pack ode examples service assemblies  as osgi bundle with spring DM description - IN PROCESS

Renat Zubairov
STATUS: Investigation on Swordfish tooling concept. Tried to host Swordfish on the github.com to enable collaborative environment for non-eclipse commiters.

Volodymyr Zhabiuk
Task create sample that uses http consumer endpoint to access cxf nmr endpoint
Status:Done
New Task: Create the  roundtrip scenario with http(consumer, provider) and cxf endpoint
Status:Started

Renat Zubairov
QUESTION TO ALL: Since already two days we have a broken build. As you might guess this is the highest priority task. Who broke it and who is fixing it now?

Oliver Wolf
STATUS: Continuing on Orbit bundles, stil confident, no impediments. All well. Didn't have much time to devote to Swordfish today, though.

Volodymyr Zhabiuk
@Renat: It's me.
Need time to investigate

Jürgen Kindler
STATUS:
Failed to strip down dependencies for integration testing up to now... investigating how to better isolate.

Renat Zubairov
@Vlodimir: I would suggest to not start any other tasks so far until the build would be fixed

Volodymyr Zhabiuk
Sure, Renat. Will do

Renat Zubairov
Thnx!

Volodymyr Zhabiuk
np

Guillaume Nodet
@Renat what does "Pack ode jbi component as osgi bundle" means ? any pointers to svn i can look at ?

Renat Zubairov
@Guillaume: no idea  where have you seen this description?

Andrey Kopachevsky
@Guallaume probably this question for me, not for Renat

Guillaume Nodet
yes, sorry

Renat Zubairov
@Vlodimir: could you please check in your changes to the repository for "Task create sample that uses http consumer endpoint to access cxf nmr endpoint"? Thnx!

Andrey Kopachevsky
@Guallaume Actually I didn't creat real bundle from ODE jbi, we need osgi packaging because we don't have hot deploy for jbi component in swordfish, so it should be bundle

Volodymyr Zhabiuk
No. I will check in the whole roundtrip scenario

Guillaume Nodet
@Andrey, so it's just the output of the jbi->osgi transformation, right ?

Andrey Kopachevsky
@Guallayme, so I just check autogenerated bundle that creating from ode-jbi and saw that only difference is adding MANIFEST.MF
yes

Renat Zubairov
Do we have already a rough idea how what kind of additional metadata do we need to deploy JAX-WS to Swordfish?

Guillaume Nodet
@Andrey, ok, makes sense, thx

Dietmar Wolz
@Guillaume, just to your info: ODE 1.2 is deployable but we get the SaxParser IncompatibleClassChangeError deploying the samples on two different macs both under jdk 5 and 6 and it works under windows both under jdk 5 and 6. Strange

Andrey Kopachevsky
@Guallaume yes, it works so it was easy, but I don't have cleare vision how to convert Service Assembly to bundle for now

Guillaume Nodet
@dietmar: i've seen the status but no idea at this point
@andrey: exact same process

Dietmar Wolz
@Guillaume we also have no idea at the moment

Guillaume Nodet
@dietmar: any info how to reproduce the problem on my mac ? what do i need to deploy ?

Dietmar Wolz
you can build PingPong-sa.zip from the examples folder in the ode distro and copy it to the deploy folder

Zsolt Beothy-Elo
Sorry guys:  customer support just hijacked me.  STATUS: Today completely off-sprint, no progress

Andrey Kopachevsky
@Guallaume you see, our BPEL editor plugin should generate osgi bundle ready for deploy to Swordfish Plaftorm
And make sence to make this bundle structure be as simple as possible, so I'm thinking about get rid of service assembly descriptions and switch to some spring-dm descriptor. Like you did for example in http binding
In ourder to simplify BPEL editor export bundle generation. Does it make sence?

Guillaume Nodet
not really, unless ode jbi component is heavily refactored
let me explain

Andrey Kopachevsky
i'm talking not about ode jbi, rather abut ode process packed inside jbi component
ok

Guillaume Nodet
this is a bit tied together somehow
in jbi, the only way to deploy a SU is through the ServiceUnitManager for a JBI compliant component
the deployment of endpoints using OSGi is kinda specific to ServiceMix components
so this would need some rewrite of the jbi bits in ode to be able to support osgi more natively

Andrey Kopachevsky
so we can't get rid of SA and SU and directly deploy BPEL process from OSGI bundle to ODE-JBI component without additional changes for this ODE_JBI component?
if I understood you correctly

Guillaume Nodet
it could be possible, but this is currently not supported

Andrey Kopachevsky
I see

Guillaume Nodet
i suppose one solution would be to say: one osgi bundle == one service unit
so no service assembly
but still, the target component for a SU is in the SA descriptor

Andrey Kopachevsky
well it same level of complecity for eclipse BPEL exporter
so probably we need to work with jbi SA and SU model, but need to discuss this with Oliver and Dietmar. Are you reading this guys?

Guillaume Nodet
yeah, i would think the easier way would be to create an SA / SU from the BPEL exporter
though, i'd be happy if Ode would be more osgi friendly

Andrey Kopachevsky
ok, thanks, you save my time for investigation

Guillaume Nodet
@dietmar still here ?

Oliver Wolf
@andrey, @guillaume: for the time being, we can probably live with the jbi legacy -- certainly for galileo, given the short time until june. but i think it would be good to have a more osgi-integrated version, so we should contribute to ode

Guillaume Nodet
@oliver i fully agree

Oliver Wolf
@guillaume in general, do you feel that the ode guys are open for contributions?

Guillaume Nodet
i'm still a committer, though i haven't really committed any code since a very long time
afaik, i'm not even sure Ode can be easily deployed onto another JBI container

Dietmar Wolz
Hi Guillaume, still here

Guillaume Nodet
given it has some dependencies, not really on smx, but on the classloader
i.e. it expects stuff to be there, like the geronimo stuff
anyway, if we can make it support osgi deployments and still be jbi compliant, i don't see why that would be a problem
i'd hapilly commit the patch
@dietmar: i think the ode jbi component is missing  xerces jar, i have a NoClassDefFoundError when deploying the SA
@oliver, i would keep the jbi packaging for now, and work on that after june
@dietmar did you build ode locally ? or just used the deployed snapshot ?

Oliver Wolf
agree
priority is definitely on "get it working"

Dietmar Wolz
@Guillaume thats strange, the xerces NoClassDefFoundError is reproducable with standard ode-jbi 1.2 when I remove xerces by hand. But the successful deployment on Andreys windows machine and my IncompatibleClassChangeError was with standard ode-jbi 1.2 which contains xerces 2.90 in lib

Guillaume Nodet
@dietmar 1.2 or 2.1-SNAPSHOT ?

Dietmar Wolz
1.2

Guillaume Nodet
ah, i was trying to use 2.1-SNAPSHOT which seems to not include xerces

Dietmar Wolz
correct, 2.1 has no xerces, but for 2.1 we have to handle the NoClassDefFoundError exception. Do you think it is correct that ode 1.2 contains xerces?

Guillaume Nodet
yes, both 1.2 and 2.1 should contain xerces imho
as it's a requirement for ode

Dietmar Wolz
ok, but then we have the IncompatibleClassChangeError problem only on macs

Guillaume Nodet
and if you remove it ?

Dietmar Wolz
NoClassDefFoundError as for 2.1
you should be able to reproduce the problem using 1.2, and see it working if you have the Parallels windows xp emulator on your mac

[END]

Want to join the chat?
http://www.skype.com/go/joinpublicchat?skypename=ranyart99&topic=Swordfish%20Developers&blob=Gu7tZh64gTuo551Icz6_iwhXVeXxQ0K4yEzI5XFwGdWIQ_-miteLtgSBILodJ8koN6Uwy9PiotEU5ewRYFqEJeUtl1Yhfc1ipuVwOFz0SWN9HwMZAeikprh0R_8


--

Oliver Wolf
SOPERA GmbH


Back to the top