Extreme G22.3033-006

Session 3 – Main Theme Java Core Technologies (Part I)

Dr. Jean-Claude Franchitti

New York University Computer Science Department Courant Institute of Mathematical Sciences

Agenda

• Summary of Previous Session • Java Platforms and Features • J2SE Core Components and Optional Packages •Swing • Collections Framework • Assistive Technologies • Introduction to J2EE • XML and Java • Readings • Class Project & Assignment #2a 2

1 Summary of Previous Session

• Java Platform Architectures, and Files • Traditional Java Tools • • Java Project Management Approach • Class Project & Assignment #1b

3

Part I

Java Platforms and Features

4

2 Java Platforms, and Features

• J2ME • Highly optimized Java runtime environment targeting a wide range of consumer products, including pagers, cellular phones, screen phones, digital set-top boxes and car navigation systems • J2SE • Java 2 SDK, tools, runtimes, and APIs for developers writing, deploying, and

running applets and applications in the Java programming language • J2EE • Combines a number of technologies in one architecture with a comprehensive Application Programming Model and Compatibility Test Suite for building enterprise-class server-side applications

5

Part II

J2SE Core Components and Optional Packages

6

3 Java Component APIs

See Handout on Java Platform Component APIs

7

Java 2 Core Technologies/APIs • Assistive Technologies (Accessibility, includes Input Method Framework) • Drag and Drop • Java Access Bridge • JavaBeans Technology • JavaBeans Activation Framework JAF 1.0.2 • Javadoc Tool • Java Foundation Classes (JFC)/Swing (includes Collections Framework) • Java HotSpot Virtual Machine • Java Platform Debugger Architecture (JPDA) • Java Plug-in for Windows XP • Java 2D API product page • • JDBC Technology • Pluggable Look and Feel (PLAF) • Remote Method Invocation (RMI) • Security 8

4 Java 2 Optional Packages

• InfoBus • Java Advanced Imaging • Java Authentication and Authorization Service (JAAS) • Java Communications API (JCA) • Java Cryptography Extension (JCE) • Java Data Objects (JDO) • Java Help Technology • Java Media APIs • (JMF) • Java Naming and Directory Interface (JNDI) • Java Secure Socket Extension (JSSE) • Java Speech API • Java 3DTM API • J2EE add-ons: JNDI, Java Servlet, and RMI-IIOP/Java IDL, Java Management (JMX/JMAPI) 9

New JFC Features in J2SE 1.4 http://java.sun.com/j2se/1.4/docs/index.html#guide • API for long-term persistence of JavaBeans to support the creation of UI designs that are portable between IDEs • Preference API to store, retrieve, and modify application data • Full-screen exclusive mode API to support high performance graphics (direct screen drawing) • Updated file chooser for Windows • New Print Service API •etc. 10

5 J2EE Technologies/APIs

• Enterprise JavaBeans (EJB) • CORBA (RMI-IIOP, JNDI) • Java IDL • Java Message Service (JMS) • JavaServerTM Faces • JavaServer Pages (JSP) • Java Servlets (SRV) • Transactions (JTA/JTS) •JDBC • J2EE Connector Architecture • JavaMail • Java API for XML Processing (JAXP) • Java API for XML Registries (JAXR) • Java API for XML-Based Remote Procedure Call (JAX-RPC) 11

J2EE Technologies/APIs (continued)

• Sun ONE Application Server 7 • Java Blueprints Program for the Enterprise • SOAP with Attachments API for Java (SAAJ) •ECperf • Java Authorization Contract for Containers (Java ACC) • J2EE Client Provisioning • J2EE Deployment Specification (JSR-088) • J2EE Management Specification (JSR-077)

12

6 J2ME Technologies (CLDC)

• Connected Limited Device Configuration (CLDC) • Mobile Information Device Profile (MIDP) • Wireless Toolkit • Java Partner Sites: • Oracle9i JDeveloper J2ME Extension • Bluetooth API (JSR-82, Motorola) – Optional Packages • CLDC Optional Packages • JavaTM Technology for Wireless Industry (JSR-185) • Mobile Media API (JSR-135) • Location API for J2ME (JSR-179) • SIP API for J2ME (JSR-180) • Wireless Messaging API (JSR-120) • Security and Trust Services API for J2ME (JSR-177) • J2ME Web Services (JSR-172) • Mobile 3D Graphics (JSR-184)

13

J2ME Technologies (CDC)

• Connected Device Configuration (CDC) • Foundation Profile (FP) • Personal Basis Profile (PBP) (JSR-129) • Personal Profile (PP) (JSR-62) • Java Partner Site: • Bluetooth API (JSR-82, Motorola) – Optional Packages • CDC Optional Packages • J2ME RMI Optional Package • JDBC Optional Package for CDC/Foundation Profile API (JSR-169) • Location API for J2ME (JSR-179) • Wireless Messaging API (JSR-120) • Security and Trust Services API for J2ME (JSR-177) • J2ME Web Services (JSR-172)

