14:01:02 <gastaldi> #startmeeting
14:01:02 <jbott> Meeting started Tue Aug 11 14:01:02 2015 UTC.  The chair is gastaldi. Information about MeetBot at http://wiki.debian.org/MeetBot.
14:01:02 <jbott> Useful Commands: #action #agreed #help #info #idea #link #topic.
14:01:04 <jbossbot> Title:3 MeetBot - Debian Wiki
14:01:14 <gastaldi> #topic Agenda
14:01:17 <ivannov> hello :)
14:01:26 <gastaldi> #addtopic Status Report
14:01:31 <gastaldi> Hello ivannov
14:01:39 <gastaldi> How are you doing?
14:01:40 <ivannov> right on time :)
14:01:54 <gastaldi> #chair ivannov vineetreynolds agoncal
14:01:54 <jbott> Current chairs: agoncal gastaldi ivannov vineetreynolds
14:02:23 <gastaldi> #addtopic Priorities
14:02:33 <gastaldi> #addtopic GSoC
14:02:48 <gastaldi> #addtopic Spring Boot Addon
14:02:55 <gastaldi> Anything else?
14:03:37 <gastaldi> Ok let's begin
14:03:42 <gastaldi> #nexttopic
14:03:42 <jbott> #topic Status Report
14:04:40 <ivannov> I guess my detailed status will go to the final topic...
14:04:52 <ivannov> but still, we kicked off the spring boot addon development
14:05:18 <ivannov> and for the first time of my life I was reviewing pull request from gastaldi LOL
14:05:37 <ivannov> (usually it's the oposite)
14:05:44 <ivannov> so, for the minutes...
14:06:22 <ivannov> #info Bulgarian JUG held a code retreat this weekend to build a Forge addon for Spring Boot
14:06:26 <gastaldi> #info I am working on improving Forge's performance. The profiling tool mentions that Weld takes quite a bit of time to boot, so I am migrating some addons to use the simple container instead
14:06:34 <gastaldi> ivannov: lol :)
14:06:55 <gastaldi> You guys are doing a terrific job
14:07:26 <ivannov> still more to come. but, yes, I am happy with what the people did
14:07:30 <gastaldi> Sorry I couldn't make it on Saturday
14:08:01 <ivannov> we didn't have the time for the hangout anyway. we were so much into coding ...
14:08:08 <gastaldi> #chair lincolnthree
14:08:08 <jbott> Current chairs: agoncal gastaldi ivannov lincolnthree vineetreynolds
14:08:11 <gastaldi> Hey lincolnthree
14:08:19 <ivannov> hi lincolnthree :)
14:08:53 <lincolnthree> hey ivannov :)
14:08:55 <lincolnthree> hey gastaldi :)
14:08:58 <lincolnthree> how are you two doing today?
14:09:17 <ivannov> great, a few days before the summer holidays :)
14:09:18 <gastaldi> Doing fine, and you?
14:09:25 <agoncal> Hi all, meeting ?
14:09:32 <gastaldi> agoncal: yes
14:09:35 <gastaldi> lincolnthree: the current topic is 'Status Reports'
14:10:00 <lincolnthree> awesome :)
14:10:17 <lincolnthree> #info I have been reviewing gastaldi's work on the container switchover to simple from CDI
14:11:03 <gastaldi> Cool :)
14:11:32 <agoncal> #info The Forge lab at Devoxx BE has been rejected, and instead it's a University on CDI (with Forge)
14:11:32 <ivannov> will that container switchover be seamless for the existing addons?
14:11:32 <gastaldi> ivannov: yes
14:11:32 <ivannov> great!
14:11:32 <agoncal> #info The Forge Lab at Devoxx MA(rocco) has been accepted
14:11:40 <gastaldi> agoncal: fantastic!
14:11:48 <ivannov> agoncal: great!
14:13:19 <ivannov> gastaldi, if I remember correctly, most of the addons declare furnace-cdi as a direct dependency?
14:13:35 <gastaldi> ivannov: yes
14:13:50 <lincolnthree> agoncal: the University with CDI and Forge sounds good too!
14:13:56 <gastaldi> Because it's easier to use than the simple addon
14:14:13 <ivannov> so this has still to be changed?
14:14:27 <gastaldi> What has to be changed?
14:14:47 <agoncal> gastaldi I haven't followed what is happening on simple-furnace, a quick update maybe ? (adding to the agenda)
14:15:23 <gastaldi> agoncal: I am migrating the core addons to use the simple container
14:15:34 <gastaldi> For performance reasons
14:15:55 <agoncal> And what are the differences between Furnace and Furnace-simple ?
14:15:56 <lincolnthree> agoncal: yep, basically i think we need to get our startup performance reduced to the 1-2 second range
14:15:56 <ivannov> gastaldi: if my addon has declared in some way dependency to furnace-cdi, I have to change that?
14:16:06 <lincolnthree> agoncal: furnace CDI takes about 300ms to start per-container
14:16:23 <gastaldi> Furnace is the runtime, it runs containers
14:16:28 <lincolnthree> agoncal: so we are removing the core addon dependencies on the CDI container and leaving it for 3rd party extension writers
14:16:35 <gastaldi> Furnace-simple is a container
14:16:50 <lincolnthree> agoncal: gastaldi is correct. Furnace is the runtime that controls relationships between addons, and their lifecycles
14:16:58 <lincolnthree> agoncal: the furnace containers define the service/programming model
14:17:04 <lincolnthree> agoncal: like spring, cdi, guice, reflection, etc
14:17:05 <gastaldi> ivannov: no,you don't need to change
14:17:14 <lincolnthree> agoncal: furnace-simple container uses reflection
14:17:31 <agoncal> lincolnthree does this mean that the core will end up with "no" addon (javaee, git...)
14:17:52 <gastaldi> No addon? What do you mean?
14:17:58 <ivannov> gastaldi: what about this: https://github.com/bgjug/spring-boot-forge-addon/blob/master/pom.xml#L29
14:18:16 <gastaldi> ivannov: it's perfectly fine
14:18:38 <agoncal> Today the core (repository) has all sorts of addons (javaee, git...). I was wondering if you meant that all this will be removed somewhere else ?
14:18:59 <lincolnthree> agoncal: no, it will still be there, but they will no longer use CDI in their internal progamming model
14:19:10 <ivannov> gastaldi: if I want better performance, should I change the classifier?
14:19:15 <gastaldi> agoncal: it is an impl detail
14:19:20 <agoncal> got you
14:19:29 <gastaldi> ivannov: yeah, I recommend that
14:20:12 <ivannov> OK
14:20:41 <gastaldi> I've also improved the simple container by fixing some bugs I have found
14:20:52 <ivannov> and if I download the latest version of Forge and start it, it will use the simple furnace and not CDI?
14:21:12 <ivannov> and a second question. will that support @Inject-ing stuff?
14:21:37 <gastaldi> ivannov: no, you need to use SimpleContainer.getServices instead
14:21:45 <lincolnthree> ivannov: each addon depends on the container of its own choice
14:21:53 <gastaldi> ivannov: some addons will still use CDI
14:21:58 <lincolnthree> ivannov: switching the core addons to furnace-simple will not affect addons that still use CDI
14:22:06 <ivannov> so the code has to be re-written as well
14:22:20 <ivannov> if I want to use the simple container
14:22:27 <gastaldi> Yeah, that's what I am doing atm :)
14:22:42 <ivannov> it's not just the dependency?
14:22:54 <ivannov> OK, I see, thanks :)
14:23:04 <gastaldi> Yes, that's correct
14:23:49 <ivannov> and what will be the default furnace that will be started? or there will be a couple of them - one for the cdi based addons and one for the simple ones?
14:23:51 <gastaldi> I have prototyped a Guice container
14:24:02 <gastaldi> ivannov: yes
14:24:37 <ivannov> cool
14:24:40 <gastaldi> ivannov: every addon uses one container, so it depends on the container impl they use
14:25:17 <agoncal> gastaldi So that means that we will choose between Simple, CDI, Guice.... and others one day ?
14:26:16 <gastaldi> agoncal: the day is already arrived. You are free to choose w/e container you like
14:26:46 <agoncal> cool
14:26:48 <gastaldi> It is up to the impl you feel more comfortable with
14:27:04 <agoncal> gastaldi CDI ;o)
14:27:17 <gastaldi> Yup, same here ;)
14:29:07 <gastaldi> Alright, lets proceed shall we?
14:29:24 <ivannov> ok
14:29:46 <lincolnthree> just to be clear
14:29:54 <gastaldi> #nexttopic
14:29:54 <jbott> #topic Priorities
14:29:55 <lincolnthree> the choice of programming model you use in your addon is totally your choice
14:29:59 <lincolnthree> if you use CDI, you can @Inject stuff
14:30:09 <lincolnthree> if you use furnace-simple, you use the SimpleContainer API
14:30:11 <lincolnthree> to get services
14:30:14 <gastaldi> if you use Guice you can @Inject stuff too :)
14:30:17 <lincolnthree> yes
14:30:24 <ivannov> yes, it's clear, lincolnthree. but thanks for mentioning that again :)
14:30:28 <lincolnthree> this change has 0 effect on the addons you are currently developing :)
14:30:35 <lincolnthree> except the whole thing will start faster
14:30:53 <lincolnthree> basically we are doing the hard work so that everyone can enjoy forge a little faster ;)
14:30:58 <lincolnthree> ok sorry, go ahead :)
14:31:03 <lincolnthree> (gastaldi is doing the hard work)
14:31:22 <gastaldi>14:31:26 <ivannov> (and lincolnthree is doing the hard review)
14:32:39 <ivannov> OK, what are the priorities? still performance?
14:33:22 <agoncal> Stacks ? Command aggregation ?
14:33:45 <gastaldi> Yes, the priority is performance
14:34:23 <gastaldi> We really want to get Stacks and Command aggregation as agoncal going, but I am a bit busy working on this right now
14:34:38 <gastaldi> *said
14:35:51 <agoncal> I would like to have command aggregation (vs inheritance), but I don't have enough time (and knowledge) to work on it
14:36:14 <agoncal> If gastaldi has a bit of time to brainstorm on it, then I could start implementing it
14:36:39 <gastaldi> agoncal: yeah, that would be awesome
14:38:42 <agoncal> gastaldi When do you think you could start thinking of it ?
14:39:06 <gastaldi> agoncal: I will try to find some time during this week
14:39:34 <gastaldi> Perhaps later today
14:40:24 <gastaldi> lincolnthree: I noticed that addons are started and stopped several times during Furnace boot
14:40:56 <gastaldi> It would be nice if it could be a bit more deterministic
14:42:37 <gastaldi> #nexttopic
14:42:37 <jbott> #topic GSoC
14:42:45 <gastaldi> #chair Devanshu addonis1990
14:42:45 <jbott> Current chairs: Devanshu addonis1990 agoncal gastaldi ivannov lincolnthree vineetreynolds
14:43:14 <gastaldi> Hey guys, GsoC is coming to an end. Would you like to say what you have accomplished so far?
14:43:27 <Devanshu> Docker Command support in Forge CLI should be available this week once we get the AESH release.
14:43:32 <Devanshu> Currently I’m working to provide an API for handling docker related tasks (push start attach pause etc) programmatically ,for Forge users.
14:45:00 <gastaldi> Devanshu: the only problem is that this is not UI independent
14:45:01 <addonis1990> Currently working on all the stuff involved in the data migration, should be ready by the 17, changed the approach from maven execution to CDI injection
14:45:51 <addonis1990> had a few hurdles dealing with maven profiles and do all the involved plumbing
14:46:20 <gastaldi> addonis1990: oh, you mean using the Forge APIs?
14:47:38 <addonis1990> Yes using the maven addon,  I digged into running liquibase  in CDI environment and I thought thqt's an easier and more straightforward
14:48:06 <addonis1990> I have also worked on encrypting the properties file
14:53:05 <gastaldi> Cool
14:55:36 <gastaldi> Lets move on
14:55:40 <gastaldi> #nexttopic
14:55:40 <jbott> #topic Spring Boot Addon
14:55:50 <gastaldi> ivannov: want to add something?
14:56:07 <ivannov> yes, I would add a quick report :)
14:56:21 <gastaldi> That would do ;)
14:56:37 <ivannov> as already mentioned in the status topic, we had a Forge addon development code retreat this week
14:56:52 <ivannov> its topic was to develop an addon for spring boot
14:57:34 <ivannov> #info The goal of the BG JUG code retreat was to develop a Spring Boot Forge addon
14:58:06 <ivannov> #info The event started with ivannov giving a short presentation about Forge
14:58:19 <ivannov> https://pbs.twimg.com/media/CL3r6jOWgAAVnU0.jpg
14:58:51 <ivannov> #info After that the attendees when on to complete the Forge Hands on Lab
14:59:05 <ivannov> https://pbs.twimg.com/media/CL3r6xgWUAANCnW.jpg
14:59:10 <gastaldi> Awesome shirt :)
14:59:22 <ivannov> Thanks, gastaldi :)
14:59:35 <ivannov> koentsje has the same ;)
14:59:36 <gastaldi> Wow, a lot of people coding
14:59:44 <ivannov> yes, indeed!
15:00:11 <gastaldi> Are you all working in the same repo?
15:00:28 <ivannov> #info Finally, in the early afternoon of Saturday we split up in four groups
15:00:45 <gastaldi> Or doing a PR- based workflow?
15:00:59 <ivannov> yes, gastaldi, it is https://github.com/bgjug/spring-boot-forge-addon/
15:01:11 <ivannov> everybody is committer
15:01:18 <ivannov> I will clean up stuff at the end
15:01:37 <gastaldi> Sweet
15:01:46 <ivannov> #info The first group was developing the setup command
15:01:54 <gastaldi> Better enable Travis on it
15:02:00 <gastaldi> To run tests
15:02:19 <ivannov> #info The second group was developing spring boot setup JPA command
15:02:48 <ivannov> #info The third group was developing add spring repository command
15:02:48 <gastaldi> Nice
15:03:24 <gastaldi> Who is working on the scaffold ?
15:03:35 <ivannov> #info The forth group was developing spring scaffolding command, with Spring MVC+JSP as technology
15:03:42 <gastaldi> Ah ok ;)
15:04:16 <ivannov> #info The fifth group was working of generate REST endpoints command
15:04:30 <ivannov> So there were five groups actually, not four ;)
15:04:47 <gastaldi> Cool :)
15:04:55 <ivannov> We moved our issue tracking to github
15:05:21 <gastaldi> Yes, thats a great idea
15:05:36 <ivannov> #info ivannov created a few issues in github to track the progress: https://github.com/bgjug/spring-boot-forge-addon/issues
15:06:17 <ivannov> and we had a lot of fun of course: https://pbs.twimg.com/media/CL6FBNSUYAMzFNG.jpg:large
15:07:43 <gastaldi> ivannov, https://github.com/bgjug/spring-boot-forge-addon/pull/16
15:07:43 <jbossbot> git pull req [12spring-boot-forge-addon] (7open) 6gastaldi Enable TravisCI11 https://github.com/bgjug/spring-boot-forge-addon/pull/16
15:08:16 <gastaldi> ivannov, awesome! :D Where is the Ouzo? :)
15:08:53 <ivannov> gastaldi, in Bulgaria we drink rakia, not ouzo ;)
15:09:00 <gastaldi> ah-ha :)
15:09:14 <ivannov> thanks for the pull request
15:09:23 <gastaldi> yw, make sure to enable it in https://travis-ci.org
15:09:35 <ivannov> I am getting used to reviewing your pull requests now, lol
15:09:50 <ivannov> once we have something useful, sure
15:09:56 <gastaldi> lol, I am happy to contribute :D
15:09:57 <agoncal> ivannov On the photo I recognize a guy who was at JCrete ;o)
15:11:24 <gastaldi> the magic of networking :)
15:11:25 <ivannov> yes, Mihail.
15:11:53 <ivannov> yes, Mihail. Nayden is also in the background
15:12:26 <gastaldi> ivannov, did you know that the @Deployment method is now optional in Forge tests?
15:12:42 <gastaldi> we didn't promoted that much though :P
15:13:30 <agoncal> gastaldi If you omit @Deployment, what happens then ?
15:14:26 <gastaldi> agoncal, we'll use a default deployment automatically
15:14:43 <ivannov> can you point me to some example, gastaldi
15:14:51 <gastaldi> sure, hold on
15:15:17 <gastaldi> https://github.com/forge/furnace-cdi/blob/master/tests/src/test/java/test/org/jboss/forge/furnace/AddonArchiveDefaultSmokeTest.java
15:15:40 <agoncal> Nice !
15:15:57 <gastaldi> agoncal, this is the default deployment method used: https://github.com/forge/furnace/blob/master/test-harness/arquillian/core/src/main/java/org/jboss/forge/arquillian/impl/FurnaceDeploymentScenarioGenerator.java#L597-L602
15:15:59 <agoncal> No performance impact with or without @Deployment ?
15:16:07 <ivannov> ah, we discussed it a few weeks ago
15:16:16 <gastaldi> no, it will behave like in the method I just pasted
15:16:27 <gastaldi> ivannov, ah yes, true, I forgot about that
15:17:21 <gastaldi> ivannov, agoncal, here is an example when the addon uses the Simple container: https://github.com/forge/furnace-simple/blob/master/tests/src/test/java/org/jboss/forge/furnace/container/simple/AddonArchiveDefaultSmokeTest.java
15:17:44 <gastaldi> Only thing that changes is the @Inject support
15:20:07 <gastaldi> ok, anything else regarding this topic?
15:20:46 <gastaldi> ivannov, again, you are doing a terrific job in this, thank you so much.
15:21:08 <gastaldi> agoncal, you are also doing a hell-of-a-job in promoting Forge, thank you so much too
15:21:37 <agoncal> gastaldi Well, it's fun... I just wish I had more time to contribute in terms of code ;o)
15:21:41 <ivannov> it's my great pleasure, gastaldi! thanks for all the support!
15:21:48 <gastaldi> #nexttopic
15:21:48 <jbott> No next topic. Use #addtopic to add topics.
15:22:19 <gastaldi> Ok, looks like we're out of topics (and time)
15:22:34 <gastaldi> unless someone wants to say something, we're calling it a wrap
15:23:08 <gastaldi> Ok, thank you everybody!
15:23:09 <gastaldi> #endmeeting