Monthly Archives: October 2013

Java EE 7 Sessions from JavaOne 2013

Oracle has released first batch of sessions from JavaOne 2013 on parleys.com.

I gave a few Java EE 7 sessions and couple of them are now available:

Several other Java EE sessions are released in this batch:

  • Architecting Enterprise JavaFX 8 Applications (by Adam Bien)
  • Demsytifying Java EE (by Adam Bien)
  • Java Persistence API 2.1 (by Linda DeMichiel)
  • JSR 356: Inside the Java WebSocket API (by Danny Coward)
  • JMS, WebSocket, and the Internet of Things (by David Witherspoon and Prashant Khanai)
  • REST Security by JAX-WS (by Frank Kim)

And some of my favorite ones:

  • Building Modular Cloud Applications in Java (by Bert Ertman and Paul Bakker)
  • Home Automation for Geeks (by Kai Kruzer)
  • Is it a Car ? Is it a Computer ? No, Its a Raspberry Pi JavaFX Informatics System (by Simon Ritter, Tom Angelucci, Aleksander Belokrylov)

Thank you Oracle for releasing these sessions rather quickly! Looking forward to the next batch now.

Java EE 7 Implementations in WildFly (Tech Tip #3)

WildFly Beta 1 has been available for some time now. Tech Tip #1 shows you how to get started with it. Have you tried it ?

Wildfly_logo

This tip will inform you of where all the different Java EE 7 component implementations are coming from:

Component JSR Implementation
Java API for WebSocket 356 Undertow (lightweight Web server for WildFly)
Java API for JSON Processing 353 Used from GlassFish
Concurrency Utilities for Java EE 236 Used from GlassFish
Batch Applications for the Java Platform 352 jberet
Java API for RESTful Web Services 339 RESTEasy rest-easy-logo
Java Message Service (JSR 343) 343 HornetQ hornetq
Contexts and Dependency Injection 346 Weld weld-logo
Bean Validation 349 Hibernate Validator hibernate-validator-logo
Java API for Persistence 338 Hibernate hibernate-logo
Java Connector Architecture 322 IronJacamar iron-jacamar-logo
Java Transaction API 907 Narayana naryana-logo
JavaServer Faces 344 Used from GlassFish
Expression Language 341 Used from GlassFish
Servlet 340 Undertow
Enterprise JavaBeans 345 WildFly
Java API for XML-based Web Services 224 JBossWS jbossws-logo (Apache CXF is default)

 

And in case you are wondering, here is a pancake diagram that shows how these technologies fit together:

javaee7-pancake

Have you tried any of the implementations by itself ?

Java EE 7 Samples (Tech Tip #2)

Where do you find a comprehensive list of Java EE 7 samples ?

github.com/arun-gupta/javaee7-samples
WebSocket (31 samples for JSR 356)
chat
websocket-client-programmatic
endpoint
javase-client
endpoint-singleton
httpsession
encoder
parameters
injection
endpoint-config
binary
encoder-programmatic
websocket-client
endpoint-programmatic-injection
endpoint-programmatic
properties
endpoint-programmatic-async
endpoint-async
websocket-vs-rest
websocket-client-programmatic-config
websocket-client-programmatic-encoders
subprotocol
messagesize
endpoint-programmatic-config
websocket-client-config
whiteboard
endpoint-partial
endpoint-security
endpoint-programmatic-partial
encoder-client
endpoint-javatype
JAX-RS (25 samples for JSR 339)
server-sent-event
server-negotiation
readerwriter-json
moxy
invocation
readerwriter
filter-interceptor
client-negotiation
jsonp
link
singleton-annotation
resource-validation
mapping-exceptions
request-binding
interceptor
invocation-async
jaxrs-endpoint
async-client
dynamicfilter
singleton-application
async-server
filter
beanvalidation
jaxrs-client
readerwriter-injection
JSON Processing (4 samples for JSR 353)
object-reader
streaming-parser
object-builder
streaming-generate
Batch Processing (14 samples for JSR 352)
batchlet-simple
multiple-steps
listeners
chunk-optional-processor
flow
chunk-exception
split
chunk-mapper
chunk-simple-nobeans
chunk-partition
chunk-checkpoint
chunk-simple
chunk-csv-database
decision
Java Message Service (4 samples for JSR 343)
jmscontext-cdi
send-receive-simple
send-receive
temp-destination
Contexts & Dependency Injection (16 samples for JSR 346)
bean-discovery-all
alternatives
extension-impl
bean-discovery-none
scopes
nobeans-xml
bean-discovery-annotated
vetoed
beanmanager
extension
decorators
built-in
interceptors
beansxml-noversion
pkg-level
exclude-filter
Concurrency Utilities for Java EE (4 samples for JSR 236)
managedscheduledexecutor
managedexecutor
dynamicproxy
manageablethread
Java Persistence API (15 samples for JSR 338)
jndi-context
schema-gen
locking-pessimistic
entitygraph
native-sql
listeners
schema-gen-scripts-external
criteria
storedprocedure
multiple-pu
locking-optimistic
pu-typesafe
native-sql-resultset-mapping
schema-gen-scripts-generate
schema-gen-scripts
Servlet (13 samples for JSR 340)
metadata-complete
protocol-handler
async-servlet
servlet-security
cookies
nonblocking
form-based-security
resource-packaging
file-upload
servlet-filters
web-fragment
error-mapping
event-listeners
Java Server Faces (18 samples for JSR 344)
resource-handling
components
simple-facelet
contracts
radio-buttons
http-get
contracts-library
composite-component
bean-validation
flows-programmatic
flows-simple
flows-declarative
file-upload
ajax
passthrough
flows-mixed
server-extension
viewscoped
Java Connector Architecture (2 samples for JSR 322)
connector-simple/connector
connector-simple
Enterprise Java Beans (6 samples for JSR 345)
embeddable
lifecycle
timer
stateless
stateful
singleton
Java Transaction API (4 samples for JSR 907)
user-transaction
transactional
transaction-scope
tx-exception
Bean Validation (2 samples for JSR 349)
custom-constraint
methods
JavaMail (1 sample for JSR 919)
definition
Expression Language (1 sample for JSR 341)
standalone
Extra
quartz
NoSQL
neo4j
voldemort
riak
oracle
cassandra
couchbase
redis
hbase
mongo
twitter-search

In addition, you can also read the Java EE 7 Tutorial or a complete reference guide in Java EE 7 Essentials.

Most of the samples work on GlassFish 4 and some need some further research. I’ve started trying them on WildFly Beta 1 as well. If the samples don’t work or you’d like to see an additional sample, please file an issue.

Java EE 7 at Luxembourg JUG and JAX London

After new hire orientation at Red Hat earlier this week, my first public speaking engagement  is going to be at Luxemboug JUG (Oct 28).

yajug-javaee7-oct2013-large

You’ll get to hear all about Java EE 7 in full glory!

I plan to use a mix of JBoss Tools and NetBeans from tooling perspective. And GlassFish and WildFly Beta 1 and GlassFish for runtime. Here are couple of pointers:

This is my first trip to Luxembourg and so looking forward to it!

jaxlondon2013-logo

The next country on this trip will be London. It starts with a couple of sessions at JAX London on (Oct 29):

  • Getting Started with WebSocket and Server-Sent Events using Java
  • Java EE 7 Platform: Boosting Productivity and Embracing HTML5

Here are other Red Hat talks at JAX London:

  • OpenShift Primer: Get Your JBoss Into the Cloud
  • Introducing Vert.x 2.0 – Taking Polyglot Application Development to the Next Level

Finally it concludes with a code-driven introduction to Java EE 7 at JAX London Community Night (Oct 29). This talk is at the GlassFish User Group and organized by C2B2 Consulting.

Make sure to register for this free event.

Here is one of my favorite pics from JAX London 2011:

Where will I see you ?

Getting Started with WildFly (TechTip #1)

Wildfly_logo

JBoss Community hosts ~100 projects focused on integration, business rules, processes, NoSQL, cloud, mobile, polyglot, messaging, tooling, alternative development frameworks and more. WildFly (nee JBoss Application Server or JBoss AS) is undoubtedly the most popular project in this community.

This Tech Tip will show how to get started with WildFly.

  • JDK7: WildFly requires JDK 7. So if you do not have it already installed on your machine then download your platform-specific package for JDK 7 U45 and install.
  • Binary or Source Bundle: Download WildFly 8.0 Beta1 binary.You can also download associated source code and build it yourself too!
  • Operation Mode: WildFly has two modes of operation: Standalone and Domain. In Standalone mode, a single instance of WildFly server is started. WildFly Domain mode allows you to control and configure multiple instances.Standalone WildFly instance can be started as:./bin/standalone.shIt displays a message like:
    And now you can watch the following page at localhost:8080:

    tt1-wildfly-welcome

And that’s it!

Now you are running WildFly on your machine. Lets see what are the key features of WildFly 8:

  • Java EE 7 support – At this point all user facing APIs have been implemented, more on this in a subsequent blog.
  • Fast Startup: Server started in about 5 seconds.
  • Small Footprint by minimizing GC pauses and starting/stopping service on demand.
  • Modular Design by loading classes on demand using JBoss Modules. OSGi 4.2 support is available out-of-the-box.
  • Unified Configuration and Management available from polished user-friendly web console, Java and HTTP APIs, and CLI. Only three ports are exposed in beta 1 (8080 for applications and 9990 for management, and the third port 9999 will be deprecated) by multiplexing protocols.

Here are some handy useful resources to take your WildFly experience to the next level:

  • Release Notes
  • Documentation
  • Glossary
  • WildFly project page
  • WildFly issue tracker
  • WildFly user forum
  • WildFly wiki
  • WildFly source

Want to learn more about WildFly ? Watch Introduction to WildFly webinar by Jason Greene and Stuart Douglas.

I built the source code on my machine (with no .m2 directory) and saw the following message:

How long it takes on your machine ?

Red Hat Technologies and Products

Enjoying the new hire orientation at Red Hat and learning more about the company. Here is something for you to learn …

Red Hat’s Mission: To be the catalyst in communities of customers, contributors, and partners creating better technology the open source way.

Red Hat has products in five main areas. Each area has an open source offering and a corresponding commercially supported offering.

Product Area Open Source Commercial
Operating System
(biggest corporate committer)
Red Hat Enterprise Linux
(Relationship between Fedora and RHEL)
Middleware JBoss Enterprise Application Platform
Virtualization Red Hat Enterprise Virtualization
Cloud and  (biggest corporate contributor) OpenShift Online (Public PaaS) and OpenShift Enterprise (Private PaaS)
Storage Red Hat Storage Server

Open source offerings are much more agile allowing to respond to the rapidly changing needs in the industry. This allows customers to innovate and deliver solutions in a much more cost-effective way. Commercial support provides the reliability, stability, and confidence for mission-critical applications.

And in addition, there are Solutions, Support, Training, and Consulting.

Every thing at Red Hat is done The Open Source Way. Its not just another tool in the quiver, it is very much in DNA of the company. The mission statement of the company was adjusted a few years ago to match that. The company believes that open source simply creates better software.

Unlock yourself from the proprietary software and say YES to only Open Source.

RedHat is among the top 25 tech companies to work for in 2013. Find your passion and join me to be a Red Hatter.

Farewell from Oracle, Starting at Red Hat

14 years at Sun/Oracle gave me some excellent friendships and I plan and hope to stay connected with them. This made the farewell from Oracle last week very emotional.

To begin with, here is a limerick created by a wonderful friend:

A long time ago while at Sun,
I met a young man, full of fun.
I watched in delight
As he took off in flight
And circled the globe on a run.

The talks that he gave were fantastic.
And his passion, enthusiastic.
He loved Java EE
And shared it with glee
With geeks from RedHat and Jelastic.

Arun, we are just a bit blue,
And for certain, we’re gonna miss you.
But the future’s wide open,
And you’ve said, and I’m hopin’ …
You have “miles to go” ‘fore you’re through!

Thank you Alexandra for this! I’ve thoroughly enjoyed our friendship all these years and it truly means a lot to me.

Completely blessed with all the wishes received on twitter …

Just want to call out some of them …

@noah_white: Congrats on the new position, good luck and keep on advocating EE!
@jjviana: Wow, this news is sure to rock the Java world. All the best in your new adventures Arun!
@majabali: tremendous loss for us at Oracle but all the best with your new “Hat”
@pbakker: That’s great news for my friends at RedHat. Best of luck with your new position!
@svenpet: You did a great job at Oracle! #RedHat is lucky
@BertErtman: congrats on the new job Arun! Thanks for all you’ve done at Oracle. What a gain for Red Hat!
@Sander_Mak: wow, that’s exciting news. Good luck at Red Hat!
@vsenger: sad *= 100000000000.
@IanSkerrett: Wow congratulations. Red Hat is a great company and definitely lucky to have you.
@yoshioterada: Arun-san Thank You so much!! I’m very glad to work with You.
@stevengharris: Wow, great catch by Red Hat. Enjoy the change!
@jenseckels: You will definitely be missed, friend. Take good care
@johanvos: Good luck, thanks for all your work on Glassfish, and enjoy your miles!
@MKHeck: RH got one of the best on the planet. Congrats to all involved!
@hazems: We had really enjoyed your great contributions in the Java EE space. Have the best of luck in your new journey.
@sjmaple: congratulations man! RedHat are very lucky to have you :) enjoy your new role and challenges!
@vsenger: I never met someone else more committed with a company than @arungupta. He is a working machine. Big lost for Oracle and us!
@sivalabs: congratulations to RedHat for having such a gr8 man :-)
@sharat_chander: Congrats to @arungupta for joining #RedHat. Wishing you continued success in making the future #Java.
@lucasjellema: I’m a litle sad to see @arungupta leave Oracle. Wishing him all the best at RedHat. I am sure Java EE will continue to benefit from him
@pvdevoor: Have fun @redhat You did a fantastic and inspiring job all these years!
@peppertech: #JavaEE couldn’t have a better ambassador and now #RedHat is better for having you in their employ. Big Congrats!
@rajashridash: While Oracle will miss you, RedHat will be cherished. We still will get your updates :)

