As one of the three core specifications introduced with Java EE 8, the
new Java EE Security API is an essential addition to your Java EE toolkit, and
thankfully not terribly difficult to learn. Find out how the Java EE Security
API supports enterprise security in cloud and microservices platforms, while
introducing modern capabilities such as context and dependency
injection.

Functional pipelines can greatly increase the efficiency and performance of your
code, especially when combined with lazy evaluation and parallelization. In this
article you'll learn the rules of functional purity, and why you should always strive to keep lambda expressions pure in your functional pipelines.

The new JSON Binding API binds Java and JSON seamlessly, and its default mappings satisfy many simple use cases. JSON-B's default configurations will be intuitive for most developers, and cover a wide range of serialization and deserialization options and scenarios.

Find out how Scala's powerful type-system and its capabilities for
functional programming can provide an excellent canvas for dealing with
microservice composition and the problems that can arise from it. This article
will also focus on a model-driven development style. Microservices often
implement a Bounded Context, a concept from domain-driven design that maps a
specialized subset of the domain model. It's important to ensure that domain
concepts continue to stand out clearly and don't get compromised in the
presence of concurrency and error-handling routines.

The JSON Binding API makes customizing data serialization and
deserialization easy and intuitive, and it puts a lot of power in your hands.
Learn how to use and combine annotations and runtime configuration to control
the binding and appearance of properties, fields, date and time formats, and
more. Then get started using JSON-B adapters and low-level serializers and
deserializers to change the logic of operations in JSON-B.

If you've been on the fence about upgrading to the new JUnit 5, this
tutorial should convince you. Get started with the JUnit Jupiter API and the
new annotations, assertions, and assumptions that are about to rock your
world.

Find out how JUnit Vintage has you covered for backward compatibility
with older versions of JUnit, then get started with JUnit Jupiter extensions
for parameter injection, paramaterized tests, dynamic tests, and custom
annotations in the new JUnit 5.

Whereas lambda expressions rely on internal parameters and constants,
closures look to variables for additional information. Find out how to use
closures to carry state from a defining context to the point of execution in
your programs.

The next edition of the Java enterprise platform is built for the cloud
and reactive programming, and will shape enterprise application development
for years to come. Get your first look at new APIs and upgrades for Java
enterprise security, JSON binding, HTTP/2 server push, and more.

It's been a long wait, but Java EE 8 introduces powerful JSON binding features to the core Java enterprise platform. Get started with default features, custom annotations, and runtime configurations in the new Java API for JSON Binding.

If there is one thing that IBM WebSphere Liberty gives you, it's the
freedom, and flexibility, to dynamically create applications both on-premises
and in the cloud. This article highlights the top five tutorials in
developerWorks for WebSphere Liberty.

In this tutorial series, you'll learn how to use Docker, Eclipse, and
Bluemix to develop, extend, and host your own Minecraft servers. Find out how
to use Eclipse to build Minecraft plugins, test them locally using Docker, and
use Bluemix to host your Docker containers on the Internet. You'll also
harness the power of IBM Watson from within Minecraft for more educational and
interactive game play. In Part 3, you learn how to take the plugin that you
built in Part 2 to the next level -- by getting it running on the web in
Bluemix.

Spring Framework 5.0 will change how developers understand and build Spring-based applications for years to come. Find out how Spring 5 integrates functional and reactive programming models into its core architecture, updates major dependencies, and trades legacy baggage for notable performance boosts--all while retaining that familiar Spring Framework look-and-feel.

Can’t get enough of Maven? Neither can we! Learn how plugin goals map to
the Maven lifecycle, then get started with four plugins that will take your
projects to the next level, including Maven Site from GitHub and Maven Cargo
from Codehaus.

In Java 8, lambda expressions are treated as a type of functional interface.
Learn how this design decision supports backward compatibility with older versions of
the language, then see examples of both custom and built-in functional interfaces in a Java program. Find out why using built-in interfaces is usually optimal, even in cases where a custom interface might seem more obvious.

