 |
All java.net Articles by Topic
Accessibility
|
Vocal Java
Disabled users depend on assistive technologies to help them work with computers, and this technology is built into Swing. In this article, Jeff Friesen shows how to use a free implementation of the Java Speech API to create a program that reads the text of Swing and AWT components as a user mouses over them.
by Jeff Friesen
|
Community
|
A Discussion of the BlueJ IDE with Two of Its Developers: Michael Kölling and Ian Utting
BlueJ is a simplified Java IDE, built upon NetBeans technology with the expressed purpose of introducing new CS students to object-oriented programming at the high school and introductory university levels. In this interview, Gary Thompson talks with two of BlueJ's developers, Michael Kölling and Ian Utting.
by Gary Thompson
| |
Students and the Mural Community
The Mural project is building a community to provide open source solutions to data management problems. It's also allowing college students to contribute to the project as part of their coursework. In this interview, java.net community manager Marla Parker speaks with Sun's Sandeep Konchady about the opportunity Mural offers.
by Marla Parker
| |
The Open Road: Building the JDK
Ready to work with the GPLed JDK from the OpenJDK project? Your first order of business will probably be getting the code compiled and running on your machine. And that's not an easy process. In this installment of The Open Road, Elliotte Rusty Harold relates the step-by-step process of building the JDK on Linux.
by Elliotte Rusty Harold
| |
Chatting About Curriki
Curriki.org is building an Open Source Curriculum (OSC) of free educational materials for grades K-12. In this interview, java.net program manager Gary Thompson interviews Curriki executive director Dr. Barbara "Bobbi" Kurshan and chief technology officer Joshua Marks.
by Gary Thompson
| |
The Open Road: Looking Ahead to Java 7
Kicking off a new column about the development of Java 7, David Flanagan takes a look at the OpenJDK and JDK7 projects and their processes, language changes that have been mentioned as possible candidates for Java 7, and major new APIs that are tracking for inclusion in the new version.
by David Flanagan
| |
Top 50: Interview with Kohsuke Kawaguchi of the Hudson Project
In this installment of our series of interviews with developers from some of java.net's most active and prominent projects, Marla Parker interviews Kohsuke Kawaguchi about the Hudson project, a continuous integration server used by large companies and open source projects.
by Marla Parker
| |
Top 50: Interview with Joe Walker of the Direct Web Remoting Project
In the second of our series of interviews with developers from some of java.net's most active and prominent projects, Marla Parker interviews Joe Walker about the Direct Web Remoting project, which provides an infrastructure for developing Java-based Ajax web applications
by Marla Parker
| |
j1-2k7-mtT14: Keaton: Calling QTKit from Java
Want to play audio, video, or multimedia in a Java application? QuickTime for Java opened the door to Apple's extensive QuickTime library, but times are changing and QTJ seems headed for deprecation. In fact, Apple is pushing Mac developers away from the old procedural-C QuickTime API altogether. In its place is a new object-oriented, Cocoa-aligned framework called QTKit. Great for Objective-C programmers, but what about the Java crowd? The Keaton project, something of a successor to Lloyd, will create a one-to-one mapping of Java objects to Obj-C objects, so you can work with QTMovies and QTMovieViews directly in Java code. Come see this talk to see how it works and how you can use it in your Mac Java application.
by Chris Adamson
| |
j1-2k7-mtT12: Open Software Factory
The project Open Software Factory (aka openmodelerp) is an ongoing process to develop a set of tools and a corresponding set of methods for effective Model-Driven Software Development (MDSD).
Abstraction is fundamental to software development. Abstractions are provided by models. Modeling and model transformation constitute the core of MDSD. Models can be refined and finally be transformed into a technical implementation, i.e., a software system.
This talk will begin with a quick overview of basic MDSD concepts. The remainder of the talk will discuss how the Open Software Factory supports MDSD. We will summarize our current achievements and briefly outline our plans for the future. The talk will share our project's experience in both developing Open Software Factory and applying it to develop to simple 2 Demonstration applications. The following issues will be briefly mentioned in the talk.
- The apparent productivity gains of using OSF and the MDSD paradigm in general.
- The benefits of using OSF to make models more abstract, independent of their implementation.
- The efficient re-targeting of an application model to a new platform.
- The automation of repetitive parts of software development that are inherent when using current infrastructures (J2EE, Struts, Spring, Hibernate, JSF, etc ...).
- Combining the use of OSF with best practices of Agile Software Development and the resulting synergy.
- Implications for other development tools such as NetBeans to support MDSD.
- Current challenges for the Java Open Source community to have a complete toolchain to support MDSD, not tied to any specific vendor.
by Roy Feldman
| |
j1-2k7-mtT03: Web continuations with RIFE and Terracotta
State management has always been a complex and tricky part of web application development. Continuations simplify this and automatically allow you to create a one-to-one conversation between users and a web application. State preservation and flow control no longer need to be handled manually, bringing you back to the simplicity of single user console applications. Remember 'scanf()'?
This presentation will introduce continuations from general principles, followed by practical examples that explain how they benefit web application development and their frequent usage patterns. Finally, automatic fail-over and scalability will be demonstrated through the integration with Open Terracotta.
by Geert Bevin
| |
j1-2k7-mtW07: Closures Q and A
In a followup to his JavaOne 2007 technical session, Neal Gafter offers a 15-minute question-and answer session on a proposal to add closures to the Java programming language. He makes the case for Closures making Java programs easier to read, and handles questions about closure expression serializability, continuations, patterns and boilerplate that suggest the need for closures, and whether closures really fit into the language.
by Neal Gafter
| |
j1-2k7-mtH03: Substance Look and Feel
Substance look and feel aims to provide a configurable and customizable production-quality Java look and feel library for Swing applications. This mini-talk will show the following Substance features: Using Substance in your Swing application,
Using core themes, watermarks and skins,
Writing your own theme, watermark and skin,
Using animation API,
Additional UI elements available under Substance,
Substance plugin infrastructure and examples for SwingX, Flamingo and NetBeans
by Kirill Grouchnikov
| |
j1-2k7-mtT09: Teaching Java: from High School Student to Professional Developer
It goes without saying that programming is the key skill for software development professionals. It is also, traditionally, very hard to teach and learn. This talk by Ian Utting will introduce a set of free tools designed to introduce students to OO programming via Java in High Schools (Greenfoot), at the start of the University careers (BlueJ), and as they progress towards using full-scale professional IDEs (NetBeans/BlueJ Edition).
by Chris Adamson
| |
j1-2k7-mtW01: Music Programming with Java (for dummies)
In this session, you'll learn about a project that brings music composition down to the absolute 'dummy' music programmer. Basically, the project, which is open sourced on dev.java.net, provides a visual designer on top of the JFugue API, which is a simplified MIDI API. Come see how simple it can be to compose music and, if you like, join the project and extend the designer.
by Chris Adamson
| |
JavaOne 2007 Community Corner Podcasts: Project Darkstar Interview
Project Darkstar is a collection of technologies around providing high-performance, high-uptime, low-latency servers for massively-multiplayer online games and other applications. A Darkstar Community has recently been approved for java.net and in this interview, Darkstar founder Jeff Kesselman talks with java.net editor Chris Adamson about the project, what it does, and what people are doing with it.
by Chris Adamson
| |
JavaOne 2007 Community Corner Podcasts: Best of 2006
Once again, the java.net Community Corner booth will be the place to be for dozens of 20-minute mini-talks delivered by members of the java.net community, about their projects, their communities, and other topics that interest them. And once again, java.net will record and offer all the mini-talks as a podcast feed. In this "feed seed," java.net editor Chris Adamson compiles a selection of highlights from some of the most popular talks from the 2006 Community Corner.
by Chris Adamson
| |
Top 50: Interview with John Catherino of the Cajo Project
Kicking off a series of interviews with developers from some of java.net's most popular and prominent projects, Marla Parker interviews John Catherino about the Cajo project. This project distributes objects between multiple JVMs, allowing you to scale large applications, or transparently remote a GUI.
by Marla Parker
| |
Holiday Pictures 2006
Many people take a week near the end of the year as vacation and travel or spend a little extra time with family. Duke is no exception. We're looking for your pictures of Duke on vacation.
by Chris Adamson
and Daniel H. Steinberg
| |
java.net Editorial: Not a Hoax
The day that some never thought would come, has. Sun's Java SE and ME runtimes, and the GlassFish EE application server, have all been released under terms of the GPL. In this editorial, java.net editor Chris Adamson takes a look at the open source Java release and what it offers to the java.net community
by Chris Adamson
| |
Jini Beyond the Choir
In a video recreation of his presentation from the 10th Jini Community Meeting, Daniel Steinberg looks at the current state of Jini adoption and asks the questions of what the technology does that is of interest to developers and end users, and how to get that message out more successfully.
by Daniel H. Steinberg
| |
Mobicents: JSLEE for the People, by the People
VoIP services depend on high-performance, low-latency servers that can manage the activity of thousands of users logging in, logging out, starting connections with each other, etc. JAIN SLEE is a Java spec for such a system, and java.net's Mobicents project represents its first open source implementation. Ivelin Ivanov introduces JAIN SLEE design and the Mobicents implementation.
by Ivelin Ivanov
| |
Duke's Vacation 2005
Duke's taking the rest of the year off, and java.net members have the pictures to prove where he's been and what he's up to.
by Chris Adamson
| |
Holiday Pictures 2005
We're taking it easy the last week of 2005. Many people take this week as vacation and travel or spend a little extra time with family. Duke is no exception. We're looking for your pictures of Duke on vacation.
by Chris Adamson, Daniel H. Steinberg
| |
Creating and Managing an Open Source Project, Part 1
Do you want to kick off your own open source project? The tools can be provided by java.net, and it helps if you know how to best use them. In this first part of a series of article on open source project management, Michael Nascimento Santos helps you consider whether you need to create a new project, what license to use, and how to navigate java.net's project-creation tools.
by Michael Nascimento Santos
| |
Happy Anniversary, java.net
Your pictures of Duke and family celebrating java.net's second anniversary.
by Daniel H. Steinberg
| |
Anniversary Pictures
We're coming up to the second anniversary of java.net, and looking for your pictures of Duke and family celebrating this event.
by Daniel H. Steinberg
| |
April Fools 2005
What Java/technology April Fools stories would you have run this year?
by Daniel H. Steinberg
| |
java.net Success Story: OpenSymphony
OpenSymphony is a collection of projects that share common goals: good design, real-world applicability, and loose coupling. The coupling is so loose, in fact, that many developers don't even realize that subprojects like SiteMesh and OSCache share a common parent. This java.net success story looks at the project's history and accomplishments, based on an interview with project leaders Hani Suleiman and Patrick Lightbody.
by Chris Adamson
| |
Duke's Vacation 2004
Here are some of the pictures readers sent us of Duke on vacation.
by Daniel H. Steinberg
| |
Holiday Pictures
We're taking it easy the last week of 2004. Many people take this week as vacation and travel or spend a little extra time with family. Duke is no exception. We're looking for your pictures of Duke on vacation.
by Daniel H. Steinberg
| |
java.net Success Story: JOGL
High-performance 2D and 3D graphics are available to Java programmers thanks to JOGL, a java.net project that exposes the industry-leading OpenGL graphics API to Java. This java.net success story looks at how the project came together and how it's paying off for games and other Java applications.
by Chris Adamson
| |
The Blacksmith and the Bookkeeper, Part 3
This series of articles explores the role of the blacksmith and the bookkeeper in 19th century economies, explains the extinction of the one and the growth of the other, and compares the postmodern role of programmer to both, culminating in forecasts for the likely evolution of software programming as a viable future profession.
by Max Goff
| |
The Blacksmith and the Bookkeeper, Part 2
This series of articles explores the role of the blacksmith and the bookkeeper in 19th century economies, explains the extinction of the one and the growth of the other, and compares the postmodern role of programmer to both, culminating in forecasts for the likely evolution of software programming as a viable future profession.
by Max Goff
| |
The Blacksmith and the Bookkeeper, Part 1
This series of articles explores the role of the blacksmith and the bookkeeper in 19th century economies, explains the extinction of the one and the growth of the other, and compares the postmodern role of programmer to both, culminating in forecasts for the likely evolution of software programming as a viable future profession.
by Max Goff
| |
Happy Anniversary java.net
Your pictures of Duke and family celebrating java.net's first anniversary.
by Daniel H. Steinberg
| |
Anniversary Pictures
We're coming up to the first anniversary of java.net, and looking for your pictures of Duke and family celebrating this event.
by Daniel H. Steinberg
| |
java.net Success Story: Open For Business
The Open For Business project has developed an industrial-strength infrastructure for a wide variety of business applications. This java.net success story profiles the project and its founders.
by Chris Adamson
| |
Sun's Open Letter to Eclipse Membership
The following was sent by Sun to the Eclipse board and membership on January 29, 2004 and then posted on January 30 as an open letter. We've decided to post this to provide a place to discuss the issues raised in this letter.
| |
Duke's Vacation 2003
Here are some of the pictures readers sent us of Duke on vacation.
by Daniel H. Steinberg
| |
Holiday Pictures
We're taking it easy the last week of 2003. Many people take this week as vacation and travel or spend a little extra time with family. Duke is no exception. We're looking for your pictures of Duke on vacation.
by Daniel H. Steinberg
| |
Letter to the Editor
Fahrin Kabir's questions about Java technology.
| |
Letter to the Editor
Andy Freeman leads off our Letters to the Editor with some thoughts on how we can improve java.net.
| |
First Community Meeting
java.net is itself a java.net community. We are in
the process of organizing and figuring out how to best be a community. During
this year's JavaOne conference, java.net's first community meeting was held.
Here are the unedited notes of one of the Sun employees that helped steer this
project before launch.
by Danese Cooper
| |
A Vision for java.net
Richard Gabriel presents the original vision for java.net and welcomes you to a community-run site for Java developers.
by Richard P Gabriel
| |
The Javapedia Project
The goal of the Javapedia Project on java.net is to create a complete and accurate online encyclopedia of all things Java. Anyone with a question about Java technology will hopefully be able to find an answer in it. Javapedia entries would cover all aspects of the Java language, class libraries, history, philosophy, you name it -- if it relates to Java, it belongs in the Javapedia.
by Ron Goldman
|
Databases
|
Query by Slice, Parallel Execute, and Join: A Thread Pool Pattern in Java
Pagination is a much-needed feature; one that's harder than it looks. For large datasets, reading all results into memory is impractical, if not dangerous, but only fetching small chunks can make it difficult to apply business logic across all results. Binildas C. A. shows how to combine the database's ROWNUM function with Java SE 5's thread pools to create highly effective pagination.
by Binildas Christudas
| |
Adopting a Java Persistence Framework: Which, When, and What?
Java programmers have a number of persistence frameworks to choose from, and far from being redundant, each is based on significantly different beliefs, assumptions, and ideal use-cases. In this article, Sharad Acharya takes a comparative look at JPA, Entity EJBs, Hibernate, and TopLink, to help you understand which is right for your needs.
by Sharad Acharya
| |
What's New in JDBC 4.0?
Java SE 6 offers a new version of the platform's database support: JDBC 4.0. Sharad Acharya shows off the new features, including simplified driver loading, better exception reporting and handling, support for more data types, and more.
by Sharad Acharya
| |
JavaDB End-to-End Security
The all-Java database JavaDB (aka Derby) is known for its embeddability, but what about security? Can you put it out there for enterprise applications and keep data safe? Masoud Kalali shows the steps you can take to secure your JavaDB data.
by Masoud Kalali
| |
Synchronizing a Web Client Database: LocalCalendar and Google Calendar
You have a web application, but in some cases your users want to be able to work locally, off-network, and synch up later. In this article, David Van Couvering shows how Java DB can be used to achieve this.
by David Van Couvering
| |
More Persistence for Client-Side Developers
Continuing his introduction to the EJB 3 Java Persistence API as seen by the desktop developer, Joshua Marinacci shows how to put together a complete and fairly sophisticatedaddress book program, with one-to-many relationships, useful inheritance approaches, and other powerful techniques.
by Joshua Marinacci
| |
An Introduction to Java Persistence for Client-Side Developers
The EJB3 Java Persistence API may have been meant for enterprise developers, but there's no reason that desktop developers can't use it. Joshua Marinacci shows how a lightweight combination of Hibernate, HSQLDB, and the JPA can make saving address book entries a snap.
by Joshua Marinacci
| |
Agile Legacies: Using Iterative Methods to Import Legacy Data
Oftentimes, your new code replaces an older system whose data must be migrated to the new system. This isn't a process that gets a lot of thought, but John Ferguson Smart says it probably should. In this article, he shows how an iterative, test-driven approach can save you a lot of headaches later.
by John Ferguson Smart
| |
App-Managed JDBC DataSources with commons-dbcp
Need a connection pool but maybe not one provided by a container? This need still comes up in special cases--tightly managed environments, CD-ROM distribution, etc.--and there's no need to reinvent the wheel yourself. Ethan McCalllum shows how the Apache Commons package commons-dbcp can help.
by Ethan McCallum
| |
Unit Testing Hibernate Mapping Configurations
Hibernate's use of mapping files to define object-relational mappings means that these files are as much a part of your program as the Java code... and sometimes they don't work. Johannes Brodwall shows how you can apply unit testing techniques to test and verify your Hibernate mappings.
by Johannes Brodwall
| |
An Open Source Database Benchmark
It's hard to make decisions about databases when you don't have an accurate way to measure their performance vis-à-vis your application's requirements. PolePosition offers a solution--an open source database benchmarking tool that you can customize with your own tests. In this article, Rick Grehan takes it out for a spin.
by Rick Grehan
| |
Laszlo: An Open Source Framework for Rich Internet Applications
William Grosso gives you a quick overview of Laszlo, an open source rich internet applications development platform. After a high-level overview of what Laszlo is and how it works, you'll get a quick tour through some of the basic features of Laszlo, and see what's involved in building a very application in Laszlo. Finally, he looks at where it does and does not make sense to use Laszlo.
by William Grosso
| |
Your Hibernate-Powered Application is Ready for CMT
Using Hibernate with container-managed transactions is so simple that Hibernate's FAQ practically brushes off the question. Yet many report having a hard time getting it working. In this article, Olexiy Prohorenko shows how.
by Olexiy Prohorenko
| |
Core Java Data Objects Excerpt
This excerpt from Core Java Data Objects, "Getting Started with JDO," covers how JDO is able to transparently persist instances of Java classes, the basic JDO interfaces and how they are related, how to define a Java class that can be used with a JDO implementation, and how to connect to a datastore.
by Sameer Tyagi
| |
Berkeley DB, Java Edition II: Implementing Session Management
In the first article of this series, William Grosso covered the basics of using Berkeley DB. In this article, he walks through a more extended example of using it for session management. While this series doesn't illustrate the full power of Berkeley DB, it will give you a good feel for how to use it. And
you might be surprised at how complicated some aspects of using Berkeley DB
are.
by William Grosso
| |
Berkeley DB, Java Edition I: The Basics
William Grosso takes you through the basics of using the Java Edition of Berkeley DB, covering the basics of embedded databases and discussing Berkeley DB and some of the basic things you need to know in order to use it.
by William Grosso
| |
Lucene Intro
Lucene is a high-performance, scalable, search engine technology.
The first part of this article takes you through an example of using Lucene to index all the text files
in a directory and its subdirectories. The remainder provides examples of analysis and searching.
by Erik Hatcher
| |
Accessing Databases from Servlets and JSP Pages
Accessing data in a database or other data sources is an important task in Web programming. This article shows how you can do the most common database manipulations from servlets and JSP pages. This article begins with an introduction to JDBC followed by some examples of servlets that allow you to access the data in the database.
by Budi Kurniawan
|
Education
|
The ATM Object-Oriented Design and Implementation Case Study
Author/educator Paul Deitel provides an overview of the two-chapter ATM Object-Oriented Design and Implementation Case Study in "Java: How to Program", and discusses his experiences teaching it.
by Paul Deitel
| |
A Discussion of the BlueJ IDE with Two of Its Developers: Michael Kölling and Ian Utting
BlueJ is a simplified Java IDE, built upon NetBeans technology with the expressed purpose of introducing new CS students to object-oriented programming at the high school and introductory university levels. In this interview, Gary Thompson talks with two of BlueJ's developers, Michael Kölling and Ian Utting.
by Gary Thompson
| |
Reading the News with Sun's RSS Utilities
RSS is the syndication standard that powers web newsfeeds and podcasts, but at the end of the day, it's simple, parsable XML. A JSP tutorial from Sun includes a surprisingly capable RSS parser, and Chris Hardin shows how you can use it in your own applications.
by Chris Hardin
| |
Java Tech: The Sweet Song of the BlueJ, Part 2
BlueJ, an IDE for beginning Java programmers, has more under the hood than you might expect. In the second part of his survey of BlueJ, Java Tech columnist Jeff Friesen looks at BlueJ's support for debugging, unit testing, building executable JARs, its configurability, and more.
by Jeff Friesen
| |
Java Tech: The Sweet Song of the BlueJ, Part 1
It's hard to teach the object-oriented concepts of Java when the first thing the student sees is the very procedural public static void main (String[]). BlueJ offers a way to teach Java's OO concepts in a visual environment, allowing the student to connect and implement classes with mouse clicks and drags. In this installment of "Java Tech," Jeff Friesen introduces this educational tool.
by Jeff Friesen
| |
The Requisites of a Question-Management System
The Quaestio module of the java.net Schoolbus project hopes to make it easier for teachers and professors to manage the questions they use on tests, quizzes, and homework. As project contributor Felipe Gaucho explains, hammering out the needs, goals, and concepts of such a system is tricker than it looks.
by Felipe Gaucho
| |
Keep Changes Small: A Happy Jack Story
How do you reconcile the calls from agile processes for constant refactoring and integration with demands to deliver huge new pieces of functionality? In a sort of cubicle-era Socratic dialogue, Michael Ivey shows how developers can learn to do big things with small changes.
by Michael Ivey
| |
Extreme Software Engineering: A Hands-On Approach
These excerpts from the book Extreme Software Engineering: A Hands-On Approach present tutorials on testing first, with unit tests using JUnit and customer-written tests with the Fit framework.
by Daniel H. Steinberg
and Daniel W. Palmer
| |
Pragmatic Programmers, Part 2
Pragmatic Programmers Andy Hunt and Dave Thomas talk with Bill Venners about a gardening metaphor for software development, the reasons coding is not mechanical, and the importance of getting feedback during development by firing "tracer bullets."
by Bill Venners
| |
What I Want To Know About Your Process
Key to successful development are three cornerstones of good process: source control, change tracking, and regular builds. Process expert Michael Ivey looks at each one and shows why even the smallest project needs them.
by Michael Ivey
| |
Pragmatic Programmers, Part 1
Pragmatic Programmers Andy Hunt and Dave Thomas talk with Bill Venners about software craftsmanship, the importance of fixing the small problems in your code (the "broken windows") so they don't grow into large problems, and making design decisions that are reversible and adaptive.
by Bill Venners
| |
StarLogo
StarLogo is a fun (and free!) present to give your kids. The true gift is one of learning and sharing the learning experience with them. This article will explore StarLogo adventure projects, from a termite colony that displays emergent behavior to bumper turtles that familiarize us with the StarLogo environment. These projects demonstrate how kids can play and explore before learning how to program. Finally, avenues for further exploration will be illuminated and in the end, you might be surprised to find yourself playing with StarLogo long after the kids have gone to bed.
by Mike Clark
| |
Extreme Teaching: Introducing Objects
Teachers of object-oriented programming can use the Fit framework to create an executable spec for an assignment. The spec itself leads the students through the project.
by Daniel H. Steinberg
| |
Exploring the Java Research License
The Java Research License (JRL) was introduced at JavaOne as a new open source license for universities and research. A panel of java.net bloggers talk about the new license and invite you into the discussion.
by Daniel H. Steinberg
| |
The Javapedia Project
The goal of the Javapedia Project on java.net is to create a complete and accurate online encyclopedia of all things Java. Anyone with a question about Java technology will hopefully be able to find an answer in it. Javapedia entries would cover all aspects of the Java language, class libraries, history, philosophy, you name it -- if it relates to Java, it belongs in the Javapedia.
by Ron Goldman
|
EJB
|
Using Annotations on the Java EE 5.0 Platform
Java EE 5 achieves a high level of simplification over previous editions of the platform by using annotations for declarative programming. In this article, Sangeetha S. and Subrahmanya S. V. look into this approach and its many uses.
by Sangeetha S.
and Subrahmanya S. V.
| |
Migrating from EJB 2.x to EJB 3.0
EJB 3.0 makes life easier, but what if you've already got an EJB 2.x app written? How do you make the move? Should you? Sangeetha S and Subrahmanya S V look at the specifics of what changed in EJB versions and introduce strategies for making the move.
by Sangeetha S.
and Subrahmanya S. V.
| |
Validate Java EE Annotations with Annotation Processors
Annotations are one of Java 5's most compelling features, but their openness is in some ways a curse: there's nothing keeping you from declaring illegal combinations of annotations (like @Stateful and @Stateless). Annotation processors give you the opportunity to inspect annotations, either with the currently available Apt or or the upcoming JSR-269 annotation processor. Jason Li takes a look at both in this article.
by Jason Zhicheng Li
| |
Component Inheritance in EJB 2.0
Many think that that EJB 2.0 doesn't support inheritance for entity beans, and this has been a driver of support for POJO-based frameworks. However, David Musicant says that component inheritance is possible, explains what that means, and shows how to do it.
by David Musicant
| |
What's New in EJB 3.0
Enterprise JavaBeans (EJB) 3.0 breaks with many traditions, freeing developers from deployment descriptors, boilerplate methods, and other hassles, in favor of annotation-powered declarative programming. In this article, Krishna Srinivasan looks at 3.0's major differences.
by Krishna Srinivasan
| |
Your Hibernate-Powered Application is Ready for CMT
Using Hibernate with container-managed transactions is so simple that Hibernate's FAQ practically brushes off the question. Yet many report having a hard time getting it working. In this article, Olexiy Prohorenko shows how.
by Olexiy Prohorenko
| |
Testing Your Enterprise JavaBeans with Cactus
Test-driven development is an important technique, but Enterprise JavaBeans can be difficult to test in isolation. Cactus, from Apache's Jakarta project, makes this easy by bridging JUnit unit tests to server-side application containers. Olexiy Prohorenko shows how it works.
by Olexiy Prohorenko
| |
New Life for EJB
The proposed EJB 3.0 specification defines a new syntax to simplify development, but Rajat Taneja and Ganesh Prasad say it fails to address fundamental flaws in the model. Instead, they propose what they call "a better way."
by Ganesh Prasad
and Rajat Taneja
|
Extreme Programming
|
UISpec4J: Java GUI Testing Made Simple
GUI's are notoriously difficult to test, and the robot-based approach to automated testing makes agile development difficult, as you need finished GUIs before you can test. The UISpec4J project takes a different approach, and in this article Régis Medina and Pascal Pratmarty show how it works.
by Régis Medina
and Pascal Pratmarty
| |
Code Reviews
Need to be sure your program really runs right? Oh sure, testing's a part of it, but so are code reviews. Sri Sankaran argues that research and experience prove that a standardized, effective code review process mitigates costs and produces better code.
by Srivaths Sankaran
| |
Keep Changes Small: A Happy Jack Story
How do you reconcile the calls from agile processes for constant refactoring and integration with demands to deliver huge new pieces of functionality? In a sort of cubicle-era Socratic dialogue, Michael Ivey shows how developers can learn to do big things with small changes.
by Michael Ivey
| |
Extreme Software Engineering: A Hands-On Approach
These excerpts from the book Extreme Software Engineering: A Hands-On Approach present tutorials on testing first, with unit tests using JUnit and customer-written tests with the Fit framework.
by Daniel H. Steinberg
and Daniel W. Palmer
| |
A Dozen Ways to Get the Testing Bug in the New Year
This article gives you 12 practical ways to start (and keep) writing tests, regardless of your development process. Testing is important, and writing tests first results in the emergence of better designs.
by Mike Clark
| |
Unit Testing In Java
In this excerpt from his book Unit Testing in Java, author Johannes Link shows a direct approach to test first designs of Graphical User Interfaces.
by Johannes Link
| |
Running Individual Test Cases from Ant
How to use JUnit and Ant together so that you have more control over which test cases get run.
by Luke Francl
| |
Extreme Teaching: Introducing Objects
Teachers of object-oriented programming can use the Fit framework to create an executable spec for an assignment. The spec itself leads the students through the project.
by Daniel H. Steinberg
| |
Multithreaded Tests with JUnit
JUnit is the glue that holds many open source projects together. But JUnit has problems performing multithreaded unit tests. This article introduces a JUnit extension library designed to enable multithreaded unit testing in JUnit.
by N. Alex Rupp
|
GUI
|
Animation and Transition with LWUIT
Animation is increasingly being used by desktop and mobile applications to provide a better user experience, bringing the user's attention to changes in content or context. In this article, Biswajit Sarkar introduces the animation and transition features provided by LWUIT for mobile Java applications.
by Biswajit Sarkar
| |
Integrating GLPbuffer and Java Graphics2D
In bringing a mathematical visualization app to Java, Joshua A. Davis and Thaddeus Keenan Simons found that using OpenGL, via JOGL, offers huge benefits for 3D rendering. However, they wanted to make sure that the JOGL components would coexist with the rest of the Java GUI. In this article, they show how they integrated OpenGL pbuffers into ordinary Graphics2D rendering contexts to achieve a balance.
by Joshua A. Davis, Thaddeus Keenan Simons
| |
Using Styles, Themes, and Painters with LWUIT
The LWUIT brings a great deal of customizability to Java ME GUIs, offering the ability to combine specific combinations of colors, fonts, images and opacity into styles and themes, and have GUI elements use those settings. LWUIT also offers a SwingX-like Painter for applying custom painting across components. In this article, Biswajit Sarkar looks at how you can employ styles, themes, and painters in your LWUIT application.
by Biswajit Sarkar
| |
Automatic User Interface with OpenXava: An Evolutionary Option for GUIs
From AWT to Swing, JSP to JSF, Ajax to JavaFX, a lot of time is spent developing GUIs to visually express relationships that are implicit, if not manifest, in the data itself. So why not let the data shape the GUI? Automatic GUI builders do just that, and in this article, Javier Paniza shows how OpenXava does it.
by Javier Paniza
| |
Binding Beans
Expressing GUI relationships through beans' getters and setters is a burdensome process of wiring that has frustrated many developers. Binding offers an alternative: automatically connecting a model value to its GUI representation. This style of programming is available to users of the JGoodies Binding framework, as well as the implementation of JSR-295, and in this article Thomas Künneth takes a look at both.
by Thomas Künneth
| |
Mapping Mashups with the JXMapViewer
Having introduced SwingLabs' JXMapViewer and JXMapKit in a previous article, Joshua Marinacci puts these components to work by showing how you can bring in geographic data from external sources and use Painters to create custom geodata GUIs.
by Joshua Marinacci
| |
Create Moving Experiences with Animated Transitions
A GUI that radically changes its layout as it goes from one mode to the other can be jarring to users. A new trend is for changes in content or context to be animated, so the user can see the nature of the changes. In an example inspired by the the Filthy Rich Clients book he co-authored, Chet Haase introduces the Animated Transitions library, which can help you achieve these effects in your Swing application.
by Chet Haase
| |
Debugging Swing
Proper Swing programming depends on widely known but unenforced rules about the proper handling of the event-dispatch thread, and failure to follow those rules leads to many Swing problems. In this article, Kirill Grouchnikov shows off techniques to find and fix bugs relating to Swing EDT misuse.
by Kirill Grouchnikov
| |
Scalable Vector Graphics on Java ME
SVG Tiny Profile is spec'ed for Java ME in JSR 226, and it will be a requirement in upcoming ME handsets. In this article, Biswajit Sarkar has an introduction to drawing, loading, and animating SVG images in ME.
by Biswajit Sarkar
| |
UISpec4J: Java GUI Testing Made Simple
GUI's are notoriously difficult to test, and the robot-based approach to automated testing makes agile development difficult, as you need finished GUIs before you can test. The UISpec4J project takes a different approach, and in this article Régis Medina and Pascal Pratmarty show how it works.
by Régis Medina
and Pascal Pratmarty
| |
The Perils of Image.getScaledInstance()
Lots of developers use the simple Image.getScaledInstance() that's been around since Java 1.1, apparently not realizing that Java 2D provides better-looking, more performant, and more flexible options. Chris Campbell checks in with where image scaling is in Java SE 6 and what we might see in JDK 7.
by Chris Campbell
| |
A Navigable Image Panel
A lot of applications use similar GUIs for viewing images, even though the user experience is awful. Slav Boleslawski has some better ideas for a "navigable image viewer," and in this article, he shows how to use Java 2D to achieve them.
by Slav Boleslawski
| |
Image I/O Utilities Grab Bag
Sometimes what you need is not an enormous framework, but a grab bag of bite-size morsels. That's what Jeff Friesen has in this article, which offers three commonly needed graphic conveniences, implemented with the Image I/O package.
by Jeff Friesen
| |
How to Write a Custom Swing Component
You want a GUI component with a unique behavior, and Swing doesn't offer exactly what you need. So what do you do, go without? Hardly. Swing's flexibility allows you to develop custom components with any functionality you care to model and render. Substance project owner Kirill Grouchnikov shows how this is done.
by Kirill Grouchnikov
| |
Web Swinging
You application needs content from a web page or web service, so that rules out writing a rich application and forces you to write a web app, right? Not so fast. The emerging trend of smashups--Swing mashups--combine rich Swing GUIs with data fetched from the Web. Richard Bair shows you how to bring these web-fetching techniques to your Swing app.
by Richard Bair
| |
More Persistence for Client-Side Developers
Continuing his introduction to the EJB 3 Java Persistence API as seen by the desktop developer, Joshua Marinacci shows how to put together a complete and fairly sophisticatedaddress book program, with one-to-many relationships, useful inheritance approaches, and other powerful techniques.
by Joshua Marinacci
| |
An Introduction to Java Persistence for Client-Side Developers
The EJB3 Java Persistence API may have been meant for enterprise developers, but there's no reason that desktop developers can't use it. Joshua Marinacci shows how a lightweight combination of Hibernate, HSQLDB, and the JPA can make saving address book entries a snap.
by Joshua Marinacci
| |
Introducing JAXX: A New Way to Swing
Swing's great, except for the thousands of lines of manual layout, event wiring, data binding, etc. JAXX offers an alternative: an XML markup that offers faster and more intuitive ways to lay out and wire up your GUI, while still offering tremendous flexibility. Ethan Nicholas shows what's inside this exciting new package.
by Ethan Nicholas
| |
MultiSplitPane: Splitting Without Nesting
Want to divide a GUI into many resizable pieces? The two-sided JSplitPane is hopelessly primitive, so try Hans Muller's MultiSplitPane, a much more capable alternative. In this article, he shows how to create, persist, and restore complex, resizable layouts.
by Hans Muller
| |
Time Again
The Timing Framework project provides commonly used timing concepts for animations. Its latest version adds newer and more sophisticated features, for interpolating between key frames. Chet Haase takes another look at the framework.
by Chet Haase
| |
Using the Wizard API
Wizards are a popular form of user-interface metaphor, but without direct support in AWT or Swing, they typically need to be created by hand, often with a manually managed CardLayout. Fortunately, the SwingLabs project has a Wizard subproject that is powerful and easy to use. Thomas Kuenneth shows off how it works.
by Thomas Künneth
| |
Building GUIs with SwiXml
Challenged by the complexities of GridBagLayout and the ugliness of wiring all of that GUI layout code into your application? SwiXml offers an alternative: declare your GUI in XML markup and let SwiXml wire it up to your application. Joshua Marinacci shows how it's done.
by Joshua Marinacci
| |
Java Tech: Process Images with Imagician
Jeff Friesen returns to image manipulation in the latest installment of "Java Tech," showing how to create an image-editing application with a series of common, useful graphic effects. He also adds a status bar that explains the effect of each menu item.
by Jeff Friesen
| |
Building an eBay Rich Client using the XUI Framework
Rich client development doesn't have to mean AWT, Swing, SWT, or even Ajax. Using the XUI framework, you can build your GUI with XML markup, and use convenient data binding to interact with your Java code. In this article, Luan O'Carroll combines XUI with the eBay SDK to show how you build a rich client for eBay users.
by Luan O'Carroll
| |
Java Tech: Image Embossing
Many GUIs use an "embossing" effect to create the illusion of depth, manipulating pixel colors to suggest small ridges and valleys. In this installment of "Java Tech," Jeff Friesen introduces an algorithm to perform the embossing effect, and shows how easy it is to implement with Swing and Java2D.
by Jeff Friesen
| |
(Not So) Stupid Questions 6: Comparability of Minimum, Maximum Dimensions
This "stupid question" is about the definition of AWT/Swing Components' getXXXSize() methods, given that the Dimensions they return are not Comparable.
| |
Accessing a PDF Document with the Acrobat Viewer JavaBean
Do you need to open a PDF document in a Java GUI application or applet? Adobe's Acrobat Viewer JavaBean provides PDF viewing in the form of an easily embedded component. Deepak Vohra introduces its use and features.
by Deepak Vohra
| |
Java Sketchbook: Digging into Java Web Start
Java Web Start offers new solutions to old problems of distributing J2SE applications to end users. In the second installment of his look at JWS, Java Sketchbook columnist Joshua Marinacci looks at the JWS sandbox, options for getting out of it, speeding up downloads with Pack 200 compression, and more.
by Joshua Marinacci
| |
Interaction Happens: Prototyping Techniques
Do you prototype your GUIs? Should you? A great prototype can help work out the kinks in the flow of a GUI. But it can also get rushed into production as a seemingly (but not really) ready product, if you do too good a job of showing how your app will work. In this installment of "Interaction Happens," Jonathan Simon surveys the range of prototype options available to the GUI developer.
by Jonathan Simon
| |
Java Sketchbook: Getting Started with Java Web Start
Desktop developers have long desired a more practical means of deploying applications than just dropping files on a client machine and expecting the user to do a java -jar, or a script/batch file equivalent. Java Web Start addresses not only this user experience problem, but also helps with updating client code. In this installment of "The Java Sketchbook," Joshua Marinacci looks at how Web Start works.
by Joshua Marinacci
| |
LCD Text: Anti-Aliasing on the Fringe
Anti-aliasing helps with the appearance of text, but on LCD monitors you can do even better: you can use the spatial arrangement of the red, green, and blue parts of each pixel to achieve an even better anti-aliasing effect. This feature is coming to Java in Mustang, and in this article, Chet Haase explains how it works.
by Chet Haase
| |
Interaction Happens: Thinking Graphically
Some applications make perfect sense to the developer, but not to the end user. Are you thinking of your GUIs in terms of what the developer needs, what the application needs, or what the user needs? In this installment of "Interaction Happens," Jonathan Simon shows how to "think holistically" about your GUI.
by Jonathan Simon
| |
Pixel Pushing
Users of desktop applications are demanding--something as simple as a misplaced or misaligned pixel is unacceptable to some users. So it's up to you to get things exactly right. But is this practical, and how do you do it? Jonathan Simon shows a process for analyzing, coding, and testing your GUI for pixel perfection, demonstrating it with a pixel-accurate mimicry of a Windows-specific icon.
by Jonathan Simon
| |
Low-Level Display Access in MIDlets
In part four of his series on mobile application development with J2ME, Thomas Künneth looks at the Canvas, which gives developers of games, multimedia, 3D and other applications the ability to render directly to the display instead of by way of a set of widgets.
by Thomas Künneth
| |
Mobile Memories: The MIDP Record Management System
In part three of his series on mobile application development with J2ME, Thomas Künneth looks at how MIDlets can use RecordStores to persist information, such as the records in his "Duke's Diary" example.
by Thomas Künneth
| |
Behind the Graphics2D: The OpenGL-based Pipeline
This document describes the current state of the OpenGL-based pipeline as of J2SE 5.0.
by Chris Campbell
| |
Through the Looking Glass
Project Looking Glass is the new 3D user interface for the Java Desktop System. Looking Glass is dependent upon processor speed and graphics card and system advancements, as well as on the coming of Java 3D.
by Sam Hiser
| |
Introducing JDesktop Integration Components, Part 2
Joshua Marinacci continues his investigation of Java Desktop Integration Components (JDIC) with a look into the SaverBeans API, which allows you to create Java-based screensavers.
by Joshua Marinacci
| |
Introducing JDesktop Integration Components, Part 1
It hasn't been easy to create a Java desktop application that goes beyond look and feel to actually do things native apps do--register file associations, communicate status via a tray icon, use the platform's browser, etc. But as Joshua Marinacci reports, JDesktop Integration Components may change all that.
by Joshua Marinacci
| |
Still on the Road with Duke
In part two of his series on mobile application development with J2ME, Thomas Künneth introduces the various GUI components that can be used in a mobile application, and combines them into a complete diary application.
by Thomas Künneth
| |
Java Sketchbook: Getting Started With Scripting
Programs that expose themselves to programming by the user are few and far between--an Emacs Lisp macro here, an AppleScript-able Mac app there. It's a pity, since scriptability gives users great power. With Java, embedding JavaScript as a scripting language is pretty easy. Joshua Marinacci shows how it can be done.
by Joshua Marinacci
| |
The JModalWindow Project
The JModalWindow Project is designed for when you want a modal window that implements window-specific modality rather than the application-wide modality provided by the standard JDialog class.
by Jene Jasper
| |
Making Fluid 3D Creatures with JOGL
It's fast, it lumbers, and it's in 3D. It's Fluidiom, an exploration of push-and-pull rendered in 3D by the JOGL library. Creator Gerald de Jong shows how this lifelike creature came to be.
by Gerald de Jong
| |
Behind The Scenes of Project Looking Glass
Project Looking Glass, highlighted in Scott McNealy's JavaOne keynote, is a 3D desktop environment that uses Java and hardware graphics acceleration to deliver a new kind of user experience. And now, it's open source. Will Iverson interviewed lead developer Hideya Kawahara to learn more about the project.
by Will Iverson
| |
Developing Swing Components Using Simulators
It's difficult to expose GUI components to testing, and in the worst case, tightly coupled components aren't seen or tested until their surrounding application is ready. Jonathan Simon says there's a better way, and it's called the "simulator."
by Jonathan Simon
| |
Java Sketchbook: The HTML Renderer Shootout, Part 2
HTML is everywhere; not just on the Web, but as a styled-text and hyperlinking standard for help systems, online stores, email, and many other applications. For these many needs, there are many Java-based HTML rendering toolkits. This second part of Joshua Marinacci's series looks at the commercial offerings in the HTML rendering space.
by Joshua Marinacci
| |
Java Sketchbook: The HTML Renderer Shootout, Part 1
HTML is everywhere; not just on the Web, but also as a styled-text and hyperlinking standard for help systems, online stores, email, and many other applications. And for these many needs, there are many Java-based HTML rendering toolkits. Part 1 of Joshua Marinacci's two-part series looks at the free offerings in the HTML rendering space.
by Joshua Marinacci
| |
Building a Better Brain, Part 2: A Great Thick Client
Joshua Marinacci built a distributed system for storing, searching, and updating small pieces of information. In this installment, he shows how to build an attractive thick client with Swing.
by Joshua Marinacci
| |
Juggling JOGL
Chris Adamson's series on JOGL, the Java bindings to the Open GL graphics library, continues with a tutorial on techniques for 2D gaming graphics, including animation, rotation, translation, and scaling.
by Chris Adamson
| |
Introduction to SiteMesh
Do you have items like footers or navigation bars that you'd like to repeat on every page of your site? Do you want to add them easily? Then maybe, says Will Iverson, the "decorator"-based SiteMesh is for you.
by Will Iverson
| |
Extreme Software Engineering: A Hands-On Approach
These excerpts from the book Extreme Software Engineering: A Hands-On Approach present tutorials on testing first, with unit tests using JUnit and customer-written tests with the Fit framework.
by Daniel H. Steinberg
and Daniel W. Palmer
| |
Using Swing's Pluggable Look and Feel
Swing allows a Java application to present a GUI that resembles the underlying platform's appearance, present a common cross-platform look, or offer a completely new look. Thomas Künneth looks at how this works and addresses the question, "What should your app look like?"
by Thomas Künneth
| |
Make Your Swing App Go Native, Part 3
Swing applications don't often feel or behave like native apps. It doesn't have to be this way. Joshua Marinacci's three-part series concludes with polishing touches such as desktop icons, file selectors, and splash screens.
by Joshua Marinacci
| |
Make Your Swing App Go Native, Part 2
Swing applications don't often feel or behave like native apps. It doesn't have to be this way. Joshua Marinacci's continues with a look at providing double-clickable executables and filetype associations.
by Joshua Marinacci
| |
Six Signs That You Should Use Paper Prototyping
Paper prototyping lets you conduct informal usability tests with real users early in a project, before the design is cast in concrete code. This article provides background and gives you six signs that your project could benefit from paper prototyping.
by Carolyn Snyder
| |
Make Your Swing App Go Native, Part 1
Swing applications don't often feel or behave like native apps. It doesn't have to be this way. Joshua Marinacci's three-part series begins by improving an app's appearance and menus, and offers a way to get attention via the Windows taskbar and Mac OS X dock.
by Joshua Marinacci
| |
Unit Testing In Java
In this excerpt from his book Unit Testing in Java, author Johannes Link shows a direct approach to test first designs of Graphical User Interfaces.
by Johannes Link
| |
Designing as if Programmers are People
Ken Arnold, the original lead architect of JavaSpaces, talks with Bill Venners
about the myth of "the perfect design," simplicity, taste, and the
importance of designing with the user in mind. This article features some highlights from a sequence of conversations between Ken and Bill that originally appeared on Artima.com.
by Bill Venners
|
JavaOne
|
JUG Leadership: Lessons Learned
Matt Stine talks about the lessons he has learned in creating and leading a Java User Group.
by Matt Stine
| |
PUJ, a Jug Contest, JavaOne 2009 Podcast
Felipe Gaucho tells Jim Wright about the PUJ (Prêmio Universitário Java) Java User Group Contest
by Felipe Gaucho
| |
The ATM Object-Oriented Design and Implementation Case Study
Author/educator Paul Deitel provides an overview of the two-chapter ATM Object-Oriented Design and Implementation Case Study in "Java: How to Program", and discusses his experiences teaching it.
by Paul Deitel
| |
Java Tools SQE Roundtable, JavaOne 2009
The Java Tools Community and SQE Project Leaders talk about Java Tools, SQE, and more, in a java.net Community Corner roundtable at JavaOne 2009.
by Toni Epple
| |
j1-2k8-mtH10: Using Kepler's Orrery for teaching Planetary Science
Kepler's Orrery is an interactive gravity simulator that composes & plays generative music while visually demonstrating the physics of gravitational attraction.
http://www.art.net/simran/GenerativeMusic/Kepler.html
http://keplers-orrery.dev.java.net
Not only is Kepler's Orrery a pleasing simulation for the eye and the ear, but it can be used as a powerful tool to teach gravity and how delicate of a balance our solar system is in.
by Mae Linh Blake
| |
j1-2k8-mtH09: Energy and CO2 Savings with Java EE 5/SE 6, Glassfish, Shoal, Groovy, SunSPOT and Java
Intelligent heating control saves not only energy (30-50%), is environmentally friendly, but increases the living comfort as well. Alone the priotirization of energy sources: solar thermal collector, wood buring stove, main heater combining with the inclusion of the weather-forecasts, contributes considerably to the energy saving. This session describes the architecture of the GreenFire project, especially: - Usage of JSR-223 (Scripting Integration) in Java EE 6 / 6 environment for the implementation of flexible rule systems - Reporting - Using EJB 3 timer service - Java EE compatible hardware integration - SunSPOT and sensor network integration - Using Java FX together with Swing and EJB 3 - Sensor Testing (with Junit and mocking) - Speech synthesizer integration (FreeTTS) - Management and monitoring of heating system over the internet - Mobile device Integration - Integration of Multi Media Center Systems
by Adam Bien
| |
j1-2k8-mtH08: Underworld - the Java EE 5 Backend For Wonderland
Wonderland is an interesting 3D collaboration application. It uses the darkstar server as backend. Project http://underworld.dev.java.net goal is porting the Wonderland's communication and persistence layer to Glassfish v2 (later v3) to leverage its non-functional capabilities like monitoring, management, deployment and scaleability. In this shorttalk, especially the architecture and design, as well as, challenges, hacks, and workarounds will be discussed.
by Adam Bien
| |
j1-2k8-mtH07: City of Oakland Solar Energy Promotion
The City and County of San Francisco (Department of the Environment) and Marin County are collaborating with the City of Oakland Public Works on an effort to assess and promote solar power opportunities in our communities. The City and County of San Francisco and Marin have been doing digital assessments. We are collaborating with the City of Oakland to transition from a paper-based approach to a web-based approach where much of the effort is delegated to the client/server.
by Barry Levine
| |
j1-2k8-mtH06: JT Harness - Open Source Test Harness
JTHarness is an open source extensible test harness, which can also serve as a front-end for JUnit tests.
by Brian Kurotsuchi
| |
j1-2k8-mtH05: cqME and ME Framework Testing Platform
ME Framework is an testing framework for the Java ME platform developed as part of the cqME open-source project. A set of plug-ins for the open-source JT Harness, ME Framework provides support for application and platform quality and conformance testing needs. This mini-talk covers testing framework features, Java ME application and security models, communication protocols optimization and debugging functionality.
by Mikhail Smirnov
| |
j1-2k8-mtH04: How to Use the TrackBot API
This talk will cover the basics of using the TrackBot API for simulating and controlling TrackBots. It will flesh out some of the concepts covered in the TrackBotsAndGreenfoot and SunSPOTsAndTrackBots talks, although attendance at those sessions is not a prerequisite.
by Shawn Silverman
| |
j1-2k8-mtH03: A Mobile Interface for Data Mash-Up
In this brief "fill-in" mini-talk, Parth Vohra shows off a mobile approach for data mashups, using OpenESB and the Mural project.
by Parth Vohra
| |
j1-2k8-mtH02: Kepler's Orrery
Kepler's Orrery is a generative music system that uses gravity equations to "compose" and play music.
Start with planets (or stars or particles) that each have mass, position, and velocity, then run a n-body gravity simulator to make them move. They attract each other, accelerate, swirl around, and slingshot off each other. Sometimes they collide, and that's what plays the music.
by Simran Gleason
| |
j1-2k8-mtH01: Dynamic Networks with JBI
This mini talk addresses how Glassfish and OpenESB helped solve the problem of connecting disparate, secured networks for the purposes of running an exercise. These networks only allow incoming XMPP traffic to enter their domain. Gestalts, now part of Accenture, XMPP Binding Component coordinated a secure VPN to run an exercise. This solution decreased the exercise setup time from months to minutes.
by Travis Chase
| |
j1-2k8-mtW10: Q&A with James Gosling
In a special, unannounced java.net Community Corner session from JavaOne 2008, Java creator James Gosling offers a wide-open Q&A session. Taking questions from audience members, Dr. Gosling discusses the creation of Java, what might go into Java 7, the future of Micro Edition Java, his thoughts on java.net, his favorite non-Java language, closures, and more
by James Gosling
| |
j1-2k8-mtW09: Marge: Java Bluetooth Framework
The idea of this Mini-Talk on Community Corner is to show a little about Bluetooth, JSR 82 (Java Apis for Bluetooth) and Project Marge. Tired of big texts, full descriptions, etc? Watch this, this and this!
by Bruno Ghisi, Lucas Torri
| |
j1-2k8-mtW08: OpenEco
OpenEco is a global on-line community providing free and easy-to-use tools allowing users to assess, track, and compare their energy performance, share proven best practices to reduce greenhouse gas (GHG) usage and encourage sustainable innovation.
by Alex Dethier, August Detlefsen
| |
j1-2k8-mtW06: API compatibility puzzles
Many Java developers create API libraries for use by applications. Such libraries typically evolve over time, providing more and more functionality with each release. At the same time, it's important to preserve backward compatibility of the API so that the API libraries could be upgraded without any negative effects on existing applications.
This session focuses on a series of common API modifications that seem like normal modifications, but can manifest subtle compatibility problems. Attendees will acquire skills to evaluate API changes for backwards compatibility, and how to sidestep compatibility pitfalls.
The Java Conformance team at Sun has been part of the API evolution in both Java SE and ME, where preserving backward compatibility is critical to platform success. In this session we'd like to share our experience in this area. A short overview of compatibility problems in general will be presented, as well as the API compatibility puzzles.
by Mikhail Ershov
| |
j1-2k8-mtW05: Best practices and examples in writing integration logic with OpenESB
SOA is about decoupling application that need to be integrated through the use of services. To achieve a good degree of decoupling two main ingredients are needed: a good middleware and a well written integration logic. This session will show examples and best practices on writing integration logic inside a JBI ESB. Some topics that the session will touch are: -- synchronous vs asynchronous integration -- stateless vs stateful integration For each pattern the session will show a way to implement it using a JBI ESB, discussing advantages and common pitfalls
by Raffaele Spazzoli
| |
j1-2k8-mtW04: Operating TrackBots using SunSPOTs
This session will show how to use a SunSPOT to control a TrackBot. Attendees will be shown how to take code created using the TrackBotsAndGreenfoot session and send it to a SunSPOT, although attendance at that session is not a prerequisite. Basics of how to compile and deploy for this device will be covered.
by Shawn Silverman
| |
j1-2k8-mtW03: Comet and Bayeux
Ajax has become quite popular as websites have become richer and richer. Ajax allows a page to periodically request data from the server. Comet, on the other hand, allows the server to push data to the client at any time. Comet applications are starting to redefine the capabilities of Web 2.0 applicaions. Bayeux, which is still in daft, is the first standard to define a comet based transport protocol. This talk will discuss the basics of Comet and Bayeux.
by Kevin Nilson
| |
j1-2k8-mtW02: BlueJ
BlueJ is the most used educational development environment worldwide. This presentation, by one of the lead developers of BlueJ, shows what BlueJ is, what it can do, and how it may be used in teaching and learning object-oriented programming. BlueJ is widely used at universities, colleges, schools and in OO training.
by Michael Kolling, Davin McCall
| |
j1-2k8-mtT16: Social Network Application Platform
No description was provided for this mini-talk.
by Bobby Bissett, Manveen Kaur
| |
j1-2k8-mtT15: Subversion: Merge Tracking, Eclipse Integration, and CollabNet Desktop Edition
Brief Overview of new features in the upcoming release of the open source SCM Subversion including enhanced merge tracking and change set management as well as using CollabNet Desktop Edition within Eclipse to facilitate team based task and change management.
by Brian Dawson
| |
j1-2k8-mtT14: Java User Groups International Map
Van Riper describes how the JUG Map was created. He also demonstrates how individual JUGs can customize the JUGs Map to embed it in their own JUG pages like one that was set up for Silicon Valley JUGs
by Van Riper
| |
j1-2k8-mtT13: EDR-MDS A less is more aproach to Master Data Services
Service Oriented Architecture is all over us. There seems to be some kind of consensus that one type of SOa services are domain object repository services - and vendors are monitoring and releasing their SOA Data Server products to close the gap. By pioneering the SOA space with EDR, we quickly had to solve the Master Data challenge in SOA.
This talk will discuss the main contenders for the ownership of your business objects definitions, and comment on their consequences - and then follow up with a "less is more" approach to enable companies to gain the combined advantages of all the platforms by extending the EDR pattern to also include Master Data Service features.
by Thor Henning Hetland
| |
j1-2k8-mtT12: EDR - Master Your Distributed Data
The Enterprise Domain Repository (EDR) pattern recognizes that we are still in the stone age of data integration. EDR is a new pattern gathering these challenges into a service that produces real Domain Objects, while also coping with the complexity of handling disjointed data-sources, back-end performance and mastering strategies. EDR is the result of experiences gained working with .Net and Java customers. Now we want to work with the Community to improve on the usage of this pattern.
by Thor Henning Hetland, Bĺrd Lind
| |
j1-2k8-mtT11: Introduction to Shoal
Project Shoal is a Java language based dynamic clustering framework that can be plugged into any product for runtime clustering. This mini talk will introduce Shoal's clustering capabilities covering the cluster lifecycle event model and its messaging APIs. Project Shoal is seeing increasing interest in several mainstream and unique projects thus making its use multifaceted beyond the middleware constructs of clustering. Among the known projects using Shoal as their clustering engine are projects such as GlassFish, Sailfin, GreenFire, FishFarm, OpenFire Collaboration Server, etc.
by Shreedhar Ganapathy, Sheetal Vartak
| |
j1-2k8-mtT09: Java User Group: How to Find One, How to Start One
In this mini-session we will talk about how to find the JUG nearest you. Then, if there is no JUG near you, we'll show you how easy it is to start one and where you can go to find help.
by Dave Klein
| |
j1-2k8-mtT08: The Return of the JEDI
No description was provided for this mini-talk.
by Daniel deOliveira, Scott Simpson
| |
j1-2k8-mtT07: What Is Next For Java Educators?
If you teach people to use Java (or if you're invested in the quality of Java education) then this discussion/mini-talk is for you. What's the current state of Java Technology education worldwide? How can we improve Java education? What are the emerging trends? How can we organize to promote better Java Technology education? What approaches can be used to share resources such as lessons, test banks and projects between educators? As educators, what kinds of activities can we plan in preparation for next year's JavaOne? conference?
Java Technology education is important to everyone. Participate in this discussion and help raise peoples' consciousness about the importance of the issues.
by Barry Burd, Rom Feria, James Robertson
| |
j1-2k8-mtT06: Wonderland with Kids
This presentation relates to the World Wide Volunteer Week 2008 Project named "Hello Buddy/Hola Amigo" organized by Gilda and Juan Carlos. The main goal in WWVW project is bridging the digital divide among children by improving their second language. In this particular project, two primary schools, one located in the Bay Area in California and another in Santiago Chile, will be connected via Wonderland, a virtual space developed at Sun Microsystems Laboratories. By using the resources provided by this virtual space, children will communicate with their buddies and practice their second language. Gilda Garreton in the Bay Area and Juan Carlos Herrera in Sun Chile are driving this project.
by Gilda Garreton, Juan Carlos Herrera
| |
j1-2k8-mtT05: Project Wonderland: Community-built Virtual Worlds
In this session, we will show a number of different virtual worlds built by members of the Project Wonderland open source community members. Each highlights different aspects of the Wonderland platform and the wide range of possibilities open to developers.
by Nigel Simpson, Nicole Yankelovich
| |
j1-2k8-mtT04: TrackBots, Greenfoot, and the RoboSim Contest: a How-To
This session will describe the basics of how to simulate a TrackBot using the Greenfoot environment. By the end of the session, attendees should understand how to use the robot's sensors to interact with the environment.
by Shawn Silverman
| |
j1-2k8-mtT03: Effective Teamwork Assessment Using java.net
This mini-talk presents an assessment and comparison of local and global software engineering practices based on a software engineering class jointly taught for the last three years between San Francisco State University (SFSU) and the University of Applied Sciences, Fulda University, Germany.
by Dragutin Petkovic
| |
j1-2k8-mtT01: Enabling Semantic Web Technologies with JBI
Semantic web is a way to represent and manipulate informations that allows very high flexibility on the way the information are aggregated, accessed and presented. To leverage existing information base we need ways to get these information and translate them into a semantic form. There many standard ontologies broadly accepted like FOAF (for representing person data and person relationships), DOAP (for representing project data), Dublin Core (for representing document data) etc.... The act of transforming information from a proprietary format to a semantic representation is called rdf-alization. An ESB JBI can be the right integration middleware to perform this task because it can easily collect data in proprietary format from different sources and, by redefining rdf-alizers as JBI component, can feed semantic web enabled application.
by Fred Aabedi, Raffaele Spazzoli
| |
j1-2k8-mtW07: JMX for Unit Tests in Test-Driven Development
Using the Java Management Extensions -- JMX -- to observe internal
state provides an elegant alternative to reflection and compiler hacks.
As a byproduct it provides a JMX interface for the completed system.
This talk will cover how to benefit from unit testing with
JMX, and the code and overhead required to use the technique.
by David Walend
| |
j1-2k8-mtT17: Greenfoot
Greenfoot is a Java programming environment that is aimed at young beginners: High school age students can get into programming as effortlessly as we did with Basic or Pascal, but in the context of programming interactive, graphical games and simulations. This presentation demonstrates how to make a computer game in 20 minutes.
by Michael Kolling
| |
j1-2k8-pre02: Community Leaders Weekend: Purpose of java.net
In a candid discussion from the java.net Community Leaders Weekend 2008, a group of community leaders and infrastructure team members take a "big picture" look at the purpose and goals of java.net.
by Chris Adamson
| |
j1-2k8-pre01: Best of Community Corner 2007
Once again, java.net will be hosting a series of 20-minute mini-talks in its JavaOne booth (Pavilion booth #101). In this introductory podcast of the 2008 series, java.net editor Chris Adamson previews this year's talk and takes a look back with excerpts from five of 2007's best mini-talks.
by Chris Adamson
| |
j1-2k7-mtH11: SunSPOTs and Squawk technology
In the final java.net Community Corner mini-talk from JavaOne 2007, recorded after the closure of the pavilion and heard for the first time here on this podcast, Arshan Poursohi introduces the SunSPOT program for tiny wireless sensing devices and the Squawk JVM that runs on it.
by Arshan Poursohi
| |
j1-2k7-mtH10: Update on Sun'S OpenID Program
At JavaOne 2007, Sun launched an exploratory program on OpenID, hosted at the Identity Management - Sun Java System Access Manager site. In this talk, Gerald Beuchelt discusses what Sun's team intends to do and how the community can participate.
by Gerald Beuchelt
| |
j1-2k7-mtW03: Rearchitecting Legacy J2EE Applications with Spring & Hibernate
This talks presents hints and tips on using the refactoring core J2EE functionalities with the Spring Framework. In particular Peter will talk about refactoring legacy EJBs into Spring-EJB, whilst through 10 days of staged new employment activity. He will advise how to manage those multiple application context files. He will describe the best probably avenues to get your IT workshop and management teams to think about using and/or doing more Agile development techniques. You have had some knowledge of Spring Framework beforehand, but don't worry if you are not very familiar, because it will be fun experience regardless.
by Peter Pilgrim
| |
j1-2k7-mtT13: Legacy Integration Components Under Open JBI Components From a Partner
JBI is a specification for the integration, it provides a standard for building integration projects, just as EJB provides a standard for transactional projects.
One of our open source partners who has contributed several JBI binding components is here to present their views about JBI and JBI components. We think that for JBI to have broad acceptance there must be a way first of all to build bridges with existing application and services.
by Fred Aabedi
| |
j1-2k7-mtW04: Enterprise Data Mashup Service (EDMS)
The Enterprise Data Mashup Service Engine project aims at building a Open-Source JBI compliant Service Engine which features * Ability to create relational mapping for spreadsheets, flatfile, HTML table, xml sources (webrowset), XQuery Rowset, *Using Netbeans Database Explorer to browse source tables,
* Drag-n-Drop these tables into the Mashup Editor to define the join conditions,
* Ability to view the resultset using the Mashup editor
* View Cache Management,
* Transforming the response to various formats by composing the output with an XSLT Service Engine,
* etc.,
and thus provides the mashed up views of enterprise data from heterogenous sources. These pre-canned, materialized views served by the EDM SE can be used by clients to build highly responsive and interactive Ajax powered web2.0 style enterprise applications using existing client-side frameworks.
by Srinivasan Rengarajan
| |
j1-2k7-mtW10: Armenian E-Science Library Project
The E-Science Library Project is interersted in "aggregating digital library services, as well as other digitized services, to make them available via a web-based server at American University of Armenia (AUA). We are seeking discounted digital library services from major scientific organizations (e.g., ACM, IEEE). "
by Barry Levine
| |
j1-2k7-mtW02: Binding Components - Open JBI Components
OpenJBI Components are based on the industry standard JBI architecture. They are open source components developed under java.net community process. In this talk we will explore most popular OpenJBI components: Http BC, Messaging BCs (MQ and JMS), JDBC BC. Developers will have an opportunity to understand how to use these BCs to build composite applications under the OpenESB platform
by Rulong Chen, Alex Fung
| |
j1-2k7-mtT06: The JENI Project
Codenamed JENI, JEDI Indonesia is an integrated service for University students to learn, share and develop solutions using Java. The project includes implementing JEDI as the default curriculum with the addition of other popular frameworks.
JENI is a project of the Ministry of Education, and supported by Indonesia Go Open Source (IGOS) Team, the Indonesia JUG, and Sun Microsystems.
For more information, visit http://jeni.jardiknas.org.
by Frans Thamura
| |
j1-2k7-mtH04: NetBeans tools for developing OpenESB composite applications
This mini-talk will overview Netbeans based developer tools available for OpenESB composite application development. It consists of a quick tour of the IDE-based development workflow with demos of following topics using Netbeans 6.0 tools and OpenESB run-time
by Tientien Li
| |
j1-2k7-mtH07: Building your JUG on solid foundation
In this mini-talk from the java.net JavaOne 2007 Community Corner, NLJUG leader Klaasjan Tukker describes techniques for building and fostering a successful Java User Group.
by Klaasjan Tukker
| |
j1-2k7-mtW06: Kepler's Orrery - Generative Music of the Planets
Kepler's Orrery is an applet that creates generative music based on a gravity simulator. Rocks, bodies, and mutators create a unique blend of sound for each arrangement of bodies it starts with. In this mini-talk, creator Simran Gleason shows how it works
by Simran Gleason
| |
j1-2k7-mtH01: Open Source Business Opportunities
In this mini-talk from the java.net Community Corner at JavaOne, Edgar Silva takes a very Brazilian perspective in a free-form discussion of business models and opportunities he's seen with the adoption of open-source software development.
by Edgar Silva
| |
j1-2k7-mtH09: Aspect Orientation for Mashups using OpenESB
The Java Business Integration (JBI) specification, JSR-208, provides a loosely coupled integration model for distributed services within a Service-Oriented Architecture (SOA). The architecture allows dynamic deployment of JBI components and JBI service assemblies that can be used as Aspect and Advice mechanisms to alter the behavior of other services. Once these Aspect and Advice mechanisms are "plugged" in on-the-fly between a Consuming Service and a Provisioning Service through a Service Facade, the architecture provides a mechanism to dynamically define, verify, audit, track, enable, and enforce these cross-cutting concerns.
by Gopalan Suresh Raj
| |
j1-2k7-mtT04: Jarvis: The JasperReports Visual Designer for NetBeans
Enhance your applications with reports: Project Jarvis adds this ability to NetBeans. Jarvis is a full featured visual multiview designer that integrates the whole process of design, testing and integration of reports. The special asset of jarvis is it's seamless integration with the IDE. Due to that you cannot only design the reports, jarvis also helps you to use them from your java code. In this session you will get an introduction to the concepts and aims of jarvis. You will experience NetBeans as a visual report designer that can link datasources to your report via drag & drop, and finally you will learn how easy it is to enhance your applications with the generated reports.
by Toni Epple
| |
j1-2k7-mtH02: Interview with Brian Behlendorf
In an interview from the JavaOne 2007 java.net Community Corner, java.net editor Chris Adamson interviews Brian Behlendorf about his early involvement with the Apache project, the creation and development of the Apache Foundation and CollabNet, his perspectives on the open-source community, and what his next big project could be.
by Chris Adamson
| |
j1-2k7-mtH08: Building Composite Applications Using BPEL
Open ESB opens a new world of opportunities for enterprises to address business process management challenges. This session will provide a overview of how Java EE skills can be easily extended to solve some of the complex integration and business process management problems. It will also provide an overview of Open ESB, WS-BPEL 2.0 Implementation and the array of options to connect to enterprise services.
by Prabhu Balashanmugam
| |
j1-2k7-mtT08: Building Composite Applications Using Open ESB 2.0
Opne ESB is the next generation integration platform developed by open source community. ope-esb.dev.java.net is the java.net project that encompasses Open-ESB project. Open ESB is based in JBI architecture. It is fully integrated in NetBeans and Glassfish, other popular open source projects. Open ESB offers a rich set of tools to build SOA based integration applications.
In this talk you will learn how to build a composite application using Open ESB. You will understand how to leverage existing enterprise applications by building a new class of applications called Composite applications. Visit open-esb.dev.java.net for more detailed information on how to get involved in this open source community.
by Prakash Aradhya
| |
j1-2k7-mtT05: Java Programming Contest for University Students
In this session, we will explain why Sun and Ricoh
have decided to organise this Java Programmming
Contest for 3 successive years already and how we have
managed to build an active community of more than 50
universities and 500 students.
This session is a must for educational institutes,
students and Java ME developers.
by Jin Yoon
| |
j1-2k7-mtW05: OpenDS project introduction
This session introduces OpenDS, an open source
community project building a free and comprehensive
next generation directory service. In particular,
OpenDS is designed to address large deployments,
provide high performance, and be easy to extend,
deploy, manage, and monitor.
Attendees interested in using or contributing to OpenDS
will gain a clear understanding of the real-world
problems solved by the project, the overall
architecture, and how to get involved in this active
and growing community.
by Trey Drake
| |
j1-2k7-mtT10: Turning Unit Tests into Performance and Reliability Tests
Java developers undertake a lot of effort to build unit and functional tests while they build software services and applications. PushToTest is the open-source SOA governance and test automation platform that turns unit and functional tests into scalability and performance tests. The new PushToTest Release 5 runtime adds support for JSR 223 dynamic scripting languages so unit tests may be written in Java, Jython, Groovy, JRuby, Rhino and many other languages. In this session Frank Cohen, founder of PushToTest, will demonstrate creating a unit test and operating it as a scalability test in a distributed environment of test machines.
by Frank Cohen
| |
j1-2k7-mtW09: OpenJDK Quality Team Introduction and Discussion
It takes a village to grow an open source project. Any open source project lives from a wide range of contributions, not just bug fixes, new features, and other changes to the software, but evangelism, user groups, artwork, and more. The OpenJDK Quality Team is being formed by Sun's Java SE quality team to inspire collaboration with the public related to OpenJDK and Java SE quality. The quality team gives you opportunities to create tests, perform test execution, give feedback on current test plans, and more. In this java.net Community Corner mini-talk from JavaOne 2007, David Herron introduces the OpenJDK quality team.
by David Herron
| |
j1-2k7-mtH06: A peek into Bunny Hunters, a Darkstar based game
In this JavaOne 2007 Community Corner mini-talk, Project Darkstar founder and community leader Jeff Kesselman introduces Bunny Hunters, a demo game written to run on Darkstar.
by Jeff Kesselman
| |
j1-2k7-mtH05: Managing Player Awareness in Darkstar
A common problem with most online games is making players aware of other players that are near them.
In this mini-talk, Jack Strohm offers one idea of how to implement this efficiently within Darkstar.
by Jack Strohm
| |
What to Watch for at JavaOne 2006
With Java EE ready and Mustang in its beta release, what can you expect to see at the JavaOne conference? Java.net editor Chris Adamson checks in with a collection of themes, ideas, and currents to watch for in Moscone.
by Chris Adamson
| |
The Big Question Remains Open
In February, an open letter from IBM to Sun advocated open sourcing Java. At this year's JavaOne, the issue was taken up by a panel of tech leaders, discussing whether Java should be released under an open source license and, if so, why and how. Editor-in-chief Daniel Steinberg takes a look at what was said.
by Daniel H. Steinberg
| |
A Look Back at JavaOne
This year's JavaOne conference attendence was about the same size as
last year, with about 12,000 attendees, but the mood was upbeat.
People are moving forward to make things happen. Barring some new huge
shock to the system, author John Mitchell is taking this as a leading indicator that we've
reached the bottom are heading back up.
by John D. Mitchell
|
JSP
|
Synchronizing Properties with Beans Binding (JSR 295)
The idea of setting up listener relationships between your GUI models, views, and controllers is simple enough, but grinding the same "glue" code dozens or even hundreds of times is wasteful and error-prone. JSR-295, Beans Binding, offers relief from the drudgery. In this article, John O'Conner shows how it works and what it can do for you.
by John O'Conner
| |
Unified Expression Language for JSP and JSF
JSP's expression language is great until you try to also use it with JSF. The limitations and differences between the two technologies has given rise to a "unified" expression language. In this article, Krishna Srinivasan takes a look at how the unified EL works.
by Krishna Srinivasan
| |
Sprinkle Some AJAX Magic in Your Struts Web Application
AJAX offers a richer client-side experience than is offered by the typical reload-the-page cycle of web applications, but do you have to start over to get its benefits? As Paul Browne shows, you can incrementally add AJAX functionality to an existing Struts web app.
by Paul Browne
| |
Tomcat and OpenLDAP, from Configuration to Application
Want to support login and controlled access to your JSPs? LDAP is great, but configuring OpenLDAP for use with Tomcat is not straightforward. In this article, Darren Duke shows you how to bring the two together.
by Darren Duke
| |
Introduction to Tag Unit, Part 2
JSP custom tags have been adopted by JSP developers as a way of abstracting complex code out of the page and into reusable components. This article introduces TagUnit--an easy-to-use tool that
makes it possible to comprehensively test JSP tags.
by Simon Brown
| |
Getting and Rendering Components
In this excerpt from his book JavaServer Faces, author Hans Bergsten shows you how JSF components are created and rendered.
by Hans Bergsten
| |
Introduction to Tag Unit, Part 1
JSP custom tags have been adopted by JSP developers as a way of abstracting complex code out of the page and into reusable components. This article introduces TagUnit -- an easy-to-use testing tool that
makes it possible to comprehensively test JSP tags.
by Simon Brown
| |
Creating EL-Aware Taglibs Using XDoclet
Passing dynamic values to taglibs via the JSP expression language (EL) is convenient, but is hard on the taglib developer and is therefore little-supported. Felipe Leme shows how code generation might solve that problem.
by Felipe Leme
| |
Generating Images with JSPs and Servlets
Java's imaging APIs aren't just for desktop applications anymore! In this article, Joshua Marinacci looks at how servlets and JSPs can use the Java2D graphics API to create on-demand graphics for web users.
by Joshua Marinacci
| |
Introduction to SiteMesh
Do you have items like footers or navigation bars that you'd like to repeat on every page of your site? Do you want to add them easily? Then maybe, says Will Iverson, the "decorator"-based SiteMesh is for you.
by Will Iverson
| |
Validating Custom Tags at Translation Time
While typical JSP taglibs are held to a set of well known rules, many developers aren't aware that new rules can be defined and enforced by the developer. Felipe Leme examines these underappreciated JSP features.
by Felipe Leme
| |
Contributing to Eclipse
In these excerpts from their book Contributing to Eclipse: Principles, Patterns, and Plugins, authors Erich Gamm and Kent Beck show you how to get started with "Hello World" and present an example of "Test-Driven Plug-In Development."
by Erich Gamma
and Kent Beck
| |
Working with XML Data
In this excerpt from his book JavaServer Pages 3rd Edition, author Hans Bergsten shows you how to generate XML responses with JSP and how to process XML data.
by Hans Bergsten
| |
Easy Custom Tags with Tag Files, Part 2
In part two of his series on JSP Tag Files, Budi Kurniawan continues his coverage of this hassle-reducing technology. This week he looks at variables, jsp:doBody, jsp:invoke, and how to package your tag files in a jar file.
by Budi Kurniawan
| |
Taglibs: Designing Web APIs for the Non-Programmer
Designing a tag library for programmers is one thing; designing it for non-programmers is quite another. Joshua Marinacci shows off three tag library redesigns and how they make life easier for his target audience.
by Joshua Marinacci
| |
Easy Custom Tags with Tag Files, Part 1
Tag Files in JSP 2.0 make creating custom tags much easier, automating away previous annoyances like manually compiling and writing descriptors. Budi Kurniawan offers an introduction to creating and using tag files.
by Budi Kurniawan
| |
More RSS for Java
Using RSS to provide syndicated content to web pages doesn't have to be inefficient. Sam Newman shows how intelligent updating can improve your RSS-based JSPs.
by Sam Newman
| |
Using RSS in JSP pages
This article aims to show how you can use the Informa API to quickly access RSS feeds to add dynamic news and information content to your web sites.
by Sam Newman
| |
Accessing Databases from Servlets and JSP Pages
Accessing data in a database or other data sources is an important task in Web programming. This article shows how you can do the most common database manipulations from servlets and JSP pages. This article begins with an introduction to JDBC followed by some examples of servlets that allow you to access the data in the database.
by Budi Kurniawan
|
JSR
|
JSR-286: The Edge of Irrelevance
JSR-286 updates the Portlet specification to add new functionality, but has the Portlet ship sailed? In this article, Eric Spiegelberg looks at the history of the Java Portlet spec and argues that the design and philosophy of Java web applications has moved on and left portlets behind.
by Eric Spiegelberg
| |
JSR 310: A New Java Date/Time API
Java SE's Date and Calendar classes leave much to be desired. Will the third time be the charm? JSR 310, tracking for inclusion in Java SE 7, once again tries to offer a comprehensive date and time API, borrowing much of its design from the popular Joda Time API. In this article, Jesse Farnham takes a look at JSR 310's concepts and how they may yet bring sense to dates and times in Java.
by Jesse Farnham
| |
The Open Road: javax.annotation
Annotations were introduced in Java 5, and now that the community has had time to try them out and get used to them, Java 7 is preparing to adopt them aggressively. In this installment of The Open Road, Elliotte Rusty Harold looks at the annotations proposed by JSR 305 and how they'll make your code more amenable to static analysis, compiler checks, and other tools to improve safety and robustness.
by Elliotte Rusty Harold
| |
The Open Road: java.nio.file
A file I/O API with reliable and speedy methods for copying and moving files? Getting and preserving file attributes? Filesystems to represent RESTful web servers or the contents of zip files? JSR 203, which may be part of Java 7, offers a totally overhauled approach to File I/O in Java. In this installment of "The Open Road," Elliotte Rusty Harold takes a look at the current spec.
by Elliotte Rusty Harold
| |
The Open Road: Superpackages
Wonder what the relationship between com.example.package and com.example.package.test is? There isn't one! This lack of an orderly package-visibility relationship has made life difficult for a number of programmers trying to balance organizational needs against practical concerns. In this entry of "The Open Road," Elliotte Rusty Harold takes a look at how JSR 294 ("superpackages"), intended to be part of Java SE 7, proposes to fix this problem.
by Elliotte Rusty Harold
| |
The Open Road: Looking Ahead to Java 7
Kicking off a new column about the development of Java 7, David Flanagan takes a look at the OpenJDK and JDK7 projects and their processes, language changes that have been mentioned as possible candidates for Java 7, and major new APIs that are tracking for inclusion in the new version.
by David Flanagan
| |
What's Happening with Jetspeed-2?
David Sean Taylor, an open source software developer has been involved with developing Jetspeed for almost four years now. He talks to the Portlet Community's Navaneeth Krishnan him about Jetspeed and the Portlet spec detailed in JSR 168.
by Navaneeth Krishnan
| |
JSR 133 in Public Review
JSR 133 produced a formal
mathematical specification for the semantics of synchronized, volatile, and final. It provides the foundation for (finally) delivering on
Java's promise of being able to develop write-once, run-anywhere
concurrent applications.
by Brian Goetz
| |
Reflection on Tiger
The introduction of enums, generics, and metadata are changes to the Java language that require modifications to existing APIs, such as Reflection. This article examines
the modifications to the Reflection API that are now available to the public as part of JDK 1.5 beta 1 and shows how you can take advantage of them in your code.
by Michael Nascimento Santos
| |
A First Look at JSR 166: Concurrency Utilities
Java's support for multithreading and concurrency has often perplexed developers by only exposing the low-level details of wait(), notify(), synchronized blocks, et. al. But as Brian Goetz describes, JSR 166 will bring a number of concurrency conveniences to J2SE.
by Brian Goetz
|
Linux
|
Zero and Shark: a Zero-Assembly Port of OpenJDK
The Red Hat team needed to port OpenJDK to multiple Linux platforms, but porting assembly code to multiple platforms is an enormous task. The solution? Zero and Shark.
by Gary Benson
| |
OpenJDK Podcast Season 1 Episode 1: Thomas Fitzsimmons on IcedTea
Thomas Fitzsimmons from Red Hat explains what the IcedTea project is, how it came about, its role for Fedora, trademarks, certification, gcjwebplugin, netx and the portable Zero interpreter for Hotspot.
by Dalibor Topic
| |
The Open Road: Building the JDK
Ready to work with the GPLed JDK from the OpenJDK project? Your first order of business will probably be getting the code compiled and running on your machine. And that's not an easy process. In this installment of The Open Road, Elliotte Rusty Harold relates the step-by-step process of building the JDK on Linux.
by Elliotte Rusty Harold
| |
Kevin Bedell Interviews BEA's Bob Griswold
In this, our first interview on linux.java.net, Kevin Bedell talks with Bob Griswold, who is in charge of JRockit at BEA. This interview was conducted late last week.
by Kevin Bedell
and Chris DiBona
|
Mobility
|
Java Mobility Podcast 81: JDTF
Victor D'yakov talks about the new Java Device Testing Framework project in the Mobile & Embedded Community
by Daniel H. Steinberg
| |
Java Mobility Podcast 80: Java at FIRST 2010 Competition
Eric Areseneau talks about Java now being available for the FIRST 2010 Competition.
by Daniel H. Steinberg
| |
Java Mobility Podcast 79: JavaOne 2009 Preview
Roger Brinkley and Terrence Barr preview JavaOne 2009 for mobile, media and embedded developers.
by Daniel H. Steinberg
| |
Java Mobility Podcast 78: JSR 290 XML User Interface Markup Language
JSR 290 developers Natalia Medvedenko and Petr Panteleyev talk about JSR 290 and the new power it will give Java ME developers.
by Daniel H. Steinberg
| |
Java Mobility Podcast 77: Java and Symbian OS
Roy Ben Hayun on Java ME on Symbian OS
by Daniel H. Steinberg
| |
Java Mobility Podcast 76: Sound of Motion
Vladimir Savchenko of Sound of Motion talks about their Java ME application that transforms their cycles into advanced cycling computer.
by Daniel H. Steinberg
| |
Java Mobility Podcast 75: Daniel Green on kids and computers
Daniel Green from Sun Microsystems talks about computers in education,
getting kids excited, and computer clubs on thumb drives.
by Daniel H. Steinberg
| |
Java Mobility Podcast 74: BlueJ and Greenfoot
Ian Utting from the University of Kent and BlueJ and Greenfoot development talks about both products while at SIG/CSE.
by Daniel H. Steinberg
| |
Java Mobility Podcast 73: DigiQuest
Solomon Saul of DigiQuest shares his experience with games development on TV with Java as a programming language and the transition of DigiQuest products to mobile devices.
by Daniel H. Steinberg
| |
Java Mobility Podcast 72: Java ME SDK
Tomas Brandalik and David Pulkrabek tell about the new features in the Early Access release of the Java ME Software Developer Kit
by Daniel H. Steinberg
| |
Java Mobility Podcast 71: Eric Klein on Java FX for Mobile Devices
Eric Klein, VP of Java Marketing, tells you just about everything you want to know about the Java FX 1.1 release that is targeting mobile devices.
by Daniel H. Steinberg
| |
Java Mobility Podcast 70: Bit-side
Thomas Schüppel of bit-side talks with Terrence about his companies experience developing on mobile devices.
by Daniel H. Steinberg
| |
Java Mobility Podcast 69: Live from Mobile, Media & eMbedded Developer Days
Daniel Steinberg did a walk about the floor at the Mobile, Media and eMbedded Developer Days soliciting comments from the various attendees.
by Daniel H. Steinberg
| |
Java Mobility Podcast 68: OpenCable Project and Tru2Way
Phil Bender talks about the OpenCable project, its relationship to Tru2Way and his talk on the Tru2Way Roadmap and Mobile, Media, and Embedded Developer Days.
by Daniel H. Steinberg
| |
Java Mobility Podcast 67: Does Your Mobile Speak JavaFX?
Juraj Svec and Jan Sterba of the JavaFX Mobile development team are preparing for JavaFX/Mobile presentations at Mobile, Media, and eMbedded Developer Days. Here them talk about the challenges in developing this platform in this introduction to JavaFX/Mobile.
by Daniel H. Steinberg
| |
Java Mobility Podcast 66: Sean Sheedy, JCP ME Executive Committee Feedback
Sean Sheedy was recently elected a JCP ME Executive Committee and is soliciting feedback on what developers think the EC should be addressing.
by Daniel H. Steinberg
| |
Java Mobility Podcast 65: Eric Arseneau, Go Small or Not at All
Eric Areseneau, M&E Governance Board member and Squawk project lead, was recently written up as a Contrarian Mind. Listen to his ideas on getting a Java Virtual Machine in small embedded systems.
by Daniel H. Steinberg
| |
Java Mobility Podcast 64: LWUIT Half Day Tutorial
Jonathan Knudsen talks about the LWUIT
and the LWUIT Half Day Tutorial that he and Chen Fishbein will be giving the day
after M3DD.
by Daniel H. Steinberg
| |
Java Mobility Podcast 63: Sprint Titan (JSR 232 OSGi)
Jon Bostrom of MobiNoir Consulting is currently engaged on the
Sprint Titan Project, bringing OSGi to Mobile.
by Daniel H. Steinberg
| |
Java Mobility Podcast 62: Microlog
Johan Karlsson discusses Microlog, a small logging library for Java ME, with Terrence Barr.
by Daniel H. Steinberg
| |
Animation and Transition with LWUIT
Animation is increasingly being used by desktop and mobile applications to provide a better user experience, bringing the user's attention to changes in content or context. In this article, Biswajit Sarkar introduces the animation and transition features provided by LWUIT for mobile Java applications.
by Biswajit Sarkar
| |
Java Mobility Podcast 61: Funambol
Funambol provides mobile sync and push email solutions powered by open source. Stefano Maffulli from Funambol talkes with Terrence Barr about the technology and license.
by Daniel H. Steinberg
| |
Java Mobility Podcast 60: Heart Patient Monitoring
The third in a series of podcasts from the Brazilian Month of Java,
Edilson Prudencio, a researcher with Dr João Cândido Dovicchi at the Universidade Federal De Santa Catarina, talks about his project of monitoring heart patients using bluetooth monitors, Marge and a JavaME phone.
by Daniel H. Steinberg
| |
Java Mobility Podcast 59: CoSMo - Conference Scheduler for Mobile
The second in a series of podcasts from the Brazilian Month of Java,
Neto Marin discusses CoSMo the conference scheduler for mobile devices.
by Daniel H. Steinberg
| |
Using Styles, Themes, and Painters with LWUIT
The LWUIT brings a great deal of customizability to Java ME GUIs, offering the ability to combine specific combinations of colors, fonts, images and opacity into styles and themes, and have GUI elements use those settings. LWUIT also offers a SwingX-like Painter for applying custom painting across components. In this article, Biswajit Sarkar looks at how you can employ styles, themes, and painters in your LWUIT application.
by Biswajit Sarkar
| |
Java Mobility Podcast 58: Diamond Powder - data collectors for MIDP
The first in a series of podcasts from the Brazilian Month of Java, Renato Bellia discusses his recently promoted project Diamond Powder and it's data collector facilities.
by Daniel H. Steinberg
| |
Java Mobility Podcast 57: Shawn Fitzgerald and Microbus project
Shawn Fitzgerald, a regular participant in the Mobile & Embedded forums, talks about mobile development and the Microbus project.
by Daniel H. Steinberg
| |
Java Mobility Podcast 56: PhoneME port to Play Station Portable
Max Mu shows off his Play Station Portable that is running a port of PhoneME. They are currently working on a port to Nintendo DS.
by Daniel H. Steinberg
| |
Java Mobility Podcast 55: Back to School Special
Diane Wolff and Melanie Crouch of Virgina Western Community College are starting a new degree program of mobile programming at their community college that is geared to meet the needs of the Roanoke, VA business community.
by Daniel H. Steinberg
| |
Java Mobility Podcast 54: Kicking Butt with MIDP and MSA
Jonathan Knudsen talks about his new book, Kicking Butt with MIDP and MSA and his tutorial on the Light Weight UI Toolkit.
by Daniel H. Steinberg
| |
An Introduction to the Lightweight User Interface Toolkit (LWUIT)
Java ME may promise consistent behavior across devices, but not consistent appearance, which makes it difficult to create GUIs that work everywhere. The Lightweight User Interface Toolkit addresses this problem by taking a Swing-like approach and rendering all components in Java. In this article, Biswajit Sarkar offers an overview of LWUIT's functionality and design.
by Biswajit Sarkar
| |
Java Mobility Podcast 53: Campus Ambassadors and Sun Spots
Sun Campus Ambassadors Tom Martini Petreca and Lucas Torri talk about the Sun Campus Ambassador program and their work with SunSpots.
by Daniel H. Steinberg
| |
Java Mobility Podcast 52: Wireless Industry Partnership and Top Ten Dating Tips For Developers
Caroline Lewko from WIP shares how WIP helps developers negotiate the mobile ecosystem and talks about the new Mobile Developer Wiki that's currently in Beta. We finish up with two selections from her popular talk Top Ten Dating Tips for Developers.
by Daniel H. Steinberg
| |
Java Mobility Podcast 51: SEA Technologia
Alexandre Gomes and associates talk about game development with Dino and HoHoHo and the state of mobile and embedded development in Brazil.
by Daniel H. Steinberg
| |
Java Mobility Podcast 50: iMob
David Theron, Managing Director of iMob, shares is experience as a mobile developer in South Africa.
by Daniel H. Steinberg
| |
Java Mobility Podcast 49: Bug Labs
Bug Labs is a new kind of technology company, enabling a new generation of engineers to tap their creativity and build any type of device they want, without having to solder, learn solid state electronics, or go to China. Hear Ken Gilmer from Bug Labs talk about this new product and the way it is extending phoneME advanced.
by Daniel H. Steinberg
| |
A Customized User Interface for Mobile Phones
GUIs vary from one Java ME implementation to another, from attractive and functional to nearly unusable. What's a developer to do? In this article, Biswajit Sarkar makes the case for developing your own text display and menu class by custom painting a Canvas, thereby delivering the same experience on all ME devices.
by Biswajit Sarkar
| |
Java Mobility Podcast 48: Sprint on LWUIT, Titan and Windows Mobile
Nathan Smith, Application Developer Program Group Manager, and John Jones, Product Development Engineer at Sprint talk about their past and future involvement in LWUIT, Windows Mobile development and Titan development and Sprint Professional Developer Program.
by Daniel H. Steinberg
| |
Java Mobility Podcast 47: Johannesburg Town Hall
A live recording from the Town Hall meeting at the Johannesburg Mobility Days.
by Daniel H. Steinberg
| |
Java Mobility Podcast 46: LWUIT - Lightweight UI Toolkit
The Lightweight UI Toolkit development team gather in a round table discussion about the library, it's goal and the impending open sourcing issues.
by Daniel H. Steinberg
| |
Java Mobility Podcast 45: Live from JavaOne 2008
Daniel Steinberg takes his microphone and tours the JavaOne 2008 Pavilion giving listeners an opportunity to experience the booths in the Mobility Village at JavaOne 2008.
by Daniel H. Steinberg
| |
Java Mobility Podcast 44: John Charles, Airscape Down Under CTO
John Charles, CTO of the Australian based Airscape Technology shares his views of the mobile world and why he believes that now is the time to be developing applications for mobile devices.
by Daniel H. Steinberg
| |
Java Mobility Podcast 43: Mobile Distillery's porting tool Celsius
Razmig Sarkissian from Mobile Distillery talks to Terrence about Celsius, a software solution for porting and optimizing Java ME applications across over 800 phones.
by Daniel H. Steinberg
| |
Java Mobility Podcast 42: Dalibor Topic joins Sun
Dalibor Topic talks about his first couple of days at Sun as the Java Free Open Software Ambassador.
by Daniel H. Steinberg
| |
Java Mobility Podcast 41: Down Under - Sydney Mobility Days Town Hall
Roger leads a developer question and answer session of Australian developers at Mobility Days in Sydney.
by Daniel H. Steinberg
| |
Java Mobility Podcast 40: Navigon - navigation on your phone
Terrence talks with Phillip Candal about their new Scabler product that has integrated mapping and GPS solution and how it was developed by J2ME Polish.
by Daniel H. Steinberg
| |
Java Mobility Podcast 39: CQME, Conformance and Quality and jtharness projects in the M&E Community
Kevin Looney, Brian Kurotsuchi, and Mikhail Gorshenev talk about CQME and jtharness projects and their uses as a TCK testing tool and the possibility of using it for testing applications.
by Daniel H. Steinberg
| |
Java Mobility Podcast 38: Developing and deploying content in the real world
This week feature listens in the the MEDD Panel session Developing and Deploying Content in the Real World. It is a frank discussion amongst large and small application developers, oems, device manufacturers, carriers, and tool vendors.
by Daniel H. Steinberg
| |
Java Mobility Podcast 37: Announcements for M&E Developer Days
In this episode we talk about the Center for Mobile Education research and feature the introductory presentation by Terrence Barr and Roger Brinkley at last month's Mobile and Embedded Developer Days.
by Daniel H. Steinberg
| |
Java Mobility Podcast 36: James Goslings MEDD Keynote Address
This week Roger and Terrence recap some of the announcements from the Mobile and Embedded Developer Days. You'll also hear an excerpt from James Gosling's MEDD keynote address.
by Daniel H. Steinberg
| |
Java Mobility Podcast 35: Live from Mobile and Embedded Developer Days
This week's podcast features voices from the first ever Java Mobile and Embedded Developer Days. We talked to many of the people presenting poster sessions on Sun Microsystems' Santa Clara campus as well as some of the contestants trying to win one of four SunSPOTs.
by Daniel H. Steinberg
| |
Java Mobility Podcast 34: Manfred Kube on Siemens AySystem
The AySystem: connecting you to anyone or anything from anywhere in the world and all of the time. Monfred Kobe discusses this new end to end Java solution from Seimens.
by Daniel H. Steinberg
| |
Java Mobility Podcast 33: Simon Phipps on Open Source
Sun Microsystems' Chief Open Source Officer Simon Phipps discusses some of the key points from his keynote address at FOSS-IN late last year in India. We look ahead to the upcoming Mobile and Embedded Developer Days.
by Daniel H. Steinberg
| |
Java Mobility Podcast 32: Holiday Wishes and Resolutions
As we enter into the Holiday season, the Mobile & Embedded Community wishes all a happy holiday wishes in a montage holiday greetings and new year resolutions.
by Daniel H. Steinberg
| |
Java Mobility Podcast 31: SunSPOTs
Roger Meike talks about SunSPOTs, the device that InfoWorld has named one of the Must-have gadgets for the discerning geek. You'll hear about community, code, and plans for great presentations at January's Mobile and Embedded Developer Days.
by Daniel H. Steinberg
| |
Java Mobility Podcast 30: Sun Tech Days & FOSS/IN
This week Terrence Barr reports from the Sun Tech Days in Frankfurt, Germany and Roger Brinkley talks about his time at FOSS/IN in Bangalore, India and the Sun India Tech Days. You are invited to take a new survey and Terrence interviews Michael Samarin from FUTURICE.
by Daniel H. Steinberg
| |
Java Mobility Podcast 29: Mobile Content Lifecycle Management
There are seven steps to successfully bringing a mobile application to market. In this episode Steve Haney of Tira Wireless discusses this mobile content lifecycle management which includes market planning, design, development, adaptation, testing, channel readiness, and distribution.
by Daniel H. Steinberg
| |
Java Mobility Podcast 28: Talks on upcoming Java Mobile and Embedded Developer Days
Podcast hosts Roger Brinkley and Terrence Barr are joined by members of the selection committee for January's Java Mobile and Embedded Developer Days. They talk about the different types of sessions that have been scheduled for this conference with C. Enrique Ortiz, CTO at EZee, Sean Sheedy, Java ME Consultant and Eric Arseneau, Sun Microsystems.
by Daniel H. Steinberg
| |
Java Mobility Podcast 27: JTVOS (TV set top box) at Cineca Research
Lorenzo Pallara is a researcher with Cineca, an Italian consortium of 31 universities, 2 Scientific Research agencies, and the Ministry of University and Research. The JTVOS project is a open sourced Java based end to end interactive TV broadcasting platform based on phoneME advanced.
by Daniel H. Steinberg
| |
Creating a Java ME Math.pow() Method
Mathematical functions that are second nature to the desktop programmer may be off-limits in the resource-constrained Java ME environment. For example, while ME now supports floats and doubles, its Math class doesn't offer a pow() function for computing exponents. In this article, Lawrence Fulton and Daniel Williams show how to use approximation techniques to get "good enough" results, even with negative and fractional exponents.
by Lawrence Fulton, Daniel Williams
| |
Java Mobility Podcast 26: Tricastmedia Mail and TWUIK
Dr. Brian Lee and Dr. Salmon Ahmad introduce their Tricast Mail and push technology for delivering user information to cell phones. It uses TWUIK which greatly improves usability with dazzling graphics, vibrant animation in an engaging rich-media user experience.
by Daniel H. Steinberg
| |
Java Mobility Podcast 25: Panel on Open Source
Dalibor Topic, Kaffe.org; Fabiane Nardone, Brazilian Health Care; Tony
Wasserman, Carnegie Mellon University; Ashlee Vance, The Register form a
panel of outsiders reviewing Sun's Open Source efforts. This session
isn't specific to Java ME technologies but is worth listening to as it
relates to open source as a whole.
by Daniel H. Steinberg
| |
Java Mobility Podcast 24: Mobile & Embedded Community Stars
Mobile & Embedded Community Stars Maurico Leal, Joe Bowbeer, Hartti Suomela, Bruno Ghisi and Terrence Barr in a round table discussion.
by Daniel H. Steinberg
| |
Java Mobility Podcast 23: Johannes Eickhold
Johannes Eickhold is a Research Staff Member at the University of Karlsruhe. While most his of work is on Peer-to-Peer networking he is also working on a distributed Java VM on eight bit micro controllers to leverage that peer-to-peer network. Johannes talks about his experience porting phoneME advanced to the Nokia N800 and future directions that the community should take for this device.
by Daniel H. Steinberg
| |
Java Mobility Podcast 22: Java Mobile & Embedded Developer Days
The Mobile & Embedded Community is hosting the first ever Java Mobile & Embedded Developer Days Conference January 22-24, 2008 at the Sun Santa Clara Campus Auditorium. The conference is devoted solely to the technologies of mobile and embedded Java platforms and is targeted for application developers of intermediate and advanced skill levels, platform developers, and technical personnel at tool vendors, OEMs and carriers. Planning is underway for a series of technical sessions, lightning talks, hands on labs, and poster sessions. Roger Brinkley and Terrence Barr, Mobile and Embedded Community Leader and Technical Evangelist, provide insight into the conference.
by Daniel H. Steinberg
| |
Java Mobility Podcast 21: Wireless Toolkit
The Sun Java Wireless Toolkit for CLDC and CDC is a state-of-the-art toolbox for developing wireless applications that are based on Java ME's Connected Limited Device Configuration (CLDC) and Connected Device Configuration (CDC), and designed to run on cell phones, mainstream personal digital assistants, and other small mobile devices. The toolkit includes the emulation environments, performance optimization and tuning features, documentation, and examples that developers need to bring efficient and successful wireless applications to market quickly.
by Daniel H. Steinberg
| |
Java Mobility Podcast 20: Mobile AJAX
Web services and mash-ups of web services really bring a whole new dimension to the web and mobile computing. Terrence Barr, Vincent Hardy, and Akhil Arora have create Mobile AJAX as a subproject of the meapplicationdeveloper project to make it very easy for the Java ME developer to harness the power of Ajax-style web services. Interesting applications can be built by combining (mashing-up) information from these multiple sources and remote web services, limited only by application developers' imaginations. Mobile Ajax highlights what is possible through a number of demos as well that utilize libraries that interact with web services.
by Daniel H. Steinberg
| |
Java Mobility Podcast 19: phoneME Advanced Update
phoneME
Advanced has just released the MR2 Development Release that includes a both source and binary releases. Hinkmond Wong, the project lead, says this release features Window CE and Mobile support with an MIDP stack. Hinkmond also discusses the ports currently going on with Linux GTK and phones where this can be run and future development directions. Don't forget to take the Topic for phoneME Advanced Web Seminar poll in the phoneME Advanced Forum.
by Daniel H. Steinberg
| |
Java Mobility Podcast 18: Learn new UI techniques with phoneME UI Labs and Java ME
phoneME UI Labs is the one stop resource for developers to learn about the advanced UI technologies in Java ME platform. Aastha Bhardwaj talks about scalable vector graphics (SVG) in JSR 226 and JSR 287 and the demos that developers can find in UI Labs.
by Daniel H. Steinberg
| |
Java Mobility Podcast 17: JavaDB, a database implementation for all the Java plaftorms
Java DB is Sun's supported distribution of the open source Apache Derby 100% Java technology database. Rick Hillegas, Sun Senior Staff Engineer and Apache Derby developer, provides insights into uses of JavaDB, developing in a distributed environment and upcoming features in the next release of JavaDB.
by Daniel H. Steinberg
| |
Java Mobility Podcast 16: Hecl, the scripting language for the JavaME platform
The Hecl Programming Language is a high-level, open source scripting language implemented in Java. It is intended to be small, extensible, extremely flexible, and easy to learn and use. In fact, it's small enough that it runs on J2ME-enabled cell phones! David Welton, Hecl project owner, gives us a full view of this scripting language.
by Daniel H. Steinberg
| |
Java Mobility Podcast 15: MSpot brings the world of entertainment to the mobile phone
Derek Lyon shares their experience in using JavaME technologies on multiple phones, the custom frameworks the company developed, marketing, and how they identified the demographics of their target audience in delivering a whole host of entertainment products in both audio and video formats. For more information about MSPOT go to their website.
by Daniel H. Steinberg
| |
Java Mobility Podcast 14: Java Tools Community
Fabiane Nardon and Daniel Lopez, the Java Tools Community Leaders, talk about their community, mobile projects in the community, and how the Mobile and Embedded Community and Java Tools Community can work together. They also share their experiences in developing mobile applications. For more information on the Java Tools Community go to their community page or look at their past newletters.
by Daniel H. Steinberg
| |
Java Mobility Podcast 13: Mauricio Leal on Mobility and the Mobile and Embedded Community
Mauricio Leal, Mobility Application Developer and Advocate, discusses the challenges and issues for Developers and Carriers, shares his insight on ever emerging role of mobile devices, and its impact to help bridge the digital divide in developing countries.
by Daniel H. Steinberg
| |
Java Mobility Podcast 12: Loopt the Social Networking Application
Mark Jacobstein, EVP Corporate Development and Marketing, describes Loopt social networking application for mobile devices and the development issues of permissions, safety, and working with operators and other third party developers. He also discusses the various changes in social behavior that software like this are likely to bring.
by Daniel H. Steinberg
| |
Scalable Vector Graphics on Java ME
SVG Tiny Profile is spec'ed for Java ME in JSR 226, and it will be a requirement in upcoming ME handsets. In this article, Biswajit Sarkar has an introduction to drawing, loading, and animating SVG images in ME.
by Biswajit Sarkar
| |
Java Mobility Podcast 11: Dalibor Topic on Sun's Open Sourcing of Java
Dalibor Topic, open source Java advocate and Kaffe lead developer, shares his interest on Java ME, the possibility of using Java SE in embedded systems, and how open source projects like Cafe and Classpath will move forward after Sun's open sourcing of the Java platform. He also shares his thoughts on his role as a member of the OpenJDK Interim Board of Governance and gives Sun a scorecard on its open source efforts to date.
by Daniel H. Steinberg
| |
Java Mobility Podcast 10: Nellymoser the Mobile Media Specialist
Dave Most, Mobile Application Manager at Nellymoser, talks about the challenges in providing mobile media on a variety of handsets and how to separate form (UI) from the function to deliver a rich, satisfying experience to the user.
by Daniel H. Steinberg
| |
Java Mobility Podcast 9: A Swarm of Cheap Robots on Mars (Or Wherever You Need Them)
Bruce Boyes, CEO of Systronix, describes TrackBot, a small robotic device with built-in sensor modules that provide beaconing, obstacle avoidance, spatial awareness, communication, and navigation. Add a SunSPOT device to TrackBot, and the result is a powerful but affordable strategy for large-scale deployments in swarms and collaborative robotic behavior. (See also TrackBot on YouTube.)
by Daniel H. Steinberg
| |
Java Mobility Podcast 8: Amobee Delivers Ad-Funded Mobile Java Apps and Services
In this interview at 2007 JavaOne conference, Amobee Media Systems' Ziv Eliraz describes the company's unique operator-centric system for ad-funding mobile services and applications. Developers can integrate Amobee's handset API ("HAPI") in their Java applications and generate revenue in a way that is contextually sensitive and user-friendly.
by Daniel H. Steinberg
| |
Java Mobility Podcast 7: OpenLaszlo and Project Orbit
Max Carlson, Laszlo Systems co-founder, and Hinkmond Wong, Sun senior staff engineer, discuss OpenLaszlo and Project Orbit. Designed to free content developers from worrying about runtime issues, OpenLaszlo supports zero-install deployment of Ajax applications in multiple environments. Project Orbit is the Sun Java ME viewer for Laszlo Web 2.0 content on set-top boxes and smart cell phones.
by Daniel H. Steinberg
| |
Java Mobility Podcast 6: Vodafone Introduces Betavine Developer Portal
Roger and Terrence interview Steve Wolak and Peter Thompson from Vodafone about the new Betavine site, a research and development space that encourages collaboration in mobile and internet communications. As a Betavine user, you can download and test applications, create your own projects and blogs, and interact with other users.
by Daniel H. Steinberg
| |
Java Mobility Podcast 5: A Talk With Java ME Expert C. Enrique Ortiz
C. Enrique Ortiz, a recognized mobility expert, renowned blogger, developer, and author, touches on a range of mobility topics in this interview, including: moving to CDC; the latest JSRs that are important to mobile developers; mobile AJAX; and the issue of device fragmentation.
by Daniel H. Steinberg
| |
Java Mobility Podcast 4: Meet Vringo
Catch Roger Brinkley's and Terrence Barr's interview with Vringo, an independent software vendor (ISV) who launched a video-sharing community that enables you to share video ringtones (or "Vringos") with your buddies. You choose the clips -- from movies, TV, music, or your originals -- you'd like your friends to see on their mobile phones, and they choose the clips they'd like you to see. Says Vringo: "We want to make sharing viral videos as easy as calling your friends."
by Daniel H. Steinberg
| |
Java Mobility Podcast 3: JavaOne 2007 Activities
In this, our first year of open-sourcing Java ME technology, we have an incredibly rich and varied program for mobile and embedded developers at
the 2007 JavaOne conference. Leader Roger Brinkley and tech evangelist Terrence Barr walk through the week-long program in San Francisco, highlighting the most interesting activities and not-to-miss events.
by Daniel H. Steinberg
| |
Mobile and Embedded Podcast 2: Report From Brazil
In the second podcast in our Mobile and Embedded Community series, leader Roger Brinkley and tech evangelist Terrence Barr highlight the latest community technology news, and then report on the April events in Brazil at Sun Tech Days and the FISL conference. Don't miss Roger's interview with Bruno and Lucas, project owners of the Marge Project, a Java Bluetooth Framework that shows how to create Bluetooth-enabled applications in a simple way. Bruno and Lucas recently unveiled a video about their demos on YouTube.
by Daniel H. Steinberg
| |
Mobile and Embedded Podcast 1: Introduction to the Community
This week we launch the new Mobile and Embedded Community podcast series with an introduction to the community. Leader Roger Brinkley and Technical Evangelist Terrence Barr describe the resources available for Mobile and Embedded developers.
by Daniel H. Steinberg
| |
Working with the Java ME FileConnection API on Physical Devices
Record stores not enough? Some Java ME devices support JSR 75, an API that allows for a deeper level of file-system access. But even though it's spec'ed by a JSR, its implementation across devices offers a variety of hazards to watch out for. In this article, Biswajit Sarkar takes a real-world look at this FileConnection API.
by Biswajit Sarkar
| |
Implementing Copy and Paste for the Java ME TextBox
Text entry is difficult on phones, so it's possible your Java ME users will want to copy and paste to save some keypresses. However, the ME TextBox doesn't provide this functionality out of the box. Biswajit Sarkar shows you how to implement it yourself.
by Biswajit Sarkar
| |
Access Desktop Data from Mobile Devices
Your data's on the desktop, and you've got a mobile. Not a problem. By combining an ME midlet with an EE servlet running on the desktop, you can retrieve desktop data, send it to the phone, and work with it there. Biswajit Sarkar offers a simple example of how this arrangement can work.
by Biswajit Sarkar
| |
Experiments in Streaming Content in Java ME
Many Java ME devices can play small files, but what about streaming media in real time? "Pro Java ME MMAPI" author Vikram Goyal takes a look at what it takes to set up a streaming server and then develop ME classes for modeling and handling packets... only to run into the harsh realities of today's mobile media capabilities and limitations of MMAPI.
by Vikram Goyal
| |
Writing Cool Games for Cellular Devices
Games represent many of the most popular applications for Java ME, but how do you get started writing games for the small device? In this introduction, Kobi Krasnoff develops a simple, multi-screen basketball game for the mobile phone to show you how it's done.
by Kobi Krasnoff
| |
An Introduction to BlackBerry J2ME Applications
One thing most people don't realize about the BlackBerry is that it offers a capable J2ME environment. By using RIM's development tools, you can use some of the BlackBerry's unique features, like its scroll wheel, to deliver quality mobile apps. In this article, Edward Lineberry shows you how to get started.
by Edward Lineberry
| |
J2ME Tutorial, Part 4: Multimedia and MIDP 2.0
In part four of this J2ME tutorial, you will use the Mobile Media API 1.1 (MMAPI) to load and play audio and video on your MIDP device.
by Vikram Goyal
| |
Low-Level Display Access in MIDlets
In part four of his series on mobile application development with J2ME, Thomas Künneth looks at the Canvas, which gives developers of games, multimedia, 3D and other applications the ability to render directly to the display instead of by way of a set of widgets.
by Thomas Künneth
| |
Mobile Memories: The MIDP Record Management System
In part three of his series on mobile application development with J2ME, Thomas Künneth looks at how MIDlets can use RecordStores to persist information, such as the records in his "Duke's Diary" example.
by Thomas Künneth
| |
Still on the Road with Duke
In part two of his series on mobile application development with J2ME, Thomas Künneth introduces the various GUI components that can be used in a mobile application, and combines them into a complete diary application.
by Thomas Künneth
| |
Going Mobile with Duke
Hundreds of millions of mobile devices are using Java technology, a huge potential audience for developers. But developing for J2ME is different from standard and enterprise Java development. Thomas Künneth takes you through the basics of developing and deploying a small J2ME application.
by Thomas Künneth
| |
Scratch
Scott Davis wanted to capture signatures on a Palm. To scratch this particular itch, he rolled a J2ME MIDlet and posted it on java.net. In this article, he describes how this small, practical app works.
by Scott Davis
| |
Getting Started with Java and Bluetooth
Java developers can now write applications that communicate via the Bluetooth standard, thanks to a spec defined in JSR-82 and several implementations of it. Bruce Hopkins takes a look at how it's done.
by Bruce Hopkins
| |
Java and GIS, Part 2: Mobile LBS
Sue Spielman's series on geospatial programming continues with an introduction to Location-Based Services (LBSes), complete with a J2ME MIDlet that can send its GPS-provided location to a servlet.
by Sue Spielman
and Tom Whitehill
| |
Java and GIS, Part 1: Intro to GIS
"Geospatial" data -- that which has to do with location or space -- is at the core of all kinds of interesting applications, particularly in the GPS-powered mobile space. In Part 1 of a series on Geographic Information Systems (GIS), Sue Spielman and Tom Whitehill introduce the concepts of this problem domain.
by Sue Spielman
and Tom Whitehill
|
Programming
|
Grails and Continuous Integration: An Essential Combo
Grails is an excellent, highly productive development framework that positively encourages good development and testing practices. This article shows how to set up a Continuous Integration build job to compile and test your Grails application in Hudson, for automated continuous integration.
by John Ferguson Smart
| |
Exposing Domain Models through the RESTful Service Interface, Part 1
JAXB and JPA can be combined to reduce the boilerplate code of Java EE applications and to optimize the performance of RESTful web services--a flexible solution, which preserves the original domain model while following the JPA, JAXB, and HTTP standards.
by Felipe Gaucho
| |
Hacking JavaFX Binding
The JavaFX bind operator connects or links variables, through a small framework based on Locations. This article looks at the internal structure of JavaFX binding, and demonstrates how it can be applied as a binding framework for Swing.
by Thomas Künneth
| |
Zero and Shark: a Zero-Assembly Port of OpenJDK
The Red Hat team needed to port OpenJDK to multiple Linux platforms, but porting assembly code to multiple platforms is an enormous task. The solution? Zero and Shark.
by Gary Benson
| |
Protect Your Legacy Code Investment with JNA
The promise of Java Native Access (JNA) is to bridge the worlds of Java and legacy code. Why is this so important? For one, JNA obviates the need to rewrite legacy code where the option of a rewrite exists. Also, JNA means that expensive proprietary bridging solutions are no longer needed.
by Stephen B. Morris
| |
(Not So) Stupid Questions 21: All Statics
This "stupid question" is about a Struts application where the developers have made all their DAO methods static, and whether that's an appropriate design decision.
| |
JSR-286: The Edge of Irrelevance
JSR-286 updates the Portlet specification to add new functionality, but has the Portlet ship sailed? In this article, Eric Spiegelberg looks at the history of the Java Portlet spec and argues that the design and philosophy of Java web applications has moved on and left portlets behind.
by Eric Spiegelberg
| |
Sending Messages Using JBI Technology
Java Business Integration (JBI) offers a programming model build on assembling a group of components that can be plugged in to a collaborative system. In this article, Francesco Azzola demonstrates basic JBI development and deployment by creating an app that receives requests and sends SMS messages.
by Francesco Azzola
| |
Creating a NotifyingBlockingThreadPoolExecutor
Thread pools are easy enough to understand, but in practice, do they provide the appropriate behavior? Specifically, what should the pool do when its threads are all in use? What should the caller do? In this article, Amir Kirsh offers a design for a comprehensive approach to this problem.
by Amir Kirsh
| |
An Introduction To Servlet 3.0
After years of simpler maintenance releases, the Servlet API is getting a major overhaul for Java EE 6, improving ease of use, configurability, pluggability, security, and more. In this article, Deepa Sobhana offers a detailed overview of what's changing and why.
by Deepa Sobhana
| |
Pitfalls of the Java Permissions Model
Is Java a good choice for creating applications with configurable security? Denis Pilipchuk argues that Java's permissions-based security model is a relic of its browser days and lacks the configurability, expressiveness, and efficiency that enterprise Java developers need. In this article, he looks at the problems of the permissions model and considers some alternatives.
by Denis Pilipchuk
| |
Using Styles, Themes, and Painters with LWUIT
The LWUIT brings a great deal of customizability to Java ME GUIs, offering the ability to combine specific combinations of colors, fonts, images and opacity into styles and themes, and have GUI elements use those settings. LWUIT also offers a SwingX-like Painter for applying custom painting across components. In this article, Biswajit Sarkar looks at how you can employ styles, themes, and painters in your LWUIT application.
by Biswajit Sarkar
| |
JSR 310: A New Java Date/Time API
Java SE's Date and Calendar classes leave much to be desired. Will the third time be the charm? JSR 310, tracking for inclusion in Java SE 7, once again tries to offer a comprehensive date and time API, borrowing much of its design from the popular Joda Time API. In this article, Jesse Farnham takes a look at JSR 310's concepts and how they may yet bring sense to dates and times in Java.
by Jesse Farnham
| |
The Open Road: javax.annotation
Annotations were introduced in Java 5, and now that the community has had time to try them out and get used to them, Java 7 is preparing to adopt them aggressively. In this installment of The Open Road, Elliotte Rusty Harold looks at the annotations proposed by JSR 305 and how they'll make your code more amenable to static analysis, compiler checks, and other tools to improve safety and robustness.
by Elliotte Rusty Harold
| |
An Introduction to the Lightweight User Interface Toolkit (LWUIT)
Java ME may promise consistent behavior across devices, but not consistent appearance, which makes it difficult to create GUIs that work everywhere. The Lightweight User Interface Toolkit addresses this problem by taking a Swing-like approach and rendering all components in Java. In this article, Biswajit Sarkar offers an overview of LWUIT's functionality and design.
by Biswajit Sarkar
| |
Return-Type-Based Method Overloading in Java
Overloaded method names must differ by parameter count and type and not return type, right? Wrong! The VM knows the return type of all methods and with a little bytecode engineering, you can have methods that differ only by return type. Vinit Joglekar shows you how it's done.
by Vinit Joglekar
| |
Fun with Continuations
Continuations offer the ability to persist program state, which gives you the ability to employ a number of sophisticated techniques in your development. Sleep, a Perl-like scripting language that runs on the JVM, offers first-class support for continuations. In this article, Raphael Mudge shows you how to use continuations in Sleep and what you can do with them.
by Raphael Mudge
| |
Distributing a Java Web Start Application via CD-ROM
Java Web Start is a preferred technology for distributing desktop Java applications, but sometimes it makes sense to send users a CD-ROM rather than a URL. In this article, Luan O'Carroll shows you how to distribute JWS apps via CD-ROM, including any necessary JRE installations.
by Luan O'Carroll
| |
The Open Road: java.nio.file
A file I/O API with reliable and speedy methods for copying and moving files? Getting and preserving file attributes? Filesystems to represent RESTful web servers or the contents of zip files? JSR 203, which may be part of Java 7, offers a totally overhauled approach to File I/O in Java. In this installment of "The Open Road," Elliotte Rusty Harold takes a look at the current spec.
by Elliotte Rusty Harold
| |
A Customized User Interface for Mobile Phones
GUIs vary from one Java ME implementation to another, from attractive and functional to nearly unusable. What's a developer to do? In this article, Biswajit Sarkar makes the case for developing your own text display and menu class by custom painting a Canvas, thereby delivering the same experience on all ME devices.
by Biswajit Sarkar
| |
Add Logging at Class Load Time with Java Instrumentation
Java Instrumentation, introduced in Java SE 5, offers an interesting ability to manipulate class bytecode as it's loaded by the classloader. In this article, Thorbjørn Ravn Andersen offers a simple example of this feature by adding logging statements to the beginning and end of all methods of an arbitrary class.
by Thorbjřrn Ravn Andersen
| |
Source Code Analysis Using Java 6 APIs
Why does Java 6 expose the javac compiler through a programmatic interface? It's not just for building IDEs. In this article, Deepa Sobhana and Seema Richard show how to use the new feature for static code analysis, with an example that verifies that classes overriding Object.equals() also implement the required override of Object.hashcode().
by Seema Richard, Deepa Sobhana
| |
Extending OpenPTK, the User Provisioning Toolkit
Project Open Provisioning ToolKit (OpenPTK) is as an open source user provisioning toolkit exposing APIs, web services, HTML taglibs, and JSR-168 portlets with user self-service and administration examples. OpenPTK hides the implementation differences between different user stores, allowing developers to use multiple stores with a common API. Masoud Kalali shows how to use and extend the toolkit.
by Masoud Kalali
| |
Synchronizing Properties with Beans Binding (JSR 295)
The idea of setting up listener relationships between your GUI models, views, and controllers is simple enough, but grinding the same "glue" code dozens or even hundreds of times is wasteful and error-prone. JSR-295, Beans Binding, offers relief from the drudgery. In this article, John O'Conner shows how it works and what it can do for you.
by John O'Conner
| |
The Open Road: Superpackages
Wonder what the relationship between com.example.package and com.example.package.test is? There isn't one! This lack of an orderly package-visibility relationship has made life difficult for a number of programmers trying to balance organizational needs against practical concerns. In this entry of "The Open Road," Elliotte Rusty Harold takes a look at how JSR 294 ("superpackages"), intended to be part of Java SE 7, proposes to fix this problem.
by Elliotte Rusty Harold
| |
Reflection in Action
Perhaps you've heard of reflection, seen it in books, but you're not sure what it can do for you, In this introductory article, Albert Attard introduces the basic techniques of discovering and using a class's methods and fields at runtime, and discusses cases where this can be a powerful technique.
by Albert Attard
| |
Query by Slice, Parallel Execute, and Join: A Thread Pool Pattern in Java
Pagination is a much-needed feature; one that's harder than it looks. For large datasets, reading all results into memory is impractical, if not dangerous, but only fetching small chunks can make it difficult to apply business logic across all results. Binildas C. A. shows how to combine the database's ROWNUM function with Java SE 5's thread pools to create highly effective pagination.
by Binildas Christudas
| |
JMS Messaging Using GlassFish
Messaging provides a way for different parts of an enterprise system to collaborate, without the tight coupling of approaches like RMI and CORBA. Java EE defines the Java Messaging Service (JMS) for creating loosely coupled enterprise systems, and in this article, Deepa Sobhana shows off how to build a JMS-driven application atop GlassFish.
by Deepa Sobhana
| |
Dynamic Load Balancing in GlassFish Application Server
GlassFish provides fine tools for load balancing across a cluster, but what if you want to make your clustering decisions dynamically? Masoud Kalali shows how JMX and AMX can be used to make runtime clustering decisions.
by Masoud Kalali
| |
Clustering with the Shoal Framework
Shoal is an open source clustering framework used to provide clustering functionality to GlassFish. But you don't have to use GlassFish, or even be developing EE applications, to benefit from Shoal's JXTA-powered clustering capabilities. In this article, Diego Naya and Juan Pedro Danculovic show how to work directly with the Shoal API.
by Juan Pedro Danculovic, Diego Naya
| |
Ajax Form Validation Using Spring and DWR, Revised
In a previous article, Eric Spiegelberg offered a design for using DWR to allow an Ajax-based web application to provide server-side validation of client-side input. After nearly a year in production, he's back with a cleaner, more efficient design.
by Eric Spiegelberg
| |
(Not So) Stupid Questions 20: Primitives and Collections
This "stupid question" is about how collections are defined as only working with objects, yet a simple code example proves it's trivial to add primitives to collections.
| |
(Not So) Stupid Questions 19: Remote Threaded Event Listener
This "stupid question" is about a scenario in which an application wants to listen to events from a remote box and invoke interface methods, which implies a thread to listen for the methods. But how do you invoke those methods when all the threaded work has to be done in the thread's run() method?
| |
Launch Java Applications from Assembly Language Programs
Java to assembly is one thing, but what about calling Java from assembly language? Biswajit Sarkar says he's worked on assembly programs where the most effective way to incorporate higher-level functionality was to create and invoke a JVM. In this article, he shows how it's done.
by Biswajit Sarkar
| |
Scripting with Balance in Design and Performance
Java SE 6 introduces a new framework for integrating with scripting languages. But what's the right way to mix these languages with Java? Dejan Bosanac, author of Scripting in Java, looks at how an interface-driven approach allows you to maintain good design as you combine languages.
by Dejan Bosanac
| |
Towards a Timely, Well-Balanced, Event-Driven Architecture
What happens when your system temporarily produces events faster than it can handle them? Can concurrency help the problem? Lorenzo Puccetti looks at an asynchronous event dispatching design as a possible solution.
by Lorenzo Puccetti
| |
Instant User Tracking with ClickStream
Where are your users going on your website and what are they doing? ClickStream, one of the many OpenSymphony projects, lets you track and log where users go during their sessions. In this article Diego Adrian Naya Lazo shows you how to configure, run, and customize ClickStream
by Diego Naya
| |
(Not So) Stupid Questions 18: Reverse Access Modifiers
This "stupid question" is about the idea of "reverse" access modifiers, meaning an annotation or other modifier that would prevent a method from making outside calls.
| |
The Open Road: Looking Ahead to Java 7
Kicking off a new column about the development of Java 7, David Flanagan takes a look at the OpenJDK and JDK7 projects and their processes, language changes that have been mentioned as possible candidates for Java 7, and major new APIs that are tracking for inclusion in the new version.
by David Flanagan
| |
(Not So) Stupid Questions 17: Should Code be Clean or D.R.Y.?
This "stupid question" is about the concept of "Don't Repeat Yourself" programming philosophy, and whether it's really compatible with proper object-oriented programming techniques.
| |
Extending the ReentrantReadWriteLock
Java SE 5.0's ReadWriteLock and ReentrantReadWriteLock offer significant opportunities for concurrent programmers, but also present hazards that can lead to hard-to-track bugs. Ran Kornfeld shows how you can extend the functionality of these classes to find and fix concurrency bugs.
by Ran Kornfeld
| |
An (Almost) CPU-Free MVC Pattern with Ajax
Moving some of your work from the server to the client with Ajax is easier said than done, but the RAJAX project makes it easier by generating client-side JavaScript objects to work with your Java web app. Paulo Lopes shows how it works.
by Paulo Lopes
| |
Developing Applications Using Reverse Ajax
Your Ajax-powered web client can pull content from a server and work with it, but how can a server update the client asynchronously when it has new data? Katherine Martin shows how the Direct Web Remoting (DWR) library supports a new approach: reverse Ajax.
by Katherine Martin
| |
Role-Based Code Upgrade
When you upgrade one feature that will only be used by a small set of users, why should you have to update the entire application for all your users? Stephen B. Morris proposes a model of updating just what's needed, and only for who needs it.
by Stephen B. Morris
| |
Building Web Applications with Maven 2
Ant is the default for many web application developers, but Will Iverson makes the case that using Maven 2 can save you a lot of time and hassle through its approach of sensible defaults. In this article, he introduces core Maven 2 concepts and then shows you how easy it is to develop a web app with Maven 2.
by Will Iverson
| |
ColdFusion for JSP Developers
ColdFusion has been around long enough, and in different forms, that it's easy to not see it for what it is. In this article, Kola Oyedeji looks at how this long-lived scripting language has been adapted to integrate into the world of Java EE.
by Kola Oyedeji
| |
(Not So) Stupid Questions 16: What's the Difference Between Wildcard Generics and no Generics?
This "stupid question" is about the difference between specifying a wildcard generic type versus not using genericized collections at all.
| |
Tackling Java Performance Problems with Janino
The Janino library takes a very different approach to performance, allowing you to dynamically compile your most-used expressions. Tom Gibara introduces Janino and makes some remarkable claims about its capabilities.
by Tom Gibara
| |
Architecture of a Highly Scalable NIO-Based Server
If you're writing low-level server code, you'll probably make the decision early to use NIO for high-performance I/O. But are you prepared to address the threading concerns to get the most out of NIO while serving the greatest number of concurrent users? Gregor Roth looks at how an event-driven architecture can improve your performance and capacity.
by Gregor Roth
| |
Ajax Form Validation Using Spring and DWR
Validating user input in web apps doesn't lend itself to easy solutions: you don't want client-side validation to require you to duplicate your effort, but server-side validations may run long after the invalid input is entered. Eric Spiegelberg has an approach that uses Ajax, via Direct Web Remoting, to let your server-side validation code correct client-side entries on the fly.
by Eric Spiegelberg
| |
Separating Concerns and Advising Domain Objects
The problem with "separating concerns," as object-oriented programming compels you to do, is that some concerns are shared by many objects. Straightforward approaches, like coding those concerns everywhere they're needed, fly in the face of encapsulation. There are ways around the problem, but as Eric Batzdorff points out, some work better for one or few objects than for many.
by Eric Batzdorff
| |
(Not So) Stupid Questions 15: How Can a Constructor Be Private?
This "stupid question" is about the ability to put a private access modifier on a constructor, making it unavailable to other classes.
| |
Nuances of the Java 5.0 for-each Loop
Java 5.0's for-each loop saves keystrokes, but that's not all it does. It offers opportunities for compiler optimizations, as well as for subtle bugs from unboxing and null-handling. Nishanth Sastry has some strategies for getting the most out of 5.0's for-each.
by Nishanth Sastry
| |
Combine JSF Facelets and the Flying Saucer XHTML Renderer
Facelets and the Flying Saucer XHTML renderer might seem to be on opposite sides of the server/client divide, but in fact, they can be used together to render content in many different forms, including PDF and SVG. Jacobus Steenkamp shows how it's done.
by Jacobus Steenkamp
| |
(Not So) Stupid Questions 14: Why Do Pointless if Statements Even Compile?
This "stupid question" is about the fact that if (condition); compiles, even though the erroneous semicolon makes it meaningless.
| |
Invoking Assembly Language Programs from Java
Nearly everything written about Java Native Interface (JNI) assumes that your native code will be written in C or an offshoot like C++ or Objective-C. But this isn't the only option. For high performance and close-to-the-metal coding, you can call assembly language from JNI. Biswajit Sarkar shows how to do it.
by Biswajit Sarkar
| |
The Blogapps Project
Dave Johnson, author of the Roller blog server, has a new book out on working with RSS and Atom. To support the book, he's put its example code up as a java.net project. And while version 1.0 will continue to support the book, an ongoing branch will continue to evolve and improve. In this article, Dave introduces the Blogapps project and how to use it for your own projects.
by Dave Johnson
| |
Development of a 3D Multiplayer Racing Game
Developing 3D action games doesn't involve just a single API, but a combination of some of the most demanding parts of Java. Evangelos Pournaras offers an overview of one such project, a 3D racing game that uses JOGL, JOAL, and java.nio.
by Evangelos Pournaras
| |
(Not So) Stupid Questions 13: The Construction of Constructors
This "stupid question" is about calling a superclass' constructor in your subclass' constructor and why you can only do it in your first statement.
| |
Making Scripting Languages JSR-223-Aware
With the interest in using other languages in concert with Java, JSR 223 defines a means of calling a scripting language from Java. Thomas Kuenneth has gotten AppleScript working in this form, and in this article, he shows you how to bring your favorite language to Java.
by Thomas Künneth
| |
Five Habits of Highly Profitable Software Developers
Lots of developers and managers talk a good game about best practices, but what are they? What makes a practice "best" anyways? Robert Miller argues the best code is that which can be understood, maintained, and extended, and in this article, he has five habits to do just that.
by Robert J. Miller
| |
Current CMS
Looking for a content management system? David E. Karam has taken a system built over the course of nearly nine years, originally built on Perl and flat files, and brought it to Java with proper database and JSP support. In this article, he introduces you to the currentcms project.
by David Karam
| |
(Not So) Stupid Questions 12: What's in a Name
This "stupid question" is about the use of the "Java" name in open-source projects, Web sites, companies, and more.
| |
Java Object Querying Using JXPath
Finding objects within objects within lists of objects can be a tiresome chore to code, with multiply-nested loops and all sorts of room for error. JXPath offers an alternative: addressing your objects, their members, and their members' members with an XPath-style syntax. Brian Agnew looks at the pros and cons of this approach.
by Brian Agnew
| |
(Not So) Stupid Questions 11: Guidance
This stupid question" is about about questions themselves: Where is the best place to go for answers to Java questions?
| |
Aspect Oriented Programming and Internationalization
If you leave internationalization for the end of your project, chances are you're going to find it a challenge. But as a cross-cutting concern that's needed throughout an app, could I18N be seen as a task for aspect-oriented programming? Stephen B. Morris argues for this approach and shows how it can work.
by Stephen B. Morris
| |
Lazy Loading is Easy: Implementing a Rich Domain Model
Lazy loading--not fetching data until it's needed--is an approach that gets a lot of developers nodding their heads in agreement, even if they don't actually try implementing it themselves. But as Johannes Broadwall reports, it's not hard to do, and conveys some genuine benefits.
by Johannes Brodwall
| |
Kickstarting Google Web Toolkit on the Client Side
The focus of most Ajax development is the interaction between a slightly richer client and the server, with not a lot of attention paid to how much can be done on the client side. In this article, S. E. Morris takes the Google Web Toolkit and focuses exclusively on the client side, showing how to perform sophisticated layout and animation and providing compelling demos that never make a server call.
by Simon Morris
| |
(Not So) Stupid Questions 10: JAR Files
This "stupid question" is about JAR files. I know I can put all my classes in a JAR file, but what else does it do for me?
| |
Distribute, Detach, and Parallelize in Tomcat
Do you need a highly scalable architecture? Do you need to be able to handle hundreds of transactions a second? What works in small web apps doesn't necessarily hold together in big apps under heavy loads. Binildas C. A. has this introduction to coding and deployment techniques to hold up under the load.
by Binildas Christudas
| |
Continuous Integration with Continuum
The best way to integrate in a hurry is to have been doing it all along. This practice of continuous integration is greatly helped by automated tools to check out and build your team's code on a more or less constant basis. Apache Continuum offers a free and open source tool to do continuous integration; John Ferguson Smart looks at how it works.
by John Ferguson Smart
| |
Almost Portlets
In "Almost Portlets," Michael Jouravlev introduces a JSP library that allows for individual components of a web page to render themselves, maintain state, and generally behave like portlets. Except that they don't need a true portlet container, and they can update themselves in place without a page reload via Ajax if the browser supports it.
by Michael Jouravlev
| |
(Not So) Stupid Questions 9: JavaOne
This "stupid question" is about the JavaOne Conference. My company is paying for me to attend. When should I get there? What should I plan on doing? What shouldn't I bother doing?
| |
Using Dojo and JSON to Build Ajax Applications
The AJAX developer faces a series of challenges in his or her work: not just on the client or server side, but also in combining the two. Zarar Siddiqi suggests one combination that solves a lot of problems: using the Dojo JavaScript library and the JSON library for converting Java objects to and from String representations.
by Zarar Siddiqi
| |
Writing Cool Games for Cellular Devices
Games represent many of the most popular applications for Java ME, but how do you get started writing games for the small device? In this introduction, Kobi Krasnoff develops a simple, multi-screen basketball game for the mobile phone to show you how it's done.
by Kobi Krasnoff
| |
LdapTemplate: LDAP Programming in Java Made Simple
If you've worked with LDAP in Java, you're probably familiar with its JDBC-like hassles: lots of plumbing code, tedious iteration over results, pedantic cleanup, and exception handling hassles. The Spring-based LdapTemplate project alleviates many of those hassles. Ulrik Sandberg and Mattias Arthursson introduce you to the advantages of this approach.
by Mattias Arthursson, Ulrik Sandberg
| |
Scripting for the Java Platform
JSR-223 brings scripting languages to the Java platform, complete with the ability to work with Java objects and thus the extensive Java class libraries. Thomas Kunneth has an introduction to its early implementation in Mustang.
by Thomas Künneth
| |
Exception-Handling Antipatterns
Try, catch, log, or return null? The Java language gives you many options for dealing with exceptions, and with them, many ways to shoot yourself in the foot. In this article, Tim McCune looks at the antipatterns--bad solutions to common problems--found in Java exception-handling code.
by Tim McCune
| |
Reading the News with Sun's RSS Utilities
RSS is the syndication standard that powers web newsfeeds and podcasts, but at the end of the day, it's simple, parsable XML. A JSP tutorial from Sun includes a surprisingly capable RSS parser, and Chris Hardin shows how you can use it in your own applications.
by Chris Hardin
| |
Mobicents: JSLEE for the People, by the People
VoIP services depend on high-performance, low-latency servers that can manage the activity of thousands of users logging in, logging out, starting connections with each other, etc. JAIN SLEE is a Java spec for such a system, and java.net's Mobicents project represents its first open source implementation. Ivelin Ivanov introduces JAIN SLEE design and the Mobicents implementation.
by Ivelin Ivanov
| |
(Not So) Stupid Questions 8: serialVersionUID
This "stupid question" is about the serialVersionUID, which defaults to being a checksum of a class' fields, methods, and other members. Now that some IDEs emit a warning when you don't override it, the questions are: what is it good for, how and why would you override it, and what could go wrong if you do?
| |
Unified Expression Language for JSP and JSF
JSP's expression language is great until you try to also use it with JSF. The limitations and differences between the two technologies has given rise to a "unified" expression language. In this article, Krishna Srinivasan takes a look at how the unified EL works.
by Krishna Srinivasan
| |
Smooth Moves
Animation quality is a subjective perception, and that makes it somewhat more of an art than a science. Chet Haase has taken a look at some of the things that make animation look choppy, and offers programmatic approaches to improving the appearance of Java animations.
by Chet Haase
| |
Better File Uploads with AJAX and JavaServer Faces
Browser-based file uploads present user experience problems, as the usual technologies offer little opportunity to show the user how the upload is progressing. Jacobus Steenkamp shows how to alleviate this with a combination of JSF and AJAX.
by Jacobus Steenkamp
| |
Java Tech: Process Images with Imagician
Jeff Friesen returns to image manipulation in the latest installment of "Java Tech," showing how to create an image-editing application with a series of common, useful graphic effects. He also adds a status bar that explains the effect of each menu item.
by Jeff Friesen
| |
Taking a Tour of ROME
Working with web syndication? Your development path may lead you to ROME--not the city, but the syndication framework, which makes working with RSS and Atom a breeze for both server-and client-side code. Randy J. Ray has an introduction to this project.
by Randy J. Ray
| |
A Console Terminal for JARs
The "standard I/O" streams--System.out, System.err, and System.in--are critically important for many Java developers. But put your Java app in a JAR file and data sent to these streams is lost forever. Sanjay Dasgupta introduces a project to provide a GUI terminal for these streams in JAR-launched applications.
by Sanjay Dasgupta
| |
Server-Side Typed Event Distributors
Event processing isn't just for GUIs and enterprise messaging systems anymore. Even an HTTP server can be seen as processing a series of events, and it can be advantageous to wire up one or more handlers to each event. Satya Komatineni shows how to build an event distribution framework and what it can do for you.
by Satya Komatineni
| |
An Introduction to BlackBerry J2ME Applications
One thing most people don't realize about the BlackBerry is that it offers a capable J2ME environment. By using RIM's development tools, you can use some of the BlackBerry's unique features, like its scroll wheel, to deliver quality mobile apps. In this article, Edward Lineberry shows you how to get started.
by Edward Lineberry
| |
WebWork Validation
WebWork is a web application framework designed for simplicity and productivity. In this introduction, Zarar Siddiqi introduces the options for validating web forms in WebWork, including using its built-in validators and defining your own.
by Zarar Siddiqi
| |
(Not So) Stupid Questions 7: >>, >>>, <<, and ?: operators
This "stupid question" is about the little-used operators >>, >>>, <<, and ?:--what do they do and when are they used?
| |
Business Object State Management Using State Machine Compiler
Many business processes involve well-defined transitions from one state to another, and are easy enough to represent in code. But oftentimes, developers unnecessarily combine their state transition logic and business logic, which makes maintenance harder. Separating out the state machine makes this easier, and the State Machine Compiler (SMC) project offers a powerful tool to do this. Jason Zhicheng Li introduces SMC and with a simple order-filling example.
by Jason Zhicheng Li
| |
Implementing Business Processes with OSWorkflow
OpenSymphony's OSWorkflow project offers an open source workflow framework written entirely in Java. This allows you to integrate workflow concepts into your Java application cleanly and easily. Diego Naya has an introduction to OSWorkflow and its concepts.
by Diego Naya
| |
An Introduction to JMXRemote
JMX programmers know that getting an MBeanServerConnection from a JMXConnector comes with a string attached: no support for the registerMBean() method, and thus no way to register a local MBean with the remote server. The JMXRemote project aims to fix that, and Lu Jian shows how it works.
by Lu Jian
| |
Writing Mixins using AspectJ
Despite their potential for adding common functionality across unrelated classes, mixins aren't directly supported by the Java language. But by using an aspect-oriented programming approach, you can bring mixins to Java. Mohan Radhakrishnan shows how to do this with AspectJ.
by Mohan Radhakrishnan
| |
Log4Ajax
AJAX developers, like all client-side JavaScripters, know that alert is their friend at development time, but as a logging tool, it's severely limited. Eric Spiegelberg offers more robust ideas for logging on the client side and logging from the client to the server.
by Eric Spiegelberg
| |
Java Tech: Image Embossing
Many GUIs use an "embossing" effect to create the illusion of depth, manipulating pixel colors to suggest small ridges and valleys. In this installment of "Java Tech," Jeff Friesen introduces an algorithm to perform the embossing effect, and shows how easy it is to implement with Swing and Java2D.
by Jeff Friesen
| |
Solving Sudokus in Java
Sudoku puzzles are wildly popular, and offer an ideal introduction to constraint programming (CP). Rather than using brute force to find every possible solution, CP allows you to specify what must be true in a problem space, and then efficiently finds an answer. Yan Georget shows how this works.
by Yan Georget
| |
(Not So) Stupid Questions 6: Comparability of Minimum, Maximum Dimensions
This "stupid question" is about the definition of AWT/Swing Components' getXXXSize() methods, given that the Dimensions they return are not Comparable.
| |
Using JMX and J2SE 5.0 to Securely Manage Web Applications
Want to know what's going on with your web application, in a more sophisticated way than just "tail"-ing a log file? By instrumenting your web app to work with JMX, you can use a number of tools to interact with the running application. Zarar Siddiqi shows how this can be accomplished.
by Zarar Siddiqi
| |
Java Tech: Generics and You
Are you ready to put your generics knowledge to the test? Java Tech columnist Jeff Friesen has compiled a quiz with 20 questions designed to dig deep into the concepts, features, and gotchas of this major J2SE 5.0 feature.
by Jeff Friesen
| |
Implementing Validation Rules using Aspects
Data validation is something that may be needed throughout your application, which makes it a candidate for an aspect-oriented programming approach. Srini Penchikala shows how to combine AspectJ and Drools to create a rule-driven data validation system.
by Srini Penchikala
| |
Further Down the Trail
Trails gets you up and running quickly, but what does it take to create a real application, with sophisticated relationships and customized pages and editors? Trails creator Chris Nelson shows you how easy this is.
by Chris Nelson
| |
Implement Your Own Proxy-Based AOP Framework
Aspect-oriented programming often comes with a totally new way of doing things, maybe not entirely to your liking. But why not take control? By using Java dynamic proxies, or the CGLIB library, you can create your own AOP framework, and really understand how it operates. Jason Zhicheng Li shows you how it's done.
by Jason Zhicheng Li
| |
Service Provisioning Through ESB
The Enterprise Service Bus approach to enterprise development separates functionality from transport, allowing you to develop deeply distributed systems without getting hung up on the messaging details. In this article, Binildas C. A. shows how to develop a basic ESB application and the advantages it conveys.
by Binildas Christudas
| |
(Not So) Stupid Questions 5: Inheritance Versus Interfaces
This "stupid question" is about when to use inheritance and when to offer an interface.
| |
Developing Content-Driven Web Apps with karma-jcr
The karma framework, hosted on java.net, uses a "convention over configuration" approach to get your web app up and running quickly. Paired with its persistence framework, karma-jcr, it offers a feet-first way to develop web apps with CRUD (create, retrieve, update, delete) functionality. Project founder Oliver Kiessler shows how to get started.
by Oliver Kiessler
| |
Dynamic Interaction with Your Web Application
Your web application is misbehaving, but since it's running, how do you figure out what's going on? Remote debugging (if you can get it configured) is one option, but is slow and difficult. Do you wish you could just throw some code in at runtime and figure out what's going on? Lorenzo Puccetti shows how: by embedding a scripting language interpreter like Rhino, you can do just that.
by Lorenzo Puccetti
| |
Java Tech: The Sweet Song of the BlueJ, Part 1
It's hard to teach the object-oriented concepts of Java when the first thing the student sees is the very procedural public static void main (String[]). BlueJ offers a way to teach Java's OO concepts in a visual environment, allowing the student to connect and implement classes with mouse clicks and drags. In this installment of "Java Tech," Jeff Friesen introduces this educational tool.
by Jeff Friesen
| |
Perl on Java? An Introduction to the Sleep Language
Perl is renowned for its "whipitupitude," meaning its ability to get a lot done with a small amount of code, particularly when it comes to regular expressions and working with I/O. Now the language Sleep tries to take the best of Perl and combine it with the ability to use Java objects from scripts. Raphael Mudge shows how it works.
by Raphael Mudge
| |
Managing Timed Tasks Within a Cluster Utilizing The StopLight Framework
You want tasks in your cluster to run at a specific time, but you want to establish some control over them, so that your sequence of tasks won't run concurrently on different boxes and fail to coordinate. The StopLight framework offers a solution, managing tasks' execution and verifying their health. Clark D. Richey, Jr. shows how this framework works.
by Clark D. Richey, Jr.
| |
Using PatchExpert to Extend Your Code More Easily
A small fix can be a big headache when you need to re-build, re-test, re-package and re-deploy software. If the change is small enough, distributing it as a minor "patch" makes a lot of sense. As Lu Jian explains, the java.net project PatchExpert makes this straightforward.
by Lu Jian
| |
Java Tech: Language Lessons
Java Tech columnist Jeff Friesen has been coding in Java for nearly
ten years, and in that time, he's found some surprises in the
language, like how += doesn't necessarily do what you
expect, or the hazards of invoking a potentially overridden method in
a constructor. In this article, he provides some important lessons
based on this experience.
by Jeff Friesen
| |
Introducing AXIOM: The Axis Object Model
XML parsing often offers a Hobson's Choice of implementations: get events during the parse (and lose the parsed structure), or get the whole structure (and wait for the entire stream to be parsed before you can have any of it). Apache Axis 2 is using a new object model, AXIOM, that offers a different way to think about XML parsing. S. W. Eran Chinthaka looks at how it works.
by S. W. Eran Chinthaka
| |
(Not So) Stupid Questions 4: Assigning Packages
This "stupid question" is about how to best organize your classes in packages.
| |
The Java Extension Mechanism
Java has a huge collection of classes, but many projects need to call upon code outside of core Java, which leads to the question of where to store and how to load this code. Thomas Kunneth shows how Java's Extension Mechanism allows you to make new code available to all Java applications.
by Thomas Künneth
| |
Java Tech: Acquire Images with TWAIN and SANE, Part 3
TWAIN is the standard for image acquisition from scanners and digital cameras, but its GUI assumptions make it ill-suited for Linux and other *nix operating systems. In part three of his series looking at image acquisition in Java, Jeff Friesen looks at the SANE alternative, and how to use it with Java.
by Jeff Friesen
| |
Web Wizard Component, Part 2: The View
A GUI wizard is something that's surprisingly tricky to get right in a web application. In the conclusion of this series, Michael Jouravlev takes the model from part one and builds out the user interface with Struts, addressing some interesting web usability problems along the way.
by Michael Jouravlev
| |
Boxing Conversion in J2SE 5.0
J2SE 5.0's autoboxing feature liberates you from the hassle of bundling your primitives into wrapper objects in various situations (like putting them in collections), but autoboxing doesn't always behave as you might expect. Krishna Srinivasan has details on how this milestone feature really works.
by Krishna Srinivasan
| |
Web Wizard Component, Part 1: The Model
A GUI wizard is something that's surprisingly tricky to get right in a web application. In this first article of a two-part series, Michael Jouravlev shows how to build a suitable data model for managing the wizard behavior from the server side.
by Michael Jouravlev
| |
Low-Level Display Access in MIDlets
In part four of his series on mobile application development with J2ME, Thomas Künneth looks at the Canvas, which gives developers of games, multimedia, 3D and other applications the ability to render directly to the display instead of by way of a set of widgets.
by Thomas Künneth
| |
Java Tech: Acquire Images with TWAIN and SANE, Part 2
With his first JTwain library, Jeff Friesen got image acquisition working, but with limited functionality and many inefficiencies. In this installment of the series, he builds a better JTwain by introducing TWAIN "capabilities."
by Jeff Friesen
| |
(Not So) Stupid Questions 3: Private Access
This "stupid question" is about how objects of the same type can see each other's privates.
| |
Refactoring in Java
This excerpt from Joshua Kerievsky's Refactoring to Java shows you an alternate technique for introducing a Null Object, rather than that shown in Martin Fowler's Refactoring book.
by Joshua Kerievsky
| |
AspectJ Cookbook
These excerpts from Russell Miles' AspectJ Cookbook show you how to build an AspectJ Project using Ant, how to compile an aspect and multiple Java files, and how to develop a simple aspect.
by Russell Miles
| |
Java Tech: Acquire Images with TWAIN and SANE, Part 1
Java doesn't provide a standard API for acquiring images from devices like scanners and digital scanners, but there is a widely adopted standard, TWAIN, that can be called from native code. In this installment of Java Tech, Jeff Friesen shows how to bring that functionality to Java.
by Jeff Friesen
| |
Mobile Memories: The MIDP Record Management System
In part three of his series on mobile application development with J2ME, Thomas Künneth looks at how MIDlets can use RecordStores to persist information, such as the records in his "Duke's Diary" example.
by Thomas Künneth
| |
Developing Clients with Simulated Servers
Multi-tier systems can create chicken-and-egg headaches--how do you develop a client when the back end's not ready? If the servers are expensive and difficult to set up and maintain, how do you keep them up and running for development? Jonathan Simon says: you don't. Instead, you simulate parts of your system, making simple simulators adhere to the interfaces the real servers will use.
by Jonathan Simon
| |
The JDBC RowSet Implementations Tutorial
In this tutorial, we look at how to use the standard JDBC RowSet implementations specified in JSR-114. JDBC RowSets are provided as part of Java 5.0, supplying both a standard set of level APIs and production-ready reference implementation that will work with any JDBC-3.0-compliant driver.
by Jonathan Bruce
| |
Still on the Road with Duke
In part two of his series on mobile application development with J2ME, Thomas Künneth introduces the various GUI components that can be used in a mobile application, and combines them into a complete diary application.
by Thomas Künneth
| |
From Writing Programs to Creating Compilers
In this article, Sanjay Dasgupta builds a simple compiler that augments Java with tasks (independent blocks of code that execute in parallel), thus creating a new language, called AJ, that well supports the programming of systems with concurrent activities.
by Sanjay Dasgupta
| |
Varargs Excerpt from Java 1.5 Tiger: A Developer's Notebook
In this excerpt from Chapter 5 of Java 1.5 Tiger: A Developer's Notebook, Brett and David cover how to create and iterate over variable-length argument lists (better known as varargs), which will have you writing better, cleaner, more flexible code in no time.
by Brett McLaughlin
and David Flanagan
| |
Java Sketchbook: Getting Started With Scripting
Programs that expose themselves to programming by the user are few and far between--an Emacs Lisp macro here, an AppleScript-able Mac app there. It's a pity, since scriptability gives users great power. With Java, embedding JavaScript as a scripting language is pretty easy. Joshua Marinacci shows how it can be done.
by Joshua Marinacci
| |
Java Tech: The ABCs of Synchronization, Part 2
Jeff Friesen's introduction to thread synchronization continues with a consideration of communication between threads, the use of volatile variables, and the new synchronization concepts introduced in J2SE 5.0.
by Jeff Friesen
| |
Going Mobile with Duke
Hundreds of millions of mobile devices are using Java technology, a huge potential audience for developers. But developing for J2ME is different from standard and enterprise Java development. Thomas Künneth takes you through the basics of developing and deploying a small J2ME application.
by Thomas Künneth
| |
Improve on Javadocs with ashkelon
ashkelon is an open source documentation system for Java that leverages Sun's Javadoc parser.
by Eitan Suez
| |
Ruling Out: Rule Engines and Declarative Programming Come to Java
Rule engines and declarative programming offer a markedly different style of programming, one that's particularly well-suited to certain kinds of applications. N. Alex Rupp kicks off his "Ruling Out" column with an introduction to the rule engine JSR and how this technology can be used.
by N. Alex Rupp
| |
Getting Groovy with XML
Jack Herrington just wants to access nodes in an XSL document by id and pull out values. With the typical Java DOM-parsing approach, it takes dozens of lines, complete with annoying casts. But by letting Groovy manage the ugly XML details, he shows how your Java code can be much prettier.
by Jack Herrington
| |
Scratch
Scott Davis wanted to capture signatures on a Palm. To scratch this particular itch, he rolled a J2ME MIDlet and posted it on java.net. In this article, he describes how this small, practical app works.
by Scott Davis
| |
Java Tech: The ABCs of Synchronization, Part 1
Java's thread support is powerful and comprehensive, but it can also lead to problems if you don't fully understand what you're doing. In his latest Java Tech column, Jeff Friesen introduces the concepts of locks, synchronization, and the dangers of deadlock.
by Jeff Friesen
| |
Hibernate: A Developer's Notebook
This excerpt from James Elliot's Hibernate: A Developer's Notebook shows you how to use simple criteria, compound criteria, apply criteria to associations, and query by example using Hibernate.
by James Elliott
| |
How Tomcat Works excerpt
We present two chapters from Budi Kurniawan's book, How Tomcat Works. These excerpts include an explanation of the workings of Lifecycle and Container.
by Budi Kurniawan
| |
Java Tech: An Intelligent Nim Computer Game, Part 2
In the previous Java Tech, Jeff Friesen showed how to create the logic for a computerized game of Nim. This month, he wraps up by using this in two complete versions of the game, one for console I/O and one with a Swing GUI.
by Jeff Friesen
| |
Extensible Code Generation with Java, Part 2
Continuing his series on code generation, Jack Herrington banishes the awkward subclassing of generated code with the idea of "safe zones," which allow handwritten code to peacefully coexist with generated code.
by Jack Herrington
| |
Java Tech: An Intelligent Nim Computer Game, Part 1
Offering a two-player game that only a single player can enjoy requires writing a computer opponent that's "smart" enough to be an interesting opponent. Java Tech columnist Jeff Friesen shows how to write a Java application to play the game of Nim.
by Jeff Friesen
| |
Tapestry In Action
"See how components interact with each other by reading and setting properties; how the page can act as a Controller,
coordinating the domain logic and mediating between its embedded components; and how easy it is to add new interactions to a page, in the form of listener methods."
by Howard M. Lewis Ship
| |
Extensible Code Generation with Java, Part 1
Jack Herrington argues that machine-generated code not only solves problems of drudgery, but it can even be preferable to potentially buggy ,hand-written code. In Part 1 of his series on code generation, he shows how XSLT can be used to generate Java source from XML descriptor files.
by Jack Herrington
| |
Hardcore Java Excerpt
Using a combination
of reflection and introspection, you can determine the nature and possible function of an object that you didn't know about at compile time.
by Robert Simmons, Jr.
| |
Using Java Classes in Windows Batch Files
You don't need to use C to read from standard input, write to standard output, or handle command-line arguments. Thomas Künneth shows how Java is well-suited to working with the shell and how Windows can be configured to call Java applications by name from the command line or a batch file.
by Thomas Künneth
| |
Java Tech: Using Variable Arguments
J2SE 1.5 introduces the idea of variable arguments, or varargs, to method signatures. As Jeff Friesen explains in his first Java Tech installment, this makes many method calls more convenient and opens the door to a C-style printf().
by Jeff Friesen
| |
Java Management Extensions
This excerpt from the book WebLogic: The Definitive Guide is an overview and an introduction to JMX, the Java Management Extensions, and MBeans.
by Jon Mountjoy
and Avinash Chugh
| |
(Not So) Stupid Questions: (2) String Equality
This "stupid question" is about how String Equality works and explores the constants pool.
| |
Building a Better Brain, Part 2: A Great Thick Client
Joshua Marinacci built a distributed system for storing, searching, and updating small pieces of information. In this installment, he shows how to build an attractive thick client with Swing.
by Joshua Marinacci
| |
Juggling JOGL
Chris Adamson's series on JOGL, the Java bindings to the Open GL graphics library, continues with a tutorial on techniques for 2D gaming graphics, including animation, rotation, translation, and scaling.
by Chris Adamson
| |
Building a Better Brain, Part 1: The Protocol
Joshua Marinacci wants to build a distributed system for storing, searching, and updating small pieces of information. In this article, he shows how Java-friendly standards like XML and HTTP will make up the foundation of his BrainFeed web application..
by Joshua Marinacci
| |
Reflection on Tiger
The introduction of enums, generics, and metadata are changes to the Java language that require modifications to existing APIs, such as Reflection. This article examines
the modifications to the Reflection API that are now available to the public as part of JDK 1.5 beta 1 and shows how you can take advantage of them in your code.
by Michael Nascimento Santos
| |
A First Look at JSR 166: Concurrency Utilities
Java's support for multithreading and concurrency has often perplexed developers by only exposing the low-level details of wait(), notify(), synchronized blocks, et. al. But as Brian Goetz describes, JSR 166 will bring a number of concurrency conveniences to J2SE.
by Brian Goetz
| |
Explorations: Wildcards in the Generics Specification
William Grosso discusses wildcards, a recent addition to the generics specification based on the idea that sometimes you don't want to precisely specify the value for a type parameter but want to leave the type parameter unbound, as a signal to the compiler that the exact type isn't important.
by William Grosso
| |
(Not So) Stupid Questions: (1) Static Methods
Our first "stupid question" is whether you should use static methods whenever possible.
| |
AspectJ Syntax Basics
In this excerpt from his book AspectJ in Action: Practical Aspect-Oriented Programming, author Ramnivas Laddad introduces the syntax for AOP in AspectJ.
by Ramnivas Laddad
| |
Three Rules for Effective Exception Handling
Exceptions can give your application robustness by telling you what went wrong where, but only if you use them correctly. Jim Cushing offers three rules for getting the most out of exceptions.
by Jim Cushing
| |
Explorations: Generics, Erasure, and Bridging
Erasure and bridging are code transformations the compiler performs in order to implement the generics specification. This article explains the reasons for and the mechanisms of these two transforms.
by William Grosso
| |
Configuration Blues
Configuring an application should be painless for a user. It requires careful design on the developers part. This article looks at three techniques: properties, preferences, and JMX.
by Craig Castelaz
| |
Jumping into JOGL
This article will help you get up and running with JOGL, the Java bindings to Open GL. You'll configure your environment and compile and run a set of 2D graphics calls.
by Chris Adamson
| |
Introduction To Naked Objects
It is time to strip applications of complex UIs and give users direct access to business objects. The concept
is simple: write behaviorally complete business model objects and use generic views and controllers.
by Brian Coyner
| |
Living with Leaks
Selecting the correct level of abstraction that hides the complexity of the implementation (but provides adequate control of the relevant details) can be a daunting task. Everyone has different ideas regarding "adequate control" and "relevant details." This article looks at five levels of abstraction.
by Craig Castelaz
|
Research
|
The Open Road: Building the JDK
Ready to work with the GPLed JDK from the OpenJDK project? Your first order of business will probably be getting the code compiled and running on your machine. And that's not an easy process. In this installment of The Open Road, Elliotte Rusty Harold relates the step-by-step process of building the JDK on Linux.
by Elliotte Rusty Harold
| |
Code Reviews
Need to be sure your program really runs right? Oh sure, testing's a part of it, but so are code reviews. Sri Sankaran argues that research and experience prove that a standardized, effective code review process mitigates costs and produces better code.
by Srivaths Sankaran
| |
Java and USB
Want to use a USB device in Java? Some with native abstractions, like mass-storage drives, work as you'd expect, but many devices like webcams and game controllers are simply invisible to the Java programmer. Jeff Friesen looks at two APIs that expose USB devices to Java, then shows how to build a Java USB implementation of your own.
by Jeff Friesen
| |
Smooth Moves
Animation quality is a subjective perception, and that makes it somewhat more of an art than a science. Chet Haase has taken a look at some of the things that make animation look choppy, and offers programmatic approaches to improving the appearance of Java animations.
by Chet Haase
| |
Solving Sudokus in Java
Sudoku puzzles are wildly popular, and offer an ideal introduction to constraint programming (CP). Rather than using brute force to find every possible solution, CP allows you to specify what must be true in a problem space, and then efficiently finds an answer. Yan Georget shows how this works.
by Yan Georget
| |
Behind The Scenes of Project Looking Glass
Project Looking Glass, highlighted in Scott McNealy's JavaOne keynote, is a 3D desktop environment that uses Java and hardware graphics acceleration to deliver a new kind of user experience. And now, it's open source. Will Iverson interviewed lead developer Hideya Kawahara to learn more about the project.
by Will Iverson
| |
Java and GIS, Part 2: Mobile LBS
Sue Spielman's series on geospatial programming continues with an introduction to Location-Based Services (LBSes), complete with a J2ME MIDlet that can send its GPS-provided location to a servlet.
by Sue Spielman
and Tom Whitehill
| |
Java and GIS, Part 1: Intro to GIS
"Geospatial" data -- that which has to do with location or space -- is at the core of all kinds of interesting applications, particularly in the GPS-powered mobile space. In Part 1 of a series on Geographic Information Systems (GIS), Sue Spielman and Tom Whitehill introduce the concepts of this problem domain.
by Sue Spielman
and Tom Whitehill
| |
Exploring the Java Research License
The Java Research License (JRL) was introduced at JavaOne as a new open source license for universities and research. A panel of java.net bloggers talk about the new license and invite you into the discussion.
by Daniel H. Steinberg
|
Search
|
Introduction to Nutch, Part 2: Searching
In the second part of this look at the Nutch web indexing and search engine, Tom White looks at how to perform searches on the index generated in part one's crawl, and shows how to integrate Nutch's search capabilities with your applications through direct Java calls to its API or via the OpenSearch API.
by Tom White
| |
Introduction to Nutch, Part 1: Crawling
Do you need your own search engine, when the world already has Google? Quite possibly so: you may belong to an organization with enough of its own contents that you want to manage and run your own search engine--and know how it works. Nutch is an open source search engine written in Java. In this article, Tom White shows how it crawls pages to build its index.
by Tom White
| |
Lucene Intro
Lucene is a high-performance, scalable, search engine technology.
The first part of this article takes you through an example of using Lucene to index all the text files
in a directory and its subdirectories. The remainder provides examples of analysis and searching.
by Erik Hatcher
| |
Building a Better Brain, Part 2: A Great Thick Client
Joshua Marinacci built a distributed system for storing, searching, and updating small pieces of information. In this installment, he shows how to build an attractive thick client with Swing.
by Joshua Marinacci
| |
Building a Better Brain, Part 1: The Protocol
Joshua Marinacci wants to build a distributed system for storing, searching, and updating small pieces of information. In this article, he shows how Java-friendly standards like XML and HTTP will make up the foundation of his BrainFeed web application..
by Joshua Marinacci
| |
Explorations: Googleminer, Part 1
Bill Grosso begins exploring an Internet application built for the "Internet Operating System" on top of the Google APIs: Googleminer.
by William Grosso
| |
QueryParser Rules
Erik Hatcher continues his series on Lucene with a look at using the QueryParser. Three things are needed: an expression, the default field name to use for unqualified fields in the expression, and an analyzer to pieces of the expression.
by Erik Hatcher
|
Security
|
Pitfalls of the Java Permissions Model
Is Java a good choice for creating applications with configurable security? Denis Pilipchuk argues that Java's permissions-based security model is a relic of its browser days and lacks the configurability, expressiveness, and efficiency that enterprise Java developers need. In this article, he looks at the problems of the permissions model and considers some alternatives.
by Denis Pilipchuk
| |
Securing Your Web Application Requests
One often unanticipated vector for security attacks on web applications is the possibility that a user could hack the GET or POST request to send unanticipated or invalid data to the application. In this article, Eric Speigelberg shows how to use JSTL's URL encoding and a servlet filter to obfuscate or even encode parameters in each direction to thwart parameter-hacking.
by Eric Spiegelberg
| |
JavaDB End-to-End Security
The all-Java database JavaDB (aka Derby) is known for its embeddability, but what about security? Can you put it out there for enterprise applications and keep data safe? Masoud Kalali shows the steps you can take to secure your JavaDB data.
by Masoud Kalali
| |
Adapting JAAS to SOA Environments: SOA Security Service
JAAS' limitations and assumptions have made it difficult to integrate with other enterprise technologies. However, by exposing it as a service, you can rely on JAAS in your SOA. Denis Pilipchuk shows how it's done.
by Denis Pilipchuk
| |
Using JAAS in Java EE and SOA Environments
Java Authentication and Authorization Service (JAAS) should unify security approaches in Java applications, but it has never integrated very well with Java EE, particularly where representing users is involved. Denis Pilipchuk looks at the current situation, the compounding issue of SOA, and assesses future directions for JAAS.
by Denis Pilipchuk
| |
Using JMX and J2SE 5.0 to Securely Manage Web Applications
Want to know what's going on with your web application, in a more sophisticated way than just "tail"-ing a log file? By instrumenting your web app to work with JMX, you can use a number of tools to interact with the running application. Zarar Siddiqi shows how this can be accomplished.
by Zarar Siddiqi
| |
Handling Java Web Application Input, Part 1
Want to secure your web application? Don't leave the front door wide open. Exploits based on a failure to validate input allow attackers untold vulnerabilities to exploit, perhaps letting them execute arbitrary SQL statements. In this first of a two-part series, Stephen Enright shows you how validating incoming submissions can put a stop to such attacks.
by Stephen Enright
| |
Tomcat and OpenLDAP, from Configuration to Application
Want to support login and controlled access to your JSPs? LDAP is great, but configuring OpenLDAP for use with Tomcat is not straightforward. In this article, Darren Duke shows you how to bring the two together.
by Darren Duke
| |
The New Obfuscation
This article considers
code obfuscation for what it is: an attempt to make the bad guy's
job harder. If you lock your front door at night, you agree. That lock
won't stop even a slightly determined person--yet you do it. Why?
Because it stops some professionals and sends some to easier targets.
If you have code to protect (not everyone does), obfuscating it is
a cheap, fast step to raising the bar of protection.
by Paul Tyma
| |
Securing the Wire
In this excerpt from his book J2EE Security: For Servlets, EJBs, and Web Services, author Pankaj Kumar describes Java APIs for securing items that are sent over the network where others may be snooping.
by Pankaj Kumar
|
Servlets
|
An Introduction To Servlet 3.0
After years of simpler maintenance releases, the Servlet API is getting a major overhaul for Java EE 6, improving ease of use, configurability, pluggability, security, and more. In this article, Deepa Sobhana offers a detailed overview of what's changing and why.
by Deepa Sobhana
| |
Instant User Tracking with ClickStream
Where are your users going on your website and what are they doing? ClickStream, one of the many OpenSymphony projects, lets you track and log where users go during their sessions. In this article Diego Adrian Naya Lazo shows you how to configure, run, and customize ClickStream
by Diego Naya
| |
Building Web Components Without a Component Framework
In this article, Michael Jouravlev explores Java component development. His approach treats a web component in the old-fashioned way: as a resource, identified with unique location. If you use JSP as the presentation layer for your web applications, this article may open some new possibilities.
by Michael Jouravlev
| |
Generating Images with JSPs and Servlets
Java's imaging APIs aren't just for desktop applications anymore! In this article, Joshua Marinacci looks at how servlets and JSPs can use the Java2D graphics API to create on-demand graphics for web users.
by Joshua Marinacci
| |
The WARS Architectural Style
In December, N. Alex Rupp tore down the idea of MVC as a design pattern for servlet architectures. Now, as an alternative, he offers Workflow, Action, Representation and State, or WARS.
by N. Alex Rupp
|
Struts
|
Transparent State Management Using the Decorator Pattern
Storing state in the session makes sense at first, but can become a burden to manage properly, and can make more of your application stateful than you originally intended. Sharfudeen Ashraf shows how a servlet filter can be used to provide transparent state management.
by Sharfudeen Ashraf
| |
Sprinkle Some AJAX Magic in Your Struts Web Application
AJAX offers a richer client-side experience than is offered by the typical reload-the-page cycle of web applications, but do you have to start over to get its benefits? As Paul Browne shows, you can incrementally add AJAX functionality to an existing Struts web app.
by Paul Browne
| |
Web Wizard Component, Part 2: The View
A GUI wizard is something that's surprisingly tricky to get right in a web application. In the conclusion of this series, Michael Jouravlev takes the model from part one and builds out the user interface with Struts, addressing some interesting web usability problems along the way.
by Michael Jouravlev
| |
Web Wizard Component, Part 1: The Model
A GUI wizard is something that's surprisingly tricky to get right in a web application. In this first article of a two-part series, Michael Jouravlev shows how to build a suitable data model for managing the wizard behavior from the server side.
by Michael Jouravlev
| |
Struts Live Excerpt
In this excerpt, Jonathan Lehr takes you through integrating ActionForms with POJOs. He writes that one of the complaints about Struts "is that unlike some of the newer web application frameworks (Spring, WebWork, JavaServer Faces, etc.), it can't deal directly with POJOs. As a result, people developing Struts applications often feel forced to spend a considerable amount of time and energy devising solutions to bridge the gap."
by Jonathan Lehr
| |
Spring Live Excerpt
This excerpted tutorial covers writing a simple Spring web application using the Struts MVC framework for the front end, Spring for the middle-tier glue, and Hibernate for the back end.
by Matt Raible
| |
Struts Live Excerpt
This excerpted tutorial covers getting started with Struts: just the basics, nothing more, nothing less. This
tutorial assumes knowledge of Java, JDBC, servlets, J2EE (with regards to web applications) and JSP.
by Rick Hightower
|
Swing
|
Hacking JavaFX Binding
The JavaFX bind operator connects or links variables, through a small framework based on Locations. This article looks at the internal structure of JavaFX binding, and demonstrates how it can be applied as a binding framework for Swing.
by Thomas Künneth
| |
Complex Table Cell Rendering Made Simple
Plain old text-only JTable cells are boring, but once you start to mix multiple types of cell renderers in a table, your getTableCellRendererComponent() method can get completely out of control. In this article, Michael Bar-Sinai offers a performant and clever alternative that looks up the needed renderer with class-based and rule-based maps.
by Michael Bar-Sinai
| |
Binding Beans
Expressing GUI relationships through beans' getters and setters is a burdensome process of wiring that has frustrated many developers. Binding offers an alternative: automatically connecting a model value to its GUI representation. This style of programming is available to users of the JGoodies Binding framework, as well as the implementation of JSR-295, and in this article Thomas Künneth takes a look at both.
by Thomas Künneth
| |
Synchronizing Properties with Beans Binding (JSR 295)
The idea of setting up listener relationships between your GUI models, views, and controllers is simple enough, but grinding the same "glue" code dozens or even hundreds of times is wasteful and error-prone. JSR-295, Beans Binding, offers relief from the drudgery. In this article, John O'Conner shows how it works and what it can do for you.
by John O'Conner
| |
Translucent and Shaped Swing Windows
The new "Consumer JDK," Java SE 6 Update N, offers desktop developers the ability to set per-pixel translucency on windows, which opens up a wide variety of possibilities for translucent and shaped windows previously only available to native applications. Kirill Grouchnikov shows how far these features can take you.
by Kirill Grouchnikov
| |
Mapping Mashups with the JXMapViewer
Having introduced SwingLabs' JXMapViewer and JXMapKit in a previous article, Joshua Marinacci puts these components to work by showing how you can bring in geographic data from external sources and use Painters to create custom geodata GUIs.
by Joshua Marinacci
| |
Building Maps into Your Swing Application with the JXMapViewer
Mapping is a common feature of many applications, and a new component from SwingLabs makes it easy to add maps to your Java GUI application. Joshua Marinacci shows you how to adding maps to your Swing app can be as simple as dropping a JXMapViewer component into a NetBeans layout.
by Joshua Marinacci
| |
Fling Scroller
Does your Swing work focus on "look" and not so much on "feel"? The gestures available to a user can make a big difference in how your UI is enjoyed. In this article, Jan Haderka introduces a new behavior to JLists to allow users to "fling" off the top or bottom of the list and have the scrolling continue briefly as a result of the gesture.
by Jan Haderka
| |
Adding Auto-Completion Support to Swing Comboboxes
Auto-completion, as seen in browser address bars (among other GUIs), can be a very useful and much appreciated trait for input fields in your GUI. However, all of the second-generation Java GUI toolkits provide the feature differently. Kirill Grouchnikov shows how to add auto-completion to comboboxes in GlazedLists, SwingX, JIDE, and Laf-Widget.
by Kirill Grouchnikov
| |
Enhancing Swing Applications
Providing "skins" or other extensions to Swing applications is difficult to do in a manner that will be easy for other developers to reuse. The laf-widgets project addresses these problems by defining ways for implementing look-and-feels to be extended. Project founder Kirill Grouchnikov shows how it works.
by Kirill Grouchnikov
| |
How to Write a Custom Look and Feel
Swing's look and feels provide an opportunity for developers to customize the appearance of their desktop applications. But while that's fine in theory, what's it actually like to create an L&F? Kirill Grouchnikov, creator of the Susbstance look and feel, shares some lessons learned along the way.
by Kirill Grouchnikov
| |
Bringing Swing to the Web
Swing's all-Java drawing approach makes it easy to convert components to Java2D images, and when you do that on the server side, you gain the ability to put Swing components into a web application. Jacobus Steenkamp shows how this approach works and what you can achieve.
by Jacobus Steenkamp
| |
Vocal Java
Disabled users depend on assistive technologies to help them work with computers, and this technology is built into Swing. In this article, Jeff Friesen shows how to use a free implementation of the Java Speech API to create a program that reads the text of Swing and AWT components as a user mouses over them.
by Jeff Friesen
| |
Using the Wizard API
Wizards are a popular form of user-interface metaphor, but without direct support in AWT or Swing, they typically need to be created by hand, often with a manually managed CardLayout. Fortunately, the SwingLabs project has a Wizard subproject that is powerful and easy to use. Thomas Kuenneth shows off how it works.
by Thomas Künneth
| |
Java Tech: Image Embossing
Many GUIs use an "embossing" effect to create the illusion of depth, manipulating pixel colors to suggest small ridges and valleys. In this installment of "Java Tech," Jeff Friesen introduces an algorithm to perform the embossing effect, and shows how easy it is to implement with Swing and Java2D.
by Jeff Friesen
| |
Introducing JDesktop Integration Components, Part 1
It hasn't been easy to create a Java desktop application that goes beyond look and feel to actually do things native apps do--register file associations, communicate status via a tray icon, use the platform's browser, etc. But as Joshua Marinacci reports, JDesktop Integration Components may change all that.
by Joshua Marinacci
| |
The JModalWindow Project
The JModalWindow Project is designed for when you want a modal window that implements window-specific modality rather than the application-wide modality provided by the standard JDialog class.
by Jene Jasper
| |
Developing Swing Components Using Simulators
It's difficult to expose GUI components to testing, and in the worst case, tightly coupled components aren't seen or tested until their surrounding application is ready. Jonathan Simon says there's a better way, and it's called the "simulator."
by Jonathan Simon
| |
Java Tech: An Intelligent Nim Computer Game, Part 2
In the previous Java Tech, Jeff Friesen showed how to create the logic for a computerized game of Nim. This month, he wraps up by using this in two complete versions of the game, one for console I/O and one with a Swing GUI.
by Jeff Friesen
| |
Java Sketchbook: The HTML Renderer Shootout, Part 2
HTML is everywhere; not just on the Web, but as a styled-text and hyperlinking standard for help systems, online stores, email, and many other applications. For these many needs, there are many Java-based HTML rendering toolkits. This second part of Joshua Marinacci's series looks at the commercial offerings in the HTML rendering space.
by Joshua Marinacci
| |
Java Sketchbook: The HTML Renderer Shootout, Part 1
HTML is everywhere; not just on the Web, but also as a styled-text and hyperlinking standard for help systems, online stores, email, and many other applications. And for these many needs, there are many Java-based HTML rendering toolkits. Part 1 of Joshua Marinacci's two-part series looks at the free offerings in the HTML rendering space.
by Joshua Marinacci
| |
Building a Better Brain, Part 2: A Great Thick Client
Joshua Marinacci built a distributed system for storing, searching, and updating small pieces of information. In this installment, he shows how to build an attractive thick client with Swing.
by Joshua Marinacci
| |
Using Swing's Pluggable Look and Feel
Swing allows a Java application to present a GUI that resembles the underlying platform's appearance, present a common cross-platform look, or offer a completely new look. Thomas Künneth looks at how this works and addresses the question, "What should your app look like?"
by Thomas Künneth
| |
Make Your Swing App Go Native, Part 3
Swing applications don't often feel or behave like native apps. It doesn't have to be this way. Joshua Marinacci's three-part series concludes with polishing touches such as desktop icons, file selectors, and splash screens.
by Joshua Marinacci
| |
Make Your Swing App Go Native, Part 2
Swing applications don't often feel or behave like native apps. It doesn't have to be this way. Joshua Marinacci's continues with a look at providing double-clickable executables and filetype associations.
by Joshua Marinacci
| |
Make Your Swing App Go Native, Part 1
Swing applications don't often feel or behave like native apps. It doesn't have to be this way. Joshua Marinacci's three-part series begins by improving an app's appearance and menus, and offers a way to get attention via the Windows taskbar and Mac OS X dock.
by Joshua Marinacci
| |
Rethinking Swing Threading
Dealing with potentially slow actions like network activity or database access in Swing GUIs generally leads to an unresponsive GUI or unreadable code. Jonathan Simon presents a new event-driven approach that can fix both.
by Jonathan Simon
| |
Swing and CSS
Just as CSS allows you to maintain a consistent look across a complex web site, you can use the same technique to achieve this consistency across many screens in a complicated Swing application.
by Joshua Marinacci
| |
Custom Layouts
Learn how to take control of your own layout
manager to
get more control over the appearance of your layout.
by Douglas Lyon
|
Testing
|
PUJ, a Jug Contest, JavaOne 2009 Podcast
Felipe Gaucho tells Jim Wright about the PUJ (Prêmio Universitário Java) Java User Group Contest
by Felipe Gaucho
| |
Grails and Continuous Integration: An Essential Combo
Grails is an excellent, highly productive development framework that positively encourages good development and testing practices. This article shows how to set up a Continuous Integration build job to compile and test your Grails application in Hudson, for automated continuous integration.
by John Ferguson Smart
| |
Java Tools SQE Roundtable, JavaOne 2009
The Java Tools Community and SQE Project Leaders talk about Java Tools, SQE, and more, in a java.net Community Corner roundtable at JavaOne 2009.
by Toni Epple
| |
Source Code Analysis Using Java 6 APIs
Why does Java 6 expose the javac compiler through a programmatic interface? It's not just for building IDEs. In this article, Deepa Sobhana and Seema Richard show how to use the new feature for static code analysis, with an example that verifies that classes overriding Object.equals() also implement the required override of Object.hashcode().
by Seema Richard, Deepa Sobhana
| |
UISpec4J: Java GUI Testing Made Simple
GUI's are notoriously difficult to test, and the robot-based approach to automated testing makes agile development difficult, as you need finished GUIs before you can test. The UISpec4J project takes a different approach, and in this article Régis Medina and Pascal Pratmarty show how it works.
by Régis Medina
and Pascal Pratmarty
| |
Embedded Integration Testing of Web Applications
Test first means, well, test first. But with web applications, there's a great deal of installation and configuration you have to do before you can even test. Couldn't that be slimmed down a bit, so developers can get testing sooner? Johannes Brodwall shows how to combine some popular pieces to create a simpler container for testing your web apps sooner.
by Johannes Brodwall
| |
JUnit Reloaded
The most popular Java unit testing framework, JUnit, has made massive changes for its new version. By aggressively adopting annotations, JUnit 4 has become more powerful and simpler to use. Ralf Stuckert shows you what's different in the new version.
by Ralf Stuckert
| |
Code Reviews
Need to be sure your program really runs right? Oh sure, testing's a part of it, but so are code reviews. Sri Sankaran argues that research and experience prove that a standardized, effective code review process mitigates costs and produces better code.
by Srivaths Sankaran
| |
Getting Started with EasyMock2
One impediment to test-first development is object inter-relationships that are hard to recreate outside of their runtime container. EasyMock is one approach to creating "mock objects" to provide the parts of the system that aren't available at test time. Ralf Stuckert shows you how the latest version of EasyMock uses Java SE 5.0 features to simplify testing.
by Ralf Stuckert
| |
Continuous Integration with Continuum
The best way to integrate in a hurry is to have been doing it all along. This practice of continuous integration is greatly helped by automated tools to check out and build your team's code on a more or less constant basis. Apache Continuum offers a free and open source tool to do continuous integration; John Ferguson Smart looks at how it works.
by John Ferguson Smart
| |
Testing Java in an Object-Oriented Way
Most developers are familiar with functional testing, but is a badly written program "right" if it passes all those tests? Soumen Chaterjee makes the case for testing that the code adheres to good object-oriented principles.
by Soumen Chatterjee
| |
Unit Testing Hibernate Mapping Configurations
Hibernate's use of mapping files to define object-relational mappings means that these files are as much a part of your program as the Java code... and sometimes they don't work. Johannes Brodwall shows how you can apply unit testing techniques to test and verify your Hibernate mappings.
by Johannes Brodwall
| |
Container-free Testing with Mockrunner
Testing container-dependent code is made much more difficult when the container isn't available on the developer's machine, and this is a case where a mock objects approach can help. Bob McCune introduces Mockrunner, a JUnit-related framework for testing code with mock objects.
by Bob McCune
| |
Using PatchExpert to Extend Your Code More Easily
A small fix can be a big headache when you need to re-build, re-test, re-package and re-deploy software. If the change is small enough, distributing it as a minor "patch" makes a lot of sense. As Lu Jian explains, the java.net project PatchExpert makes this straightforward.
by Lu Jian
| |
Testing Your Enterprise JavaBeans with Cactus
Test-driven development is an important technique, but Enterprise JavaBeans can be difficult to test in isolation. Cactus, from Apache's Jakarta project, makes this easy by bridging JUnit unit tests to server-side application containers. Olexiy Prohorenko shows how it works.
by Olexiy Prohorenko
| |
Developing Clients with Simulated Servers
Multi-tier systems can create chicken-and-egg headaches--how do you develop a client when the back end's not ready? If the servers are expensive and difficult to set up and maintain, how do you keep them up and running for development? Jonathan Simon says: you don't. Instead, you simulate parts of your system, making simple simulators adhere to the interfaces the real servers will use.
by Jonathan Simon
| |
Introduction to Tag Unit, Part 2
JSP custom tags have been adopted by JSP developers as a way of abstracting complex code out of the page and into reusable components. This article introduces TagUnit--an easy-to-use tool that
makes it possible to comprehensively test JSP tags.
by Simon Brown
| |
Introduction to Tag Unit, Part 1
JSP custom tags have been adopted by JSP developers as a way of abstracting complex code out of the page and into reusable components. This article introduces TagUnit -- an easy-to-use testing tool that
makes it possible to comprehensively test JSP tags.
by Simon Brown
| |
Developing Swing Components Using Simulators
It's difficult to expose GUI components to testing, and in the worst case, tightly coupled components aren't seen or tested until their surrounding application is ready. Jonathan Simon says there's a better way, and it's called the "simulator."
by Jonathan Simon
| |
Extreme Software Engineering: A Hands-On Approach
These excerpts from the book Extreme Software Engineering: A Hands-On Approach present tutorials on testing first, with unit tests using JUnit and customer-written tests with the Fit framework.
by Daniel H. Steinberg
and Daniel W. Palmer
| |
Contributing to Eclipse
In these excerpts from their book Contributing to Eclipse: Principles, Patterns, and Plugins, authors Erich Gamm and Kent Beck show you how to get started with "Hello World" and present an example of "Test-Driven Plug-In Development."
by Erich Gamma
and Kent Beck
| |
A Dozen Ways to Get the Testing Bug in the New Year
This article gives you 12 practical ways to start (and keep) writing tests, regardless of your development process. Testing is important, and writing tests first results in the emergence of better designs.
by Mike Clark
| |
Six Signs That You Should Use Paper Prototyping
Paper prototyping lets you conduct informal usability tests with real users early in a project, before the design is cast in concrete code. This article provides background and gives you six signs that your project could benefit from paper prototyping.
by Carolyn Snyder
| |
Unit Testing In Java
In this excerpt from his book Unit Testing in Java, author Johannes Link shows a direct approach to test first designs of Graphical User Interfaces.
by Johannes Link
| |
Running Individual Test Cases from Ant
How to use JUnit and Ant together so that you have more control over which test cases get run.
by Luke Francl
| |
Multithreaded Tests with JUnit
JUnit is the glue that holds many open source projects together. But JUnit has problems performing multithreaded unit tests. This article introduces a JUnit extension library designed to enable multithreaded unit testing in JUnit.
by N. Alex Rupp
|
Web Design
|
Exposing Domain Models through the RESTful Service Interface, Part 1
JAXB and JPA can be combined to reduce the boilerplate code of Java EE applications and to optimize the performance of RESTful web services--a flexible solution, which preserves the original domain model while following the JPA, JAXB, and HTTP standards.
by Felipe Gaucho
| |
Generating PDFs for Fun and Profit with Flying Saucer and iText
Generating PDFs used to require proprietary and/or difficult-to-use tools, but the combination of the Flying Saucer XHTML renderer and the iText PDF library makes it easy to generate PDFs from a variety of markup formats. Flying Saucer founder Joshua Marinacci shows how it's done.
by Joshua Marinacci
| |
Track Conversation State on the Client using Applets
HTTP's statelessness has long been a challenge to web app developers, requiring state to be maintained somewhere, usually on the server. Ganesh Ram Santhanam offers a new approach, exploiting an interesting trait of the Java plugin to allow applets to maintain state for your JavaScript, even across Applet.destroy() calls.
by Ganesh Ram Santhanam
| |
Almost Portlets
In "Almost Portlets," Michael Jouravlev introduces a JSP library that allows for individual components of a web page to render themselves, maintain state, and generally behave like portlets. Except that they don't need a true portlet container, and they can update themselves in place without a page reload via Ajax if the browser supports it.
by Michael Jouravlev
| |
Bringing Swing to the Web
Swing's all-Java drawing approach makes it easy to convert components to Java2D images, and when you do that on the server side, you gain the ability to put Swing components into a web application. Jacobus Steenkamp shows how this approach works and what you can achieve.
by Jacobus Steenkamp
| |
Better File Uploads with AJAX and JavaServer Faces
Browser-based file uploads present user experience problems, as the usual technologies offer little opportunity to show the user how the upload is progressing. Jacobus Steenkamp shows how to alleviate this with a combination of JSF and AJAX.
by Jacobus Steenkamp
| |
Sprinkle Some AJAX Magic in Your Struts Web Application
AJAX offers a richer client-side experience than is offered by the typical reload-the-page cycle of web applications, but do you have to start over to get its benefits? As Paul Browne shows, you can incrementally add AJAX functionality to an existing Struts web app.
by Paul Browne
| |
Building Web Components Without a Component Framework
In this article, Michael Jouravlev explores Java component development. His approach treats a web component in the old-fashioned way: as a resource, identified with unique location. If you use JSP as the presentation layer for your web applications, this article may open some new possibilities.
by Michael Jouravlev
| |
Introduction to SiteMesh
Do you have items like footers or navigation bars that you'd like to repeat on every page of your site? Do you want to add them easily? Then maybe, says Will Iverson, the "decorator"-based SiteMesh is for you.
by Will Iverson
| |
Make Your Swing App Go Native, Part 2
Swing applications don't often feel or behave like native apps. It doesn't have to be this way. Joshua Marinacci's continues with a look at providing double-clickable executables and filetype associations.
by Joshua Marinacci
| |
Six Signs That You Should Use Paper Prototyping
Paper prototyping lets you conduct informal usability tests with real users early in a project, before the design is cast in concrete code. This article provides background and gives you six signs that your project could benefit from paper prototyping.
by Carolyn Snyder
| |
Make Your Swing App Go Native, Part 1
Swing applications don't often feel or behave like native apps. It doesn't have to be this way. Joshua Marinacci's three-part series begins by improving an app's appearance and menus, and offers a way to get attention via the Windows taskbar and Mac OS X dock.
by Joshua Marinacci
|
Web Development Tools
|
JSR-286: The Edge of Irrelevance
JSR-286 updates the Portlet specification to add new functionality, but has the Portlet ship sailed? In this article, Eric Spiegelberg looks at the history of the Java Portlet spec and argues that the design and philosophy of Java web applications has moved on and left portlets behind.
by Eric Spiegelberg
| |
Ajax Form Validation Using Spring and DWR, Revised
In a previous article, Eric Spiegelberg offered a design for using DWR to allow an Ajax-based web application to provide server-side validation of client-side input. After nearly a year in production, he's back with a cleaner, more efficient design.
by Eric Spiegelberg
| |
Instant User Tracking with ClickStream
Where are your users going on your website and what are they doing? ClickStream, one of the many OpenSymphony projects, lets you track and log where users go during their sessions. In this article Diego Adrian Naya Lazo shows you how to configure, run, and customize ClickStream
by Diego Naya
| |
A Dynamic MVC Development Approach Using Java 6 Scripting, Groovy, and WebLEAF
You've probably heard the benefits of scripting languages in Java SE 6, but have you thought about how to put them to use? In this article, Daniel López shows how to use Groovy for the business logic of a fully MVC web app, swapping around view frameworks to prove its flexibility.
by Daniel López
| |
Bundling Ajax into JSF components
Ajax provides desirable client-side ease of use, but it's not always straightforward to see how it integrates into server-side web app frameworks. In this article, Chris Hardin argues for putting your Ajax and JSF together in the form of reusable components.
by Chris Hardin
| |
Developing Applications Using Reverse Ajax
Your Ajax-powered web client can pull content from a server and work with it, but how can a server update the client asynchronously when it has new data? Katherine Martin shows how the Direct Web Remoting (DWR) library supports a new approach: reverse Ajax.
by Katherine Martin
| |
Developing applications with Facelets, JSF, and JSP
JavaServer Faces (JSF), with some optional help from Facelets, offers a number of improvements from the Java web technologies (JSP and servlets) that preceded it. But it requires the developer to change some of his or her long-held habits. Dr. Xinyu Liu has a guide to help you make the transition.
by Dr. Xinyu Liu
| |
Using Dojo and JSON to Build Ajax Applications
The AJAX developer faces a series of challenges in his or her work: not just on the client or server side, but also in combining the two. Zarar Siddiqi suggests one combination that solves a lot of problems: using the Dojo JavaScript library and the JSON library for converting Java objects to and from String representations.
by Zarar Siddiqi
| |
Better File Uploads with AJAX and JavaServer Faces
Browser-based file uploads present user experience problems, as the usual technologies offer little opportunity to show the user how the upload is progressing. Jacobus Steenkamp shows how to alleviate this with a combination of JSF and AJAX.
by Jacobus Steenkamp
| |
WebWork Validation
WebWork is a web application framework designed for simplicity and productivity. In this introduction, Zarar Siddiqi introduces the options for validating web forms in WebWork, including using its built-in validators and defining your own.
by Zarar Siddiqi
| |
Further Down the Trail
Trails gets you up and running quickly, but what does it take to create a real application, with sophisticated relationships and customized pages and editors? Trails creator Chris Nelson shows you how easy this is.
by Chris Nelson
| |
Developing Content-Driven Web Apps with karma-jcr
The karma framework, hosted on java.net, uses a "convention over configuration" approach to get your web app up and running quickly. Paired with its persistence framework, karma-jcr, it offers a feet-first way to develop web apps with CRUD (create, retrieve, update, delete) functionality. Project founder Oliver Kiessler shows how to get started.
by Oliver Kiessler
| |
Dynamic Interaction with Your Web Application
Your web application is misbehaving, but since it's running, how do you figure out what's going on? Remote debugging (if you can get it configured) is one option, but is slow and difficult. Do you wish you could just throw some code in at runtime and figure out what's going on? Lorenzo Puccetti shows how: by embedding a scripting language interpreter like Rhino, you can do just that.
by Lorenzo Puccetti
| |
Developing AJAX Applications the Easy Way
AJAX is all the rage, but who wants to write all that JavaScript code to mess with DOMs, XMLHttpRequest, etc.? With Direct Web Remoting (DWR), you don't have to. Joe Walker shows how this java.net project provides solutions for developing both the server- and client-side pieces of an AJAX web application.
by Joe Walker
| |
RAD That Ain't Bad: Domain-Driven Development with Trails
Ruby on Rails has stoked much envy in Java programmers weary of convoluted web application frameworks. The idea behind the Trails project is to bring Rails' domain-driven development concepts to Java. In this introduction, Chris Nelson shows how easy it is to get started.
by Chris Nelson
| |
Geronimo: An Advanced Look
Apache Geronimo aims to offer a complete, standards-compatible J2EE server with an Apache/BSD-style license. In these two excerpts from the upcoming Geronimo: A Developer's Notebook, David Blevins looks at downloading, building, and deploying Geronimo.
by David Blevins
| |
Creating EL-Aware Taglibs Using XDoclet
Passing dynamic values to taglibs via the JSP expression language (EL) is convenient, but is hard on the taglib developer and is therefore little-supported. Felipe Leme shows how code generation might solve that problem.
by Felipe Leme
| |
Velocity: Fast Track to Templating
Velocity is a fast and easy-to-use Java-based templating engine. Velocity's speed, ease of use, and flexibility contribute to its use in a broad range of applications, including code generation, email templating, and web user-interface creation. This article first introduces Velocity with a simple, easy-to-run example, then briefly covers the templating syntax, and ends with a full-featured and detailed look at Velocity in action for templating automated emails.
by Erik Hatcher
| |
Practical JSTL, Part 2
Sue Spielman's introduction to the JSP Standard Tag Library continues, with a look at JSTL's XML parsing, internationalization, and SQL abilities.
by Sue Spielman
| |
Practical JSTL, Part 1
The JSP Standard Tag Library allows page authors to make use
of easy-to-learn, easy-to-use standard actions for common ways we deal
with presentation.
by Sue Spielman
| |
Custom Layouts
Learn how to take control of your own layout
manager to
get more control over the appearance of your layout.
by Douglas Lyon
|
Web Services and XML
|
Exposing Domain Models through the RESTful Service Interface, Part 1
JAXB and JPA can be combined to reduce the boilerplate code of Java EE applications and to optimize the performance of RESTful web services--a flexible solution, which preserves the original domain model while following the JPA, JAXB, and HTTP standards.
by Felipe Gaucho
| |
JavaFX HTTP Networking and XML Parsing
Much of the interest in JavaFX has centered about the platform's GUI capabilities and tooling. But many JavaFX applications will need to be network clients, and JavaFX provides classes to help you with common network tasks. In this article, Francesco Azzola shows how to retrieve XML data via HTTP and parse it with JavaFX's XML parser.
by Francesco Azzola
| |
Exploring ESB Patterns with Mule
Will Enterprise Service Bus be the next big thing in enterprise integration? ESB is a highly ambitious standard, providing high levels of flexibility and extensive features. In this article, Igor Dayen shows how to implement a common enterprise integration pattern, the routing slip, by using Mule, a popular open source messaging framework.
by Igor Dayen
| |
SOA Reusability: Shrinking the Lag between Business and IT
SOA is really the latest effort in a decades-long quest to achieve software reusability. In this article, Mehul J. argues that the key is not in the IT department, but rather in enabling business analysts to directly reconfigure systems built on SOA.
by Mehul Shah
| |
JAX-WS Web Services Without Java EE Containers
Web services seem like they should be an enterprise topic, yet JAX-WS 2.0 is part of Java SE, not EE. One of the upshots of this is that you can create web services without needing a full-blown Java EE container. Young Yang shows how this works in practice.
by Young Yang
| |
XQuery For Java, An Enabler For SOA
XQuery offers a rich set of features for working with the structure of an XML document, offering you compelling abilities not possible with XPath or XSLT. In a sense, it's SQL for XML. In this article, Sowmya Hubert & Binildas C. A. look at the Java API for XQuery and how you can use it in your SOA applications.
by Binildas Christudas, Sowmya Hubert
| |
Invoking Web Services using Apache Axis2
How would you like to invoke a web service--blocking or non-blocking? Over a single transport or multiple? With or without exception-handling? Apache Axis2 gives the developer a wide set of options, as illustrated in this article by Deepal Jayasinghe.
by Deepal Jayasinghe
| |
XML Signature with JSR-105 in Java SE 6
XML Signature is an important enabling technology for WS-Security, verifying that an XML document has not been altered since it was signed. In this article, Young Yang looks at how JDK 6's implementation of JSR-105 offers XML Signature technology to Java developers.
by Young Yang
| |
XML Manipulation using XMLTask
With the widespread use of XML by various Java technologies--for config files, stylesheets, deployment descriptors, etc.--it's not surprising that you might need to work with XML at build-time. XMLTask for Ant makes this a lot easier. Brian Agnew has a look at some of what you can do with XMLTask.
by Brian Agnew
| |
Integrating Maps into Your Java Web Application with Google Maps and Ajax
Want to provide maps in your web application? The Google Maps API is straightforward to call from Java, and with an Ajax-ian approach, you can make it extra user-friendly. John Ferguson Smart shows you how to combine these approaches.
by John Ferguson Smart
| |
Web Swinging
You application needs content from a web page or web service, so that rules out writing a rich application and forces you to write a web app, right? Not so fast. The emerging trend of smashups--Swing mashups--combine rich Swing GUIs with data fetched from the Web. Richard Bair shows you how to bring these web-fetching techniques to your Swing app.
by Richard Bair
| |
Asynchronous Web Service Invocation with JAX-WS 2.0
Web services are remote by their very nature, and thus prone to significant delays. One approach to mitigate this effect is to move to asynchronous web service calls. Young Yang shows how JAX-WS 2.0 makes this easier.
by Young Yang
| |
Axis2: The Next Generation of Apache Web Services
Apache's Axis2 employs profound lessons learned from its popular predecessor, offering the developer vastly improved XML parsing along with an extensible core, pluggable data binding, and more. In this article, S. W. Eran Chinthaka offers an overview of what's new in Axis2, the "next generation" of this popular Web services SOAP stack.
by S. W. Eran Chinthaka
| |
Contract-First Web Services with Apache Axis2
It's tempting to throw down your business logic and expose it as a Web service later, but this "code-first" approach is fraught with peril. Ajith Ranabahu argues for a "contract-first" approach in which you use code generation to create server-side code.
by Ajith Ranabahu
| |
Introduction to StAX
Tree- and event-based XML parsing, like SAX and DOM respectively, force the developer to make problematic tradeoffs of performance and code clarity. JSR-173 offers the Streaming API for XML, StAX, which allows the client much more control and a more sensible approach to XML parsing. Eran Chinthaka has our introduction to StAX.
by S. W. Eran Chinthaka
| |
A Dive Into the Generated Client Code in Axis2
Code Generation is an essential technique for developers working with SOAP, as web services' WSDL documents describe the services in machine-processable ways, which enables automated generation of classes to work with the service. In this article, Ajith Ranabahu looks at how Apache Axis2 provides flexibility for different code generation scenarios.
by Ajith Ranabahu
| |
Web Services Made Easy with JAX-WS 2.0
Standards are so much easier to adhere to when your tools do it for you. Thanks to JAX-WS and its implementation in application servers like GlassFish, you can write web services as plain ol' Java objects, just by adding a few annotations. John Ferguson Smart shows how it's done.
by John Ferguson Smart
| |
Understanding Service Oriented Architecture
Do you feel like software vendors and conference speakers have stretched the meaning of "service oriented architecture" to the point where anything is an SOA? Do you even know what the term should mean any more? In this re-introductory article, David Walend offers an overview of what true SOAs are, how they work, and what they can do for you.
by David Walend
| |
Service Provisioning Through ESB
The Enterprise Service Bus approach to enterprise development separates functionality from transport, allowing you to develop deeply distributed systems without getting hung up on the messaging details. In this article, Binildas C. A. shows how to develop a basic ESB application and the advantages it conveys.
by Binildas Christudas
| |
Introducing AXIOM: The Axis Object Model
XML parsing often offers a Hobson's Choice of implementations: get events during the parse (and lose the parsed structure), or get the whole structure (and wait for the entire stream to be parsed before you can have any of it). Apache Axis 2 is using a new object model, AXIOM, that offers a different way to think about XML parsing. S. W. Eran Chinthaka looks at how it works.
by S. W. Eran Chinthaka
| |
Getting and Rendering Components
In this excerpt from his book JavaServer Faces, author Hans Bergsten shows you how JSF components are created and rendered.
by Hans Bergsten
| |
Getting Groovy with XML
Jack Herrington just wants to access nodes in an XSL document by id and pull out values. With the typical Java DOM-parsing approach, it takes dozens of lines, complete with annoying casts. But by letting Groovy manage the ugly XML details, he shows how your Java code can be much prettier.
by Jack Herrington
| |
Creating JSF Custom Components
The new component model in JSF is one of the most compelling reasons to switch to this new web framework. Bill Dudney covers the ins and outs of building a custom component, and in the process shows you how to do the same.
by Bill Dudney
| |
AppFuse: Start Your J2EE Web Apps
AppFuse is a web application to accelerate developing J2EE web applications. It's based on open source tools such as Hibernate, Spring, and Struts. It also provides many out-of-the-box features such as security and user management. Creator Matt Raible provides an overview
of its history and features.
by Matt Raible
| |
Creating EL-Aware Taglibs Using XDoclet
Passing dynamic values to taglibs via the JSP expression language (EL) is convenient, but is hard on the taglib developer and is therefore little-supported. Felipe Leme shows how code generation might solve that problem.
by Felipe Leme
| |
Extensible Code Generation with Java, Part 2
Continuing his series on code generation, Jack Herrington banishes the awkward subclassing of generated code with the idea of "safe zones," which allow handwritten code to peacefully coexist with generated code.
by Jack Herrington
| |
Extensible Code Generation with Java, Part 1
Jack Herrington argues that machine-generated code not only solves problems of drudgery, but it can even be preferable to potentially buggy ,hand-written code. In Part 1 of his series on code generation, he shows how XSLT can be used to generate Java source from XML descriptor files.
by Jack Herrington
| |
Apache Axis Live excerpt
This excerpt from "Apache Axis Live" focuses "solely on the basic components of an Axis Web Service and how these components are assembled in a basic web service."
by James Goodwill
| |
Building a Better Brain, Part 1: The Protocol
Joshua Marinacci wants to build a distributed system for storing, searching, and updating small pieces of information. In this article, he shows how Java-friendly standards like XML and HTTP will make up the foundation of his BrainFeed web application..
by Joshua Marinacci
| |
Explorations: Googleminer, Part 1
Bill Grosso begins exploring an Internet application built for the "Internet Operating System" on top of the Google APIs: Googleminer.
by William Grosso
| |
Working with XML Data
In this excerpt from his book JavaServer Pages 3rd Edition, author Hans Bergsten shows you how to generate XML responses with JSP and how to process XML data.
by Hans Bergsten
| |
Securing the Wire
In this excerpt from his book J2EE Security: For Servlets, EJBs, and Web Services, author Pankaj Kumar describes Java APIs for securing items that are sent over the network where others may be snooping.
by Pankaj Kumar
| |
Measured Smells
In this excerpt from his book Refactoring Workbook, author William C. Wake provides examples of the easy to detect code smells of comments, long method, large class, and long parameter list.
by William C. Wake
| |
SOAP
In this excerpt from his book J2EE Web Services, The Ultimate Guide, author Richard Monson-Haefel provides a comprehensive look at SOAP (Simple Object Access Protocol).
by Richard Monson-Haefel
| |
More RSS for Java
Using RSS to provide syndicated content to web pages doesn't have to be inefficient. Sam Newman shows how intelligent updating can improve your RSS-based JSPs.
by Sam Newman
| |
Using RSS in JSP pages
This article aims to show how you can use the Informa API to quickly access RSS feeds to add dynamic news and information content to your web sites.
by Sam Newman
| |
Scripting with Jython Instead of XML
Instead of using XML to script your Java applications, consider using an actual scripting language, such as Jython.
by Jonathan Simon
|
|