and many more!

I’m just changing companies but the commitment to Java or Java EE is not going to be less in any sense. You’ll hear the latest and greatest about different Red Hat technologies and products.

Please come and meet where ever you see me. I’ve always been very accessible and will continue to keep it that way. Luxmbourg JUG, JAX London, JFall, Transylvania JUG, and Devoxx are coming up soon. Hope to see you there!

And finally a wrap up:

Many thanks to @mwessendorf, @nmcl, @lightguardjp, @aslakknutsen, @maxandersen, @AlRubinger, @anilsaldhana, @lazarotti, @mpiech, @nmcl, @gegastaldi, @msfm, @neugens, @antoine_sd, @lincolnthree, @heiko_braun, and several others for a warm welcome to Red Hat.

Now looking forward to start with the new hire orientation tomorrow!

 

Welcome to “Miles to go” 2.0

After having authored ~1400 blogs at blogs.oracle.com/arungupta (titled “Miles to go” and hence 2.0 in the title here), this blog cannot really start with “Hello Blogsphere” unlike my first blog on Aug 2, 2005. This blog would rather be a continuation of all the entries posted there until now. All the great content that you’ve seen on blogs.oracle.com/arungupta will stay there, but any new content will now be exclusively published on this blog.

I heartily welcome you to this blog!

I’ll mostly be blogging about Java, Java EE, application servers, cloud, PaaS, tooling options, my travels/conferences around the world, community building, running, and some more.

I’m starting a new job at Red Hat on Oct 21, 2013 as Director, Developer Advocacy and you’ll definitely hear about their technologies and products as well. I’d love to hear what else would you like me to blog about.

As always, feel free to leave a comment on the blog or ping me on twitter at @arungupta if you want to reach out.

This blog title is inspired by this lovely poem by Robert Frost …

The woods are lovely, dark, and deep,
But I have promises to keep,
And miles to go before I sleep…

And my version …

There are a tons of cities/countries to visit…
Plenty of User Groups to spread the fever …
Lots of conferences to speak at …
And miles to go before I sleep …