14

7 J2ME Technologies (Additional)

Technology • Java Embedded Server Technology • PersonalJava Technology • Java TV API • JavaPhone API • Java Telematics Technology • Jini Network Technology • JavaSpaces • Mobile Information Device Profile

15

Java Technologies/Features in Scope • Technologies: • Collections Framework • Input Method Framework • Swing • Drag and Drop • JavaBeans •JNI • Security • Language Features: • Threads

• Assertions 16

8 Part III

Swing

17

Swing

• See Sub-Topic 1 Presentation on Swing • See Handout on Detailed Review of Swing

18

9 New Swing Features in J2SE 1.4

• Spinners, scrollable tabbed panes, indeterminate progress bar controls • Cut/copy/paste of Swing data across applications • Full drag-and-drop support across Swing components • Inconsistencies and incompatibilities between AWT and Swing components have been addressed • Undecorated frames allow turning off native OS dependent screen components (title bars, borders, etc.)

• Faster Swing-based applets (VolatileImage API) 19

Part IV

Collections Framework

20

10 Collections Framework

• See Sub-Topic 2 Presentation on Collections Framework • See Handout on Detailed Review of the Collections Framework

21

New Features in J2SE 1.4 http://java.sun.com/j2se/1.4/docs/guide/collections/changes4.html

• Marker interface to advertise random access • Identity-based (rather than equality-based) Map • Insertion-order-preserving Map and Set implementations • Several new algorithms for manipulating and returning values from lists

22

11 Part V

Assistive Technologies

23

Input Method Framework Architecture

(See http://java.sun.com/j2se/1.4/docs/guide/imf/spec.html)

24

12 Input Method Framework APIs

• Client API • Defines the classes and interfaces that text editing components can use to implement an integrated text input user interface. • Context Management • Manages communication paths between the text editing components and input methods • Engine SPI • Defines the interfaces that allow input method engines and adapters to be plugged into the framework • Adapters translate information between the data models used by native input methods and the input method framework (e.g., Java Speech,

Internet-Intranet Input Method Protocol (IIIMP), etc.) 25

New Features in J2SE 1.4 http://java.sun.com/j2se/1.4/docs/guide/collections/changes4.html

• Mnemonic tab navigation on a JTabbedPane • Text editing by assistive technologies • Accessibility of HTML components • Accessibility of Swing Actions • List navigation using the first letter of list items • Component roles DATE_EDITOR, FONT_CHOOSER, GROUP_BOX, SPIN_BOX, STATUS_BAR • Properties to indicate the presence of a screen magnifier or screen reader, or to specify assistive technologies to load into the Java virtual machine 26

13 Part VI

Introduction to J2EE

27

J2EE Features

• Standard Documents and Software Libraries • Specification • Programming Model • Platform • Reference Implementation • Compatibility Test Suite • http://www.javasoft.com/j2ee/docs.html

28

14 J2EE Connector Architecture • Component-Container Architecture • http://java.sun.com/features/2000/08/connect.html • J2EE Container Environment • J2SE Platform • Java Enterprise APIs • Java Enterprise Implementations • Deployment Services • Management Services • Component-Container Models • EJB App Servers, Web App Servers (SRV/JSP), Applet

Clients, Application Clients 29

J2EE Connector Architecture (continued)

30

15 Part VII

XML and Java

31

XML and Java

• See Sub-Topics 3-7 Presentations on XML and Java • New Features in J2SE 1.4 • Java API for XML Processing

32 32

16 Part VIII

Readings and Assignment

33

Assignment • Readings • Mastering Java 2: Part 2 – Chap. 9, 14, 16, 19, 20, 23 • Expert One-on-One: Chapter 2-4 as applicable (cont.) • Selected readings mentioned in class or referenced in the handouts • Handouts posted on the course web site • Assignment #1b: (submit report and implementation archive) • Analyze / reengineer an existing Java-based application to use it as an ongoing project framework within an XP development environment. This application should create a presentation of an XML document. • Refer to the Homework #2 Specification posted on the course Web site. • Project Framework Setup • Java Plug-in, Java Web Start, Apache’s Xerces/Xalan • J2SE 1.3.1, 1.4.0 or 1.4.1 (SDK) • IDE: , NetBeans, Sun ONE Studio, JBuilder, Visual Age, Visual Café, Codewarrior, WebGain Studio, Oracle JDeveloper, etc. • Editors: JCreator, UltraEdit, etc.

34

17