WS-Security symmetric encryption lets you secure message exchanges
between client and server without requiring client certificates, simplifying your web service configuration while also providing performance benefits. You can use it directly or in the bootstrap for WS-SecureConversation exchanges. In this article, you'll learn how to configure and use symmetric encryption with the three main open source Java web services stacks: Axis2, Metro, and CXF. You'll also see how plain WS-Security symmetric encryption performance compares to WS-SecureConversation performance.
Since version 1.5, the Java language has provided APIs supporting Unicode supplementary characters that can't be represented by a single 16-bit char data type. This article discusses the features of these APIs, shows their correct usage, and evaluates their processing performance.
The More New I/O APIs for the Java Platform (NIO.2) is one of the
major new functional areas in Java 7, adding asynchronous channel functionality and a
new file system API to the language. Developers will gain support for
platform-independent file operations, asynchronous operations, and multicast socket
channels. Part 1 of this two-part article focuses on the asynchronous channel APIs in
NIO.2, and Part 2 covers the new file system functionality.
Tired of waiting on the GUI to access your energy data? Want to access
your data quickly, even at remote locations?
With some basic Java programming skills, and investment of your time, you can take advantage the powerful capabilities of the
Active Energy Manager REST APIs. This article starts with a basic understanding
of REST and RESTful programming and concludes
with the development of a AEM REST program for accessing and reporting power usage metrics.
Ruby is the current state-of-the-art language for constructing internal
domain-specific languages (DSLs). One of the best Ruby implementations is the
one that runs on the JVM: JRuby. In this installment of Evolutionary
architecture and emergent design, you'll learn how to leverage Ruby's
expressiveness yet keep the benefits of your existing (and future) Java code.
You'll see how to construct internal DSLs in Ruby as a way of capturing domain
Get an introduction to IBM pureQuery annotated methods–the quickest way to
implement a data access object using pureQuery. This article explains why a developer might choose to write a pureQuery data access object using the
annotated methods, discusses some of the differences between using pureQuery annotated methods and pureQuery built-in inline methods,
and gives a brief overview of the most powerful features of pureQuery annotated methods.
HTML5 gives browser-based applications rich features rivaling those of desktop software. In this JSF 2 fu installment, you'll see how you can get the best of the Java and HTML5 worlds by implementing an HTML5 composite component with JavaServer Faces (JSF) 2.
WS-Policy provides a general structure for configuring features and options that apply to a web service. You've seen it used for WS-Security configurations in this series, and perhaps elsewhere for other extension technologies such as WS-ReliableMessaging. In this article, you'll learn about the structure of WS-Policy documents and the ways you can attach policies to services in Web Service Description Language (WSDL), with security-configuration examples tried on Apache Axis2, Metro, and Apache CXF.
Objectify-Appengine is one of an emerging class of tools that extend the convenience of NoSQL, in this case by providing a Hibernate-style mapping layer between your application and the GAE datastore. Get started this month with Objectify's handy, JPA-friendly (but not dependent) API. Andrew Glover walks through the steps of mapping Twitter retweets into Bigtable, in preparation for deploying it in Google App Engine.
Clojure expert Stuart Sierra introduces you to new features in Clojure 1.2 that
solve the Expression Problem, a classic programming dilemma. Protocols let you extend
preexisting types to new methods, and datatypes let you extend preexisting methods to
new types — all without changing the existing code. You'll also see how Java interfaces
and classes can interact with Clojure protocols and datatypes.
For years, the Java zone has brought you top-quality technical content by some
of the best minds in the industry. But taking the time to read an in-depth, code-heavy
article can be difficult, even if it's about a topic that's critical to your day job.
This new podcast series, led by the engaging and technically curious Andrew Glover,
provides a new way to get information from the sources you trust most. Every few weeks, we'll publish a new discussion with an expert on the topics that are important to your job.
In this installment of JSF 2 fu, you'll learn five best practices for implementing JavaServer Faces composite components. By following these guidelines, you'll make it easy for page authors to extend your custom components.
How can you tell when emergent design is suitable? This final
installment of Evolutionary architecture and emergent design discusses the suitability of emergent design for various types of projects and how to tell when to make decisions. It concludes by recapping some of the series' key points.
Morphia is a type-safe, object-mapping library for MongoDB, an open source document-oriented database. This article explains the benefits of mapping documents to and from objects and shows how to use Morphia for this purpose. Then it demonstrates how to persist, load, delete, and query a Java domain model mapped to MongoDB.
IBM Optim Development Studio and the pureQuery Runtime include a
called ManageRepository that can be used to create, modify, export, import, and delete
pureQuery metadata that is stored in the SQL management repository. Setting up an SQL
management repository can be challenging using the ManageRepository utility command script. This tutorial
shows you how to create and manage an SQL repository using an Ant script. You
will also learn how to run the Ant script from within IBM Optim Development Studio.
Several years after the approval of Web Services Description Language (WSDL) 2.0 as a World Wide Web Consortium (W3C) standard, WSDL 1.1 is still the most widely used form of web service description. Despite its popularity, WSDL 1.1 has some issues, including a variety of schemas in use and variations in how web services stacks process WSDL documents. In this article you'll learn how WSDL 1.1 service descriptions are structured. You'll also see the basic structure of a Java tool for verifying WSDL documents and transforming them into a "best practices" form.
Alex Ruiz introduces Project Lombok in this article, discussing some of
the programming sugar that makes it unique, including annotation-driven code
generation and clean, compact, and readable code. He then draws your attention to one
of the more rewarding uses of Lombok: extending it with custom AST (Abstract Syntax
Tree) transformations. Extending Lombok will enable you to generate your own project-
or domain-specific boilerplate code, but it does require a fair amount of work. Alex
concludes with his tips for easing through key stages of the process, along with a
freely usable custom extension for JavaBeans.
Memory Analyzer is a powerful tool for diagnosing memory leaks and
footprint problems from the dump of a Java process. It can also give you detailed insight into your Java code and enable you to debug some tricky problems from just one dump, without needing to insert diagnostic code. In this article, you'll learn how to generate dumps and use them to examine the state of your application.
This article compares three major Platform as a Service (PaaS) offerings for Java developers: Google App Engine for Java, Amazon Elastic Beanstalk, and CloudBees RUN@Cloud. It analyzes each service's unique technical approach, strengths, and weaknesses, and also discusses common workarounds. Learn the basic concepts underlying Java PaaS and understand how to choose a service that suits your development needs.