14:45:08 <lincolnthree> #startmeeting
14:45:08 <jbott> Meeting started Wed Jun  4 14:45:08 2014 UTC.  The chair is lincolnthree. Information about MeetBot at http://wiki.debian.org/MeetBot.
14:45:08 <jbott> Useful Commands: #action #agreed #help #info #idea #link #topic.
14:45:21 <lincolnthree> #chair gastaldi koentsje
14:45:21 <jbott> Current chairs: gastaldi koentsje lincolnthree
14:45:31 <lincolnthree> #addtopic Agenda
14:45:34 <lincolnthree> #nexttopic
14:45:34 <jbott> #topic Agenda
14:46:21 <gastaldi> Any interesting topic to discuss about?
14:48:19 <agoncal> gastaldi Well, I have my good old : website, Arquillian addon, JBoss addon, JSF scaffolding (Bootstrap 3 + webjars) and a new one about files (copying file and echo text into a file )
14:49:27 <lincolnthree> agoncal: i tried the arquillian addon recently and it worked :)
14:49:47 <lincolnthree> #addtopic Echo issues
14:50:56 <lincolnthree> okay i guess that's it today?
14:51:09 <lincolnthree> #nexttopic
14:51:09 <jbott> #topic Echo issues
14:51:38 <lincolnthree> alright agoncal, so when you tried echo > file, you got a file in the directory from which forge was launched, am I right?
14:51:59 <agoncal> lincolnthree yes (can't find the JIRA now....)
14:52:11 <lincolnthree> agoncal: i think i know why that
14:52:14 <lincolnthree> would happen
14:52:23 <lincolnthree> it's because aesh really has no idea what directory we are in (stalep)
14:52:24 <agoncal> FORGE-1860
14:52:25 <jbossbot> jira [3FORGE-1860] Writing files with content [10Open (Unresolved) Feature Request,7 Major,6 Robert Balent] https://issues.jboss.org/browse/FORGE-1860
14:52:49 <stalep> lincolnthree: thats is not exactle true anymore
14:53:02 <lincolnthree> stalep: well, it doesn
14:53:07 <lincolnthree> t know when we go into virtual resources
14:53:24 <stalep> lincolnthree: that is true
14:54:03 <lincolnthree> stalep: i've been thinking a global search/replace on "File" in aesh could reveal all the places where a FS abstraction is needed
14:54:07 <stalep> but you can easily add that by just specifying your own CommandInvocation type
14:54:15 <lincolnthree> stalep: ?
14:54:57 <stalep> lincolnthree: æsh supports that you can use an extension of CommandInvocation as the argument in each execute method
14:55:37 <lincolnthree> stalep: what does that do for us?
14:55:41 <stalep> so you can create eg ForgeCommandInvocation implements CommandInvocation { ... getCurrentVirtualWorkingDirectory().. }
14:55:54 <lincolnthree> stalep: i dont see that method
14:55:55 <stalep> and for each invocation it would be update through forge
14:57:14 <stalep> lincolnthree: https://github.com/aeshell/aesh/blob/master/src/test/java/org/jboss/aesh/console/aesh/AeshCommandInvocationServiceTest.java
14:57:54 <stalep> lincolnthree: thats just an example of a specific impl of CommandInvocation and CommandInvocationProvider
14:58:20 <lincolnthree> stalep: how is this supposed to help us support virtual resources? :p
14:58:49 <stalep> lincolnthree: if you want commands to know which virtual directory their in
14:58:57 <lincolnthree> forge commands already know that
14:59:02 <lincolnthree> stalep: aesh redirection does not
14:59:02 <stalep> i get the feeling ive misunderstood something ... :)
14:59:21 <stalep> that is correct
14:59:45 <lincolnthree> stalep: it's the same problem where we can't use native aesh functionality in forge virtual resources because aesh requires java.io.File everywhere
15:00:01 <gastaldi> yeah
15:00:37 <stalep> not sure how easy it is to abstract that away
15:00:40 <gastaldi> create an abstraction over File that we can use
15:00:50 <stalep> yes, perhaps
15:01:09 <gastaldi> and provide a impl using our Resource class
15:01:10 <lincolnthree> stalep: that's why i was saying do a search/replace on File and see
15:01:19 <gastaldi> maybe using Path?
15:01:22 <lincolnthree> gastaldi: exactly :) it should have a default impl that uses java File API
15:01:29 <lincolnthree> gastaldi: or Path
15:01:44 <stalep> isnt path similar to file?
15:01:52 <stalep> just a 1.7 jdk api
15:01:55 <lincolnthree> stalep: it doesn't specify where the path exists afaik
15:02:02 <lincolnthree> stalep: just that it is a path to "something"
15:02:10 <lincolnthree> stalep: but i think an abstraction is better
15:02:19 <gastaldi> yeah, +1 to an abstraction
15:02:20 <lincolnthree> stalep: it would allow people to specify their own functionality
15:03:33 <lincolnthree> #addtopic Scripting support
15:03:49 <lincolnthree> #nexttopic
15:03:49 <jbott> #topic Scripting support
15:03:56 <lincolnthree> stalep: question about $topic
15:04:14 <stalep> lincolnthree: well, for redirection æsh needs to get directories/files
15:04:23 <lincolnthree> stalep: why not just a stream?
15:04:47 <lincolnthree> stalep: or a virtual resource of that name with a stream
15:05:15 <stalep> lets say you have $ foo < /tmp/bar.*
15:05:27 <lincolnthree> stalep: sure.
15:05:32 <stalep> or $ foo < /tmp/*/gah.txt
15:05:40 <lincolnthree> right
15:05:58 <gastaldi> InputStream and OutputStream
15:06:09 <gastaldi> the abstraction should provide both
15:06:13 <lincolnthree> yep
15:06:29 <stalep> so the abstraction should know if you have access to write/read etc as well
15:06:31 <gastaldi> in fact we need a getResourceOutputStream() in our WriteableResource
15:06:44 <lincolnthree> gastaldi: ah, right you are
15:07:01 <stalep> for tab completion it must be able to ask; listFiles in dir, list dirs in file, etc etc
15:07:20 <lincolnthree> stalep: yeah that's not hard
15:07:56 <stalep> ok
15:07:58 <lincolnthree> a resource abstraction already makes that possible in forge. has since Forge 1 :) how do you think we did it back then? hehe
15:08:13 <stalep> i have to run, driving the youngest to a football match, back in 1-2 hours
15:08:17 <lincolnthree> stalep: sure!
15:08:32 <lincolnthree> stalep: if i have any time i'll try to look at this and prototype something but i have so little time :( i know we all do
15:10:59 <gastaldi> ok, just implemented getResourceOutputStream()
15:11:02 <gastaldi> creating tests for it
15:11:24 <agoncal> BTW, another way for me to script files is also by copying existing ones
15:11:26 <agoncal> FORGE-1861
15:11:26 <jbossbot> jira [3FORGE-1861] Having a cp command like in Forge 1.x [10Open (Unresolved) Feature Request,7 Major,6 Unassigned] https://issues.jboss.org/browse/FORGE-1861
15:11:47 <agoncal> Having a 'cp' command would also help me (instead of echo > file)
15:11:57 <lincolnthree> gastaldi: nice
15:12:08 <lincolnthree> agoncal: yeah we can add a CP command
15:12:18 <lincolnthree> wish we could use the native aesh one :p
15:15:32 <jbossbot> git [12core] push 10master7 3002809.. 6George Gastaldi FORGE-1866: Added WriteableResource.getResourceOutputStream()
15:15:33 <jbossbot> jira [3FORGE-1866] WriteableResource should expose the resource output stream [10Open (Unresolved) Feature Request,7 Major,6 Unassigned] https://issues.jboss.org/browse/FORGE-1866
15:15:33 <jbossbot> git [12core] push 10master URL: http://github.com/forge/core/commit/300280900
15:16:16 <lincolnthree> gastaldi: very nice. time for Forge 2.7.0 lol
15:18:23 <gastaldi> yeah :)
15:18:37 <lincolnthree> ok. i think we are done, anything else to discuss?
15:18:43 <gastaldi> well, with the bean-validation addon maybe that was inevitable :)
15:18:54 <lincolnthree> gastaldi: yea
15:19:10 <lincolnthree> gastaldi: does that require CDI, or is it possible to do that using the simple container btw?
15:19:18 <gastaldi> it requires CDI
15:19:22 <gastaldi> unfortunately
15:19:27 <lincolnthree> gastaldi: no way to avoid that?
15:19:34 <agoncal> gastaldi Any news of the website ?
15:19:39 <lincolnthree> gastaldi: does it require CDI or does it require the CDI-apis?
15:20:02 <lincolnthree> agoncal: our designer was approved, so now we are just waiting on budget
15:20:09 <lincolnthree> agoncal: but… i guess we should talk about launching without a design
15:20:09 <gastaldi> it requires CDI because it uses it to initialize and validate the validator annotations
15:20:15 <lincolnthree> #addtopic Website
15:20:21 <lincolnthree> #nexttopic
15:20:21 <jbott> #topic Website
15:20:32 <lincolnthree> gastaldi: we should see if we can remove that dependency
15:20:44 <agoncal> lincolnthree Yes, definittelly. Having a "nice looking" website is fine, but one with content is better
15:21:41 <lincolnthree> agoncal: ok… well let's make a checklist of things we need to launch the new site
15:21:45 <lincolnthree> agoncal: we can do that after the meeting
15:21:59 <lincolnthree> releasing us
15:22:00 <agoncal> lincolnthree Ok
15:22:02 <lincolnthree> #endmeeting