Get an introduction to the structure, syntax, and programming paradigm
of the Java language and platform in this two-part tutorial. Learn the Java
syntax that youre most likely to encounter professionally and Java programming
idioms you can use to build robust, maintainable Java applications. In Part 1,
master the essentials of object-oriented programming on the Java platform,
including fundamental Java syntax. Get started with creating Java objects and
adding behavior to them, and conclude with a summary of Java coding best
practices.

This code shows you how to use the node.js API for the Watson
Personality Insights service. Given some text, Watson analyzes the openness,
conscientiousness, extraversion, agreeableness, emotional range, and needs of
the speaker.

This code shows you how to use the Java API for the Watson language
translator service. Given some text, a source language, and a target language,
Watson translates that text and returns one or more translations to
you.

This code shows you how to use the node.js API for the Watson Tone
Analyzer service. Given some text, Watson evaluates the tone, looking for
qualities such as the speaker's levels of anger, disgust, joy, fear, and
sadness.

Short, concise lambda expressions support code readability, which is one of the
key benefits of programming in the functional style. In addition to being hard to
read, multiline lambdas are also hard to test and reuse, which can lead to duplication
of effort and poor code quality. In this installment, learn to write single-line lambdas for code that is easier to read, test, and reuse.

Microservices are taking the development world by storm. In this 3-part
series, we'll cover why they matter, what factors to consider in planning your
approach to microservices, the role of data factoring, and a step-by-step
migration process. Part 1 introduces microservices and discusses
considerations for refactoring your applications to take advantage of a
microservices architecture.

In this tutorial series, you'll learn how to use Docker, Eclipse, and
Bluemix to develop, extend, and host your own Minecraft servers. Find out how
to use Eclipse to build Minecraft plugins, test them locally using Docker, and
use Bluemix to host your Docker containers on the Internet. You'll also
harness the power of IBM Watson from within Minecraft for more educational and
interactive game play. In Part 2, you'll set up your local development
environment in Eclipse, then develop, build, and export your own server-side
Minecraft plugin into a local Docker image.

In this tutorial series, you'll learn how to use Docker, Eclipse, and
IBM Cloud to develop, extend, and host your own
Minehttp://www.ibm.com/developerworks/i/twitterdw-26796-minecraftseries.jpgcraft
servers. Find out how to use Eclipse to build Minecraft plugins, test them
locally using Docker, and use IBM Cloud to host your Docker containers on the
Internet. You'll also harness the power of IBM Watson from within Minecraft
for more educational and interactive game play. In Part 1, you'll set up your
local Minecraft and Docker development environment, and see the power of
Docker for building custom servers for Minecraft. You'll even get started
playing with Minecraft on your own locally hosted server!

This code shows you how to use the node.js API for the Watson Language
Translator service. Given some text, a source language, and a target language,
Watson translates that text and returns one or more translations to
you.

This code shows you how to use the Java API for the Watson natural
language classification service. Given some text and a context, Watson
analyzes the text and returns a list of categories relevant to that
text.

This code shows you how to use the node.js API for the Watson natural
language classification service. Given some text and a context, Watson
analyzes the text and returns a list of categories relevant to that
text.

This code shows you how to use the Java API for the
Watson Personality Insights service. Given some text, Watson analyzes
the openness, conscientiousness, extraversion, agreeableness,
emotional range, and needs of the speaker.

This code shows you how to use the Java API for the Watson tone analysis
service. Given some text, Watson evaluates the tone, looking for qualities
such as the speaker's levels of anger, disgust, joy, fear, and
sadness.

Migrate existing applications to IBM Bluemix services such as SQLDB,
Session Cache, and Auto-Scaling. The sample application you will work with is
CloudTrader, a new app created from a ten-year-old day trading
application.

Pass-through lambda expressions come in a few varieties, but they are almost always more trouble than they're worth.
Learn how to identify common varieties of pass-throughs in your code, then see what happens when you replace each one with a simple and expressive method reference.

Microservices are taking the development world by storm. In this 3-part
series, "Refactoring to microservices," we'll cover why they matter, what
factors to consider in planning your approach to microservices, the role of
data factoring, and a step-by-step migration process. Part 3 lays out a
roadmap for transforming your applications from a monolith to a set of
microservices.

