August 24, 2011  
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31

[00:01:46] *** aslak has quit IRC
[00:35:22] *** antollinim_lunch is now known as antollinim
[00:51:22] *** lanceball has quit IRC
[01:13:20] *** bfitzpat has quit IRC
[02:43:14] *** rcernich has quit IRC
[02:50:15] *** ldimaggi has joined #switchyard
[03:07:42] *** antollinim has quit IRC
[04:01:34] *** kcbabo has joined #switchyard
[05:39:52] *** ldimaggi has quit IRC
[05:43:55] *** tcunning has quit IRC
[06:10:52] *** kcbabo has quit IRC
[06:18:57] *** dbevenius has joined #switchyard
[06:41:14] *** magesh has joined #switchyard
[07:40:52] *** rbalent has joined #switchyard
[07:48:16] *** javahorn has joined #switchyard
[08:35:18] *** aslak has joined #switchyard
[10:08:33] *** dbevenius has left #switchyard
[11:17:02] *** mriet has joined #switchyard
[11:17:24] *** mriet has quit IRC
[12:33:23] *** ldimaggi has joined #switchyard
[12:40:57] *** magesh1 has joined #switchyard
[12:43:01] *** magesh has quit IRC
[12:46:11] *** dbevenius has joined #switchyard
[13:37:21] *** tcunning has joined #switchyard
[13:56:16] *** magesh1 has quit IRC
[14:02:29] *** ldimaggi has quit IRC
[14:13:02] *** igarashitm has joined #switchyard
[14:20:37] *** magesh has joined #switchyard
[14:20:53] *** kcbabo has joined #switchyard
[14:53:20] *** lanceball has joined #switchyard
[15:01:08] *** antollinim has joined #switchyard
[15:22:06] *** rbalent has quit IRC
[15:24:12] *** rbalent has joined #switchyard
[15:24:12] *** rbalent has joined #switchyard
[15:29:23] <antollinim> kcbabo: hi Keith, have a minute?
[15:30:23] <kcbabo> antollinim:  sure, what's up?
[15:30:41] *** aslak has quit IRC
[15:30:56] <antollinim> kcbabo: hi, I might be facing a bug, but not sure.
[15:31:20] <antollinim> kcbabo: the forge tests work on a temp dir created by File.createTempFile
[15:32:57] <antollinim> kcbabo: that dir has "weird" characters (the problematic one is "+"). After packaging, the ClasspathScanner cannot work inside that dir, because it does a URLDecoder.decode(urlPath, "UTF-8") and the "+" is replaced by " "
[15:33:18] <antollinim> kcbabo: and the test fails.
[15:34:25] *** ldimaggi has joined #switchyard
[15:34:31] *** tcunning has quit IRC
[15:34:44] <antollinim> kcbabo: I am in a mac now? do you think that this a specific encoding issue in this environment that can be solved by configuring either maven or java?
[15:35:32] <kcbabo> antollinim:  hmm ? not sure
[15:36:12] <kcbabo> antollinim:  so the file creation is done within Forge itself?
[15:37:05] <antollinim> kcbabo: yes, in a class that forge tests must use
[15:37:27] <kcbabo> antollinim:  I'm surprised that "+" is replaced with " ", I would expect it to be %2B or something
[15:37:53] <antollinim> kcbabo: yes, that what is happening
[15:38:00] <antollinim> kcbabo: do you want me to create a jira for now?
[15:38:30] *** rbalent has quit IRC
[15:39:05] <kcbabo> antollinim:  what I would do is create a unit test which demonstrates the problem
[15:39:18] <kcbabo> antollinim:  just a simple stand-alone one that doesn't involve forge
[15:39:29] <kcbabo> antollinim:  post that in a remote branch and link to it in a JIRA
[15:40:00] <antollinim> kcbabo: ok, good, will do that then. Thanks
[15:40:45] <kcbabo> antollinim:  thanks mario
[15:41:03] <antollinim> kcbabo: BTW, I will be in Raleigh on 30/Aug and 31/Aug. I'll send you an email, ok?
[15:41:13] <kcbabo> antollinim:  sounds great!
[15:41:38] <antollinim> kcbabo: :)
[15:41:58] *** tcunning has joined #switchyard
[15:42:31] *** mriet has joined #switchyard
[15:46:00] *** mriet has quit IRC
[16:19:46] <kcbabo> igarashitm:  hey tomo
[16:19:52] <kcbabo> igarashitm:  want to pick up a quick JIRA for 0.2 ?
[16:19:53] *** jgraham_ has joined #switchyard
[16:20:02] <igarashitm> kcbabo: sure!
[16:20:08] <kcbabo> igarashitm:  coming your way ;-)
[16:20:56] *** magesh has left #switchyard
[16:21:56] *** rcernich has joined #switchyard
[16:24:50] <igarashitm> kcbabo: any task is ok.. it's time to get familier with switchyard for me right now :)
[16:25:12] <kcbabo> igarashitm:  your last pull request was perfect
[16:25:46] <igarashitm> kcbabo: thanks!
[16:26:33] *** bfitzpat has joined #switchyard
[16:32:42] <igarashitm> kcbabo: BTW, do you use Eclipse ? or IntelliJ IDEA? or another?
[16:32:49] <kcbabo> igarashitm:  eclipse for me
[16:33:05] <kcbabo> igarashitm:  indigo at the moment
[16:33:34] <igarashitm> kcbabo: ok.. works fine with maven multi-module project?
[16:33:58] <kcbabo> igarashitm:  I rarely build from inside eclipse, so I can't say for sure
[16:34:07] <kcbabo> igarashitm:  but seems to hang together ok
[16:35:52] <igarashitm> kcbabo: when I create a switchyard project in Eclipse, it doesn't resolve the dependencies which is in the pom.xml of sub-modules
[16:36:23] <igarashitm> kcbabo: so many dependency errors
[16:36:32] <kcbabo> igarashitm:  when you say "create a switchyard project", do you mean a new application project?
[16:36:47] <kcbabo> igarashitm:  or just importing an existing project (e.g. switchyard-config) ?
[16:36:50] <igarashitm> no, just import the switchyard source code
[16:37:05] <kcbabo> igarashitm:  with m2eclipse and Import->Maven Project , I've had no issues
[16:38:19] <igarashitm> kcbabo: oh really? that's good news... so you've installed the m2eclipse instead of indigo build-in maven function?
[16:38:54] <kcbabo> igarashitm:  actually, I think it's included by default, isn't it?
[16:40:19] <igarashitm> kcbabo: hmm... so we are using same maven function... something strange in my env...
[16:40:27] <igarashitm> kcbabo: ok, thanks, try again it later
[16:40:34] <kcbabo> igarashitm:  sure thing
[16:57:23] <rcernich> igarashitm: make sure you've set it to resolve workspace dependencies
[16:57:28] <rcernich> igarashitm: that may help
[16:58:15] <rcernich> igarashitm: you may also try,, Project->Update All Maven Dependencies
[16:59:09] <igarashitm> rcernich: thanks! I'll check it
[17:22:36] <rcernich> kcbabo: hey keith, could you point me to that sca spec you were talking about on monday's call (contributions or something)
[17:57:03] *** errantepiphany has joined #switchyard
[18:13:48] <errantepiphany> kcbabo: Have you seen this when building quickstarts? The project org.switchyard.quickstarts:switchyard-quickstart-bean-service:0.2.0-SNAPSHOT (/data/dev/github/errantepiphany/switchyard-quickstarts/bean-service/pom.xml) has 1 error
[18:13:48] <errantepiphany> [ERROR]     Non-resolvable parent POM: Could not find artifact org.switchyard.quickstarts:switchyard-quickstarts-parent:pom:0.2.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 24, column 11 -> [Help 2]
[18:14:31] <errantepiphany> kcbabo: it's obvious what the problem is, but I'm wondering how this passes for anyone.
[18:15:09] <errantepiphany> kcbabo: (../pom.xml instead of ../../pom.xml)
[18:27:41] <kcbabo> kcbabo:  sure thing, one sec
[18:27:46] <kcbabo> rcernich:  ^ whoops
[18:28:05] <rcernich> kcbabo: no worries
[18:28:14] <kcbabo> errantepiphany:  it's likely that won't fail if the parent pom is already in the local repo
[18:28:21] <kcbabo> errantepiphany:  if it's not though, then it won't resolve
[18:28:50] <errantepiphany> kcbabo: well I regularly clean out ~/.m2/repository/org/switchyard and build clean, which is why I see it.
[18:29:07] <errantepiphany> kcbabo: I guess my point is we should fix it 'cause anyone who builds truly fresh will hit this.
[18:30:23] <kcbabo> errantepiphany:  yeah, of course
[18:30:56] <kcbabo> errantepiphany:  just sayin' that's probably why other people aren't hitting it
[18:31:01] <errantepiphany> kcbabo: right on.
[18:31:46] <kcbabo> errantepiphany:  I'll push a fix direct to the jboss-switchyard repo
[18:31:48] <kcbabo> errantepiphany:  one sec
[18:38:27] <igarashitm> my eclipse env looks fine now after clean checkout & import all Maven projects... anyway, thanks kcbabo, rcernich
[18:38:37] <kcbabo> igarashitm:  cool
[18:39:18] <kcbabo> errantepiphany:  huh ? despite an empty repository and that bad path, my quickstarts repo still builds
[18:39:21] <kcbabo> errantepiphany:  weird
[18:39:34] <kcbabo> errantepiphany:  anyway, the relative path is wrong, so I'll fix it
[18:40:22] <errantepiphany> kcbabo: that is weird.
[18:40:32] <kcbabo> errantepiphany:  yeah, no doubt
[18:44:13] *** GitHub101 has joined #switchyard
[18:44:13] <GitHub101> [quickstarts] kcbabo pushed 1 new commit to master: http://git.io/3yVCEA
[18:44:13] <GitHub101> [quickstarts/master] fixed relativePath of parent pom in bean-service quickstart - Keith Babo
[18:44:13] *** GitHub101 has left #switchyard
[18:44:19] <kcbabo> rcernich:  it's the SCA assembly spec here:
[18:44:20] <kcbabo> http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-spec.pdf
[18:48:22] <rcernich> kcbabo: thanks
[18:48:55] <rcernich> kcbabo: i must not have read it very carefully;)
[18:49:06] <kcbabo> rcernich:  I wouldn't get lost in that spec language
[18:49:45] <kcbabo> rcernich:  the important bit is just the general concept
[18:49:51] <rcernich> kcbabo: sure
[18:53:19] <kcbabo> rcernich:  also interesting to see the relationship between that, a drools package defnition, and the drools changeset configuration syntax
[18:53:36] <kcbabo> rcernich:  I point this out because the latter bits already interoperate with Guvnor
[18:54:02] <kcbabo> rcernich:  you can point a knowledge agent at Guvnor to pull down resources
[19:01:00] *** lanceball has quit IRC
[19:06:24] *** lanceball has joined #switchyard
[19:08:17] *** igarashitm is now known as igatm_lunch
[19:09:15] <kcbabo> rcernich errantepiphany : would you mind picking up tomo's pull request?
[19:09:22] <kcbabo> https://github.com/jboss-switchyard/components/pull/218
[19:09:35] <errantepiphany> kcbabo: I can get it.
[19:09:41] <kcbabo> errantepiphany:  gracias
[19:09:46] <errantepiphany> kcbabo:  de nada
[19:13:19] *** GitHub76 has joined #switchyard
[19:13:19] <GitHub76> [components] errantepiphany pushed 1 new commit to master: http://git.io/Pwf_XA
[19:13:19] <GitHub76> [components/master] SWITCHYARD-422: SOAPFacet should depends on SwitchYardFacet - Tomohisa Igarashi
[19:13:19] *** GitHub76 has left #switchyard
[19:13:59] <kcbabo> errantepiphany:  uncovered an interesting issue with merged config just now
[19:14:13] <errantepiphany> kcbabo: just what I wanted to hear.
[19:15:28] <kcbabo> errantepiphany:  let's say I have an auto-generated config from a Camel Java DSL route that produces the following config:
[19:15:30] <kcbabo> <composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="soapcamel" targetNamespace="urn:switchyard:application:soapcamel">
[19:15:30] <kcbabo>         <service name="MyTest" promote="MyTest">
[19:15:30] <kcbabo>             <binding.soap xmlns="urn:switchyard-component-soap:config:1.0">
[19:15:30] <kcbabo>                 <wsdl>wsdl/Test.wsdl</wsdl>
[19:15:30] <kcbabo>                 <serverPort>18000</serverPort>
[19:15:31] <kcbabo>             </binding.soap>
[19:15:31] <kcbabo>         </service>
[19:15:32] <kcbabo>         <component name="MyTestBuilder">
[19:15:32] <kcbabo>             <implementation.camel xmlns="urn:switchyard-component-camel:config:1.0">
[19:15:33] <kcbabo>                 <java class="org.soapcamel.MyTestBuilder"/>
[19:15:33] <kcbabo>             </implementation.camel>
[19:15:34] <kcbabo>             <service name="MyTest">
[19:15:34] <kcbabo>                 <interface.java interface="org.soapcamel.MyTest"/>
[19:15:35] <kcbabo>             </service>
[19:15:53] <kcbabo> errantepiphany:  but I want to add a reference to that generated config
[19:16:04] *** lanceball is now known as lancelunch
[19:16:13] <kcbabo> errantepiphany:  the user's switchyard.xml just looks like this at first:
[19:16:14] <kcbabo> <composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="soapcamel" targetNamespace="urn:switchyard:application:soapcamel">
[19:16:14] <kcbabo>         <service name="MyTest" promote="MyTest">
[19:16:14] <kcbabo>             <binding.soap xmlns="urn:switchyard-component-soap:config:1.0">
[19:16:14] <kcbabo>                 <wsdl>wsdl/Test.wsdl</wsdl>
[19:16:14] <kcbabo>                 <serverPort>18000</serverPort>
[19:16:15] <kcbabo>             </binding.soap>
[19:16:15] <kcbabo>         </service>
[19:16:16] <kcbabo>     </composite>
[19:16:28] <kcbabo> errantepiphany:  so I add this:
[19:16:39] <kcbabo>     <component name="MyTestBuilder">
[19:16:39] <kcbabo>             <reference name="AnotherEndpoint"/>
[19:16:39] <kcbabo>         </component>
[19:16:55] *** jgraham_ has quit IRC
[19:17:00] <kcbabo> errantepiphany:  the merged config picks up the reference correctly, along with the other stufff
[19:17:03] <kcbabo> errantepiphany:  so that's all good
[19:17:09] <kcbabo> errantepiphany:  but the merged config is not schema valid
[19:17:49] <errantepiphany> kcbabo: what does the merged config look like?
[19:17:57] <kcbabo> <component name="MyTestBuilder">
[19:17:57] <kcbabo>             <reference name="AnotherEndpoint"/>
[19:17:57] <kcbabo>             <implementation.camel xmlns="urn:switchyard-component-camel:config:1.0">
[19:17:57] <kcbabo>                 <java class="org.soapcamel.MyTestBuilder"/>
[19:17:57] <kcbabo>             </implementation.camel>
[19:17:57] <kcbabo>             <service name="MyTest">
[19:17:58] <kcbabo>                 <interface.java interface="org.soapcamel.MyTest"/>
[19:17:58] <kcbabo>             </service>
[19:17:59] <kcbabo>         </component>
[19:18:09] <kcbabo> errantepiphany:  so reference is in the wrong spot
[19:18:25] <errantepiphany> kcbabo: ah.
[19:18:33] <kcbabo> errantepiphany:  nothing critical for now cause I can work around it another way, but something to keep in mind
[19:18:38] <kcbabo> errantepiphany:  I will file a JIA
[19:18:39] <kcbabo> JIRA
[19:18:40] <errantepiphany> kcbabo: yeah I probably need to do another ordering call after the merge.
[19:19:09] <errantepiphany> kcbabo: set it to 0.2 - I can fix it quick. I *thought* this might be possible, but hadn't come up with a test case.
[19:19:19] <kcbabo> errantepiphany:  cool
[19:19:19] <errantepiphany> kcbabo: I know right where the fix needs to be.
[19:21:58] <kcbabo> errantepiphany:  created and assigned
[19:22:06] <kcbabo> errantepiphany:  attached the app so it will be easy to reproduce
[19:22:42] <errantepiphany> kcbabo: thx
[19:25:46] <rcernich> kcbabo: so, do you envision deployment resolving and publishing artifacts?
[19:26:01] <rcernich> kcbabo: e.g. pulling in rules or a business process?
[19:26:22] <rcernich> kcbabo: or pushing out a service details?
[19:30:40] <kcbabo> rcernich:  I think we're going to have to play with it, tbh
[19:30:51] <rcernich> kcbabo: sure
[19:30:55] <kcbabo> rcernich:  but yes, deployer pulling in stuff from the repo is a definite candidate
[19:31:25] <kcbabo> rcernich:  the workflow will have to be smoothed out a bit, but taking it from the beginning
[19:31:49] <kcbabo> rcernich:  user creates a project which creates artifact [a] and imports artifact [b] from the repo
[19:32:11] <kcbabo> rcernich:  they are going to want to publish [a] in the repository at some point during the development process
[19:32:28] <kcbabo> rcernich:  they are also going to need to import [b] into their workspace to develop against it during development
[19:32:49] <kcbabo> rcernich:  when the app is ready to deploy, they need to put the artifacts into the appropriate state in the repository and deploy the application
[19:33:08] <rcernich> kcbabo: sure, but, so far, i don't see anything specific to switchyard in that use case
[19:33:15] <kcbabo> rcernich:  my guess right now is that the runtime and/or a deployment parameter will indicate which version/location of the artifacts to use
[19:33:29] <rcernich> kcbabo: and there it is :)
[19:33:43] <kcbabo> rcernich:  no, that's just plain jane repository workflow
[19:34:01] <kcbabo> rcernich:  except we need the ability for our configuration to reflect the fact that an artifact is in the repository
[19:34:10] <rcernich> kcbabo: yep
[19:34:15] <kcbabo> rcernich:  so for example, you wouldn't deploy these things with your application
[19:34:24] <rcernich> kcbabo: yep
[19:34:30] <kcbabo> rcernich:  so that takes some build-time and configuration syntax work
[19:34:38] <kcbabo> rcernich:  and then the deployer work at runtime
[19:34:43] <rcernich> kcbabo: yep
[19:34:49] <kcbabo> rcernich:  the raw materials should be there though
[19:34:59] <kcbabo> rcernich:  and I *think* we can kick some ass with that contribution stuff
[19:35:14] <kcbabo> rcernich:  the contribution could be the key to managing the resolution of these artifacts
[19:35:23] <kcbabo> rcernich:  so the application code just says "give me [a]"
[19:35:32] <kcbabo> rcernich:  but it has no idea where that's coming from
[19:35:36] <rcernich> kcbabo: yes
[19:35:39] <kcbabo> rcernich:  no paths or anything like that
[19:35:56] <kcbabo> rcernich:  the contribution contains the paths and mapping logic to make that resolution happen
[19:36:10] <kcbabo> rcernich:  sounds good in theory anyway
[19:36:22] <rcernich> kcbabo: cdi in a distributed environment
[19:37:03] <rcernich> kcbabo: in talking with the repo guys, i think there will eventually be a management component
[19:37:12] <rcernich> kcbabo: e.g. a tie in with jon/jopr
[19:37:16] <kcbabo> rcernich:  I think we can get something basic just with WSDLs, XSDs, and Java interfaces which should be possible with today's Guvnor and should be independently valuable ? i.e. it's not just a silly feature
[19:37:26] <rcernich> kcbabo: for staging and wiring
[19:37:40] <kcbabo> rcernich:  perhaps ? I want to let them work all that out :-)
[19:37:46] <kcbabo> rcernich:  my thing is let's use what's there
[19:37:47] <rcernich> kcbabo: most definitely
[19:38:12] <rcernich> kcbabo: so, how 'bout if i look at publishing something during deployment
[19:38:34] <rcernich> kcbabo: then circle back to get stuff pulled in for design
[19:38:47] <kcbabo> rcernich:  I wonder how useful publishing during deployment will be
[19:38:54] <rcernich> kcbabo: or not:)
[19:38:59] <kcbabo> rcernich:  :-)
[19:39:17] <kcbabo> rcernich:  not saying we shouldn't do it, just wondering how that all ties together
[19:39:19] <rcernich> kcbabo: i was thinking mostly of getting my hands dirty with the guvnor apis
[19:39:58] <rcernich> kcbabo: but i'm game for a more ambitious (and useful) goal
[19:40:00] <kcbabo> rcernich:  I think the most direct way to do it is to look at pulling stuff in during deployment
[19:40:12] <kcbabo> rcernich:  well, I think the pull in deployment goal is actually the easiest
[19:40:27] <kcbabo> rcernich:  and most consistent with the eventual workflow we want to encourage
[19:40:50] <kcbabo> rcernich:  so look at this way - we can narrow down the steps involved to the minimum required
[19:41:11] <kcbabo> rcernich:  user creates the artifact on their own and then publishes to guvnor independently
[19:41:34] <kcbabo> rcernich:  application contains a pointer to that artifact rather than the artifact itself (WSDL would be a good candidate for this)
[19:41:50] <kcbabo> rcernich:  the deployer picks that up and goes to Guvnor to pull it in
[19:42:04] <rcernich> kcbabo: yeah
[19:42:22] <rcernich> kcbabo: seems really trivial
[19:42:34] <rcernich> kcbabo: what would be the purpose of pulling the wsdl in from the repo?
[19:42:50] <rcernich> kcbabo: would we, eventually, validate the deployment against the imported artifact?
[19:43:27] <kcbabo> rcernich:  it's used by our runtime
[19:43:39] <kcbabo> rcernich:  we load the interface definition from the WSDL
[19:43:47] <kcbabo> rcernich:  the SOAP binding uses the WSDL to throw up the SOAP endpoint
[19:43:55] <rcernich> kcbabo: right
[19:44:07] <rcernich> kcbabo: but what if it doesn't match with the implementation?
[19:44:21] <kcbabo> rcernich:  not sure I get it
[19:44:35] <kcbabo> rcernich:  you could have the same problem with a WSDL that was packaged with your application
[19:45:01] <kcbabo> rcernich:  so next step is getting this thing pulled down at design-time into the developer workspace
[19:45:08] <kcbabo> rcernich:  like I was talking about above
[19:45:16] <kcbabo> rcernich:  so there are two benefits here:
[19:45:35] <kcbabo> 1) someone else might have created the WSDL - perhaps it's an organization thing, or there's a COE that creates them
[19:45:52] <rcernich> kcbabo: sorry, what is the difference between downloading it from the repo during development and including it in the package versus omitting it from the package and getting it during deployment?
[19:45:57] <kcbabo> 2) if you are publishing the WSDL, it's there for other people to drag down at design-time to consume your application's services
[19:46:42] <kcbabo> rcernich:  mainly that the packaging code can choose to use different versions of the artifact without replacing bits of the application package
[19:46:56] <kcbabo> rcernich:  or I should say packaging definition
[19:47:11] <rcernich> kcbabo: ok, but doesn't that imply some sort of validation during deployment?
[19:47:35] <rcernich> kcbabo: e.g. if a message type changes, wouldn't that potentially break the deployment?
[19:48:01] <rcernich> kcbabo: (just shoot me if i'm being dense here)
[19:48:37] <kcbabo> rcernich:  well, really that's not supposed to change
[19:48:53] <kcbabo> rcernich:  you are setting the version of an artifact and saying "use version x.y"
[19:48:54] <rcernich> kcbabo: sure, but that would be one reason why it might be versioned
[19:49:19] <kcbabo> rcernich:  and the version is in the definition of which artifact you are using
[19:49:39] <kcbabo> rcernich:  in Guvnor, I think this simply resolves to a unique URL for the package
[19:49:42] <kcbabo> rcernich:  IIRC
[19:50:03] <rcernich> kcbabo: ok, but i still don't see a reason why it would make a difference whether or not it is included in the package or downloaded during deployment
[19:50:25] <kcbabo> rcernich:  let's use your use case of an incompatible change
[19:50:31] <kcbabo> rcernich:  let's say it's a compatible change
[19:50:32] <rcernich> kcbabo: i do see where it would be important to know what the artifact is so that it can be linked with the repository
[19:50:48] <kcbabo> rcernich:  you need to extend the order schema definition to include an optional element
[19:50:51] <rcernich> kcbabo: e.g. orders uses order ack
[19:51:01] <rcernich> kcbabo:  v 1.0
[19:51:01] <kcbabo> rcernich:  you need to do this across all services which use orders
[19:51:15] <rcernich> kcbabo: ahh
[19:51:27] <kcbabo> rcernich:  so how do you this if you've included the orders schema in every single app?
[19:51:32] <rcernich> kcbabo: so, you'd like to update your dev, see what breaks, fix it and deploy
[19:51:35] <rcernich> kcbabo: ?
[19:51:36] <kcbabo> rcernich:  as tfennelly would say - PITA
[19:51:55] <kcbabo> rcernich:  if I have a standard definition of order, I want to change that in one place
[19:52:08] <kcbabo> rcernich:  I also want to track how that artifact has changed
[19:52:20] <rcernich> kcbabo: sure, i'm not saying you wouldn't.
[19:52:46] <rcernich> kcbabo: but, if you're pulling it from the repo, and it's in your workspace, what's the harm of including it in the package?
[19:53:00] <kcbabo> rcernich:  what's it doing in there?
[19:53:06] <kcbabo> rcernich:  what purpose does it serve?
[19:53:37] <rcernich> kcbabo: you tell me? why would we be fetching it from the repo during deployment?
[19:54:23] <kcbabo> rcernich:  you asked why don't we include it in the application package
[19:54:25] <rcernich> kcbabo: i don't mean to be thickheaded
[19:54:40] <kcbabo> rcernich:  and I gave an example above w/r/t change management of shared artifacts (like an orders schema)
[19:54:47] <kcbabo> rcernich:  so that's why we would want to pull it in
[19:54:54] <rcernich> kcbabo: sure, and that makes sense
[19:55:06] <kcbabo> rcernich:  so then the question is why not also include it in the application itself
[19:55:07] <rcernich> kcbabo: but, if you need it during design, you have it already
[19:55:19] <rcernich> kcbabo: the important thing is that the project knows where it came from
[19:55:37] <rcernich> kcbabo: and the deployment knows so it can publish it's reference to that artifact
[19:55:49] <rcernich> kcbabo: for things like impact analysis
[19:56:13] <rcernich> kcbabo: sorry, yes, why not just include it since you already have a handle to it
[19:56:27] <kcbabo> rcernich:  how are you going to get impact analysis if each app publishes it's included version of an artifact on deployment?
[19:56:49] <rcernich> kcbabo: sorry, it's not publishing the artifact itself, just that it references said artifact
[19:57:02] <rcernich> kcbabo: e.g....
[19:57:17] <rcernich> kcbabo: we add some contributions document to the package
[19:57:26] <kcbabo> rcernich:  sure, that's right
[19:57:27] <rcernich> kcbabo: it includes details about what we're importing
[19:57:34] <kcbabo> rcernich:  but why include the artifact itself?
[19:57:37] <rcernich> kcbabo: in our example, said wsdl
[19:58:02] <rcernich> kcbabo: it shouldn't matter whether we include said wsdl in the package or pull it down after deployment
[19:58:24] <rcernich> kcbabo: we would include the wsdl because it's required by the runtime
[19:58:48] <rcernich> kcbabo: i guess it doesn't really matter
[19:59:40] <kcbabo> rcernich:  let's say that I can tokenize the artifact id to include a deployment profile
[19:59:50] <kcbabo> rcernich:  {dev, qe, stage, prod}
[20:00:06] <kcbabo> rcernich:  each of these will resolve to a unique artifact I've published in my enterprise repository
[20:00:49] <rcernich> kcbabo: and that token would be defined on your server
[20:00:53] <kcbabo> rcernich:  if I make it so that the packaging definition can import these based on an environmental parameter (perhaps directly in the contribution, perhaps a property of the deployer/runtime), then I'm good to go
[20:00:57] <rcernich> kcbabo: e.g. deploy to prod, get the prod version?
[20:01:19] <kcbabo> rcernich:  but if I'm packaging the WSDL on my own, then I need to create a different package for each enviroment
[20:02:57] <rcernich> kcbabo: but then, aren't we back to compatibility?
[20:03:00] <rcernich> kcbabo: what am i missing?
[20:03:12] <kcbabo> rcernich:  I'm not sure :-)
[20:03:13] <rcernich> kcbabo: if the wsdl are different, then they may be different
[20:03:33] <rcernich> kcbabo: and what if somebody changed something in dev, but not qa?
[20:03:46] <rcernich> kcbabo: now i deploy to qa and it breaks
[20:03:53] <rcernich> kcbabo: but when do i find out about it?
[20:04:02] <rcernich> kcbabo: during deployment or when the first test fails?
[20:04:29] <kcbabo> rcernich:  which test are you referring to?
[20:04:37] <rcernich> kcbabo: the test in the qa env
[20:04:55] <rcernich> kcbabo: ok, maybe a java analogy
[20:05:18] <rcernich> kcbabo: i write a java application
[20:05:24] <rcernich> kcbabo: i package it up
[20:05:40] <rcernich> kcbabo: i deploy it on another machine
[20:05:53] <rcernich> kcbabo: my application references code from other libraries
[20:06:07] <rcernich> kcbabo: i have a couple ways of dealing with this
[20:06:12] <kcbabo> rcernich:  like from a Maven repository by chance?
[20:06:24] <rcernich> kcbabo: lol
[20:06:39] <rcernich> kcbabo: i can deploy the dependencies with my jar
[20:06:52] <rcernich> kcbabo: or i can require the user pull them down before running the app
[20:07:20] <rcernich> kcbabo: in the latter case, the user needs to ensure the dependencies are compatible
[20:07:54] <rcernich> kcbabo: and, since they should be using the same jars i used to compile, it shouldn't matter whether they pull them in or not
[20:07:58] <rcernich> kcbabo: however...
[20:08:07] <rcernich> kcbabo: say there was a bug in one of the dependencies
[20:08:40] <rcernich> kcbabo: since the fix did not modify any external api, they can get the benefit of the fix by downloading the updated dependency
[20:09:55] <rcernich> kcbabo: as we're talking mainly of interfaces in our case (xsd, wsdl), it seems dangerous to be using different versions without some sort of check on the back end
[20:10:17] <rcernich> kcbabo: but, like i said above, it doesn't really matter
[20:10:19] <kcbabo> rcernich:  what's the check on the "back end" in this case?
[20:10:31] <rcernich> kcbabo: i just think it complicates deployment without any real benefit
[20:11:10] <kcbabo> rcernich:  I'm not getting what the additional check is in your example
[20:11:12] <rcernich> kcbabo: the server, i.e. validating that what we deployed is compatible with what the rest of the world is using
[20:11:25] <kcbabo> rcernich:  how does it do that?
[20:11:26] <rcernich> kcbabo: there is no analogy in my java example
[20:11:36] <kcbabo> rcernich:  ok, forget the java bit then
[20:11:39] <rcernich> kcbabo: we would just see some obscure exception
[20:11:49] <rcernich> kcbabo: i.e. "the first test fails"
[20:11:55] <kcbabo> rcernich:  but explain how the server validates that what's deployed is compatible
[20:12:10] <rcernich> kcbabo: well, that's something i think we should have
[20:12:20] <kcbabo> rcernich:  but what does that mean?
[20:12:26] <rcernich> kcbabo: i.e. it's not there today, but should be
[20:12:46] <rcernich> kcbabo: obviously, that's easier said than done
[20:12:58] <kcbabo> rcernich: hmm ? I'm a bit confused now, because it seems like we've changed topics :-)
[20:13:20] <kcbabo> rcernich:  we always include the artifact today
[20:13:47] <rcernich> kcbabo: to summarize, i think it just complicates deployment to pull the artifact in during deployment versus including the artifact during packaging
[20:14:05] <rcernich> kcbabo: your dev/qa/stage/prod example excluded
[20:14:16] <kcbabo> rcernich:  I agree, there's more work to do
[20:14:31] <kcbabo> rcernich:  but the dev/qa/stage/prod example is how repositories work
[20:14:55] <kcbabo> rcernich:  having developers repackage applications as the move across environments has been a significant pain point in the past
[20:15:17] <rcernich> kcbabo: how are those artifacts changing?
[20:15:23] <rcernich> kcbabo: i guess that's what i'm missing
[20:15:37] <kcbabo> rcernich:  in the case of a WSDL, it's more than just interface details
[20:15:48] <rcernich> kcbabo: sure
[20:16:00] <kcbabo> rcernich:  potentially, pieces of configuration can reflect a runtime environment
[20:16:07] <kcbabo> rcernich:  file system location, HTTP endpoint address, etc.
[20:16:25] <rcernich> kcbabo: ok, i'm with you now
[20:16:45] <rcernich> kcbabo: i was stuck on the service implementation, ignoring references
[20:19:18] <kcbabo> rcernich:  I think we are going to have to work through a number of scenarios here
[20:19:29] <rcernich> kcbabo: yep
[20:19:32] <kcbabo> rcernich:  to be honest, the case you outlined is actually maybe the best starting point
[20:19:42] <kcbabo> rcernich:  cause it really requires no changes in anything :-)
[20:19:52] *** lancelunch is now known as lanceball
[20:20:02] <kcbabo> rcernich:  but it would change your behavior as a user, which might give us some ideas
[20:20:05] <rcernich> kcbabo: how about modifying the orders demo by splitting out the inventory service
[20:20:18] <kcbabo> rcernich:  I don't think we need to even split anything out yet
[20:20:28] <rcernich> kcbabo: we'd have both sides covered there: consumer and provider
[20:20:32] <kcbabo> rcernich:  take the orders demo (or more likely the bean-service qs now)
[20:20:57] <kcbabo> rcernich:  or sure, split it into two apps
[20:21:00] <rcernich> kcbabo: i'd like to think about how references play a part
[20:21:04] <kcbabo> rcernich:  inventory and orders
[20:21:30] <kcbabo> rcernich:  anyway, what I was gonna say is that you take that app
[20:21:52] <rcernich> kcbabo: i'm going by the spec here, but i think we should use the domain concept in wiring
[20:21:55] <kcbabo> rcernich:  and look inside and ask "which parts of this application would benefit from being in a repository?"
[20:22:22] <kcbabo> rcernich:  for orders app as it exists today, that would probably be the WSDL
[20:22:43] <kcbabo> rcernich:  if you split the app in two, and inventory app had a promoted service with a java interface, then that interface would also be a candidate
[20:22:58] <rcernich> kcbabo: that's what i was thinking
[20:23:09] <kcbabo> rcernich:  so you take that there, with no changes required to our runtime and it's already interesting
[20:23:24] <kcbabo> rcernich:  how is the WSDL stored in the first place when manually done by the user
[20:24:06] <kcbabo> rcernich:  when you go to import it into your workspace in another app (that wants to call orders via it's soap binding) - how does that work (again manually)
[20:24:21] <kcbabo> rcernich:  when we package up a Java interface, what does that look like in the repo?
[20:24:58] <kcbabo> rcernich:  so then we take the answers to those questions and map them onto how we would reference the artifacts in our packaging
[20:25:07] <rcernich> kcbabo: great example
[20:25:22] <rcernich> kcbabo: thanks for coming up with something concrete
[20:25:34] <kcbabo> rcernich:  not sure it's the best, but a place to start for sure
[20:25:42] <kcbabo> rcernich:  always good to work through an example
[20:26:20] <rcernich> kcbabo: well, it has the right ingredients
[20:27:39] <kcbabo> rcernich:  beginning of any good meal :-)
[20:27:55] <rcernich> kcbabo: ...starts with the right ingredients;)
[20:38:43] *** igatm_lunch is now known as igarashitm
[21:25:20] *** dbevenius has quit IRC
[21:41:13] *** ldimaggi has quit IRC
[22:00:55] *** kcbabo has quit IRC
[22:03:53] *** kcbabo has joined #switchyard
[22:18:44] *** bfitzpat is now known as bfitzpat_brb
[22:45:11] *** bfitzpat_brb is now known as bfitzpat
[22:59:54] *** igarashitm has quit IRC
[23:08:45] *** kcbabo has quit IRC
[23:36:15] *** rcernich is now known as rcernich_away
[23:41:31] *** lanceball has quit IRC

top