Wednesday, 2013-03-27

Mark12345So I got hawtio running but I'm wondering about one specific feature.00:07
Mark12345Is it possible to dynamically create camel routes at run time in servicemix with the web gui?00:08
Mark12345I'm guessing no : (00:08
Mark12345also in relations to my previous issue. I downloaded the latest FUSE ESB to get it working. Can't figure out why it wont work on our company's currently setup FUSE ESB.00:09
Mark12345I'll be afk the entire night... hopefully this machine doesn't get rebooted.00:10
*** gnodet <gnodet!~gnodet@redhat/jboss/gnodet> has quit IRC (Quit: gnodet)00:14
haniMark12345: how are you deploying? There's a hardcoded context path, so you need to deploy it to /hawtio01:00
haniwhich isn't what'll happen if you just drop in the 1.0 war01:01
*** kearls <kearls!> has joined #hawtio01:36
*** kearls <kearls!> has quit IRC (Quit: Computer has gone to sleep.)02:24
*** is-mw2 <is-mw2!> has joined #hawtio04:23
*** is-mw <is-mw!> has quit IRC (Ping timeout: 240 seconds)04:25
*** rhuss <rhuss!> has joined #hawtio05:56
*** rhuss <rhuss!> has quit IRC (Read error: Operation timed out)07:14
*** chm007 <chm007!> has joined #hawtio07:23
*** gnodet <gnodet!~gnodet@redhat/jboss/gnodet> has joined #hawtio07:38
*** jstrachan <jstrachan!> has joined #hawtio08:18
*** rajdavies <rajdavies!> has joined #hawtio08:24
*** davsclaus <davsclaus!> has joined #hawtio09:01
jstrachandavsclaus how'd the talk go?09:08
davsclausit went really good09:08
davsclausthough ran out of time at the end, so couldn't demo all of hawtio glory09:08
*** chirino <chirino!> has quit IRC (Quit: Computer has gone to sleep.)09:09
davsclausbut did a little live demo and showing camel diagram updating in real time etc09:09
*** chirino <chirino!> has joined #hawtio09:10
davsclausthe feedback was they liked the talk, and they now know what camel is and can do, and want to check it out09:10
davsclausand it was a venue just 20 min on train to get there09:10
davsclausand they have other talks regularllay09:10
davsclausso i kinda want to go there from time to time, to learn and hear about other stuff09:10
davsclausand the name is great09:10
davsclausfoo cafe09:10
davsclausthey didnt go for foo bar09:10
davsclausbecause a cafe is open all day09:11
davsclausas bar is usually laer09:11
davsclausits kinda like a startup office - where people can come and go09:11
jstrachansounds cool :)09:11
davsclausthe entreponeur of foo cafe09:11
davsclaushas been hired09:11
davsclausto redoe that in barbados09:11
davsclauseg they want a similar "thing"09:11
davsclaushow cool is that, so he goes there for 2-3 months and set it up there09:12
jstrachanI met my wife in Switzerland in the mountains at Laax / Flims; we were on the Laax side and there's a bar there, called the Crap Bar :) though its actually pretty good :)09:12
davsclausand a bunch of us went to an pub after wards, so we kinda do the foo bar thing :)09:12
davsclausa name to remember :)09:12
jstrachanits named after the peak Crap Sogn Gion :)09:12
jstrachan(St John's Peak apparently)09:13
jstrachanFoo Bar is a great name for a bar though!09:13
davsclauswell with that name, it can only be better than its name :)09:13
davsclauswhen i was young and foolish and drinked beer and all that09:13
davsclauswe had our own bar with my mates09:14
davsclausit was called09:15
davsclausbar bar bar09:15
*** chirino <chirino!> has quit IRC (Quit: Computer has gone to sleep.)09:22
*** chirino <chirino!> has joined #hawtio09:22
jstrachanbar bar bar sounds good too :)09:25
jstrachanbeer beer beer isn't a bad name either :)09:25
*** vijaykiran <vijaykiran!> has joined #hawtio09:27
*** iocanel <iocanel!> has joined #hawtio09:37
*** chirino <chirino!> has quit IRC (Quit: Computer has gone to sleep.)09:42
*** chirino <chirino!> has joined #hawtio09:42
*** dejanb <dejanb!> has joined #hawtio09:52
*** vijaykiran <vijaykiran!> has quit IRC (Read error: No route to host)10:33
*** rhuss <rhuss!~jolokia@2a03:3680:0:1000:b0ae:875c:79ef:baea> has joined #hawtio10:37
*** soody <soody!> has joined #hawtio10:49
*** gnodet <gnodet!~gnodet@redhat/jboss/gnodet> has quit IRC (Quit: gnodet)10:57
*** soody <soody!> has quit IRC (Quit: soody)11:01
*** rhuss <rhuss!~jolokia@2a03:3680:0:1000:b0ae:875c:79ef:baea> has quit IRC (Quit: Leaving.)11:05
*** rajdavies <rajdavies!> has quit IRC (Quit: Textual IRC Client:
*** github <github!> has joined #hawtio11:25
github[hawtio] jstrachan pushed 2 new commits to master:
githubhawtio/master 73d5dc6 James Strachan: added the schema for json schema from
githubhawtio/master 8baed4c James Strachan: use the blueprint configuration mechanism to configure the maven-indexer11:25
*** github <github!> has left #hawtio11:25
*** vijaykiran <vijaykiran!> has joined #hawtio11:27
*** soody <soody!> has joined #hawtio11:29
*** davsclaus <davsclaus!> has quit IRC (Quit: Textual IRC Client:
*** rhuss <rhuss!> has joined #hawtio11:42
*** soody <soody!> has quit IRC (Quit: soody)11:46
*** iocanel <iocanel!> has quit IRC (Quit: See ya later)11:53
*** iocanel <iocanel!> has joined #hawtio12:18
*** kearls <kearls!> has joined #hawtio12:21
*** davsclaus <davsclaus!> has joined #hawtio12:21
*** gnodet <gnodet!~gnodet@redhat/jboss/gnodet> has joined #hawtio12:23
jstrachandavsclaus can't remember if I showed you the hawtSpot crack - here's a little wiki table
jstrachanwhich has links to view / edit each row - which is stored as a separate json file in git12:28
jstrachanits generated from this json model (which is also stored in git)
*** github <github!> has joined #hawtio12:32
github[hawtio] fusesource-ci pushed 1 new commit to gh-pages:
githubhawtio/gh-pages 0158e33 FuseSource CI: Wagon: Deploying sitegen to repository12:32
*** github <github!> has left #hawtio12:32
davsclausjstrachan yeah you showed yesterday, but now the form can edi12:32
jstrachanshould be able to use the same stuff do to editing of camel endpoints / pattern properties too soon...12:34
davsclausah crap why does openshit uses old tomcat 612:34
jstrachanyeah :(12:34
jstrachanI'd hope someone's done a tomcat7 cartridge by now12:35
jstrachanso thinking from the camel side -  it'd be nice to generate a json schema blob of JSON in the jar for every camel endpoint:
jstrachanfor the custom editor stuff12:36
jstrachanjackson can generate it from a class -
davsclausyeah we can probably parse the endpoint and output the options and its types12:36
davsclausthough some endpoints have a xxxConfiguration12:36
jstrachanthe only tricky bit is - camel components are based on the Component; not the Endpoint class12:36
jstrachanyeah - jackson I think should maybe deal with that bit maybe?12:37
davsclausah maybe we can have a meta-data file so the generator knows about this?12:37
davsclausor have some annotation in camel12:37
davsclausbut eg if we keep it outside the code, and generate only12:37
davsclausthen some ppl may not barf at us12:37
davsclauseg some may want that bean validator annotations?12:38
davsclausi kinda dislike when there is a new JAR dep required at runtime12:38
jstrachanthe nice thing about json-schema is its a kinda standard and avoids all that icky XSD crapola & its pretty trivial to parse with jackson - so anyone can build any tool with it12:38
davsclausor being dependet on some spec that gets outdated12:38
davsclaus+1 for that12:39
jstrachanhopefully we can get a little mvn plugin going to generate a json schema file for the endpoints in a jar that can map any bean validation stuff to json schema12:40
*** rhuss <rhuss!> has quit IRC (Quit: Leaving.)13:13
*** rhuss <rhuss!> has joined #hawtio13:19
davsclaushow far are we from a 1.1 release?13:30
davsclausjust in the ball park?13:30
davsclausthere is such cool stuff already13:30
davsclausah 21% at the milestone13:31
slewiswe're really bad at following the milestones to be honest :-)13:32
slewisI think some of that can be pushed back to the next release or a future release13:33
slewiswe really should get a 1.1 release out soon though13:36
slewisthere's been a few awesome additions since 1.013:37
Mark12345Hani: I deployed it according to the "Getting Started" instructions13:37
Mark12345in version 4.4.1-fuse-08-15 works, as expected13:38
jstrachandavsclaus slewis  we should probably cut 1.1 soon really13:39
slewismaybe we should move some of those issues from the 1.1 milestone to 1.2 and figure out if there's anything else we want to get into 1.113:39
davsclausyeah i got a few tickets about some plugin docs etc13:40
davsclausthats something i can add over the holidays if i get the time and mood13:40
Mark12345but it doesn't work in our customized fuse esb (version 4.3.1) and by customized I mean we have our business logic bundles in it13:40
Mark12345Davsclaus, I have some questions if you have time? We want to possible add a new plugin and want to see what you think.13:41
davsclausan nice13:41
davsclausyeah let me grab a coffee13:41
Mark12345Okay, I'll write out what we're thinking till you get back13:42
Mark12345So quick summary about who I am.13:42
slewishmm, yeah, don't think hawtio has been tested on 4.3.1, I've only personally run it on our cutting edge snapshot version :-/13:43
Mark12345slewis: Yeah I figured that based on the way things were written on the getting started.13:43
Mark12345So I and the other developers are major camel users. Our programming lives revolve around connecting systems together.13:43
davsclausah nice so you are professional camel riders :)13:44
Mark12345Our lives revolve around it so much that we're trying to push things further a bit13:44
Mark12345our dream is to minimize the time it takes to connect all of our various systems (and there are a lot) in the shortest and most elegant way possible13:44
Mark12345So we've been working for a while on trying to make a gui13:45
Mark12345that allows us to in real time create camel routes and manage them13:45
Mark12345when we saw hawtio we thought maybe it was doing this already13:45
Mark12345but when I checked it out we noticed it only displayed the camel routes in the system.13:47
davsclausyeah but for sure jstrachan and I would like to have a camel editor for web users13:47
davsclausand also a visual debugger13:47
slewisyeah, that's definitely a goal13:47
Mark12345kind of merging the IDE tool in eclipse with what is there13:47
jstrachanMark12345 am just starting on the web based camel editor btw13:47
davsclausMark12345 are your tool limited in some way? eg only allows X of the patterns, and only Y of the componetns etc?13:47
davsclauswe have also talked about having a way to "lock down" the editor13:47
Mark12345Not sure what you mean about "lock down" ^_^13:48
slewisyep...  actually the form stuff that's been committed recently is kinda the first steps on that road13:48
jstrachanMark12345 another thing we want btw is to be able to create a 'widget' (e.g. a common kind of camel route - but just configure it with say 2 strings (the in and out endpoint URI say) - then have a UI to manage each of these 'bridges'13:48
Mark12345Sounds a bit like what we were also thinking about another version of the gui we thought about too13:48
davsclauseg so the ui editor can only do 5 patterns, and use these 10 approved components13:48
jstrachanMark12345 e.g. this is a kinda generated UI from the metadata with each row being a json file with a nice view/edit UI13:49
jstrachanwhen folks wanna manage lots of - say- bridges between messaging systems; rather than having 1 camel route per bridge; you often want a 'template' of a bridge, then 1000 instances of them with different in & out route names13:50
slewisbtw like the buttons :-)13:50
Mark12345davsclaus: Ah okay... one of our problems was kind of the inverse. We wanted to have a gui that some how detected new "custom camel" bundles in servicemix and added them to the widgets.13:51
davsclausah yeah that can be possible also13:52
Mark12345I guess also to go into more details, we have two gui views in mind for what we need to do.13:52
davsclauswell if you need the UI tomorrow then i guess you need to do it yourselves. But if its down the road, then maybe work with us at hawtio13:53
Mark123451) very powerful version with the ability to see every camel component and custom camel components13:53
davsclausthough we need 1.1 release out first13:53
davsclausthen the camel editor is one of jstrachan pee-vees for years13:53
davsclausyeah when a camel component is installed in SMX13:53
davsclausits enlisted i nthe osgi registry13:53
Mark123452) super simple version similar to what jstrachan said. You have huge components that hide a lot of stuff behind them and represent systems. then you drag arrows to say which systems you want to bridge.13:53
davsclausso we should be able to figure out which ones you have installed + also custom ones13:54
Mark12345Aye I know, we're constrainted by time and money : (13:54
Mark12345but rather than create something just for ourselves13:54
Mark12345wanted to see if while you worked on things we could also try and use similar tools and possible hand things over to you if you find it useful13:54
davsclausyeah that is awesome, we love contributions13:55
davsclaushawtio is open community13:55
jstrachanMark12345 sounds great :)13:55
jstrachanMark12345 if it helps I can brain dump where we were gonna go13:55
jstrachanto try align etc13:55
Mark12345I agree13:55
Mark12345There are some things however that will be beyond my power to change13:56
jstrachanfirst thing on the cards is the basic web based camel editor - kinda like like Fuse IDE designer - which is kinda straightforward mostly13:56
jstrachanthe tricky bit with the camel editor - is the UI to edit the properties / endpoints13:56
Mark12345aye we see that as our gui 1)13:56
jstrachanand folks wanna plugin their own custom palettes / endpoints / widgets13:56
jstrachanor wrap up camel routes / things as an endpoint13:57
jstrachanthe editor form in Fuse IDE is a bit crap (I wrote it and its a bit of a dirty hack :)13:57
jstrachanso the 'forms' stuff in hawtio was an experiment down that road - to let folks define a 'thing to edit' using a simple schema so we can generate a UI13:58
jstrachanthis looks pretty decent
jstrachanwe code generate a kinda schema for camel right now (that I'm gonna port to json schema - its close already really)13:58
jstrachanthe properties: { … } bit is the thing that should be more json schema like btw13:59
jstrachanthe missing bit is to be able to support custom palettes / component discovery13:59
jstrachanin camel we have an API now to scan a classpath and find eagerly all the components14:00
jstrachanwhat we're missing is to be able to grok how to configure the endpoints etc14:01
*** rajdavies <rajdavies!~textual@> has joined #hawtio14:03
Mark12345some of the things you just wrote went a little bit over my head heh : ) but I understand the high level concepts. Just need to figure out the details of what you said.14:04
Mark12345I'll spend a lot of time trying to understand what you've coded and see what I can do ^_^14:05
jstrachanthis issue - hopefully you can read it - might help btw
jstrachanin the same vein we wanna make Fuse IDE extensible so folks can add custom palettes etc14:05
jstrachanand custom UIs for custom widgets etc14:05
Mark12345aye 100% what we're after too14:05
jstrachanour idea was to use html/angularjs and/or json-schema14:05
jstrachanso we were basically gonna make a mvn plugin to auto-generate a json schema file (i.e. a simple blob of json) for every camel component (endpoint really)14:06
jstrachanso then we could paint a UI automatically14:06
jstrachane.g. here's a simple demo of the idea14:07
jstrachanhere's the source
jstrachanits basically an angularjs directive that generates a form (view/edit) from a model14:08
jstrachanwhich is either passed in as plain json directly (see the last example) or found via a config JSON object in the angularjs scope14:08
Mark12345afk one sec14:09
jstrachanjust about to swizzle these to use jsonschema though (slightly different model - s/args/properties and s/desc/title etc14:09
davsclausrhuss, jstrachan is there a way with jolokia from java script to mark a request for an attribute as optional, eg if the attribute does not exist then ignore and dont fail14:12
davsclauseg i do14:12
davsclaus            jolokia.request({type: "read", mbean: mbean,14:12
davsclaus              attribute: ["displayName", "path", "stateName", "startTime"]}, onSuccess(onAttributes));14:12
davsclausand "displayName" attribute is optional14:12
davsclauseg if you could do "displayName?"14:12
davsclausor some way to tell jolokia that14:12
jstrachanah not sure14:13
rhussLet me look ...14:13
davsclausits just that attribute that is missing in tomcat 614:13
davsclausso if we can make it optional then its easier to reuse same plugin for tomcat6 + 714:13
davsclausi guess i can do a * to get all the attributes14:13
jstrachanwould wildcards help I wonder?14:13
davsclausi guess its just more data to transfer than only 4 attributes14:14
davsclausmaybe ?displatyName14:14
rhussYou can ommit 'attribute' completely to get all attributes.14:14
rhussBut I guess you want to restrict it to a set of selected values.14:14
davsclausyeah that would be lovely14:14
davsclausa simple pattern would mybe be nice also14:15
davsclausto get all attributes strating with foo14:15
Mark12345jstrachan: I'll go read up on your webpage about all these tools to get familiar with them so that I can better understand what's going on. I do have some specific questions though and also after I'm done learning the tools you're all using if you could point me to what code I should read in github ^_^14:17
jstrachansure :)14:17
jstrachanMark12345 wanna give an overview of the kinda thing you wanted to build?14:17
jstrachanplus feel free to keep firing questions too14:17
Mark12345jstrachan: I also have some design questsions. We had our hands at this in the past and have tried some experimental things recently so I have some questions on how you plan solving some of these14:17
Mark12345haha you read my mind14:18
rhussSorry, optional attributes do not work yet. There's an 'ignoreErrors' processing parameter, but thats used only for exception happening when executing a request (read on an _existing_ attribute).14:18
*** rajdavies <rajdavies!~textual@> has quit IRC (Quit: Textual IRC Client:
davsclausrhuss thanks for checking14:18
Mark12345jstrachan: So right now I'm being paid to get our super simple gui (2) done. I hope to kill two birds with one stone and while I'm working on (2) I hope to solve things for (1).14:19
rhuss'*' works for the MBean names (so "*:type=Servlet,*" with attribute "requestCount" will give you all requests counts for all matches MBeans as a map). But not for attributes rigth now.14:19
rhussWhat you can do is to split the read request up into two, one with the mandatory attributes and one with the optional ones. When you register two jobs with j4p.register() they are still send withon one request.14:20
Mark12345jstrachan: One of the things we've identified is route management. In our previous implementation done years ago we had a "route-admin". This was a service responsible with just starting and stopping camel contexts. This is important to us because at times we need to suspend/start/stop a whole camel route.14:20
Mark12345jstrachan: oh also our environment is fuse esb in case you were wondering.14:20
Mark12345jstrachan: so we made everything into bundles and used osgi14:21
davsclausrhuss ah thanks for the hint14:21
rhussThe job with the optional one could your a  'callback' (instead of 'success'/'error' functions), which gets the complete response. If there is a status 404 there is no such attribute, other wise (resp.status == 200) you have the value.14:21
*** github <github!> has joined #hawtio14:21
github[hawtio] jstrachan pushed 1 new commit to master:
githubhawtio/master 68a38c1 James Strachan: swizzle form model to use a more json-schema like layout14:21
*** github <github!> has left #hawtio14:21
jstrachanMark12345 is starting/stopping bundles ok for now for the 'route admin' stuff?14:22
rhusssomething like jolokia.request({callback: function(resp) { if (resp.status == 200} { ... }}, { request spec });14:22
Mark12345jstrachan: That's how we did it with our old route-admin heh : P The route-admin built the route from camel java dsl and to stop it we just stopped the route-admin bundle heh14:23
rhussehm, I mean 'register()' in this example.14:23
jstrachanMark12345 sounds fine with me :)14:23
Mark12345jstrachan: In the newer version we planned on having some web gui bundle build a spring dsl camel file and then pass that into the route-admin bundle.14:23
Mark12345jstrachan: I spent time developing this new route-admin bundle and I've got it working a bit.14:24
Mark12345jstrachan: so it loads spring dsl camel files and allows you manage mutiple application contexts with camel contexts inside of it14:24
jstrachanMark12345 as a quick aside - I guess you're not usinfg Fabric right?14:24
Mark12345no : (14:24
jstrachanok :)14:24
Mark12345my first constraint is the fuse-esb I'm in14:25
Mark12345I'm stuck on the version I have14:25
Mark12345and can only upgrade when some other group upgrades it14:25
Mark12345michele and shank from red hat came to visit us14:25
Mark12345and told us about fabric14:25
Mark12345but alas our hands our chained : /14:25
jstrachanMark12345 the direction we're going with fabric is to use a git repo with all the 'profiles' in (which is just a kinda of container & a folder in git) - then a profile can have its own XML files or whatnot - then have bundles associated with it - which grok how to load/process the XML files (or other config files)14:25
jstrachanMark12345 then rolling upgrades just moves a container to a new git commit revision basically14:26
Mark12345jstrachan: aye Michele demoed a bit about fabric to us, but I'm not 100% familiar with it. Since you're using it I guess I'll have to get use to it heh : P14:27
jstrachanso longer term we've a kinda versioned configuration file / config thing sorted; we just need more helper classes and whatnot to make it a bit easier for folks to write java stuff that gets its config from the fabric git repo stuff14:27
jstrachanwe could simulate fabric on old containers by just getting the ESB to look at an area of disk for its config (and having the latest fabric stuff manage the git stuff out of band/process)14:29
jstrachanthe reason I bring this up - it'd be nice to have 1 way of doing config management (using git!) and have 1 set of tools for rolling forward/back changes and versioning/diffing/merging/branching etc14:29
jstrachangetting an old container to read config files from disk is much easier thing (and could be done in one of your bundles really)14:30
jstrachane.g. here's an example of hawtio being an editor of the ActiveMQ XML file in a profile in fabric called "mq-base"
jstrachanthough there's nothing stopping someone cloning git by hand and using any tool to edit the text files14:30
Mark12345jstrachan: checking it out, one sec14:31
jstrachanwe can view history / diff / revert changes on files
jstrachanso think of hawtio's wiki/git stuff as kinda like an internal OSS github thingy14:31
Mark12345Open Source S?14:32
jstrachanyeah sorry :)14:33
jstrachanOpen Source Software I guess :)14:33
Mark12345jstrachan: sorry assume I'm retarded : P it will probably be best than to assume I know anything heh14:33
Mark12345ah okay14:33
jstrachanslewis btw here's the json schema for json schema - seems fairly close to what you had anyway really apart from a few names
jstrachanMark12345 no worries :)14:33
slewisjstrachan: shweet!14:34
Mark12345jstrachan: so with regards to route management, it kind of flew over my head a bit. How would fabric help us with this?14:34
jstrachanMark12345 so if you want to put, say, 3 camel routes as XML into a 'route admin' - you could make that a profile in fabric (or directory in git)14:35
jstrachanyou could have routeAdmin1 and routeAdmin2 as 2 profiles14:35
Mark12345ah okay14:35
jstrachanthen run 3 instances (JVMs) of routeAdmin1 and 10 instances of routeAdmin214:35
jstrachanif you then edit the camel XML in routeAdmin1 it'd just update on the fly - or you could do rolling upgrades of the 3 servers by hand if you want14:35
Mark12345jstrachan: oh by the way, our environment is really good at pushing the envelope on things heh : P so one thing we have to deal with is that places where we deploy our stuff might be completely disconnected to the internet.14:36
*** rajdavies <rajdavies!~textual@> has joined #hawtio14:37
Mark12345jstrachan: but I would assume fabric could work in that scenario too... we just wouldn't be able to remotely update stuff from our desk heh14:37
Mark12345jstrachan: right?14:37
jstrachanthe only thing to be careful is make sure you've got a mvn proxy :)14:38
Mark12345jstrachan: ah okay great. Michele made that a selling point for Fabric, which would have been great if we were connected to all our blasted systems heh : P14:38
Mark12345jstrachan: we have a mvn nexus in our dev environment here14:38
Mark12345jstrachan: but where our fuseesb will go I don't... think so... ?14:39
Mark12345jstrachan: I mean is the local repo good enough?14:39
Mark12345jstrachan: ooor doesn't fuse esb normally have like a "mini" repo inside of it normally?14:39
jstrachanand the git repo helps deal with dodgy networks too14:39
jstrachanso stuff is cached locally inside the installation14:40
Mark12345jstrachan: ah okay great so we'd be fine, right?14:40
Mark12345jstrachan: So in terms of user friendlyness... One of the really big complaints we got was that our old framework and gui as unusable by the user.14:41
Mark12345jstrachan: We'd probably have to "hide" the Fabric stuff behind a wizard or a super user friendly gui. I don't know anything about Fabric but I would guess our gui could call some of it's interfaces or something right?14:42
jstrachansounds fine14:42
jstrachanyeah - we've a web UI (which is migrating to hawtio) for all the fabric stuff14:43
jstrachanso folks can just see a nice web UI14:43
Mark12345believe it or not... even hawtio is too complicated for them >_<14:43
Mark12345hawtio would be what we use for us, gui (1)14:43
Mark12345gui (2) would be like so simple even a child could use it14:43
jstrachanbut you could always write a hawtio plugin to make it easy - with a page with a big "reboot now" button :)14:44
Mark12345jstrachan: aye exactly14:44
slewisshouldn't be much trouble btw to make it possible to hide plugins14:44
slewisso you could make any plugins you don't want visible hidden, and just show the dashboard for example14:45
Mark12345Aye, will spend time trying to figure that out ^_^14:46
Mark12345jstrachan: so one of the other things we've looked at is taking what we get from the gui and then configuring the "spring camel dsl xml" with it14:47
*** github <github!> has joined #hawtio14:47
github[hawtio] fusesource-ci pushed 1 new commit to gh-pages:
githubhawtio/gh-pages d33ef4d FuseSource CI: Wagon: Deploying sitegen to repository14:47
*** github <github!> has left #hawtio14:47
Mark12345jstrachan: So far we've called this mystery piece the "blender"14:47
Mark12345jstrachan: because we're not really sure what approach we want for it but we do know we want them to modify the camel route14:48
Mark12345jstrachan: so it's kind of taking what the gui gives and then modifying the route.14:48
Mark12345jstrachan: example would be if they need to configure an end point to connect to a given ip address and then set some filters14:48
Mark12345jstrachan: What approach would you take for doing this?14:48
Mark12345jstrachan: We only came up with this based on what we know : / but we're all open for better ideas14:49
Mark12345jstrachan: this also kind of goes back to what you were talking about "custom" guis.14:49
Mark12345jstrachan: and just to reiterate what gui (2) was. This was the gui where we were planning on having people drag and drop entire "systems" (i.e. all the camel components to talk to a given business logic system).14:50
davsclausslewis is there a page / way i can see a list of all the icon's we have for css14:51
slewisyeah, one sec14:51
davsclausi am looking for a state icon that is sort of unknown?14:51
davsclauseg its not green or red14:51
davsclausas we dont really know14:51
slewisHere's the font-awesome icon set we're bringing in ->
slewistoughest part is mapping the concept to an icon14:52
Mark12345jstrachan: so an example would be you drag "System A" and "System B" from a menu (which was auto-populated based on what you suggested with Fabric loading) and then you draw an arrow from System A to System B and "boom" they are connected.14:52
slewiswhen I get tired of looking I just pick a goofy one14:52
slewishence the thumbs up icon :-)14:52
slewismaybe you want icon-question-sign14:53
jstrachanMark12345 yeah - so its a large complex area in many ways - I think in some ways the way we were thinking to make tooling simpler is for developers to package up 'widgets'14:53
Mark12345jstrachan: just so you know we're on both extremes of the spectrum heh : P14:53
jstrachanMark12345 where a 'widget' is a bunch of code + some spring/blueprint XML with ${foo} and ${bar} inside14:53
jstrachanMark12345 then users are presented with a UI that says "foo: ABC  bar: DEF"14:54
Mark12345jstrachan: gui (1) super powerful, gui (2) super simple14:54
Mark12345jstrachan: ah okay so I'll adopt your terminology as well for this... though we have another framework called OWF and it also calls things "widgets" heh : P14:54
jstrachanall of spring / CDI / blueprint plus all of Java plus all of camel is hugely complex14:54
jstrachanwe figured, constrain things into 'widgets' that can then have nice simple UIs14:54
jstrachanor there's the 'full camel UI" which is still simple - but just lets you edit the camel routes & available camel endpoints you're given on the palette14:55
Mark12345jstrachan: aye we agree. Those simple widgets is what we want for gui (2)14:55
jstrachannot sure of a good name for "widget" though - as everything else seems taken (bundle / plugin / feature / component / endpoint / service)14:55
jstrachanMark12345 if you think of a better word I'll happily adopt it - as I'm not too keen on "widget? :)14:55
jstrachantemplate is another idea14:56
jstrachandevelopers make a template - then users can configure instances of it14:56
Mark12345jstrachan: haha yeah I'm terrible at naming heh : P but if we come up with something we will share it. Template so far makes a lot more sense but obviously not catchy heh : P14:57
Mark12345jstrachan: so what's the approach you guys have taken with taking what the gui gives you and then "modifying" the template?14:57
Mark12345jstrachan: by the way, don't be surprised if I start working on this "asap".14:59
Mark12345jstrachan: we do have a deadline heh so I'll be here like 12 hours a day heh.14:59
jstrachanso our idea is that for every kind of 'template' - as part of the build process there's a blob of json generated that represents the shape of what can be configured for a template instance14:59
jstrachani.e. the shape of the data & the validation rules14:59
jstrachanthen thats enough to make a UI - though folks can customise the UI separately (with either more JSON stuff or with extra HTML / CSS stuff)14:59
Mark12345jstrachan: for data, do you mean like the data the "System" accepts or?14:59
Mark12345jstrachan: oh wait I see15:00
Mark12345jstrachan: so this is like the schema used to create the GUI and is also what is sent to the backend to process right?15:01
Mark12345in json form15:01
jstrachanimagine 'foo' is the template
jstrachanand this is the schema of the template (i.e. the properteis and their metadata)
jstrachanthen these are the instances
jstrachanand for each one you can view/edit them15:02
jstrachanhere's the actual source
jstrachanthen you'd just need some java that could read these instances and do something with them (e.g. make a camel route and inject the values or whatnot)15:02
jstrachanour intention was then to make some standard kinds of widget (e.g. blueprint / spring / CDI)15:02
jstrachanand tools to auto-generate the schema file from a deployment unit as part of a build15:02
jstrachan(e.g. using osgi config admin or looking for ${} in spring/blueprint xml15:03
Mark12345jstrachan: ah okay gotcha15:06
Mark12345jstrachan: that Java code that reads the instances and do things with it is that "blender" things I said15:07
Mark12345jstrachan: so looks like we're both at that impasse then about the mysterious "blender" piece15:08
Mark12345jstrachan: so what are the various pieces you've identified as needing to be done?15:09
Mark12345jstrachan: I can guess the plugin is one of them right ^_^15:09
jstrachan:) yeah15:10
jstrachanwhat we were focussing really was some horizontally useful stuff ASAP - then folks can layer any old java stuff on top15:10
Mark12345jstrachan: so the plugin reads a project and creates the json used for the "gui" right? just double checking15:10
Mark12345jstrachan: horizontally useful stuff?15:10
jstrachane.g. if you can hack some Java code to read some JSON  using (say jackson) and use that to inject into your beans / spring XML we're good to go15:10
jstrachani.e. generic tools15:11
Mark12345ah okay15:11
jstrachanthe hard stuff is when things get framework specific - e..g osgi blueprint only or spring only or whatnot15:11
jstrachanmaybe a simple solution for templates to start with - turn the JSON into a properties file - and use spring ${} stuff on each deployment unit15:11
Mark12345jstrachan: yeah I gotcha on that one. Big mistake with our first version was it became too frameworkish15:11
davsclausyay found a way to support both tomcat 6 +7 with the same tomcat plugin15:11
jstrachandavsclaus yay!15:11
jstrachanMark12345 or use a properties file and use it with blueprint or camel's wildcard stuff15:12
jstrachane.g. you could write some java that loads each JSON - turns it into a properties file then for each one, loads a spring/blueprint XML and injects the properties in to make a new camel context15:12
jstrachanslewis btw so glad we're porting to json schema now not later :) only a little bit of code to migrate :)15:14
jstrachanslewis almost done15:14
*** github <github!> has joined #hawtio15:14
github[hawtio] davsclaus pushed 1 new commit to master:
githubhawtio/master 4ecc250 davsclaus: #218: Tomcat plugin now supports both Tomcat 6 and 7.15:14
*** github <github!> has left #hawtio15:14
slewisyeah :-)15:14
*** rhuss <rhuss!> has quit IRC (Quit: Leaving.)15:14
Mark12345jstrachan: right one idea we had was to have people create a spring file and put specific variables in it. Then have the gui values returned from the front end and turned into variables in a new spring file (say variables.xml) and then some how have the original spring file call the variables.xml. Or something like that.15:16
jstrachanslewis think I'm done messing now!15:16
*** 65MAAQ209 <65MAAQ209!> has joined #hawtio15:16
65MAAQ209[hawtio] jstrachan pushed 1 new commit to master:
65MAAQ209hawtio/master 70236be James Strachan: ported the forms / hawtSpot to use json schema like JSON (so args -> properties, desc -> description, ret -> type and properties is now a map with the name/id as the key15:16
*** 65MAAQ209 <65MAAQ209!> has left #hawtio15:16
jstrachanslewis don't think Ive broken anything - the test page seems to work as does the hawtSpot sample15:16
jstrachanMark12345 yeah!15:17
Mark12345jstrachan: I'm going to get cracking with getting up to speed with what you guys have done. I'm also going to discuss with our guys here. Before I go. Where is most of your code?15:17
jstrachanMark12345 a tool could grep for alll the ${} values and at least make a list of things that need to be configured15:17
jstrachanMark12345 its harder to grok what the validation rules are though15:17
slewiswill have to check it out later, am on some other stuff at the moment15:17
jstrachanMark12345 is where all the web UI tooling is15:17
jstrachanMark12345 working on the form editor stuff now as it happens15:18
Mark12345jstrachan: right I knew that heh : P15:18
Mark12345jstrachan: I mean the camel stuff you were working on? I know there's a lot of stuff in I was browsing git before but kind of got lost in all the folders heh15:18
jstrachananything not in apache camel or hawtio is in the fusesource/fuse repo:
jstrachanwhich is being donated to apache & will be part of smx soon I hope15:19
jstrachane.g. here's all the fabric stuff
*** rajdavies <rajdavies!~textual@> has quit IRC (Quit: Textual IRC Client:
jstrachanand the 'insight" stuff which is all about dumping logs / metics / messages into elasticsearch for later querying etc15:19
jstrachanthough really - to avoid getting lost in a sea of stuff, I'd focus on hawtio and vanilla camel - then either spring/blueprint15:20
Mark12345jstrachan: ah no no sorry I meant... the stuff relevant to or maybe what you're telling me is you guys are creating all your stuff in other projects and pulling them together in
jstrachanhawtio is probaly all you need to worry about for now really - deploy it in fuseesb and you don't have to worry about any other code really15:21
Mark12345jstrachan: so like... which folders in would be relevant to what we talked about?15:21
jstrachanhawtio has its own little server side bits (e.g. for the git stuff) and then it just uses jmx under the covers (via the excellent jolokia)15:21
*** gnodet <gnodet!~gnodet@redhat/jboss/gnodet> has quit IRC (Quit: gnodet)15:22
jstrachanMark12345 first you need to grok angularjs a bit really - but once you've grokked that - the form stuff is here:15:23
Mark12345jstrachan: okay gotcha!15:23
jstrachanhas lots of links to stuff & tech & tries to describe how plugins work in hawtio etc15:23
Mark12345jstrachan: will be in this chat idling but will be busy getting up to speed! Thanks for taking the time to go over things with me.15:23
jstrachanhere's all the hawtio plugins source
jstrachanor here's the high level view of plugins with links to source
jstrachannp - good luck :)15:23
*** rhuss <rhuss!> has joined #hawtio15:26
*** gnodet <gnodet!~gnodet@redhat/jboss/gnodet> has joined #hawtio15:38
*** iocanel <iocanel!> has quit IRC (Quit: Computer has gone to sleep.)15:39
*** iocanel <iocanel!> has joined #hawtio15:41
*** gnodet <gnodet!~gnodet@redhat/jboss/gnodet> has quit IRC (Quit: gnodet)15:44
*** iocanel <iocanel!> has quit IRC (Ping timeout: 240 seconds)15:46
*** iocanel <iocanel!> has joined #hawtio15:47
*** gnodet <gnodet!~gnodet@redhat/jboss/gnodet> has joined #hawtio16:24
*** gnodet <gnodet!~gnodet@redhat/jboss/gnodet> has quit IRC (Quit: gnodet)16:31
*** chm007 <chm007!> has quit IRC (Ping timeout: 252 seconds)16:44
*** rhuss <rhuss!> has quit IRC (Quit: Leaving.)16:49
*** dejanb <dejanb!> has quit IRC (Quit: dejanb)17:16
*** rhuss <rhuss!> has joined #hawtio17:17
*** iocanel <iocanel!> has quit IRC (Ping timeout: 246 seconds)17:52
*** iocanel <iocanel!> has joined #hawtio17:53
*** davsclaus <davsclaus!> has quit IRC (Quit: Textual IRC Client:
*** chm007 <chm007!> has joined #hawtio18:01
*** github <github!> has joined #hawtio18:07
github[hawtio] jstrachan pushed 2 new commits to master:
githubhawtio/master dff4bfe James Strachan: avoid the infinispan query UI appearing all over the place :)18:07
githubhawtio/master 7aab589 James Strachan: latest generated camel model using more json schema structure18:07
*** github <github!> has left #hawtio18:07
*** chm007 <chm007!> has quit IRC (Ping timeout: 246 seconds)18:08
*** vijaykiran <vijaykiran!> has quit IRC (Ping timeout: 248 seconds)18:08
*** chm007 <chm007!> has joined #hawtio18:11
*** chm007 <chm007!> has quit IRC (Client Quit)18:11
*** rhuss <rhuss!> has quit IRC (Quit: Leaving.)18:16
*** github <github!> has joined #hawtio18:17
github[hawtio] jstrachan pushed 2 new commits to master:
githubhawtio/master d13c194 James Strachan: allow type to be missing18:17
githubhawtio/master 275ea11 James Strachan: first cut of allowing forms to be edited using the underlying json schema model itself18:17
*** github <github!> has left #hawtio18:17
*** iocanel <iocanel!> has quit IRC (Quit: Computer has gone to sleep.)18:42
*** github <github!> has joined #hawtio18:47
github[hawtio] fusesource-ci pushed 1 new commit to gh-pages:
githubhawtio/gh-pages 9f73688 FuseSource CI: Wagon: Deploying sitegen to repository18:47
*** github <github!> has left #hawtio18:47
*** dbokde1 <dbokde1!> has quit IRC (Ping timeout: 272 seconds)19:18
*** jstrachan <jstrachan!> has quit IRC (Quit: Leaving...)19:32
*** github <github!> has joined #hawtio20:02
github[hawtio] fusesource-ci pushed 1 new commit to gh-pages:
githubhawtio/gh-pages e639bb5 FuseSource CI: Wagon: Deploying sitegen to repository20:02
*** github <github!> has left #hawtio20:02
*** dbokde <dbokde!> has joined #hawtio20:15
*** rhuss <rhuss!> has joined #hawtio20:37
*** dbokde <dbokde!> has quit IRC (Ping timeout: 258 seconds)20:39
*** dbokde <dbokde!> has joined #hawtio20:42
*** dbokde <dbokde!> has quit IRC (Ping timeout: 240 seconds)20:46
*** dbokde <dbokde!> has joined #hawtio20:54
*** dbokde <dbokde!> has quit IRC (Ping timeout: 245 seconds)20:59
*** dbokde <dbokde!> has joined #hawtio21:07
*** dbokde <dbokde!> has quit IRC (Ping timeout: 246 seconds)21:13
*** dbokde <dbokde!> has joined #hawtio21:15
*** github <github!> has joined #hawtio21:23
github[hawtio] jstrachan pushed 1 new commit to master:
githubhawtio/master 2556793 James Strachan: fixed content type on javadoc servlet21:23
*** github <github!> has left #hawtio21:23
*** dbokde <dbokde!> has quit IRC (Ping timeout: 240 seconds)21:24
*** dbokde <dbokde!> has joined #hawtio21:29
*** github <github!> has joined #hawtio21:32
github[hawtio] fusesource-ci pushed 1 new commit to gh-pages:
githubhawtio/gh-pages 2c6e87d FuseSource CI: Wagon: Deploying sitegen to repository21:32
*** github <github!> has left #hawtio21:32
*** dbokde1 <dbokde1!> has joined #hawtio21:37
*** dbokde <dbokde!> has quit IRC (Read error: Connection reset by peer)21:37
*** chm007 <chm007!~cmoulliar@> has joined #hawtio21:42
*** dbokde <dbokde!> has joined #hawtio21:46
*** dbokde1 <dbokde1!> has quit IRC (Ping timeout: 240 seconds)21:48
*** dbokde <dbokde!> has quit IRC (Ping timeout: 240 seconds)21:58
*** dbokde <dbokde!> has joined #hawtio22:07
*** chm007 <chm007!~cmoulliar@> has quit IRC (Quit: Textual IRC Client:
*** rhuss <rhuss!> has quit IRC (Quit: Leaving.)22:14
*** dbokde <dbokde!> has quit IRC (Ping timeout: 258 seconds)22:23
*** dbokde <dbokde!> has joined #hawtio22:29
*** dbokde <dbokde!> has quit IRC (Quit: Leaving.)23:03
*** iocanel <iocanel!> has joined #hawtio23:21

Generated by 2.9.2 by Marius Gedminas - find it at!