OTN Developer Day Enterprise Java. Hands on Lab Manual JPA 2.0 and Object Relational Mapping Basics
|
|
|
- Godfrey Crawford
- 10 years ago
- Views:
Transcription
1 OTN Developer Day Enterprise Java Hands on Lab Manual JPA 2.0 and Object Relational Mapping Basics
2
3 I want to improve the performance of my application... Can I copy Java code to an HTML Extension? I coded it this way... Here s where you can find the latest release. Is the app customizable? How does restricted task reassignment work? The best way to migrate Oracle E-Business Application Suite Tier servers to Linux is... Just watch the live webcast on virtualization. Where can I find technical articles on logging in Java ME? Oracle Technology Network. It s code for sharing expertise. Come to the best place to collaborate with other IT professionals. Oracle Technology Network is the world s largest community of developers, administrators, and architects using industrystandard technologies with Oracle products. Sign up for a free membership and you ll have access to: Discussion forums and hands-on labs Free downloadable software and sample code Product documentation Member-contributed content Take advantage of our global network of knowledge. JOIN TODAY Go to: oracle.com/technetwork Copyright 2010, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners
4
5 Step 1. Setup Workspace and Create Java EE Projects Time to complete this step: 15 minutes Trouble Ticket System Overview During this tutorial series, you will develop a version of an IT ticketing system called Trouble Ticket Tracking System (which can be enhanced to be a full-blown application). Trouble Ticket Tracking System is a web-based application that manages and maintains lists of tickets submitted for the products of an organization. Customers can submit tickets for a specific product and can view the status of a ticket at any time. The submitted ticket can be picked by a technician from the pool of submitted tickets. Once assigned, the technician is the owner of that ticket and is responsible for resolving it. A submitted ticket can have different life-cycle states such as: NEW, for a newly submitted ticket; ASSIGNED, for when the ticket is assigned to a technician; FIXED, when the problem has been fixed; or CAN_NOT_FIX, if the issue cannot be fixed now. A ticket can have a history for different life-cycle states for tracking purposes. In this step, you will configure your workspace for Java EE project development and create a new web project for web service development. A Web Project is an Eclipse Java project that contains the source code, web pages, images, resources, and configuration files for building a web application. The extracted /home/oracle/labs/jpa_lab_resources folder contains the file TroubleTicketSystem.sql which contains the DDL for creating the database. It also has dao and tests folders that contain the Java DAO classes and test cases respectively. During the later steps, you are required to import and use them. Note: The software used in this tutorial is as follows: Derby (JPA Tutorial Database) Oracle TopLink 12c Oracle Enterprise Pack for Eclipse 12c Lab Resources in /home/oracle/labs/jpa_lab_resources Launch Oracle Enterprise Pack for Eclipse On the desktop, double click OEPE 12c to launch OEPE. Choose the /home/oracle/labs/dev_labs_2012/jpa_tutorial workspace. Open the Java EE perspective, if not already open by going to Window > Open Perspective > Other > Java EE. Create the TroubleTicketSystemEAR project Create the TroubleTicketSystemServer project Browse the Database Structure using the DataSource Explorer Create the TroubleTicketSystemEAR project 1. Right click in the Project Explorer and choose New > Enterprise Application Project
6 2. Enter the project name TroubleTicketSystemEAR in the New EAR Application Project wizard. The tutorial code expects this name.
7 3. Keep the default configuration and click Finish. Create the TroubleTicketSystemServer project In this step, you will create the Dynamic Web Project TroubleTicketSystemServer and add it to the TroubleTicketSystemEAR project as a web module. 1. Right click in the Project Explorer and choose New > Dynamic Web Project 2. Enter the project name TroubleTicketSystemServer in the New Dynamic Web Project wizard.
8 3. Select the Add project to an EAR option for adding this dynamic web project to TroubleTicketSystemEAR project. 4. For the Configuration option, click Modify... which opens the Project Facets dialog for selecting the facet(s) for the project. Select the Java Persistence and the Java Annotation Processing Support facets.
9 5. Click OK. 6. In the New Dynamic Web Project wizard, choose the option Add project to an EAR and select the TroubleTicketSystemEAR project. Click Next. 7. Click Next again in Java wizard page. 8. Click Next in Web Module wizard page. 9. Now we will configure the JPA Facet. Ensure that EclipseLink 2.0.x is chosen as the platform. 10. For the JPA implementation, choose User Library and then check the box for TopLink1211. The user library is comprised of eclipselink.jar and javax.persistence_2.0.jar. 11. Now add a new database connection. Click Add Connection Choose the Derby from the list. Enter the database connection name TroubleTicketSystemDBConnection and click Next.
10 13. Select the Derby Client JDBC driver from the Drivers dropdown menu, if necessary. Note that if you click on the button for editing the driver definition, you will see its referencing the JAR for Derby located in /labs/derby/dbderby/lib/derbyclient.jar. Then, configure the connection parameters to connect to the schema where the tables for the troubleticket database are located as shown below. The user / password is app / app.
11 14. Make sure to check Save password as shown above. Then click Test Connection and verify that the ping succeeds. If it does not, you can use Derby s ij utility to ensure the database is started, or simply launch a terminal window from the GNOME desktop. 15. Click Finish once the ping has completed successfully. 16. Back in the JPA Facet page, select the option Add the driver library to build path and choose Derby Client JDBC Driver option. Then click Finish.
12 17. The New Dynamic Web Project wizard creates a new TroubleTicketSystemServer web project and adds it to the TroubleTicketSystemEAR as a web module. 18. Double-click the TroubleTicketSystemServer > Java Resources > src > META-INF > persistence.xml file. This opens the persistence.xml file in the Persistence XML Editor. 19. Review the properties in the General tab. The persistence unit name has been set to TroubleTicketSystemServer and the persistence provider has been set to org.eclipse.persistence.jpa.persistenceprovider.
13 20. Switch to the Connection tab and review the persistence unit connection properties.
14 Step 2. Generate O/R mappings Time to complete this step: 15 minutes The Oracle Enterprise Pack for Eclipse (OEPE) provides a powerful and flexible object relational mapping interface to popular persistence services like OpenJPA. Depending on the development scenario, OR Mappings can be generated through two different mechanisms. Reverse Engineering the Schema to create object relational mappings Generating Mappings from an Object Model You will perform the following tasks in this step: o Generate JPA entities from database Schema using the Generate Custom JPA Entities Wizard Define new association between TECHNICIAN and TECHNICIANPRIVATEDATA Review the generated classes with JPA annotations Generate JPA entities from database Schema using the Generate Custom JPA Entities wizard In this step, we will use OEPE to automatically generate JPA entity beans from an existing database schema by reverse engineering the schema. OEPE will generate Java classes with the appropriate accessors and JPA annotations. 1. If the current perspective is not JPA perspective then switch to JPA perspective. 2. In the Project Explorer, right-click the TroubleTicketSystemServer project and select JPA Tools > Generate Entities from Tables. 3. Select the database tables from the Generate Custom Entities wizard as shown below. Do not select the DEPARTMENT database table. In the coming step, you will use the DEPARTMENT database table to manually create a POJO class, Department, and annotate this class for JPA in order to better understand the topdown development approach.
15 4. Click Next. 5. The Table Associations dialog displays entity relationships as observed in the database schema from the foreign key definitions. Select each association to review the association definitions among different entities. The dialog allows you to edit a table association by selecting each association and modifying its options in the editing panel.
16 6. First, select the auto-detected relationship between TECHNICIAN PRIVATEDATA and TECHNICIAN. Uncheck the "generate this association" check mark, as you will define it yourself in a later step. 7. Then, select the association between TICKETHISTORY and TECHNICIAN. A technician can have references to tickets but not ticket history. Hence to avoid bi-direction association between technician and ticket history, un-check the option Generate a reference to a collection of TICKETHISTORY in TECHNICIAN.
17 8. Select the association between TICKETHISTORY and TICKET. Change the value of the second property name from tickethistories to tickethistory
18 Define new association between TECHNICIAN and TECHNICIANPRIVATEDATA OEPE also supports the creation of new entity associations in case your database lacks foreign key definitions (such as for performance reasons). It can create Simple Associations (one to one, one to many, many to one) between two tables and Many to Many Associations through an intermediate table. a. In the Table Associations wizard page, click the New Associations button.
19 b. We want to define a simple one-to-one association between the TECHNICIAN and TECHNICIANPRIVATEDATA tables. In the Create New Association dialog, for the Simple association option, select the TECHNICIANPRIVATEDATA table for Table 1 and the TECHNICIAN table for Table 2 (as shown below) and click Next.
20 c. In the Join Columns dialog, specify the join columns between tables. Click the Add button. Select the ID column for the TECHNICIANPRIVATEDATA table and the ID column for the TECHNICIAN table. Click Next. You may need to resize the window to see the add/remove buttons. d. Select One-to-One to specify one TECHNICIAN per TECHNICIANPRIVATEDATA.
21 e. Click Finish. This adds a new association in the Table Associations wizard page. Click Next in the Table Associations wizard page. In the Customize Default Entity Generation wizard page, confirm that none is selected for the Key Generator field. A Java Package is required for generating the entity beans. Enter com.oracle.ticketsystem.beans as the Package name under Domain Java Class section and the package will be created automatically upon completion of the dialog.
22 Click Next. The Customize Individual Entities wizard page allows you to customize the tables and columns mapping generation. We will not customize the tables in this tutorial, but you can get a feel for how tables and columns can generate flexible, maintainable java source.
23
24 Click Finish. The Generate Custom Entities wizard generates JPA entity beans under the com.oracle.ticketsystem.beans package.
25 Open the persistence.xml file using the Persistence XML Editor. Expand the Managed Classes group to see the list of classes to be managed in the persistence unit. OEPE identifies the persistent entity - based on the class names of entities specified in persistence.xml file. Review the generated classes with JPA annotations
26 When we create entity mappings, we define each property as having one of six property types: basic, id, many-to-one, one-toone, one-to-many, and many-to-many. When you generate entities from a database, OEPE annotates the generated source code with JPA annotations that designate which type a given property is. In this section, we will review some basic JPA annotations. Review the following annotations in the Technician class. 1. Double-click the file TroubleTicketSystemServer > Java Resources: src > com.oracle.ticketsystem.beans > Technician.java to view its source. 2. Basic Properties: A basic property handles a standard value that is persisted as-is to the database. Every non-static non-transient property (field or method) of an entity bean is considered persistent. Not having an annotation for property is equivalent to the annotation. annotation allows to declare the fetching strategy for a property. annotation is followed by annotation defining an attribute name which is the name of the column to which the property is bound; the attribute nullable is false to specify that the column cannot store null values; the column length attribute specifies the maximum length. private String name; public String getname() { return this.name; public void setname(string name) { this.name = name; 3. ID properties: An Id property designates an identifier, such as a primary key. All entity beans must declare one or more fields which together form the persistent identity of an instance. annotation is followed by annotation defining the attribute unique which is true to specify that the column is UNIQUE in the SQL sense (can have only unique private String id; public String getid() { return this.id; public void setid(string id) { this.id = id; 4. One-to-One properties: There are three cases for one-to-one associations: either the associated entities share the same primary keys values, a foreign key is held by one of the entities (note that this FK column in the database should be constrained unique to simulate one-to-one multiplicity), or an association table is used to store the link between the 2 entities (a unique constraint has to be defined on each FK to ensure the one to one multiplicity). The following shows the one-to-one mapping association between Technician and Technicianprivatedata in the Technicianprivatedata class. The annotation declares the column in the targeted entity that will be used for the join. //bi-directional one-to-one association private Technician technician; public Technician gettechnician() { return this.technician; public void settechnician(technician technician) {
27 this.technician = technician; 5. The following shows the one-to-one mapping association between Technicianprivatedata and Technician in the Technician class. The mappedby attribute refers to the property name of the association on the owner side. //bi-directional one-to-one association to private Technicianprivatedata technicianprivatedata; public Technicianprivatedata gettechnicianprivatedata() { return this.technicianprivatedata; public void settechnicianprivatedata(technicianprivatedata technicianprivatedata) { this.technicianprivatedata = technicianprivatedata; 6. One-to-Many Properties: A one-to-many property designates a relationship in which one A entity references multiple B entities, and no two A entities reference the same B entity. Here the Technician entity references multiple Ticket entities, but a Ticket entity can have only one Technician entity reference. The one-to-many annotation defines an attribute mappedby which is the name of the many-to-one field in the Ticket entity that maps this bidirectional relation. //bi-directional many-to-one association to private Set tickets; public Set gettickets() { return this.tickets; public void settickets(set tickets) { this.tickets = tickets; 7. Many-to-one Properties: A many-to-one property designates a relationship in which an entity A references a single entity B, and other A's might also reference the same B; there is a many-to-one relation from A to B. The many-to-one annotation defines an attribute fetch which is a enum that specifies whether to load the field's persisted data before the entity object is returned by the persistence provider (FetchType.EAGER) or later, when the property is accessed (FetchType.LAZY). The many-to-one are defaulted to FetchType.EAGER. The many-to-one annotation is followed by annotation defining the column name which is the name of the column to which the property is bound and a referencedcolumnname attribute which is the name of the primary key column being joined to. Open the Ticket class. //bi-directional many-to-one association private Technician technician; public Technician gettechnician() { return this.technician; public void settechnician(technician technician) { this.technician = technician; Step 3. Generate O/R mappings
28 Time to complete this step: 15 minutes The Oracle Enterprise Pack for Eclipse (OEPE) allows you to generate JPA entities (by providing annotations) from existing POJO classes i.e. a Top-Down development scenario. You will perform the following tasks in this step: Create a POJO to represent persistent data Generate a JPA entity from a Java class and define associations among entities Create a POJO to represent persistent data In this step, you will create a persistent java class Department and use OEPE to generate JPA mappings for the Department object. 1. Under the package com.oracle.ticketsystem.beans, create a new Java class Department that implements the java.io.serializable interface. Click Finish when done. 2. Open the generated Department.java class, and add the following property: private static final long serialversionuid = 1L;
29 3. Add the following set of private variables to the Department class. Note: we are defining properties that map to columns in the DEPARTMENT database table. private long id; private String name; 4. Add getter and setter methods for each property. Hint: Right-click in the editor and select Source > Generate getters and setters... In the Generate Getters and Setters dialog, select all properties and click OK. public long getid() { return id; public void setid(long id) { this.id = id; public String getname() { return name; public void setname(string name) { this.name = name; 5. Override the equals() and hashcode() methods in case we use Department instances in a Set you can simply copy and paste this code into the class definition to do so. public boolean equals(object obj) { if ((this == obj)) return true; if (!(obj instanceof Department)) return false; Department castother = (Department) obj; if (this.getid() == castother.getid()) { return true; else { return false; public int hashcode() { return (new Long(this.getId())).hashCode(); 6. Save the Department class. Now, we have the object representation for DEPARTMENT persistence data. Next, we will annotate the Department object. Generate the JPA entity from the Java class and define associations In this step, you will annotate the Department java class using the OEPE Generate Entity from the Java Class wizard and define associations among the Department and Technician entities. 1. In the Project Explorer, right-click the TroubleTicketSystemServer project and select JPA Tools > Generate Entity from Java Class. 2. Click Browse to select a Java Class. Type Department to view and select the com.oracle.ticketsystem.beans.department object to be mapped. Click OK.
30 3. If Property has chosen as the Entity access type then OEPE annotates your class's accessors; if you choose field, OEPE annotate your class's fields. Leave the Entity Access to Field and click Next. 4. In the Class Mapping Properties dialog, choose DEPARTMENT for the Table field and the id as the Primary Key property field. Click Next.
31 5. In the Property Mapping dialog, you can verify the mappings between fields and database columns that are being annotated in the Department java class. Note that you can select a property mapping and click Edit to modify a selected property mapping. In this tutorial, we do not need to change any mapping information. Click Finish. 6. Open the Department class and verify that the JPA annotations have been added for the class and its fields.
32 7. Edit the annotated class Technician for adding bi-directional many-to-one associations with Department. a. Remove the deptid property and corresponding accessor methods. (private int deptid;) b. Add a new property department and annotate it with annotation to define a many-to-one association with the Department. annotation defines the attribute column name which is the name of the column to which the property is bound and the referenced column which is the name of the primary key column being referencedcolumnname="id") private Department department; c. Add getter/setter accessor methods for the department property. public Department getdepartment() { return department; public void setdepartment(department department) { this.department = department; d. Save the Technician class. 8. Edit the annotated class Department for adding bi-directional many-to-one association with Technician. a. Import the following javax.persistence classes for adding a new many-to-one column join, and the java.util.set. import javax.persistence.onetomany; import java.util.set; b. Add a property technicians of type java.util.set. Specify OneToMany annotation to the Department entity for adding a one-to-many association with Technician. annotation defines the attribute MappedBy which is the name of the many-to-one field in the Technician entity that maps this bidirectional private Set<Technician> technicians; c. Add getter/setter accessor methods for the technicians property. public Set<Technician> gettechnicians() { return technicians; public void settechnicians(set<technician> technicians) { this.technicians = technicians; d. Save the Department class.
33 Step 4. Managing Persistent Entities using the JPA Entities Editor Time to complete this step: 10 minutes OEPE allows you to view, create, and manage JPA entity relationships. The Entities Editor provides a centralized view of all entity relationships, allows you to modify entity properties, and navigate between the object model, mapping associations, and database schema layers. You will perform the following tasks in this step: View an Entity Relationship Diagram using the Entities Editor Viewing and Editing JPA Persistent Entities using the JPA Details View Manage JPA entity mappings View an Entity Relationship Diagram using the Entities Editor OEPE provides an Entities Editor that displays relationship diagram for entities defined in the persistence.xml file. 1. In the Project Explorer view, right-click the project TroubleTicketSystemServer and select JPA > Show in Entity Editor. 2. The JPA Persistence Entities Editor displays all entity relationships defined in the Persistence configurations file. Each box displays a specific entity, its properties, and an icon denoting the nature of the relationship. The JPA Persistence Entities Editor displays and selects property types for an entity with tool tip popups. You can work with the entity relationship diagram by selecting operations such as Zoom In, Zoom Out, Export to Image, and Print. To view a tool tip, hover your cursor over the respective entity. To view and edit the details, use the JPA Details View.
34 3. The JPA Persistence Entities Editor also allows you to filter relationships between entities. This feature helps you simplify your view of the diagram when it is large and complex. Click on the Toggle relations actions like One-to-Many and Many-to-One to filter entity relationships in the diagram. 4. Reset both the filters. Viewing and Editing JPA Persistent Entities using the JPA Details View Using the JPA Details View, you can easily edit entity properties. 1. Select the Ticket entity in the JPA Entities Editor. 2. The JPA Details View displays the properties for the Ticket entity.
35 3. With the JPA Details View, you can edit the associated Java Bean class, strategy for persistence, and the database access information for the selected entity. To edit, either enter text in the text box or click on the drop down lists for the schema binding, Primary Key Generation, Sequence Generators, Queries, etc. 4. To edit a property, in the JPA Entities Editor view, select the customer property of the Ticket entity. Observe the customer property in JPA Details View. 5. Use the JPA Details View to modify the Length of the customer property. Update the Length value from 255 to 200. This creates = 200) annotation in Ticket.java. 1. Press CTRL+S to save the changes.
36 Within the JPA Entities Editor, right-click the entity Technician to view its source code OR to see the associated configuration in persistence.xml.
37 Manage JPA entity mappings The following describes how the annotations are translated into what the JPA Details View displays. When the JPA Details View displays an underlined label, you can click the label to view the corresponding Java source code or item in the Data Source Explorer. 1. In the JPA Entities Editor, review the many-to-one association between Ticket and Product. Select the product property in the Ticket entity to view its properties in the JPA Details View. 2. Within the JPA Details View, examine Join Columns. Select the association and click Edit to edit the mapping association. Click Cancel
38 . 3. Next, locate the one-to-many association between Ticket and Tickethistory. Click on the tickethistory property in the Ticket entity and view the Target Entity and Mapped By properties in the JPA Details View. 4. Clicking Target Entity in the JPA Details View will take you to the class for the related entity type Tickethistory. 5. Close the Tickethistory.java file.
39 6. Clicking Mapped By under the Join Properties will allow you to change the field by which the many-to-one association of Ticket to Tickethistory is mapped by. Do not make any changes at this time. Step 5. Explore the Persistence Settings of the project Time to complete this step: 10 minutes The persistence.xml file defines the context for JPA persistence. In this step, you will use the JPA Persistence Configuration Editor to explore the persistence.xml file for your JPA web project. You will perform the following tasks in this step: Use the JPA Persistence Configuration Editor to view the Persistence Configuration File View the Connection Properties Use the JPA Persistence Configuration Editor to view the Persistence Configuration File The JPA Persistence Configuration Editor provides a graphical interface that allows you to modify connection information, mapped classes, and JPA properties that are defined by your persistence.xml file. Optionally, you can also use the editor to edit the persistence.xml source file.
40 1. From the Project Explorer, open the JPA Persistence XML Editor by right-clicking the persistence.xml file and selecting Open. This will open the persistence.xml configuration file in the JPA Persistence Configuration Editor. 2. You can also open the persistence.xml file by double-clicking it in Project Explorer. The persistence.xml file is located at this path in your project hierarchy: TroubleTicketSystemServer/src/META-INF 3. The JPA Persistence Configuration Editor is organized in different category tabs. The General tab allows to edit information about managed classes and the persistence provider unit.
41 4. To edit the JPA entity beans, select a mapped class from the Managed Classes and click Open to view the source code for the selected mapped class. The editor also allows you to add a new mapped class by clicking Add... and browsing to the class.
42 5. Switch to the Logging tab, which shows the EclipseLink logging properties. Set the logging level to Default (Info). Save the persistence.xml file. View the Connection Properties 1. The Connection tab of the persistence.xml editor displays the current connection properties and allows you to modify the existing connection if you use a JDBC Datasource.
43 2. If you choose to instead embed the connection properties directly in persistence.xml, you can use the Properties tab to edit them. This tutorial embeds the properties directly. Step 6. Create and implement JPA DAO classes Time to complete this step: 15 minutes Data Access Objects (DAO) can be used to perform the required work with the data source. For this tutorial, the data source is the Oracle database. In this step, you will define DAO interfaces and implement them to create/find/update/remove entities that we have defined in previous steps. Figure 1. shows DAO interfaces and implementation classes and interaction with entities.
44 Figure 1. DAO abstraction for managing entities You will perform the following tasks in this step: Define/import DAO interfaces Implement DAO interfaces using JPA API Define (and import) DAO interfaces In this step, you will define (and import) DAO interfaces that define methods for doing various CRUD operations for entities. 1. Create a new Java package com.oracle.ticketsystem.dao in TroubleTicketSystemServer project under the /src node. 2. Right-click the com.oracle.ticketsystem.dao package and select New > Interface. 3. Enter the interface name ILoginDao and click Finish.
45 4. In ILoginDao interface, define a login method for validating the technician credentials as shown below inside the ILoginDao interface. For valid credentials, it will return reference of the Technician entity. Enter Cntrl + Shift + O to Organize Imports and save the file to resolve any build errors. public interface ILoginDao { /** * Validates the given technician ID and password. * If the ID and password are valid then return * the <code>technician</code> reference, * otherwise returns null. * id * string ID of Technician pwd * string password of Technician TechnicianType * if the ID and password are valid */ public Technician login(string id, String pwd); 5. Copy the additional DAO interfaces ( IProductDao and ITicketDao ) from the extracted JPA_Lab_Resources/dao folder to the com.oracle.ticketsystem.dao package. You may need to use the import function by right clicking on the com.oracle.ticketsystem.dao package and choosing Import -> File System. IProductDao: A DAO interface for the Product entity provides a product based on a specific ID or a complete list of products. /** * A DAO for providing product information. */
46 public interface IProductDao { /** * Returns all the available products. * set of <code>product</code>s */ public List<Product> getallproducts(); /** * Returns reference of a Product for the given product ID. * id * product ID reference of <code>product</code> if found for the given ID, * otherwise null. */ public Product getproduct(int id); ITicketDao: A DAO interface for the Ticket entity which performs create, find, update and delete operation on tickets. /** * A DAO that handles the ticket related requests, * for example, adding a new ticket, updating an * existing ticket, getting a specific ticket, and * getting list of tickets by specific state. * */ public interface ITicketDao { /** * Adds the given ticket. * ticket to add <code>ticket</code> reference to ticket being added */ public Ticket add(int productid, String customername, String customer , String title, String description); /** * Updates the ticket specified with the given ID. * <p> * Ignores the update request (and returns null), if could not find * Ticket for the given ID. * <p> * It updates the current state of the ticket and also adds an entry * for the ticket history. * ticketid * ID of the ticket to update technicianid * ID of technician who is updating the ticket comment * string comment about the update
47 state * state to update for the ticket the updated <code>tickettype</code> */ public Ticket update(int ticketid, String technicianid, String comment, String state); /** * Returns <code>ticket</code> reference for the given ticket ID, * or null if does not found. * ticketid * ID of ticket to retrieve <code>ticket</code> reference for the given ticket ID if found, * otherwise null. */ public Ticket get(int ticketid); /** * Returns <code>list</code> of tickets assigned to technician with the given ID. * technicianid get tickets assigned to technician with the given ID <code>list</code> of tickets. */ public List<Ticket> getticketsownedbytechnician(string technicianid); /** * Returns <code>list</code> of open tickets i.e. either NEW or OPEN * a list of open tickets i.e. either NEW or OPEN */ public List<Ticket> getopentickets(); /** * Removes the ticket with the given ticket ID. * ticketid * the ID of the ticket to be removed */ public void remove(int ticketid); Implement the DAO interfaces using the JPA API In this step, you will use the JPA API for implementing the DAO interfaces defined in the previous step. 1. Create a new Java package com.oracle.ticketsystem.dao.impl in the TroubleTicketSystemServer project. 2. Import the JPADaoFactory class from the extracted JPA_Lab_Resources/dao folder to the com.oracle.ticketsystem.dao.impl package. This class creates singleton instances of EntityManagerFactory and EntityManager using the persistence unit name as defined in the persistence.xml. Also, it has a method to close the EntityManagerFactory for necessary clean-up during the application shutdown. /** * A JPA DAO factory for providing reference to EntityManager. * */
48 public class JPADaoFactory { private static final String PERSISTENCE_UNIT_NAME = "TroubleTicketSystemServer"; private static EntityManagerFactory entitymanagerfactory; private static EntityManager entitymanager; /** * Returns reference to EntityManager instance. If null then create it * using the persistence unit name as defined in the persistence.xml * EntityManager */ public static EntityManager createentitymanager() { if(entitymanager == null) { entitymanagerfactory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME); entitymanager = entitymanagerfactory.createentitymanager(); return entitymanager; public static void close() { entitymanager.close(); entitymanagerfactory.close(); 3. Now, we will create a base class for JPA DAO implementation classes. The BaseJPADao class provides an accessor method for the EntityManager. Right-click the com.oracle.ticketsystem.dao.impl package and select New > Class. 4. Enter the class name BaseJPADao and click Finish.
49 5. Edit the BaseJPADao class. Add the getentitymanager() method that returns reference of type EntityManager using the JPADaoFactory. Organize imports for the EntityManager. /** * Returns JPA EntityManager reference. */ public EntityManager getentitymanager() { return JPADaoFactory.createEntityManager(); 6. Now, we will implement the ILoginDao interface. Right-click the com.oracle.ticketsystem.dao.impl package and select New > Class. 7. Enter the class name LoginJPADao. Click Browse.. and choose the superclass BaseJPADao. Click Add... and choose the interface ILoginDao. Click Finish.
50 8. The LoginJPADao class uses the JPA API to retrieve Technician entity based on the given technician ID and validate the password. It returns reference to Technician entity if match found, otherwise null. Implement the login() method as shown public Technician login(string id, String pwd) { Technician technician = getentitymanager().find(technician.class, id); if(technician == null) { return null; if(technician.getpassword().equals(pwd)) { return technician; return null; 9. Import additional DAO implementations ( ProductJPADao and TicketJPADao ) classes from the extracted JPA_Lab_resources/dao folder to the com.oracle.ticketsystem.dao.impl package.
51 10. Open and review the ProductJPADao class. The ProductJPADao performs find operations on JPA EntityManager to retrieve a specific product based on the given ID and executes a SELECT query to find all the products. 11. Open and review the TicketJPADao class. The TicketJPADao performs various CRUD operations on TicketJPADao using the JPA EntityManager. public class TicketJPADao extends BaseJPADao implements ITicketDao { /** * Date pattern used across the application. */ public static final String DATE_PATTERN = "MM/dd/yyyy hh:mm:ss aa"; //$NON-NLS-1$ /** * Default no-arg constructor */ public TicketJPADao() public Ticket add(int productid, String customername, String customer , String title, String description) { Product product = getentitymanager().find(product.class, productid); if(product == null) { throw new RuntimeException("While adding a new ticket, " + "could not find reference to the given product Id: " + productid); Ticket ticket = new Ticket(); ticket.setproduct(product); ticket.setcustomername(customername); ticket.setcustomer (customer ); ticket.settitle(title); ticket.setdescription(description);
52 ticket.setstate("new"); // always NEW state SimpleDateFormat dtformat = new SimpleDateFormat(DATE_PATTERN); ticket.setsubmissiondate(dtformat.format(new Date())); Integer maxid = getmaxid("select max(t.id) FROM Ticket t"); // setting the ticket Id ticket.setid( (int) ((maxid == null)? 0 : maxid + 1)); EntityTransaction t = getentitymanager().gettransaction(); t.begin(); getentitymanager().persist(ticket); t.commit(); return public Ticket get(int ticketid) { return public List<Ticket> getticketsownedbytechnician(string technicianid) { Query query = getentitymanager().createquery("select t from Ticket t WHERE t.technician.id = :technicianid"); query.setparameter("technicianid", technicianid); return public Ticket update(int ticketid, String technicianid, String comment, String state) {
53 EntityTransaction t = getentitymanager().gettransaction(); t.begin(); Ticket ticket = get(ticketid); if(ticket == null) { return null; ticket.setstate(state); Technician technician = null; if(technicianid!= null) { technician = getentitymanager().find(technician.class, technicianid); if(technician == null) { throw new RuntimeException("No technician found for the ID '" + technicianid + "'"); ticket.settechnician(technician); Tickethistory tickethistory = new Tickethistory(); Integer maxtickethistoryid = getmaxid("select max(h.id) FROM Tickethistory h"); // setting the tickethistory Id tickethistory.setid( (int) ((maxtickethistoryid == null)? 0 : maxtickethistoryid + 1)); if(technician!= null) { tickethistory.settechnician(technician);
54 tickethistory.setstate(state); tickethistory.setcomments(comment); tickethistory.setticket(ticket); SimpleDateFormat dtformat = new SimpleDateFormat(DATE_PATTERN); tickethistory.setupdatedate(dtformat.format(new Date())); getentitymanager().persist(tickethistory); ticket.gettickethistory().add(tickethistory); t.commit(); public List<Ticket> getopentickets() { Query openticketsquery = getentitymanager().createquery( "SELECT t FROM Ticket t " + "WHERE t.state = :newstate " + "OR t.state = :openstate"); openticketsquery.setparameter("newstate", "NEW"); openticketsquery.setparameter("openstate", "OPEN"); return public void remove(int ticketid) { Ticket ticket = get(ticketid); if(ticket!= null) { EntityTransaction trx = getentitymanager().gettransaction();
55 trx.begin(); for(tickethistory tickethistory : ticket.gettickethistory()) { getentitymanager().remove(tickethistory); ticket.gettickethistory().clear(); getentitymanager().remove(ticket); trx.commit(); private int getmaxid(string maxquery) { Query maxidquery = getentitymanager().createquery(maxquery); int maxid = (int) 1L; if( (maxidquery.getresultlist()!= null) && (maxidquery.getresultlist().size() > 0) ) { maxid = (Integer)maxIdQuery.getResultList().get(0); return maxid; Step 7. Test the JPA Entities Time to complete this step: 10 minutes You will perform the following tasks in this step: Configure the TroubleTicketSystemServer project for JUnit Import and Run JUnit Tests
56 Configure the TroubleTicketSystemServer project for JUnit Before importing the JUnit TestCases, it is required to configure the project build path for JUnit libraries. 1. Right-click the TroubleTicketSystemServer project and select Properties from the context menu. 2. In the Properties dialog for TroubleTicketSystemServer project, select Java Build Path in left pane, and the Libraries tab in the right pane. Click the Add Library... button. 3. In the Add Library dialog, select JUnit and click Next.
57 4. Select JUnit 4 as the JUnit library version and click Finish.
58 5. This adds the JUnit 4 libraries to the project build path. Click OK. Import and Run JUnit tests In this step, you will import the JUnit TestCases for performing various CRUD operations on JPA Entities developed during previous steps. 1. Create a new com.oracle.ticketsystem.dao.tests package in TroubleTicketSystemServer project. 2. Import all the test classes from the JPA_Lab_Resources/tests folder to the com.oracle.ticketsystem.dao.tests package. 3. Open and review the test classes. 1. LoginDaoTest: 1. Tests the login() operation with valid and invalid Technician credentials. 2. ProductDaoTest: 0. Tests the finder methods for Product entity. 3. TicketDaoTest: 0. Tests the various CRUD operations for the Ticket entity. Right-click the LoginDaoTest class and select Run As > JUnit Test.
59 This launches the LoginDaoTest unit test and shows the result in the JUnit UI. Similarly, execute the ProductDaoTest and TicketDaoTest JUnit tests. Verify the test results.
60
Tutorial: Mobile Business Object Development. Sybase Unwired Platform 2.2 SP02
Tutorial: Mobile Business Object Development Sybase Unwired Platform 2.2 SP02 DOCUMENT ID: DC01208-01-0222-01 LAST REVISED: January 2013 Copyright 2013 by Sybase, Inc. All rights reserved. This publication
Tutorial: Mobile Business Object Development. SAP Mobile Platform 2.3
Tutorial: Mobile Business Object Development SAP Mobile Platform 2.3 DOCUMENT ID: DC01927-01-0230-01 LAST REVISED: March 2013 Copyright 2013 by Sybase, Inc. All rights reserved. This publication pertains
IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules
IBM Operational Decision Manager Version 8 Release 5 Getting Started with Business Rules Note Before using this information and the product it supports, read the information in Notices on page 43. This
Tutorial: Mobile Business Object Development. SAP Mobile Platform 2.3 SP02
Tutorial: Mobile Business Object Development SAP Mobile Platform 2.3 SP02 DOCUMENT ID: DC01927-01-0232-01 LAST REVISED: May 2013 Copyright 2013 by Sybase, Inc. All rights reserved. This publication pertains
Tutorial: BlackBerry Object API Application Development. Sybase Unwired Platform 2.2 SP04
Tutorial: BlackBerry Object API Application Development Sybase Unwired Platform 2.2 SP04 DOCUMENT ID: DC01214-01-0224-01 LAST REVISED: May 2013 Copyright 2013 by Sybase, Inc. All rights reserved. This
Oracle Technology Network Virtual Developer Day. Developing RIA Web Applications with Oracle ADF
Oracle Technology Network Virtual Developer Day Developing RIA Web Applications with Oracle ADF I want to improve the performance of my application... Can I copy Java code to an HTML Extension? I coded
Catalog Web service and catalog commerce management center customization
Copyright IBM Corporation 2008 All rights reserved IBM WebSphere Commerce Feature Pack 3.01 Lab exercise Catalog Web service and catalog commerce management center customization What this exercise is about...
Developing an EJB3 Application. on WebSphere 6.1. using RAD 7.5
Developing an EJB3 Application on WebSphere 6.1 using RAD 7.5 Introduction This tutorial introduces how to create a simple EJB 3 application using Rational Application Developver 7.5( RAD7.5 for short
CRM Migration Manager 3.1.1 for Microsoft Dynamics CRM. User Guide
CRM Migration Manager 3.1.1 for Microsoft Dynamics CRM User Guide Revision D Issued July 2014 Table of Contents About CRM Migration Manager... 4 System Requirements... 5 Operating Systems... 5 Dynamics
Building and Using Web Services With JDeveloper 11g
Building and Using Web Services With JDeveloper 11g Purpose In this tutorial, you create a series of simple web service scenarios in JDeveloper. This is intended as a light introduction to some of the
Developing Rich Web Applications with Oracle ADF and Oracle WebCenter Portal
JOIN TODAY Go to: www.oracle.com/technetwork/java OTN Developer Day Oracle Fusion Development Developing Rich Web Applications with Oracle ADF and Oracle WebCenter Portal Hands on Lab (last update, June
ORACLE BUSINESS INTELLIGENCE WORKSHOP
ORACLE BUSINESS INTELLIGENCE WORKSHOP Integration of Oracle BI Publisher with Oracle Business Intelligence Enterprise Edition Purpose This tutorial mainly covers how Oracle BI Publisher is integrated with
Getting Started using the SQuirreL SQL Client
Getting Started using the SQuirreL SQL Client The SQuirreL SQL Client is a graphical program written in the Java programming language that will allow you to view the structure of a JDBC-compliant database,
14.1. bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë
14.1 bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë bî~äì~íáåö=oéñäéåíáçå=ñçê=emi=rkfui=~åç=lééåsjp=eçëíë This guide walks you quickly through key Reflection features. It covers: Getting Connected
Developing SQL and PL/SQL with JDeveloper
Seite 1 von 23 Developing SQL and PL/SQL with JDeveloper Oracle JDeveloper 10g Preview Technologies used: SQL, PL/SQL An Oracle JDeveloper Tutorial September 2003 Content This tutorial walks through the
Tutorial: Android Object API Application Development. SAP Mobile Platform 2.3 SP02
Tutorial: Android Object API Application Development SAP Mobile Platform 2.3 SP02 DOCUMENT ID: DC01939-01-0232-01 LAST REVISED: May 2013 Copyright 2013 by Sybase, Inc. All rights reserved. This publication
Setting up the Oracle Warehouse Builder Project. Topics. Overview. Purpose
Setting up the Oracle Warehouse Builder Project Purpose In this tutorial, you setup and configure the project environment for Oracle Warehouse Builder 10g Release 2. You create a Warehouse Builder repository
WhatsUp Gold v16.2 Installation and Configuration Guide
WhatsUp Gold v16.2 Installation and Configuration Guide Contents Installing and Configuring Ipswitch WhatsUp Gold v16.2 using WhatsUp Setup Installing WhatsUp Gold using WhatsUp Setup... 1 Security guidelines
PTC Integrity Eclipse and IBM Rational Development Platform Guide
PTC Integrity Eclipse and IBM Rational Development Platform Guide The PTC Integrity integration with Eclipse Platform and the IBM Rational Software Development Platform series allows you to access Integrity
ODBC Client Driver Help. 2015 Kepware, Inc.
2015 Kepware, Inc. 2 Table of Contents Table of Contents 2 4 Overview 4 External Dependencies 4 Driver Setup 5 Data Source Settings 5 Data Source Setup 6 Data Source Access Methods 13 Fixed Table 14 Table
IBM BPM V8.5 Standard Consistent Document Managment
IBM Software An IBM Proof of Technology IBM BPM V8.5 Standard Consistent Document Managment Lab Exercises Version 1.0 Author: Sebastian Carbajales An IBM Proof of Technology Catalog Number Copyright IBM
Team Foundation Server 2012 Installation Guide
Team Foundation Server 2012 Installation Guide Page 1 of 143 Team Foundation Server 2012 Installation Guide Benjamin Day [email protected] v1.0.0 November 15, 2012 Team Foundation Server 2012 Installation
E-mail Listeners. E-mail Formats. Free Form. Formatted
E-mail Listeners 6 E-mail Formats You use the E-mail Listeners application to receive and process Service Requests and other types of tickets through e-mail in the form of e-mail messages. Using E- mail
Tutorial on Building a web Application with Jdeveloper using EJB, JPA and Java Server Faces By Phaninder Surapaneni
Tutorial on Building a web Application with Jdeveloper using EJB, JPA and Java Server Faces By Phaninder Surapaneni This Tutorial covers: 1.Building the DataModel using EJB3.0. 2.Creating amasterdetail
Oracle Financial Services Data Integration Hub Foundation Pack Extension for Data Relationship Management Interface
Oracle Financial Services Data Integration Hub Foundation Pack Extension for Data Relationship Management Interface User Manual 8.0.1.0.0 Page i Table of Contents TABLE OF CONTENTS PREFACE... 4 Audience...
Oracle Fusion Middleware
Oracle Fusion Middleware Getting Started with Oracle Business Intelligence Publisher 11g Release 1 (11.1.1) E28374-02 September 2013 Welcome to Getting Started with Oracle Business Intelligence Publisher.
Tutorial: Android Object API Application Development. SAP Mobile Platform 2.3
Tutorial: Android Object API Application Development SAP Mobile Platform 2.3 DOCUMENT ID: DC01939-01-0230-01 LAST REVISED: March 2013 Copyright 2013 by Sybase, Inc. All rights reserved. This publication
Tutorial: Android Object API Application Development. Sybase Unwired Platform 2.2 SP02
Tutorial: Android Object API Application Development Sybase Unwired Platform 2.2 SP02 DOCUMENT ID: DC01734-01-0222-01 LAST REVISED: January 2013 Copyright 2013 by Sybase, Inc. All rights reserved. This
USER GUIDE WEB-BASED SYSTEM CONTROL APPLICATION. www.pesa.com August 2014 Phone: 256.726.9200. Publication: 81-9059-0703-0, Rev. C
USER GUIDE WEB-BASED SYSTEM CONTROL APPLICATION Publication: 81-9059-0703-0, Rev. C www.pesa.com Phone: 256.726.9200 Thank You for Choosing PESA!! We appreciate your confidence in our products. PESA produces
Tutorial: BlackBerry Application Development. Sybase Unwired Platform 2.0
Tutorial: BlackBerry Application Development Sybase Unwired Platform 2.0 DOCUMENT ID: DC01214-01-0200-02 LAST REVISED: May 2011 Copyright 2011 by Sybase, Inc. All rights reserved. This publication pertains
Developing Physical Solutions for InfoSphere Master Data Management Server Advanced Edition v11. MDM Workbench Development Tutorial
Developing Physical Solutions for InfoSphere Master Data Management Server Advanced Edition v11 MDM Workbench Development Tutorial John Beaven/UK/IBM 2013 Page 1 Contents Overview Machine Requirements
Setting up SQL Translation Framework OBE for Database 12cR1
Setting up SQL Translation Framework OBE for Database 12cR1 Overview Purpose This tutorial shows you how to use have an environment ready to demo the new Oracle Database 12c feature, SQL Translation Framework,
Smooks Dev Tools Reference Guide. Version: 1.1.0.GA
Smooks Dev Tools Reference Guide Version: 1.1.0.GA Smooks Dev Tools Reference Guide 1. Introduction... 1 1.1. Key Features of Smooks Tools... 1 1.2. What is Smooks?... 1 1.3. What is Smooks Tools?... 2
DCA. Document Control & Archiving USER S GUIDE
DCA Document Control & Archiving USER S GUIDE Decision Management International, Inc. 1111 Third Street West Suite 250 Bradenton, FL 34205 Phone 800-530-0803 FAX 941-744-0314 www.dmius.com Copyright 2002,
Witango Application Server 6. Installation Guide for Windows
Witango Application Server 6 Installation Guide for Windows December 2010 Tronics Software LLC 503 Mountain Ave. Gillette, NJ 07933 USA Telephone: (570) 647 4370 Email: [email protected] Web: www.witango.com
Implementing the Shop with EJB
Exercise 2 Implementing the Shop with EJB 2.1 Overview This exercise is a hands-on exercise in Enterprise JavaBeans (EJB). The exercise is as similar as possible to the other exercises (in other technologies).
IBM Business Monitor V8.0 Global monitoring context lab
Copyright IBM Corporation 2012 All rights reserved IBM BUSINESS MONITOR 8.0 LAB EXERCISE IBM Business Monitor V8.0 lab What this exercise is about... 2 Lab requirements... 2 What you should be able to
Secrets of Event Viewer for Active Directory Security Auditing Lepide Software
Secrets of Event Viewer for Active Directory Security Auditing Windows Event Viewer doesn t need any introduction to the IT Administrators. However, some of its hidden secrets, especially those related
Orientation Course - Lab Manual
Orientation Course - Lab Manual Using the Virtual Managed Workplace site for the lab exercises Your instructor will provide the following information before the first lab exercise begins: Your numerical
LepideAuditor Suite for File Server. Installation and Configuration Guide
LepideAuditor Suite for File Server Installation and Configuration Guide Table of Contents 1. Introduction... 4 2. Requirements and Prerequisites... 4 2.1 Basic System Requirements... 4 2.2 Supported Servers
Sage Intelligence Financial Reporting for Sage ERP X3 Version 6.5 Installation Guide
Sage Intelligence Financial Reporting for Sage ERP X3 Version 6.5 Installation Guide Table of Contents TABLE OF CONTENTS... 3 1.0 INTRODUCTION... 1 1.1 HOW TO USE THIS GUIDE... 1 1.2 TOPIC SUMMARY...
WhatsUp Gold v16.1 Installation and Configuration Guide
WhatsUp Gold v16.1 Installation and Configuration Guide Contents Installing and Configuring Ipswitch WhatsUp Gold v16.1 using WhatsUp Setup Installing WhatsUp Gold using WhatsUp Setup... 1 Security guidelines
IBM WebSphere Adapter for PeopleSoft Enterprise 6.2.0. Quick Start Tutorials
IBM WebSphere Adapter for PeopleSoft Enterprise 6.2.0 Quick Start Tutorials Note: Before using this information and the product it supports, read the information in "Notices" on page 94. This edition applies
tools that make every developer a quality expert
tools that make every developer a quality expert Google: www.google.com Copyright 2006-2010, Google,Inc.. All rights are reserved. Google is a registered trademark of Google, Inc. and CodePro AnalytiX
Talend Open Studio for MDM. Getting Started Guide 6.0.0
Talend Open Studio for MDM Getting Started Guide 6.0.0 Talend Open Studio for MDM Adapted for v6.0.0. Supersedes previous releases. Publication date: July 2, 2015 Copyleft This documentation is provided
QUANTIFY INSTALLATION GUIDE
QUANTIFY INSTALLATION GUIDE Thank you for putting your trust in Avontus! This guide reviews the process of installing Quantify software. For Quantify system requirement information, please refer to the
Lab 0 (Setting up your Development Environment) Week 1
ECE155: Engineering Design with Embedded Systems Winter 2013 Lab 0 (Setting up your Development Environment) Week 1 Prepared by Kirill Morozov version 1.2 1 Objectives In this lab, you ll familiarize yourself
L01: Using the WebSphere Application Server Liberty Profile for lightweight, rapid development. Lab Exercise
L01: Using the WebSphere Application Server Liberty Profile for lightweight, rapid development Lab Exercise Copyright IBM Corporation, 2012 US Government Users Restricted Rights - Use, duplication or disclosure
Uni Sales Analysis CRM Extension for Sage Accpac ERP 5.5
SAGE ACCPAC OPTIONS Sage Accpac Options Uni Sales Analysis CRM Extension for Sage Accpac ERP 5.5 User Guide 2008 Sage Software, Inc. All rights reserved. Sage Software, Sage Software logos, and all Sage
ODBC Driver Version 4 Manual
ODBC Driver Version 4 Manual Revision Date 12/05/2007 HanDBase is a Registered Trademark of DDH Software, Inc. All information contained in this manual and all software applications mentioned in this manual
Hibernate Language Binding Guide For The Connection Cloud Using Java Persistence API (JAP)
Hibernate Language Binding Guide For The Connection Cloud Using Java Persistence API (JAP) Table Of Contents Overview... 3 Intended Audience... 3 Prerequisites... 3 Term Definitions... 3 Introduction...
How to Configure an Example SAP Cloud Applications Studio (PDI) Solution for SAP Cloud for Customer
How-To Guide Document Version: 1411 2014.12.15 How to Configure an Example SAP Cloud Applications Studio (PDI) Solution for SAP Cloud for Customer How to configure an example SAP Cloud Applications Studio
Oracle Data Integrator for Big Data. Alex Kotopoulis Senior Principal Product Manager
Oracle Data Integrator for Big Data Alex Kotopoulis Senior Principal Product Manager Hands on Lab - Oracle Data Integrator for Big Data Abstract: This lab will highlight to Developers, DBAs and Architects
SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24. Data Federation Administration Tool Guide
SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24 Data Federation Administration Tool Guide Content 1 What's new in the.... 5 2 Introduction to administration
EMC Documentum Composer
EMC Documentum Composer Version 6.5 User Guide P/N 300 007 217 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights
Ricardo Perdigao, Solutions Architect Edsel Garcia, Principal Software Engineer Jean Munro, Senior Systems Engineer Dan Mitchell, Principal Systems
A Sexy UI for Progress OpenEdge using JSDO and Kendo UI Ricardo Perdigao, Solutions Architect Edsel Garcia, Principal Software Engineer Jean Munro, Senior Systems Engineer Dan Mitchell, Principal Systems
INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3
INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 Often the most compelling way to introduce yourself to a software product is to try deliver value as soon as possible. Simego DS3 is designed to get you
ER/Studio 8.0 New Features Guide
ER/Studio 8.0 New Features Guide Copyright 1994-2008 Embarcadero Technologies, Inc. Embarcadero Technologies, Inc. 100 California Street, 12th Floor San Francisco, CA 94111 U.S.A. All rights reserved.
Configuring a Custom Load Evaluator Use the XenApp1 virtual machine, logged on as the XenApp\administrator user for this task.
Lab 8 User name: Administrator Password: Password1 Contents Exercise 8-1: Assigning a Custom Load Evaluator... 1 Scenario... 1 Configuring a Custom Load Evaluator... 1 Assigning a Load Evaluator to a Server...
Application. 1.1 About This Tutorial. 1.1.1 Tutorial Requirements. 1.1.2 Provided Files
About This Tutorial 1Creating an End-to-End HL7 Over MLLP Application 1.1 About This Tutorial 1.1.1 Tutorial Requirements 1.1.2 Provided Files This tutorial takes you through the steps of creating an end-to-end
How To Use Gfi Mailarchiver On A Pc Or Macbook With Gfi Email From A Windows 7.5 (Windows 7) On A Microsoft Mail Server On A Gfi Server On An Ipod Or Gfi.Org (
GFI MailArchiver for Exchange 4 Manual By GFI Software http://www.gfi.com Email: [email protected] Information in this document is subject to change without notice. Companies, names, and data used in examples
Virtual Office Remote Installation Guide
Virtual Office Remote Installation Guide Table of Contents VIRTUAL OFFICE REMOTE INSTALLATION GUIDE... 3 UNIVERSAL PRINTER CONFIGURATION INSTRUCTIONS... 12 CHANGING DEFAULT PRINTERS ON LOCAL SYSTEM...
WhatsUp Gold v16.3 Installation and Configuration Guide
WhatsUp Gold v16.3 Installation and Configuration Guide Contents Installing and Configuring WhatsUp Gold using WhatsUp Setup Installation Overview... 1 Overview... 1 Security considerations... 2 Standard
HR Onboarding Solution
HR Onboarding Solution Installation and Setup Guide Version: 3.0.x Compatible with ImageNow Version: 6.7.x Written by: Product Documentation, R&D Date: November 2014 2014 Perceptive Software. All rights
Viewing and Troubleshooting Perfmon Logs
CHAPTER 7 To view perfmon logs, you can download the logs or view them locally. This chapter contains information on the following topics: Viewing Perfmon Log Files, page 7-1 Working with Troubleshooting
Getting Started with Telerik Data Access. Contents
Contents Overview... 3 Product Installation... 3 Building a Domain Model... 5 Database-First (Reverse) Mapping... 5 Creating the Project... 6 Creating Entities From the Database Schema... 7 Model-First
BID2WIN Workshop. Advanced Report Writing
BID2WIN Workshop Advanced Report Writing Please Note: Please feel free to take this workbook home with you! Electronic copies of all lab documentation are available for download at http://www.bid2win.com/userconf/2011/labs/
Crystal Reports for Eclipse
Crystal Reports for Eclipse Table of Contents 1 Creating a Crystal Reports Web Application...2 2 Designing a Report off the Xtreme Embedded Derby Database... 11 3 Running a Crystal Reports Web Application...
LAB: Enterprise Single Sign-On Services. Last Saved: 7/17/2006 10:48:00 PM
LAB: Enterprise Single Sign-On Services LAB: Enterprise Single Sign-On Services 2 TABLE OF CONTENTS HOL: Enterprise Single Sign-On Services...3 Objectives...3 Lab Setup...4 Preparation...5 Exercise 1:
Specify the location of an HTML control stored in the application repository. See Using the XPath search method, page 2.
Testing Dynamic Web Applications How To You can use XML Path Language (XPath) queries and URL format rules to test web sites or applications that contain dynamic content that changes on a regular basis.
How To Use Query Console
Query Console User Guide 1 MarkLogic 8 February, 2015 Last Revised: 8.0-1, February, 2015 Copyright 2015 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents Query Console User
Using Oracle Cloud to Power Your Application Development Lifecycle
Using Oracle Cloud to Power Your Application Development Lifecycle Srikanth Sallaka Oracle Product Management Dana Singleterry Oracle Product Management Greg Stachnick Oracle Product Management Using Oracle
Getting Started with the Aloha Community Template for Salesforce Identity
Getting Started with the Aloha Community Template for Salesforce Identity Salesforce, Winter 16 @salesforcedocs Last updated: December 10, 2015 Copyright 2000 2015 salesforce.com, inc. All rights reserved.
Building an Agile PLM Web Application with JDeveloper and Agile 93 Web Services
Building an Agile PLM Web Application with JDeveloper and Agile 93 Web Services Tutorial By: Maneesh Agarwal,Venugopalan Sreedharan Agile PLM Development October 2009 CONTENTS Chapter 1 Overview... 3
ArcGIS Business Analyst Premium* ~ Help Guide ~ Revised October 3, 2012
ArcGIS Business Analyst Premium* ~ Help Guide ~ Revised October 3, 2012 ArcGIS Business Analyst Premium is an Esri software package that combines GIS analysis and visualization with data to provide a better
WA2087 Programming Java SOAP and REST Web Services - WebSphere 8.0 / RAD 8.0. Student Labs. Web Age Solutions Inc.
WA2087 Programming Java SOAP and REST Web Services - WebSphere 8.0 / RAD 8.0 Student Labs Web Age Solutions Inc. 1 Table of Contents Lab 1 - WebSphere Workspace Configuration...3 Lab 2 - Introduction To
Juris Installation / Upgrade Guide
Juris Installation / Upgrade Guide Version 2.7 2015 LexisNexis. All rights reserved. Copyright and Trademark LexisNexis, Lexis, and the Knowledge Burst logo are registered trademarks of Reed Elsevier Properties
Cisco TelePresence Management Suite Extension for Microsoft Exchange
Cisco TelePresence Management Suite Extension for Microsoft Exchange Installation Guide D14846.01 June 2011 Software version 2.3 Contents Introduction 5 End user guidance 5 Server requirements 6 Exchange
Orchestrating Document and Media Management using CMIS
Orchestrating Document and Media Management using CMIS Technical Note - Integrating ActiveVOS with Alfresco CMIS Services AN ACTIVE ENDPOINTS TECHNICAL NOTE 2009 Active Endpoints Inc. ActiveVOS is a trademark
VMware Mirage Web Manager Guide
Mirage 5.1 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new edition. To check for more recent editions of this document,
Dell SupportAssist Version 2.0 for Dell OpenManage Essentials Quick Start Guide
Dell SupportAssist Version 2.0 for Dell OpenManage Essentials Quick Start Guide Notes, Cautions, and Warnings NOTE: A NOTE indicates important information that helps you make better use of your computer.
CentreWare for Microsoft Operations Manager. User Guide
CentreWare for Microsoft Operations Manager User Guide Copyright 2006 by Xerox Corporation. All rights reserved. Copyright protection claimed includes all forms and matters of copyright material and information
RoomWizard Synchronization Software Manual Installation Instructions
2 RoomWizard Synchronization Software Manual Installation Instructions Table of Contents Exchange Server Configuration... 4 RoomWizard Synchronization Software Installation and Configuration... 5 System
Results CRM 2012 User Manual
Results CRM 2012 User Manual A Guide to Using Results CRM Standard, Results CRM Plus, & Results CRM Business Suite Table of Contents Installation Instructions... 1 Single User & Evaluation Installation
Remedy ITSM Service Request Management Quick Start Guide
Remedy ITSM Service Request Management Quick Start Guide Table of Contents 1.0 Getting Started With Remedy s Service Request Management. 3 2.0 Submitting a Service Request.7 3.0 Updating a Service Request
OWA - Outlook Web App
OWA - Outlook Web App Olathe Public Schools 0 Page MS Outlook Web App OPS Technology Department Last Revised: May 1, 2011 Table of Contents MS Outlook Web App... 1 How to Access the MS Outlook Web App...
Veritas Cluster Server Database Agent for Microsoft SQL Configuration Guide
Veritas Cluster Server Database Agent for Microsoft SQL Configuration Guide Windows 2000, Windows Server 2003 5.0 11293743 Veritas Cluster Server Database Agent for Microsoft SQL Configuration Guide Copyright
SourceAnywhere Service Configurator can be launched from Start -> All Programs -> Dynamsoft SourceAnywhere Server.
Contents For Administrators... 3 Set up SourceAnywhere... 3 SourceAnywhere Service Configurator... 3 Start Service... 3 IP & Port... 3 SQL Connection... 4 SourceAnywhere Server Manager... 4 Add User...
Moving the TRITON Reporting Databases
Moving the TRITON Reporting Databases Topic 50530 Web, Data, and Email Security Versions 7.7.x, 7.8.x Updated 06-Nov-2013 If you need to move your Microsoft SQL Server database to a new location (directory,
EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.
WA2088 WebSphere Application Server 8.5 Administration on Windows Student Labs Web Age Solutions Inc. Copyright 2013 Web Age Solutions Inc. 1 Table of Contents Directory Paths Used in Labs...3 Lab Notes...4
ENABLE LOGON/LOGOFF AUDITING
Lepide Software LepideAuditor Suite ENABLE LOGON/LOGOFF AUDITING This document explains the steps required to enable the auditing of logon and logoff events for a domain. Table of Contents 1. Introduction...
Consider the possible problems with storing the following data in a spreadsheet:
Microsoft Access 2010 Part 1: Introduction to Database Design What is a database? Identifying entities and attributes Understanding relationships and keys Developing tables and other objects Planning a
Virtual CD v10. Network Management Server Manual. H+H Software GmbH
Virtual CD v10 Network Management Server Manual H+H Software GmbH Table of Contents Table of Contents Introduction 1 Legal Notices... 2 What Virtual CD NMS can do for you... 3 New Features in Virtual
Hands-On Lab. Building a Data-Driven Master/Detail Business Form using Visual Studio 2010. Lab version: 1.0.0. Last updated: 12/10/2010.
Hands-On Lab Building a Data-Driven Master/Detail Business Form using Visual Studio 2010 Lab version: 1.0.0 Last updated: 12/10/2010 Page 1 CONTENTS OVERVIEW... 3 EXERCISE 1: CREATING THE APPLICATION S
Setting Up Resources in VMware Identity Manager
Setting Up Resources in VMware Identity Manager VMware Identity Manager 2.4 This document supports the version of each product listed and supports all subsequent versions until the document is replaced
Colligo Email Manager 6.0. Offline Mode - User Guide
6.0 Offline Mode - User Guide Contents Colligo Email Manager 1 Key Features 1 Benefits 1 Installing and Activating Colligo Email Manager 2 Checking for Updates 3 Updating Your License Key 3 Managing SharePoint
Chapter 4 Accessing Data
Chapter 4: Accessing Data 73 Chapter 4 Accessing Data The entire purpose of reporting is to make sense of data. Therefore, it is important to know how to access data locked away in the database. In this
EMC Documentum Webtop
EMC Documentum Webtop Version 6.5 User Guide P/N 300 007 239 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 1994 2008 EMC Corporation. All rights
Standard Client Configuration Requirements
Test Developer s Studio (TDS) Standard Client Configuration Requirements Information Technologies (IT) Content Applications Development Group (CADG) Version 1.0 February 20, 2008 Copyright 2008 by NCS
