Saturday, June 27, 2009

Outline for MAX: LiveCycle ES for Java Developers

Greg Wilson, Marcel Boucher, and I will be leading a mega lab at Adobe MAX 2009. Special thanks to Scott MacDonald (Adobe) for helping with a ton of preparations on this course too. It was largely his idea.

CAVEAT: This is subject to change--but if so, we would like to change it based on your input here!!

We'd like to post the outline here to get comments back on how we can make this the best course ever for LC ES and Java Developers. Please append any comments or ideas below.

SESSION OUTLINE: LiveCycle ES for Java Developers (3 HOUR MEGA LAB)

Marcel Boucher, Scott MacDonald (Contributor for content), Duane Nickull, Greg Wilson

Audience Assumptions

- This is a lab for Java developers who want to learn how to unlock the full potential of LiveCycle ES.

Note: This is a Bring Your Own Laptop (BYOL)lab. We will prepare a separate set of instructions to provide attendees with prerequisite and instructions to prepare for this lab. It will explain in detail how to install the following software:


o Experience with the Java programming language 1.6 or later.
o Familiarity with XML syntax rules

Software Requirements (needs to be installed - subject to change at last minute but we will tell you)
o Acrobat 9 Pro Extended
o Microsoft .NET 1.1 runtime
o Java JDK 1.6 or later installed with JAVA_HOME and PATH set
o LiveCycle WorkBench must be installed. If Linux/Mac OS X or Unix, VMWare must be installed to run workbench.
o LC ES Server will be addressable via the LAN on a specific IP address.

NOTE: A special virtual session will be scheduled at the MAX facility prior to this BYOL Mega Lab to help attendees ensure they have all the necessary software installed and configured correctly. An instruction video will also be made available a week before the lab.

Session Description

This crash course will enable developers to learn all about Adobe LiveCycle ES. The course is completely hands-on and provides solid insight into how to build, deploy, and aggregate services into automated business processes. At the heart of LiveCycle ES are powerful Java(tm) libraries for manipulating PDF(ISO 32000) documents. These services can also be called remotely from a J2EE environment via EJB or SOAP endpoints. This hands-on lab will show attendees how to consume services to perform operations on documents including how to create and manipulate PDF documents, converting documents, extract XMP metadata, explore PDF/XDP documents, working with forms, SAP system data, and digital signature tasks.


Lab 0: Forward:

Opening – survey audience – learn about them.
- How many have used LC ES before (any version)?
- How many are using current version?
- Find out how much Java experience they have (to adjust mega lab as required on the fly)
LiveCycle ES architecture for those who are not familiar with LC ES (optional – only present if there are those who do not know LC ES or are vague).
What’s new in LC ES (scope to what is relevant to know for this mega lab)
Any housekeeping – launching VMWare images, where to address an instance on network (LAN or WAN).

Lab set up
- location and configuration of *.jars
- Configuration of Eclipse (assuming we use it)
- Importing the Java project with the labs and samples.
- TAs to help anyone with Classpath difficulties or similar

Lab 1: Verifying LC ES is running and logging in.

Objective: Learn how to ensure your LC ES instance is up and running. Log file location, pinging the server, logging in to adminui or workspace.
- Expected duration: 10 minutes

Lab 2: Configuring users via the AdminUI

Objectives: Learn how to ensure a new user has access to programmatically use the LC ES PDFG services. This is done by making the user a PDFG user.
- Expected duration: 10 minutes

Lab 3: Using Java API to make a PDF Document

Objectives: Learn how to make a PDF Document from a Java programming environment by calling up the PDFG Service using SOAP. This is largely hands-on coding. The skeleton of the class will be finished with the connection properties and outline with TODOs. Attendees will code up the solution to this lab, run it, and convert a document to PDF via SOAP.
- Expected duration: 15 minutes

Lab 4: Building, Compiling and Deploying a Server-Side Component

Objectives: Learn how to build a custom server-side component and what it means to deploy it to the server. Attendees will build a new component, compile it, and deploy it to the server.
- Expected duration: 25 minutes

Lab 5: Making a Java Class to call your server side component over EJB

Objectives: Talk to the newly deployed custom component via EJB endpoint. Attendees will code up a new EJB service client class and call their newly deployed component.
- Expected duration: 15 minutes

Lab 6: Adding your custom component to a LiveCycle Process

Objectives: Learn how to include the newly created custom component into a LiveCycle Business Process using workbench. Attendees will also add another service or two to their endpoints and note how the properties dialog align with the Java method signatures (coding without writing code!)
- Expected duration: 15 minutes

Lab 7: Programmatically Starting and stopping your new process

Objectives: Learn how to programmatically start the newly created LC ES process from a Java environment and also query the running processes using the APIs (note – if supported via REST, otherwise, use SOAP).
- Expected duration: 15 minutes

Lab 8: Exporting and re-importing an *.lca Application

Objectives: Learn how to export and re-import a *.lca (note – this is possibly not aligned with the talk title so needs a good thinking).
- Expected duration: 15 minutes

Labs 9-12:

We should prepare 3 more labs that call the LC ES infrastructure in case all attendees get through the first bits before the 3 hour lab is up. Would like to suggest we add the most common calls based on the LC ES quick starts:

- converting a PDF to an XDP (explain what XDP is etc.)
- Importing/Exporting XMP metadata using the Java API
- More Process management (time permitting):
o Searching for/Suspending process instances using the Java API
o Starting suspended process instances using the Java API
o Terminating process instances using the Java API
o Purging process data using the Java API

Monday, June 22, 2009

Hamburg FlexUGHH und Mir!

While in Europe, Sebastian and Marta asked me to pop over to Hamburg to do a talk for their user group. The event took place at an IBM office and was totally packed. The group was awesome and I felt totally well received (Danke fur die Bier!). We spent most of the time trying out the new features of Flash Builder 4 and helping developers understand the changes prior to them getting their hands on it. As with Berlin, a lot of Flex 3 developers had issues trying Flash Builder 4. We found it very useful to work through the changes together starting with all the new namespaces (Spark, Halo, FXG et) plus the variants of MX NS values (2009, 2006, halo). The big hits were the new advanced package explorer for each class, highlighting other instances of a class where it appears in the program (something Java developers are used to in Eclipse), advanced code hinting, content assist, class wizards and more. The network monitor won lots of friends.

I thought I would have the record of being the speaker to come from furthest away, however someone else apparently came from New Zealand (perhaps Kai?). The ColdFusion demo was a highlight!