Multithreaded programming is never easy, but it does help to understand
how the JVM processes subtly different code constructs. Steven Haines shares
five tips that will help you make more informed decisions when working with
synchronized methods, volatile variables, and atomic classes.

JDBC, or Java Database Connectivity, is one of the most frequently used
packages in the entire JDK, and yet few Java developers use it to its fullest
-- or most up-to-date -- capacity. Ted Neward offers an introduction to newer
JDBC features like ResultSets that automatically scroll and update on the fly,
Rowsets that can work with or without an open database connection, and batch
updates that can execute multiple SQL statements in one fast trip around the
network.

Some Java tools defy categorization and are frequently collected under
the rubric of "things that work." This installment of 5 things offers up a
collection of tools you'll be glad to have, even if you end up storing them in
your kitchen drawer.

Swing is an older toolkit, developed long before the advent of beautiful
user interfaces, and it's missing some of the components you might need for
building rich UIs. Fortunately, open source projects like Substance, SwingX,
and the Java Look-and-Feel Graphics Repository make up the difference. Author
Steven Haines shows you how to painlessly add tree tables, syntax
highlighting, and more to your Swing UIs.

You might be familiar with profiles, but did you know that you can use
them in Maven to execute specific behaviors in different environments? This
installment in the 5 things series looks beyond Maven's build features, and
even its basic tools for managing the project life cycle, delivering five tips
that will improve the productivity and ease with which you manage applications
in Maven.

The Java 6 Collections API is far more than a replacement for arrays,
though that's not a bad place to start. Ted Neward dispenses five tips for
doing more with Collections, including a primer on customizing and extending
the Java Collections API.

If it's news to you that the JDK ships with the full-featured profiler
JConsole, you'll be even more surprised to learn about the five stand-alone
profiling utilities introduced in this article. Find out how lightweight (and
in some cases experimental) Java process monitoring and analysis tools can
help you hone in on performance bottlenecks like thread starvation, deadlocks,
and object leaks.

Many Java developers never think beyond the basics of JARs -- only using
them to bundle classes before shipping them off to the production servers. But
a JAR is more than just a renamed ZIP file. Learn how to use Java Archive
files at their fullest capacity, including tips for jarring Spring
dependencies and configuration files.

In addition to concurrency-friendly Collections, java.util.concurrent
introduced other pre-built components that can assist you in regulating and
executing threads in multithreaded applications. Ted Neward introduces five
more of his Java programming must-haves from the java.util.concurrent
package.

Writing multithreaded code that both performs well and protects
applications against corruption is just plain hard -- which is why we have
java.util.concurrent. Ted Neward shows you how concurrent Collections classes
like CopyOnWriteArrayList, BlockingQueue, and ConcurrentMap retrofit standard
Collections classes for your concurrency programming needs.>

You can take Java Collections anywhere, but don't take them for granted.
Collections hold mysteries and can make trouble if you don't treat them right.
In this installment of 5 things, Ted Neward explores the complex and mutable
side of the Java Collections API, with tips that will help you do more with
Iterable, HashMap, and SortedSet, without introducing bugs to your code.

Endless looping isn't the only way to iterate collections in your code.
Function Composition and Collection Pipeline are two patterns that let you use
expressions, rather than statements, to sort collections in Java.

Continue familiarizing yourself with object-oriented programming on the
Java platform. This second half of the Introduction to Java programming
tutorial introduces the more-sophisticated syntax and libraries you need to
develop complex, real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need in order to develop
complex, real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

Learn the structure, syntax, and programming paradigm of the Java
platform and language. Start by mastering the essentials of object-oriented
programming on the Java platform, and progress incrementally to the
more-sophisticated syntax and libraries that you need to develop complex,
real-world Java applications.

This fourth installment of the Java Streams series identifies and
explains factors that determine the effectiveness of parallel processing,
putting them into historical and technical context. An understanding of these
factors provides a foundation for making optimal use of the Streams library
for parallel execution. (The next installment applies the principles outlined
here directly to Streams.)

