Time |
S |
Nick |
Message |
00:03 |
|
pdurbin |
on to Java EE 8 discussion |
00:04 |
|
whartung |
eager to hear what they're scheming next |
00:04 |
|
pdurbin |
considering ways to leverage SE 8 features |
00:04 |
|
whartung |
stateless lambda beans! |
00:04 |
|
pdurbin |
2.5 - 3 years after EE 7 |
00:04 |
|
pdurbin |
("our usual pace") |
00:05 |
|
pdurbin |
first idea: JCache |
00:05 |
|
whartung |
?? |
00:05 |
|
pdurbin |
next idea: Data Grid API (JSR 347) |
00:05 |
|
pdurbin |
builds on JCache |
00:05 |
|
pdurbin |
another: STate management API jsr 350 |
00:06 |
|
pdurbin |
another: identity api, jsr 351 |
00:06 |
|
pdurbin |
another: cloud |
00:06 |
|
pdurbin |
:) |
00:06 |
|
pdurbin |
"is cloud mature yet?" |
00:06 |
|
pdurbin |
"is it time to standardize yet?" |
00:07 |
|
pdurbin |
I'm glad to see SAML listed at http://jcp.org/en/jsr/detail?id=351 |
00:08 |
|
whartung |
yea, dunno why they're attacking this again |
00:08 |
|
pdurbin |
another idea: NoSQL |
00:08 |
|
whartung |
it STILL won't be used :) |
00:08 |
|
pdurbin |
"is it time to standardize yet?" (again) |
00:08 |
|
pdurbin |
"based on JPA?" |
00:08 |
|
pdurbin |
"new API?" |
00:09 |
|
whartung |
standardize what? |
00:09 |
|
pdurbin |
"just a simple key/value store API?" |
00:09 |
|
whartung |
uh..Map? |
00:09 |
|
pdurbin |
whartung: standardize a NoSQL API... is it time? |
00:09 |
|
whartung |
eh |
00:10 |
|
whartung |
I think there's too much variance in implementations |
00:10 |
|
whartung |
abstraction limits the usefulness and distinguishing properties of them all |
00:10 |
|
pdurbin |
another idea: more CDI |
00:10 |
|
pdurbin |
another idea: security interceptors |
00:11 |
|
pdurbin |
"apply container managed security to any bean" |
00:11 |
|
whartung |
yea |
00:11 |
|
whartung |
well that's the question |
00:11 |
|
pdurbin |
"port of deconstructing the EJB programming model" |
00:11 |
|
whartung |
are Session beans going away? |
00:11 |
|
whartung |
yea |
00:11 |
|
whartung |
exactly |
00:11 |
|
whartung |
are we only keep ing them for remote EJBs? |
00:12 |
|
pdurbin |
buh. they didn't say they're going away |
00:12 |
|
pdurbin |
another idea: improved security framework |
00:12 |
|
pdurbin |
another idea: JAX-RS MVC |
00:12 |
|
whartung |
I don't even know what that means |
00:12 |
|
pdurbin |
"action-oriented web framework" |
00:12 |
|
whartung |
oh please |
00:13 |
|
whartung |
no |
00:13 |
|
pdurbin |
heh |
00:13 |
|
pdurbin |
another idea: "more html 5, mobile alignment" |
00:13 |
|
pdurbin |
"write web user interface in javascript" |
00:13 |
|
whartung |
JAX-RS could use better binding |
00:13 |
|
pdurbin |
"look at project avatar" |
00:13 |
|
whartung |
like Struts 2 and Stripes |
00:13 |
|
pdurbin |
another idea: more config flexibility and control |
00:13 |
|
pdurbin |
another idea: templating support |
00:14 |
|
whartung |
we have JSPs :) |
00:14 |
|
pdurbin |
"templates for any web page" |
00:14 |
|
pdurbin |
another idea: logging improvements |
00:14 |
|
pdurbin |
another idea: more embedded support |
00:14 |
|
whartung |
that's an SE issue |
00:14 |
|
whartung |
logging... |
00:14 |
|
pdurbin |
"embedded web container, like EJB container" |
00:14 |
|
whartung |
JAva already has one |
00:14 |
|
pdurbin |
"primarily for testing?" |
00:14 |
|
whartung |
it's terrible |
00:14 |
|
whartung |
but it's there |
00:15 |
|
pdurbin |
[#JAVAEE_SPEC-27] Standardize Embedded Containers/Testing - Java.net JIRA - https://java.net/jira/browse/JAVAEE_SPEC-27 |
00:15 |
|
whartung |
yea |
00:15 |
|
whartung |
I mean, that would be cool I guess |
00:15 |
|
pdurbin |
idea: jms messages as cdi events |
00:15 |
|
pdurbin |
(missed the second to last one, flew by too quickly) |
00:15 |
|
whartung |
I haven't worked with CDI events |
00:16 |
|
pdurbin |
meeting tomorrow of platform expert group |
00:16 |
|
whartung |
I imagine they're trivial to d yourself |
00:16 |
|
pdurbin |
"community poll" |
00:16 |
|
whartung |
is today the last day or is there more tomorrow? |
00:16 |
|
pdurbin |
tomorrow and thursday |
00:16 |
|
whartung |
wow |
00:16 |
|
whartung |
whats on your plate for tomorrow? |
00:17 |
|
pdurbin |
buh |
00:17 |
|
pdurbin |
whartung: you'll see, I guess :) |
00:17 |
|
whartung |
heh |
00:17 |
|
pdurbin |
whartung: go look at the catalog and tell me if you're dying for a session |
00:17 |
|
pdurbin |
under sessions: http://www.oracle.com/javaone/index.html |
00:19 |
|
pdurbin |
"we want to hear from you!" -- Bill Shannon |
00:20 |
|
whartung |
you should definitely do this one |
00:20 |
|
whartung |
https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=2698 |
00:20 |
|
whartung |
may be to detail free though |
00:22 |
|
whartung |
yea these are all really specific |
00:23 |
|
whartung |
curious to see this: https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=2198 |
00:23 |
|
whartung |
but you probably aren't |
00:24 |
|
whartung |
might be interesting to me |
00:24 |
|
whartung |
https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=2624 |
00:24 |
|
whartung |
might be interesting to you |
00:24 |
|
whartung |
https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=5356 |
00:25 |
|
whartung |
this could be really interesting or super boring |
00:25 |
|
whartung |
https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=2269 |
00:26 |
|
whartung |
could be interesting too |
00:26 |
|
whartung |
https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=3368 |
00:27 |
|
whartung |
that pdf of lambda stuff was pretty comprehensive, so I wouldn't do any of the lambda sesssions |
00:28 |
|
whartung |
anyway, out the door -- have fun tomorrow |
00:50 |
|
pdurbin |
I don't think any of those session are on my schedule :) |
00:50 |
|
pdurbin |
some good suggestions though |
00:54 |
|
pdurbin |
right now I'm in NetBeans Dreamers: 10 Fun Ways to Make the Most of NetBeans [BOF2741] https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=2741 |
00:54 |
|
tjsnell |
man it's NetbeansOne |
00:54 |
|
tjsnell |
funny how it's still a distant 3rd adoption wise given Oracle's constant pimping of it |
00:54 |
|
pdurbin |
tjsnell: heh. it's my fault, really |
00:55 |
|
tjsnell |
yeah but you couldn't have gone to that many Eclipse sessions I bet :) |
00:55 |
|
pdurbin |
true |
00:55 |
|
pdurbin |
tjsnell: I did go by the intellij booth yesterday |
00:55 |
|
tjsnell |
bunch of russians? :) |
00:55 |
|
pdurbin |
I like how the guy was saying that the focus is on the keyboard |
00:56 |
|
pdurbin |
hmm, they may have been russian... |
00:56 |
|
pdurbin |
this netbeans demo is... iffy... we keep seeing "slowness was detected" on screen |
00:56 |
|
pdurbin |
not to feed the fire :) |
00:59 |
|
pdurbin |
tjsnell: intellij had nice code previews too. you don't have to switch to the file to preview a method, for example |
00:59 |
|
tjsnell |
yeah |
01:00 |
|
pdurbin |
tjsnell: do you think Android Studio will give me a good feel for intellij? |
01:00 |
|
pdurbin |
demo of gradle support for netbeans now |
01:01 |
|
tjsnell |
I suppose |
01:01 |
|
tjsnell |
I've never even seen Android Studio :) |
01:01 |
|
pdurbin |
:) |
01:01 |
|
tjsnell |
all my mobile work to date is IOS |
01:01 |
|
pdurbin |
ah |
01:14 |
|
|
Behi joined ##javaee |
01:22 |
|
tjsnell |
haha |
01:22 |
|
tjsnell |
Larry bailed |
02:00 |
|
|
sfisque joined ##javaee |
02:50 |
|
|
kobain joined ##javaee |
02:58 |
|
pdurbin |
tjsnell: bailed? |
02:59 |
|
tjsnell |
he was teh keynote speaker and a no show |
03:01 |
|
sfisque |
stateless jsf. interesting i'll have to explore this |
03:01 |
|
pdurbin |
oh |
03:01 |
|
pdurbin |
I went to Lessons Learned from Using GlassFish with NetBeans [BOF2764] https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=2764 ... good for someone new to both |
03:02 |
|
pdurbin |
I also stopped by the hands on lab that uses https://glassfish.java.net/hol/javaee7-hol.pdf |
03:03 |
|
pdurbin |
but the computer I got was super slow |
03:03 |
|
pdurbin |
heading to a jboss party instead :) |
03:03 |
|
sfisque |
nice |
03:20 |
|
|
Behi joined ##javaee |
03:23 |
|
|
jenue joined ##javaee |
04:41 |
|
|
dangertools joined ##javaee |
06:33 |
|
|
null_wp joined ##javaee |
06:36 |
|
|
tangatools joined ##javaee |
06:36 |
|
|
tangatools joined ##javaee |
09:19 |
|
|
dangertools joined ##javaee |
09:21 |
|
|
dangatools joined ##javaee |
09:32 |
|
|
dangertools joined ##javaee |
11:01 |
|
|
Behi joined ##javaee |
11:37 |
|
|
raelianer joined ##javaee |
11:42 |
|
raelianer |
Hi there! Does anyone know something about attribute-based access control with javaee? |
11:50 |
|
|
balazarem joined ##javaee |
13:06 |
|
|
kobain joined ##javaee |
13:27 |
|
|
Naros joined ##javaee |
13:29 |
|
|
milojaden joined ##javaee |
13:34 |
|
|
newbiee joined ##javaee |
13:34 |
|
newbiee |
hi |
13:34 |
|
newbiee |
i'm a newbie in java |
13:35 |
|
newbiee |
i'm not understanding this statement String holder="sae"; |
13:35 |
|
Fubar^ |
it creates a string variable named holder with the value "sae" |
13:36 |
|
newbiee |
Fubar^: Thats where i'm getting confused |
13:37 |
|
Fubar^ |
where? |
13:37 |
|
newbiee |
Is holder is a instance variable ? |
13:37 |
|
newbiee |
but string class seems to have no instance variable at all |
13:37 |
|
newbiee |
String* |
13:38 |
|
Fubar^ |
there is nothing called instance variable |
13:38 |
|
Fubar^ |
do you understand the statement int foo = 3; |
13:38 |
|
newbiee |
?? |
13:39 |
|
newbiee |
yes i do |
13:39 |
|
Fubar^ |
there is no difference |
13:39 |
|
newbiee |
why no difference |
13:39 |
|
Fubar^ |
you have "type name = value;" |
13:39 |
|
newbiee |
It an Object oriented right |
13:40 |
|
Fubar^ |
what? |
13:41 |
|
raelianer |
you mean it's not a literal? |
13:41 |
|
raelianer |
it does not matter how it's been implemented, just treat it the same as int |
13:42 |
|
newbiee |
Wait ! .......... String must hold onto some char[] as instance variable right ? |
13:42 |
|
raelianer |
this is not c++ |
13:43 |
|
newbiee |
Java is OO right ? |
13:43 |
|
raelianer |
sure and don't worry about the implementation |
13:44 |
|
newbiee |
I'm worried where can i know how its implemented bro |
13:44 |
|
raelianer |
if you are a newbie, you should not worry about that |
13:45 |
|
raelianer |
otherwise you can educate yourself about building compilers |
13:45 |
|
newbiee |
please let me know |
13:45 |
|
raelianer |
look at the source code? |
13:47 |
|
newbiee |
I looked at the documentation my bad . Err how stupid i am |
13:47 |
|
newbiee |
/** The value is used for character storage. */ private final char value[]; cool |
13:48 |
|
newbiee |
Thank You raelianer |
13:48 |
|
raelianer |
open source ftw lol |
13:48 |
|
raelianer |
you're welcome |
13:49 |
|
newbiee |
raelianer: Bye |
13:49 |
|
newbiee |
Fubar^: You need to recheck on beginner java :D. |
13:49 |
|
raelianer |
newbiee: bye |
13:52 |
|
Fubar^ |
Did he think I was wrong about something? :) |
13:52 |
|
raelianer |
I don't know, haven't really understood him... |
13:53 |
|
raelianer |
guess he meant instance variables would be the objects during runtime |
13:53 |
|
raelianer |
oh wait, I guess private variables? |
13:54 |
|
raelianer |
seems to be messed up a bit |
13:56 |
|
|
Naros left ##javaee |
14:42 |
|
sfisque |
or maybe a GuardedObject proxy |
14:50 |
|
|
[[thufir]] joined ##javaee |
14:57 |
|
acuzio |
is Quest here ? |
14:59 |
|
tjsnell |
does your client suck that bad? |
15:00 |
|
sfisque |
tj he's asking because (as i discovered recently) Quest floats through a bunch of channels under a variety of handles |
15:01 |
|
tjsnell |
crafty |
15:01 |
|
tjsnell |
I'm always just me |
15:06 |
|
acuzio |
tjsnell: thats cause you are a unique snowflake |
15:06 |
|
tjsnell |
delicate |
15:07 |
|
acuzio |
ok - delicate |
15:29 |
|
sfisque |
aye, unique is redundant :P |
15:52 |
|
|
syncsys_ joined ##javaee |
16:04 |
|
whartung |
no, could just be highlighting the unique nature of a snowflake, rather than the cold, frozen flightiness of a snowflake. |
16:42 |
|
pdurbin |
caught the tail end of Just-in-Time Java EE: Provisioning Runtimes for Enterprise Applications [CON5634] https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=5634 |
16:42 |
|
pdurbin |
seems to be mostly about OSGI |
16:42 |
|
pdurbin |
by Timothy Ward, author of this book: Enterprise OSGi in Action: With examples using Apache Aries: Holly Cummins, Timothy Ward: 9781617290138: Amazon.com: Books - http://www.amazon.com/Enterprise-OSGi-Action-examples-Apache/dp/1617290130 |
16:42 |
|
whartung |
yea, that was a bit of a mess |
16:43 |
|
pdurbin |
:) |
16:43 |
|
pdurbin |
next session: Lean and Opinionated Java EE 7 Applications [CON2196] https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=2196 |
16:44 |
|
pdurbin |
with http://www.adam-bien.com |
16:47 |
|
pdurbin |
he asked the A/V tech if he's into Java and the guy responded, "No... hiphop" :) |
16:48 |
|
sfisque |
ROFL |
16:48 |
|
pdurbin |
:) |
16:49 |
|
pdurbin |
whartung: you were interested in the Modern Web Developer talk at https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=2698 but it seems a little buzz-wordy. I'll probably try to watch it later if I can |
16:50 |
|
pdurbin |
or listen, at least, for a while I was downloading mp4s from last year's javaone and converting them to audio. and writing little reviews: http://wiki.greptilian.com/java/javaone/2012 |
16:51 |
|
pdurbin |
oh, sweet, they fixed the links. I can download those mp4s again |
16:52 |
|
* pdurbin |
updates https://plus.google.com/u/1/107770072576338242009/posts/ZsXk8KM4gQY |
16:53 |
|
pdurbin |
big room and it's filling up |
16:54 |
|
pdurbin |
whartung: so you think this bean validatation talk will be good: https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=3368 |
16:54 |
|
pdurbin |
validation* |
16:54 |
|
pdurbin |
bananananana problem |
16:58 |
|
pdurbin |
session starting |
16:59 |
|
pdurbin |
calls himself a freelancer/singleton :) |
17:02 |
|
pdurbin |
"I don't think you can explain Java EE very well with slides" |
17:05 |
|
pdurbin |
he's kind of arguing against Scala, Clojure, Groovy, etc... fine for Twitter but Java for enterprise is better |
17:07 |
|
pdurbin |
started a new Java EE 7 in Netbeans but doesn't like the extra stuff the mvn archetype puts in |
17:11 |
|
pdurbin |
huh. I didn't know "Super POM" is a thing: http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Super_POM |
17:14 |
|
pdurbin |
touching on multi-module projects in maven: http://maven.apache.org/guides/mini/guide-multiple-modules.html ... recommends not using them to start... keeping it small |
17:15 |
|
pdurbin |
he likes building monolith apps. when they get too big, expose functionality via REST and build a second monolith to talk to the first monolith :) |
17:16 |
|
pdurbin |
recomends this over remote EJBs: Hessian Binary Web Service Protocol - http://hessian.caucho.com/ |
17:17 |
|
pdurbin |
"try to avoid XA... problems with XA drivers" |
17:18 |
|
pdurbin |
"the bigger the company, the less interested the developers are in implementing the business logic" :) |
17:20 |
|
pdurbin |
"look at jdk before looking at apache commons" |
17:21 |
|
pdurbin |
"any external dependency is forbidden" (ideally) |
17:25 |
|
pdurbin |
"entity control boundary" pattern |
17:26 |
|
* pdurbin |
looks at http://www.cs.sjsu.edu/~pearce/modules/patterns/enterprise/ecb/ecb.htm |
17:28 |
|
pdurbin |
standard icons for ECB |
17:28 |
|
pdurbin |
com.example.business.sessions.boundaries.SessionProvider.java |
17:29 |
|
pdurbin |
"there is nothing more portable than REST" |
17:29 |
|
pdurbin |
but he starts with JSF... if you need mobile apps... have them talk to REST |
17:34 |
|
pdurbin |
com.example.business.sessions.boundary vs. com.example.business.sessions.entity |
17:34 |
|
pdurbin |
he likes this for efficiency: kryo - Fast, efficient Java serialization and cloning - Google Project Hosting - http://code.google.com/p/kryo/ |
17:37 |
|
pdurbin |
com.example.business.sessions.control.Archiver.java |
17:37 |
|
pdurbin |
"interfaces in my projects are forbidden" |
17:38 |
|
pdurbin |
strategy pattern |
17:42 |
|
pdurbin |
ah, Adam wrote about ECB here: Java EE 6: Simplicity by Design - http://www.oracle.com/technetwork/issue-archive/2011/11-jan/o11java-195110.html |
17:44 |
|
pdurbin |
exposing straight JSON objects with Java EE 7 |
17:46 |
|
pdurbin |
http://docs.oracle.com/javaee/7/api/javax/json/JsonObject.html |
17:47 |
|
pdurbin |
http://www.corej2eepatterns.com/Patterns2ndEd/DomainStore.htm is like entity manager |
17:51 |
|
pdurbin |
he's against using DAO: http://en.wikipedia.org/wiki/Data_access_object |
17:52 |
|
pdurbin |
he doesn't like Dozer: http://dozer.sourceforge.net |
17:53 |
|
pdurbin |
he is ok with DTO: http://en.wikipedia.org/wiki/Data_transfer_object |
17:53 |
|
pdurbin |
com.example.presentation.Index.java (backing bean) |
17:55 |
|
pdurbin |
"a team should survive on one pizza per day" (small teams, 1-5 developers working on 1 war, wars communicate via REST) |
17:56 |
|
pdurbin |
"if you want some modularity, introduce jar projects" |
17:57 |
|
pdurbin |
talking about maven source attachment |
17:57 |
|
pdurbin |
says he blogged about this |
18:00 |
|
pdurbin |
says more of the way he sets up projects is described in his book: Real World Java EE Patterns--Rethinking Best Practices - http://realworldpatterns.com |
18:03 |
|
pdurbin |
here's his minimal pom: https://github.com/AdamBien/javaee-essentials-pom/blob/master/pom.xml |
18:05 |
|
pdurbin |
looks like the code is here: https://kenai.com/projects/javaee-patterns/sources/hg/show |
18:16 |
|
pdurbin |
yeah, this looks similar to what he was showing: https://kenai.com/projects/javaee-patterns/sources/hg/show/BoundaryPattern/src/main/java/com/abien/patterns/business/boundarypattern/bookstore?rev=481 |
18:22 |
|
pdurbin |
next session: A Practical Use of Servlet 3.1 (JSR 340): Implementing WebSocket (JSR 356) [CON3651] https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=3651 |
18:28 |
|
pdurbin |
with Mark Thomas: http://blog.gopivotal.com/pivotal-people/pivotal-people-qa-with-tomcat-expert-mark-thomas |
18:29 |
|
|
syncsys_ joined ##javaee |
18:32 |
|
pdurbin |
huh, no limit on message size in websocket |
18:35 |
|
whartung |
yea, why would there be? |
18:36 |
|
whartung |
I'll be playing with web socket over the next few days |
18:37 |
|
pdurbin |
cool |
18:38 |
|
pdurbin |
he uses non-blocking I/O in Servlet 3.1 |
18:38 |
|
pdurbin |
as well as HTTP upgrade in Servlet 3.1 |
18:38 |
|
pdurbin |
(he implemented websocket for tomcat) |
18:39 |
|
pdurbin |
uses annotion scanning in Servelet 3.0 |
18:39 |
|
pdurbin |
http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/HandlesTypes.html |
18:40 |
|
pdurbin |
http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContainerInitializer.html |
18:40 |
|
whartung |
yea I'll be using GF 3 for this I think |
18:40 |
|
whartung |
which has support for WS, but it's not a standardized support. |
18:40 |
|
whartung |
GF 4 may have a more standard interface. |
18:42 |
|
pdurbin |
scanning every class for things that match HandlesTypes (expensive) |
18:45 |
|
pdurbin |
SCI = ServletContextInitializer |
18:46 |
|
pdurbin |
oh wait, ServletContainerInitializer, per above :) |
18:47 |
|
pdurbin |
taking about HTTP Upgrade now |
18:49 |
|
pdurbin |
https://javaee-spec.java.net/nonav/javadocs/javax/servlet/http/HttpUpgradeHandler.html |
18:50 |
|
pdurbin |
non-blocking I/O |
18:51 |
|
pdurbin |
can only be used with async processing or upgraded connections |
18:52 |
|
whartung |
I'm surprised that even exposed to the servlet developer |
18:52 |
|
pdurbin |
new methods: isFinished, isReady, etc: http://docs.oracle.com/javaee/7/api/javax/servlet/ServletInputStream.html#isFinished%28%29 |
18:53 |
|
pdurbin |
onDataAvailable: https://blogs.oracle.com/arungupta/entry/non_blocking_i_o_using |
18:55 |
|
pdurbin |
http://docs.oracle.com/javaee/7/api/javax/servlet/ReadListener.html#onDataAvailable%28%29 |
18:57 |
|
pdurbin |
whartung: which? |
18:57 |
|
whartung |
Upgrade Handler |
18:57 |
|
whartung |
seems like something the container should just handle for you silenelty |
18:57 |
|
pdurbin |
ah. well it's used with non-blocking I/O |
19:03 |
|
pdurbin |
this seems to be the code: http://svn.apache.org/repos/asf/tomcat/tc7.0.x/trunk/java/org/apache/catalina/websocket/ |
19:05 |
|
pdurbin |
https://github.com/apache/tomcat/tree/TOMCAT_7_0_42/java/org/apache/catalina/websocket |
19:09 |
|
pdurbin |
whartung: he recommends http://autobahn.ws/testsuite |
19:17 |
|
pdurbin |
issues with UTF-8 decoder provided with the JRE |
19:17 |
|
pdurbin |
- accepts byte sequences that should be rejected |
19:19 |
|
pdurbin |
using decoder from Apache Harmony instead |
19:19 |
|
whartung |
I thoguth harmony was dead |
19:19 |
|
* pdurbin |
shrugs |
19:22 |
|
whartung |
ask him why the stock com.sun.net.httpserver is awful .. :) he won't know, but it'll be fun pillow talk... |
19:22 |
|
pdurbin |
code link on his slides: http://svn.apache.org/repos/asf/tomcat/trunk/java/org/apache/tomcat/websocket/ |
19:23 |
|
whartung |
off to lunch, bbl |
19:23 |
|
pdurbin |
https://github.com/apache/tomcat/tree/trunk/java/org/apache/tomcat/websocket |
19:23 |
|
pdurbin |
yeah, much more code in there that what I was finding earlier |
19:26 |
|
|
sebersole joined ##javaee |
19:58 |
|
pdurbin |
next session: Come and Play! with Java EE 7 [CON3496] https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=3496 |
19:58 |
|
pdurbin |
with https://twitter.com/arungupta and https://twitter.com/agoncal |
20:01 |
|
pdurbin |
whartung: oh, my boss went to the bean validation talk and said it was good |
20:03 |
|
pdurbin |
session starting |
20:03 |
|
pdurbin |
showing http://forge.jboss.org |
20:04 |
|
|
sebersole left ##javaee |
20:05 |
|
pdurbin |
the forge shell |
20:05 |
|
pdurbin |
list-commands |
20:06 |
|
whartung |
not really clear what this does |
20:07 |
|
pdurbin |
new-project --named javaone-javaee7 --topLevelPackage org.javaone.javaee7 --type war --finalName javaone2013 |
20:07 |
|
pdurbin |
creates a pom.xml and directory structure |
20:07 |
|
whartung |
oh ok |
20:07 |
|
pdurbin |
importing with intellij now |
20:08 |
|
pdurbin |
tjsnell: ^^ :) |
20:09 |
|
pdurbin |
going to create an application about Java EE 7: talks, speakers, books, tweets |
20:09 |
|
tjsnell |
finally a clueful presenter! |
20:10 |
|
pdurbin |
showing a .fsh file... looks kind of like this one: https://github.com/agoncal/agoncal-application-petclinic/blob/master/generate.fsh |
20:11 |
|
pdurbin |
actually, I suspect it's this one: https://github.com/agoncal/agoncal-sample-javaee/blob/master/02-JavaOne2013/script/src/main/forge/entities.fsh |
20:11 |
|
pdurbin |
Speaker, Talk, Book, etc. |
20:12 |
|
pdurbin |
all those entities were created |
20:13 |
|
pdurbin |
getters, setters, etc. from that forge script |
20:14 |
|
pdurbin |
back at the forge shell.. |
20:14 |
|
pdurbin |
rest setup |
20:14 |
|
pdurbin |
adds dependencies in pom.xml (jax-rs, etc.) |
20:14 |
|
whartung |
yea, sounds neat |
20:15 |
|
pdurbin |
rest endpoint-from-entity ~.model.* |
20:16 |
|
pdurbin |
creates a rest package with BookEndPoint, SpeakerEndPoint, etc. |
20:16 |
|
pdurbin |
with @POST, @GET, @DELETE, etc. |
20:17 |
|
pdurbin |
this guy is great. Antonio Goncalves |
20:19 |
|
pdurbin |
showing Chrome Web Store - Postman - REST Client - https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm?hl=en |
20:19 |
|
pdurbin |
to do POST, etc. |
20:20 |
|
tjsnell |
Not wild about postman |
20:20 |
|
|
sfisque joined ##javaee |
20:20 |
|
tjsnell |
Advanced REST Client is better |
20:20 |
|
pdurbin |
tjsnell: in chrome? |
20:20 |
|
tjsnell |
yeah |
20:21 |
|
pdurbin |
scaffold from-entity ~.model.* |
20:21 |
|
tjsnell |
Postman looks more polished but was a pain |
20:23 |
|
pdurbin |
scaffold setup |
20:24 |
|
syncsys_ |
what are the good practices for if same @Autowired Object obj; needs to be assinged value two times in a method of controller. if i do obj = something then I can later on do obj = something else while I would need to process both ojb(s) in the same method |
20:24 |
|
pdurbin |
looks like JSF is the default but can specify scaffold type |
20:24 |
|
syncsys_ |
spring^ |
20:24 |
|
* pdurbin |
looks at Chrome Web Store - Advanced REST client - https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo?hl=en-US |
20:26 |
|
pdurbin |
forge creates a Java EE 6 app, must tweak pom, etc. to make it EE 7 |
20:27 |
|
whartung |
heresy |
20:27 |
|
pdurbin |
the technique is to remove EE 6 dependencies: https://github.com/agoncal/agoncal-sample-javaee/blob/master/02-JavaOne2013/script/src/main/forge/pom.fsh |
20:28 |
|
pdurbin |
and then... project add-dependency javax:javaee-api:7.0:provided |
20:29 |
|
pdurbin |
I'm so happy to see command line tools like forge |
20:30 |
|
pdurbin |
fixing namespaces to be EE 7: https://github.com/agoncal/agoncal-sample-javaee/blob/master/02-JavaOne2013/script/src/main/shell/namespace.sh |
20:35 |
|
pdurbin |
showing https://github.com/agoncal/agoncal-sample-javaee/blob/master/02-JavaOne2013/script/src/main/java/org/agoncal/application/javaone2013/script/GetBooks.java |
20:37 |
|
pdurbin |
showing https://github.com/agoncal/agoncal-sample-javaee/blob/master/02-JavaOne2013/script/src/main/shell/sql.sh |
20:38 |
|
pdurbin |
bascially he has already processed the XML from Amazon and created a script to load the book data he wants: https://github.com/agoncal/agoncal-sample-javaee/blob/master/02-JavaOne2013/application/src/main/resources/insert.sql |
20:38 |
|
pdurbin |
looking at https://github.com/agoncal/agoncal-sample-javaee/blob/master/02-JavaOne2013/application/src/main/resources/META-INF/persistence.xml |
20:39 |
|
pdurbin |
showing schema-generation |
20:39 |
|
pdurbin |
<property name="javax.persistence.sql-load-script-source" value="insert.sql"/> |
20:41 |
|
pdurbin |
new @Transactional in EE 7 |
20:42 |
|
pdurbin |
http://docs.oracle.com/javaee/7/api/javax/transaction/Transactional.html |
20:43 |
|
pdurbin |
showing adding @NotNull to return types and parameters |
20:45 |
|
pdurbin |
showing f:viewAction as better than an older way |
20:46 |
|
pdurbin |
the older thing is <f:event type="preRenderView" listener= per https://github.com/agoncal/agoncal-sample-javaee/blob/master/02-JavaOne2013/DEMO.md#add-the-new-jsf-22-viewaction |
20:46 |
|
pdurbin |
the DEMO.md is a walk through of what he's showing |
20:48 |
|
pdurbin |
replacing datatable with a PrimeFaces caroussel |
20:50 |
|
pdurbin |
showing uploadedVideo at https://github.com/agoncal/agoncal-sample-javaee/blob/master/02-JavaOne2013/application/src/main/java/org/agoncal/application/javaone2013/view/TalkBean.java |
20:52 |
|
pdurbin |
showing upload video at https://github.com/agoncal/agoncal-sample-javaee/blob/master/02-JavaOne2013/application/src/main/webapp/talk/create.xhtml |
20:52 |
|
pdurbin |
(file upload being new in JSF 2.2) |
20:52 |
|
pdurbin |
html5 video tag |
20:54 |
|
pdurbin |
at https://github.com/agoncal/agoncal-sample-javaee/blob/master/02-JavaOne2013/application/src/main/webapp/talk/view.xhtml |
20:56 |
|
pdurbin |
showing twitter timeline at https://github.com/agoncal/agoncal-sample-javaee/blob/master/02-JavaOne2013/application/src/main/webapp/resources/scaffold/pageTemplate.xhtml |
20:57 |
|
pdurbin |
2 minutes left for questions |
21:05 |
|
whartung |
so where to next? Dd you get something to eat yet? |
21:35 |
|
pdurbin |
next session: Modular JavaScript [CON2959] https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=2959 |
21:35 |
|
pdurbin |
whartung: and yes, I ate. thanks :) |
21:35 |
|
pdurbin |
whartung: hmm, you were encouraging me to go to this REST talk: https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=2198 |
21:36 |
|
pdurbin |
hmm, I don't see any code at https://github.com/ederign |
21:37 |
|
pdurbin |
I dunno. I think I'll stick with javascript |
21:38 |
|
pdurbin |
whartung: I *am* planning on checking out the netflix api scaling talk you mentioned though: https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=2624 |
21:41 |
|
whartung |
cool |
21:41 |
|
pdurbin |
(if I can get in) |
21:41 |
|
pdurbin |
otherwise, lambda game programming :) |
21:43 |
|
pdurbin |
anyway, this javascript talk is by https://twitter.com/Sander_Mak and https://twitter.com/pbakker |
21:44 |
|
whartung |
lambda game progroamming...lol |
21:44 |
|
whartung |
"Tetris with streams, filters and maps, oh my! |
21:46 |
|
pdurbin |
whartung: see? more fun than scalable APIs |
21:46 |
|
whartung |
:) |
21:46 |
|
whartung |
maybe... |
21:46 |
|
pdurbin |
:) |
21:46 |
|
pdurbin |
I can always listen to the talk later |
21:58 |
|
pdurbin |
whartung: actually you suggesting going to this JAX-RS 2.0 class right now as well: https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=5356 |
21:58 |
|
pdurbin |
but I can't be in 3 places at once :) |
21:58 |
|
whartung |
argh! |
21:59 |
|
pdurbin |
:) |
21:59 |
|
pdurbin |
anyway, modular javascript talk starting |
22:00 |
|
whartung |
cool |
22:00 |
|
pdurbin |
these guys are into OSGI too |
22:00 |
|
pdurbin |
on the Java side |
22:00 |
|
whartung |
yea |
22:00 |
|
pdurbin |
they use require.js |
22:01 |
|
pdurbin |
http://requirejs.org |
22:01 |
|
pdurbin |
end of talk |
22:01 |
|
pdurbin |
;) |
22:02 |
|
whartung |
:) |
22:03 |
|
whartung |
ez |
22:03 |
|
pdurbin |
should have gone to one of the other two ;) |
22:04 |
|
whartung |
hate that |
22:04 |
|
pdurbin |
Java as having low coupling and high cohesion |
22:04 |
|
whartung |
walk out and move over |
22:04 |
|
whartung |
I hate big words like that |
22:04 |
|
pdurbin |
no, I was kidding. still giving them a chance |
22:06 |
|
pdurbin |
"OSGI is the *only* modularity solution for Java today" |
22:06 |
|
pdurbin |
plug for their book: Building Modular Cloud Apps with OSGi - O'Reilly Media - http://shop.oreilly.com/product/0636920028086.do |
22:07 |
|
whartung |
OSGi might be fun is you start out that way, but bringing it in late to the party -- that's no fun at all. |
22:07 |
|
sfisque |
does anyone write to the OSGI layer? that would bypass the JEE api layer |
22:08 |
|
sfisque |
my understanding is container/impl suppliers write to the OSGI layer |
22:08 |
|
whartung |
right, it does. GF has a hybrid model |
22:08 |
|
pdurbin |
50% of their code base is javascript |
22:08 |
|
whartung |
where EJBs ARE OSGI modules |
22:08 |
|
whartung |
or something |
22:08 |
|
whartung |
it's IS really neat..but…kind of complicated, hard to justiry |
22:08 |
|
whartung |
justify |
22:10 |
|
pdurbin |
say no to globals in javascript :) |
22:10 |
|
whartung |
yea, even the namespaces are in namespaces |
22:10 |
|
pdurbin |
use anonymous functions instead |
22:11 |
|
tjsnell |
I use osgi all the time |
22:12 |
|
tjsnell |
but I wouldn't even consider a job where ejb's and crowd were in use |
22:12 |
|
pdurbin |
no to static names (namespacing) |
22:12 |
|
pdurbin |
don't make private methods public |
22:13 |
|
pdurbin |
instead, put helper function inside anonymous function |
22:13 |
|
whartung |
then they wouldn't be private then, would they? |
22:13 |
|
pdurbin |
heh. http://th03.deviantart.net/fs70/150/f/2010/305/9/9/chuck_norris_stamp_of_approval_by_vehemence_41-d31xmba.jpg |
22:14 |
|
whartung |
haha, I'm tattooing that to my inner thigh... |
22:15 |
|
pdurbin |
going to compare various module systems |
22:18 |
|
pdurbin |
looked at CommonJS: http://wiki.commonjs.org/wiki/CommonJS |
22:18 |
|
pdurbin |
nice, but not ready yet |
22:18 |
|
pdurbin |
or maybe that was harmony |
22:18 |
|
pdurbin |
huh |
22:18 |
|
pdurbin |
amd: requirejs, curl.js |
22:19 |
|
pdurbin |
c.js: browserify, node.js |
22:19 |
|
pdurbin |
es6: ... (no implementation yet) |
22:19 |
|
pdurbin |
ah, AMD is http://en.wikipedia.org/wiki/Asynchronous_module_definition |
22:20 |
|
pdurbin |
ah, c.js is CommonJS |
22:22 |
|
pdurbin |
"define" is specified by AMD |
22:23 |
|
pdurbin |
https://github.com/amdjs/amdjs-api/wiki/AMD#define-function- |
22:25 |
|
pdurbin |
the CommonJS "require": http://wiki.commonjs.org/wiki/Modules/1.1.1#Require |
22:28 |
|
pdurbin |
require function in ES6 |
22:28 |
|
pdurbin |
mention of Universal Module Definition, which I guess is https://github.com/umdjs/umd |
22:29 |
|
pdurbin |
(for library authors) |
22:29 |
|
pdurbin |
recommends just picking one (i.e. require.js) rather than trying for UMD |
22:32 |
|
pdurbin |
on to why require.js |
22:32 |
|
pdurbin |
they like that jquery can register with AMD |
22:36 |
|
pdurbin |
they minify their javascript with r.js: https://github.com/jrburke/r.js |
22:36 |
|
pdurbin |
per http://requirejs.org/docs/optimization.html |
22:38 |
|
pdurbin |
mention of https://github.com/requirejs/domReady |
22:41 |
|
pdurbin |
trick of using require require |
22:41 |
|
pdurbin |
(under "advanced") |
22:42 |
|
pdurbin |
talking about shims: http://requirejs.org/docs/api.html#config-shim |
22:43 |
|
pdurbin |
on to angularjs (as a use case, perhaps?) |
22:43 |
|
pdurbin |
angular has it on module system |
22:43 |
|
pdurbin |
its* |
22:44 |
|
pdurbin |
allows you to use non-angular modules |
22:44 |
|
pdurbin |
using both module systems that is |
22:45 |
|
pdurbin |
dependency injection in angular |
22:45 |
|
pdurbin |
i.e. injecting a "basket" service |
22:48 |
|
tjsnell |
~jquery-- |
22:49 |
|
pdurbin |
hmm, this might be the code he's showing: https://bitbucket.org/amdatu/showcase/src |
22:51 |
|
pdurbin |
yeah, this I think: https://bitbucket.org/amdatu/showcase/src/1e078853256ef1088295f9d3df246ce8b113d8aa/webshop.frontend.ui/static/js/webshop.services.js?at=master |
22:53 |
|
pdurbin |
his laptop has a sticker that says "Ask Paul about Amdatu" :) http://www.amdatu.org |
22:55 |
|
pdurbin |
"what about the future" |
22:55 |
|
pdurbin |
ES6 basically |
22:55 |
|
pdurbin |
mention of traceur-compiler - Google's vehicle for Javascript Language Design Experimentation - Google Project Hosting - http://code.google.com/p/traceur-compiler/ |
22:56 |
|
pdurbin |
Bug 169 – RFP 159 JavaScript Microservices - https://www.osgi.org/bugzilla/show_bug.cgi?id=169 |
22:57 |
|
pdurbin |
yeah, that was the right link to their code |
23:11 |
|
pdurbin |
next session: Application Resilience Engineering and Operations at Netflix with Hystrix [CON2624] https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=2624 |
23:12 |
|
pdurbin |
with https://twitter.com/benjchristensen |
23:14 |
|
pdurbin |
hmm, I wonder if this will be his talk, more or less: http://benjchristensen.com/2013/06/10/application-resilience-in-a-service-oriented-architecture-using-hystrix/ |
23:15 |
|
pdurbin |
"Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable." -- https://github.com/Netflix/Hystrix |
23:17 |
|
pdurbin |
love the logo: http://benjchristensen.files.wordpress.com/2013/06/hystrix-logo-tagline-640.png |
23:18 |
|
pdurbin |
grumpy porcupine |
23:18 |
|
whartung |
No balloons... |
23:20 |
|
pdurbin |
nice dashboard: https://github.com/Netflix/Hystrix/wiki/Dashboard |
23:23 |
|
sfisque |
lol lagflix... |
23:24 |
|
pdurbin |
wow, tons of docs: https://github.com/Netflix/Hystrix/wiki/How-To-Use |
23:29 |
|
pdurbin |
ok, talk underway |
23:29 |
|
pdurbin |
service oriented architecture |
23:29 |
|
pdurbin |
two major edge services: discovery and streaming |
23:29 |
|
pdurbin |
he's talking about discovery |
23:32 |
|
pdurbin |
"machine failure is a solved problem in our infrastructure" |
23:32 |
|
pdurbin |
(chaos monkey) |
23:32 |
|
pdurbin |
instead, he's talking about failure within the application |
23:32 |
|
pdurbin |
showing a slide that looks something like https://raw.github.com/wiki/Netflix/Hystrix/images/soa-1-640.png |
23:33 |
|
pdurbin |
user request blocked by latency |
23:33 |
|
pdurbin |
at high volume, all request threads can block in seconds |
23:33 |
|
pdurbin |
tomcat |
23:35 |
|
pdurbin |
focus on speed of iteration |
23:35 |
|
whartung |
iteration of what? |
23:35 |
|
pdurbin |
development |
23:35 |
|
pdurbin |
he's talking about constraints |
23:35 |
|
pdurbin |
in developing their solution |
23:36 |
|
pdurbin |
teams delivery client libraries |
23:36 |
|
pdurbin |
deliver* |
23:36 |
|
pdurbin |
systems do get coupled together, but they accept that |
23:37 |
|
pdurbin |
last constraint: account for groovy, scala, clojure, and java (mixed environment) |
23:38 |
|
pdurbin |
back in the day, failure of one system would bring down all of netflix |
23:39 |
|
pdurbin |
pursued bulk-heading |
23:39 |
|
pdurbin |
covered in book "Release It" |
23:39 |
|
pdurbin |
http://pragprog.com/book/mnee/release-it |
23:40 |
|
pdurbin |
Tryable Semaphore |
23:41 |
|
whartung |
uh…aren't they all? |
23:41 |
|
pdurbin |
:) |
23:41 |
|
pdurbin |
one step back... Thread-pool |
23:42 |
|
pdurbin |
has timeouts |
23:43 |
|
pdurbin |
"in those cases we choose to use tryable semaphores which do not allow for timeouts but provide most of the resilience benefits without the overhead" -- https://github.com/Netflix/Hystrix/wiki/FAQ |
23:44 |
|
pdurbin |
4 tools |
23:44 |
|
pdurbin |
- tryable semaphores |
23:44 |
|
pdurbin |
- separate threads |
23:44 |
|
pdurbin |
- aggressive timeouts |
23:44 |
|
pdurbin |
- circuit breakers |
23:46 |
|
pdurbin |
showing this slide: https://raw.github.com/wiki/Netflix/Hystrix/images/hystrix-flow-chart-original.png (more or less) |
23:46 |
|
pdurbin |
that image comes from http://blog.programmableweb.com/2012/11/30/netflix-open-sources-resilience-engineering-code-library/ |
23:47 |
|
pdurbin |
ah, more canonical: https://github.com/Netflix/Hystrix/wiki/How-it-Works#flow-chart |
23:48 |
|
pdurbin |
showing https://raw.github.com/wiki/Netflix/Hystrix/images/isolation-options-1280.png |
23:49 |
|
pdurbin |
"don't think putting stuff into a queue is free" |
23:50 |
|
pdurbin |
they are anti-queue, generally speaking |
23:50 |
|
tjsnell |
anti queue makes no sense |
23:51 |
|
pdurbin |
"Shed load and fail fast instead of queueing |
23:51 |
|
pdurbin |
" -- https://github.com/Netflix/Hystrix/wiki#design-principles |
23:52 |
|
pdurbin |
showing cost of thread: https://raw.github.com/wiki/Netflix/Hystrix/images/thread-cost-60rps-original.png |
23:52 |
|
pdurbin |
from https://github.com/Netflix/Hystrix/wiki/How-it-Works#cost-of-threads |
23:54 |
|
pdurbin |
may migrate from tomcat to netty for the front end |
23:54 |
|
pdurbin |
hoping to be full non-blocking on the front end in 6 months |
23:58 |
|
pdurbin |
showing https://github.com/Netflix/Hystrix/wiki/How-To-Use#fail-silent |
23:58 |
|
pdurbin |
ah, he actually started with fail fast: https://github.com/Netflix/Hystrix/wiki/How-To-Use#fail-fast |
23:58 |
|
pdurbin |
now https://github.com/Netflix/Hystrix/wiki/How-To-Use#fallback-static |