{"action":"created","issue":{"url":"https://api.github.com/repos/abertschi/service-call-tracker/issues/2","repository_url":"https://api.github.com/repos/abertschi/service-call-tracker","labels_url":"https://api.github.com/repos/abertschi/service-call-tracker/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/abertschi/service-call-tracker/issues/2/comments","events_url":"https://api.github.com/repos/abertschi/service-call-tracker/issues/2/events","html_url":"https://github.com/abertschi/service-call-tracker/issues/2","id":153203259,"number":2,"title":"introduce more powerful data storage","user":{"login":"abertschi","id":2311941,"avatar_url":"https://avatars.githubusercontent.com/u/2311941?v=3","gravatar_id":"","url":"https://api.github.com/users/abertschi","html_url":"https://github.com/abertschi","followers_url":"https://api.github.com/users/abertschi/followers","following_url":"https://api.github.com/users/abertschi/following{/other_user}","gists_url":"https://api.github.com/users/abertschi/gists{/gist_id}","starred_url":"https://api.github.com/users/abertschi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abertschi/subscriptions","organizations_url":"https://api.github.com/users/abertschi/orgs","repos_url":"https://api.github.com/users/abertschi/repos","events_url":"https://api.github.com/users/abertschi/events{/privacy}","received_events_url":"https://api.github.com/users/abertschi/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/abertschi/service-call-tracker/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-05-05T10:07:58Z","updated_at":"2016-05-11T15:54:01Z","closed_at":null,"body":"Rewrite the xml datastorage to allow these features:\r\n- exception from stracktraces\r\n- request matching with regex\r\n- environment vars and field references in request and response\r\n- scripting support in response\r\n\r\nSome first ideas of the data structure:\r\n```xml\r\n<calls>\r\n       <call>\r\n             <request>\r\n                    <payload\r\n                           class=\"com.foo.PartnerInfoGet_11CORBAClient$CInOp1\">\r\n                           <wv__header>\r\n                                  <trace__level>${env.SYS_PROPERTY}</trace__level>\r\n                                  <user__lang__cd>de</user__lang__cd>\r\n                                  <client__id>APP-682</client__id>\r\n                           </wv__header>\r\n                           <in__op01__liste>\r\n                                  <com.foo.PartnerInfoGet__11Package.InOp01>\r\n                                        <mand__cdu>1</mand__cdu>\r\n                                        <gi__part__id>true</gi__part__id>\r\n                                        <part__id>${request.payload.wv__header.trave__level}</part__id>\r\n                                        <gi__part__nr>false</gi__part__nr>\r\n                                        <part__nr>0</part__nr>\r\n                                        <gi__adr__nr>false</gi__adr__nr>\r\n                                        <adr__nr>0</adr__nr>\r\n                                        <gi__bic>false</gi__bic>\r\n                                        <bic></bic>\r\n                                        <gi__iban>false</gi__iban>\r\n                                        <iban></iban>\r\n                                        <gi__mwst__nr>false</gi__mwst__nr>\r\n                                        <mwst__nr></mwst__nr>\r\n                                        <gueltig__am>${regex(\"[0-9]*\")}</gueltig__am>\r\n                                        <ausgb__awahl>${any}\r\n                                        </ausgb__awahl>\r\n                                  </com.foo.PartnerInfoGet__11Package.InOp01>\r\n                           </in__op01__liste>\r\n                    </payload>\r\n             </request>\r\n             <response>\r\n                <stacktrace>\r\n                                      <![CDATA[\r\n       at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:487) [jboss-modules.jar:1.3.3.Final-redhat-1]\r\n       at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:277) [jboss-modules.jar:1.3.3.Final-redhat-1]\r\n       at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:92) [jboss-modules.jar:1.3.3.Final-redhat-1]\r\n       at org.jboss.modules.Module.loadModuleClass(Module.java:568) [jboss-modules.jar:1.3.3.Final-redhat-1]\r\n       at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205) [jboss-modules.jar:1.3.3.Final-redhat-1]\r\n       at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final-redhat-1]\r\n       at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.3.Final-redhat-1]\r\n       at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final-redhat-1]\r\n       at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final-redhat-1]\r\n       at org.eclipse.core.runtime.Platform.<clinit>(Platform.java:434) [genericServices-1.1.107.jar:1.6.1]\r\n       at org.eclipse.emf.common.EMFPlugin.<clinit>(EMFPlugin.java:70) [emf-common-2.7.0.jar:]\r\n       at org.eclipse.emf.ecore.impl.EPackageRegistryImpl.createGlobalRegistry(EPackageRegistryImpl.java:57) [emf-ecore-2.7.0.jar:]\r\n       at org.eclipse.emf.ecore.EPackage$Registry.<clinit>(EPackage.java:81) [emf-ecore-2.7.0.jar:]\r\n       at com.axa.ch.presentation.persistence.ModelPersistenceUtility.loadMetadataFromStream(ModelPersistenceUtility.java:60) [presentation-model-4.1.12\r\nCaused by: java.lang.ClassNotFoundException: org.eclipse.osgi.util.NLS from [Module \"deployment.partneraccess-inttest.ear:main\" from Service Module Loader]\r\n       at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.3.Final-redhat-1]\r\n       at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final-redhat-1]\r\n       at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.3.Final-redhat-1]\r\n       at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final-redhat-1]\r\n       at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final-redhat-1]\r\n       ... 68 more\r\n]]>\r\n                </stacktrace>\r\n                <script> \r\n                <![CDATA[\r\n\r\n                  // access request context\r\n                  Exception e = new RuntimeException(\"exception from appl \" + $.request.wv__header.client__id);\r\n                  \r\n                  // access stacktrace as instance of type throwable\r\n                  throw $.response.stacktrace \r\n\r\n                  // modify response with script\r\n                  List<String> list = new ArrayList<>();\r\n                  for(i = 0; i < 10; i ++) {\r\n                    list.add($.response.payload.message + i);\r\n                  }\r\n                  return list;\r\n\r\n                  // access env var\r\n                  $.env.MY_SYSTEM_PROPERTY\r\n\r\n                ]]>\r\n                </script>\r\n                <payload>\r\n                  <message>hello</message>\r\n                </payload>\r\n             </response>\r\n       </call>\r\n</calls>\r\n```"},"comment":{"url":"https://api.github.com/repos/abertschi/service-call-tracker/issues/comments/218503466","html_url":"https://github.com/abertschi/service-call-tracker/issues/2#issuecomment-218503466","issue_url":"https://api.github.com/repos/abertschi/service-call-tracker/issues/2","id":218503466,"user":{"login":"abertschi","id":2311941,"avatar_url":"https://avatars.githubusercontent.com/u/2311941?v=3","gravatar_id":"","url":"https://api.github.com/users/abertschi","html_url":"https://github.com/abertschi","followers_url":"https://api.github.com/users/abertschi/followers","following_url":"https://api.github.com/users/abertschi/following{/other_user}","gists_url":"https://api.github.com/users/abertschi/gists{/gist_id}","starred_url":"https://api.github.com/users/abertschi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abertschi/subscriptions","organizations_url":"https://api.github.com/users/abertschi/orgs","repos_url":"https://api.github.com/users/abertschi/repos","events_url":"https://api.github.com/users/abertschi/events{/privacy}","received_events_url":"https://api.github.com/users/abertschi/received_events","type":"User","site_admin":false},"created_at":"2016-05-11T15:54:01Z","updated_at":"2016-05-11T15:54:01Z","body":"changes will be implemented in #3 "}}