Extreme Java
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
2
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
3
Summary of Previous Session
• Java Platform Architectures, and Files
• Traditional Java Tools
• Java Virtual Machine
• Java Project Management Approach
• Class Project & Assignment #1b
4
Part I
5
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
6
Part II
J2SE Core Components
and Optional Packages
7
Java Component APIs
See Handout on Java Platform Component APIs
8
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 • Java Web Start
• JDBC Technology
• Pluggable Look and Feel (PLAF) • Remote Method Invocation (RMI) • Security
9
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
• Java Media Framework (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)
10
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.
11
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)
12
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)
13
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)
14
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)
15
J2ME Technologies
(Additional)
• Java Card Technology
• Java Embedded Server Technology
• PersonalJava Technology
• Java TV API
• JavaPhone API
• Java Telematics Technology
• Jini Network Technology
• JavaSpaces
• Mobile Information Device Profile
16
Java Technologies/Features in Scope
• Technologies:
• Collections Framework
• Input Method Framework
• Swing
• Drag and Drop
• JavaBeans
• JNI
• Security
• Language Features:
• Threads
• Assertions
17
Part III
Swing
18
Swing
• See Sub-Topic 1 Presentation on Swing
• See Handout on Detailed Review of Swing
19
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)
20
Part IV
21
Collections Framework
• See Sub-Topic 2 Presentation on Collections
Framework
• See Handout on Detailed Review of the Collections
Framework
22
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
23
Part V
Assistive Technologies
24
Input Method Framework Architecture
25
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.)
26
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
27
Part VI
Introduction to J2EE
28
J2EE Features
• Standard Documents and Software Libraries
• Specification
• Programming Model
• Platform
• Reference Implementation
• Compatibility Test Suite
29
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
30
J2EE Connector Architecture
(continued)
31
Part VII
XML and Java
32 32XML and Java
• See Sub-Topics 3-7 Presentations on XML and Java
• New Features in J2SE 1.4
33
Part VIII
Readings and Assignment
34