<%-- * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. --%> <%@include file="header.jsp"%>

Begin by entering your name.

OpenBooks do not ask you to register or remember one more password. You enter a name so that OpenBooks can refer you by name.
OpenBooks is a sample (and perhaps simple) web application to demonstrate some of the new features of JPA 2.0 API. OpenBooks performs basic operations such as
  1. Search for Books using a form-base query
  2. Place Purchase Orders for a set of Books
  3. Show the status of pending Purchase Orders
  4. Change the status of pending orders
Each of these actions invokes a service that queries or transacts against a database. This database interaction takes place via Java Persistence API (JPA). OpenBooks is designed to work with any JPA 2.0 compliant provider. Currently OpenBooks is deployed with OpenJPA 2.0 as its JPA provider.
As you navigate through the pages, you can browse through the actual code in parallel. For example, when you hit the Enter button in this page, this is the corresponding Java code executed on the server side.
<% Object service = session.getAttribute(KEY_SERVICE); if (service == null) { %>
Your Name :

<% } else { %> You have already signed in, <%= session.getAttribute(KEY_USER) %>. <% } %>
<%@include file="footer.jsp"%>