This fifth and final installment of the Java Streams series continues the previous
installment's discussion of factors that influence the effectiveness of
parallel processing, and applies them to the Streams library. Find out why
some stream pipelines parallelize better than others, and see how to analyze
your own streams code for parallel performance.

Explore the Java Streams library, introduced in Java SE 8, in this
series by Java Language Architect Brian Goetz. By taking advantage of the
power of lambda expressions, the java.util.stream package makes it easy to run
functional-style queries on collections, arrays, and other data
sets.

Explore the Java Streams library, introduced in Java SE 8, in this
series by Java Language Architect Brian Goetz. By taking advantage of the
power of lambda expressions, the java.util.stream package makes it easy to run
functional-style queries on collections, arrays, and other data sets. In this
installment, learn how to use the java.util.stream package to aggregate and
summarize data efficiently.

Explore the Java Streams library, introduced in Java SE 8, in this
series by Java Language Architect Brian Goetz. By taking advantage of the
power of lambda expressions, the java.util.stream package makes it easy to run
functional-style queries on collections, arrays, and other data sets. In this
installment, learn how to fine-tune your queries for maximum
efficiency.

To deliver on your API strategy, you need to understand your key
stakeholders, their needs, and how API Connect can help to meet those needs.
In this article you learn about these essential elements of an API strategy. You see
how IBM API Connect goes beyond the limits of an API management platform,
allowing your organization to not only manage and secure its APIs, but to also
create and run them. Finally, you see how quickly you can get started with API
Connect.

Embrace the API economy by implementing the API economy value chain. In
this article, you learn how to implement Java APIs and discover them by using
WebSphere Liberty. You see how to import those APIs into IBM API Connect and
publish them to a developer portal. By using this approach, app developers
have a single location to find APIs, learn how to use them, and simplify
integrating those APIs into their apps.

In this 3-part series, learn why microservices matter, what factors to
consider in planning your evolution to microservices, the role of data
factoring, and a step-by-step migration process. Part 2 delves into data
decisions, and shows examples where refactoring your data for a
microservices-based approach is (and is not) the best idea.

Elasticsearch is taking the full-text search world by storm by combining
an easy-to-use REST API with automated cluster scaling. Get a hands-on
introduction to using Elasticsearch from a command shell and from within a
Java application.

In this tutorial series, you'll learn how to use Docker, Eclipse, and
Bluemix to develop, extend, and host your own Minecraft servers. Find out how
to use Eclipse to build Minecraft plugins, test them locally using Docker, and
use Bluemix to host your Docker containers on the Internet. You'll also
harness the power of IBM Watson from within Minecraft for more educational and
interactive game play. In Part 4, you'll learn how to extend the Spigot server
with a plugin that uses Watson cognitive services to add a little science to
your game play.

Use Docker to code more productively and expand your skills more
efficiently. Declutter your development environment, eliminate dependency
conflicts, and reduce development and learning time by working with
containerized applications.

As new kinds of devices connect to the internet, they generate petabytes
of data every day. Companies analyze this valuable data to better understand and meet their customers’ needs.
Streaming big data analytics gives users the ability to analyze data in real
time, which is useful in time-critical applications like fraud detection. In
this article, learn how to use the Spark Streaming platform for real-time keyword detection.

Implement user management for your Play Framework applications and put
your Scala skills to work. Pablo Pedemonte takes you through building a basic
Play application that handles authentication and authorization. You can even
use the application code as a starter for your own Play projects to shorten
user-management development time.

In this article, we examine how to run stand-alone Java programs in
Bluemix. We also share some expert hints on navigating the Cloud Foundry
documentation, using the CF command-line tool, and debugging in Cloud Foundry
and Bluemix.

Want to quickly migrate a Tomcat application to IBM Bluemix using
Eclipse tooling? This tutorial provides step-by-step directions to set up
Eclipse tooling to analyze, migrate, and deploy a Tomcat application to the
Liberty for Java runtime in Bluemix. We show you how to set up both the Java
runtime and the SQL Database, and how to bind the application to the database.