<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="classOutlineTemplate.xsl"?>
<courses>
	<class>
		<classInfo>
			<classTitle>Advanced Java Training</classTitle>
			 <softwareUsed>
        <software url="http://www.java.com/en/download/index.jsp" icon="../../images/softwareIcons/webLanguages/java_logo.jpg">Java</software>
		   <software url="http://www.eclipse.org" icon="">Eclipse</software>
      </softwareUsed>
			<swVersions>
				<version></version>
			</swVersions>
			<levels>
				<level>3</level>
			</levels>
			<duration>
				<hours>7</hours>
				<days>5</days>
			</duration>
			<certification>
				<company url=""></company>
			</certification>
			<courseCode>code</courseCode>
			<courseDescription>Our Advanced Java™ Programming training course teaches Java developers the latest advanced Java language skills, including generics, annotations, threads, reflections, sockets, RMI, the Java Foundation Classes, and JDBC.</courseDescription>
		</classInfo>
		<hwRequirements>
		</hwRequirements>
		<swRequirements>
			<platformRequirements>
				<requirement>Any operating system that supports Java 1.5, 1.6, or later </requirement>
			</platformRequirements>
			<requirement>Java SE SDK version 1.5, 1.6, or later </requirement>
			<requirement>Java development environment </requirement>
		</swRequirements>
		<preRequisites>
			<preReqClass />
			<preReq>Ability to write, compile, test, and debug simple Java programs, using structured programming techniques, strong data types, and flow-control constructs such as conditionals and loops</preReq>
		</preRequisites>
		<performanceObjectives>
			<objective>Write multi-threaded Java applications.Reflection API for highly generic tasks, discovery, or code-generation.dard annotations and develop custom annotations to express meta-data in Java source files.</objective>
			<objective>Communicate between processes using network sockets.</objective>
			<objective>Understand the roles of JFC, RMI, JDBC, and other Core API packages in the classic multi-tier architecture for distributed systems.</objective>
			<objective>Understand the basics of the JFC architecture.</objective>
			<objective>Build complex GUIs using various JFC controls.</objective>
			<objective>Understand the relationship between RMI and various J2EE technologies such as JNDI, EJB, and CORBA.</objective>
			<objective>Implement simple RMI clients and servers.</objective>
			<objective>Connect to a database using JDBC and perform a simple query.</objective>
			<objective>Update relational data using JDBC to execute updates, inserts and deletes.</objective>
			<objective>Use prepared statements to produce reusable database queries and optimize execution time.</objective>
			<objective>Use callable statements to access database procedures.</objective>
			<objective>Use scrollable and updatable results sets for more robust solutions. </objective>
			<objective>Use commit, rollback, and savepoint to build transactional systems.</objective>
			<objective>Use batch processing for efficient handling of large datasets.</objective>
			<objective>Use the Java 5.0 Core API and related tools to develop robust multi-tier applications. </objective>
		</performanceObjectives>
		<supplementalMaterials>
			<book/>
			<website/>
		</supplementalMaterials>
		<courseContent>
			<lesson number="1">	
				<lessonTitle>Generics</lessonTitle>
				<topic>Using Generics </topic>
				<topic>Type Erasure</topic>
				<topic>Type Boundaries </topic>
				<topic>Wildcards</topic>
				<topic>Generic Methods</topic>
				<topic>Strengths and Weaknesses of Generics</topic>
				<topic>Legacy Code and Generics</topic>
				<lessonTime/>
			</lesson>
		<lesson number="2">
				<lessonTitle>Threads</lessonTitle>
				<topic>Java Thread Model </topic>
				<topic>Creating and Running Threads</topic>
				<topic>Manipulating Thread State </topic>
				<topic>Thread Synchronization </topic>
				<topic>Volatile Fields vs. Synchronized Methods</topic>
				<topic>wait and notify </topic>
				<topic>join and sleep </topic>
				<topic>The Concurrency API</topic>
				<topic>Atomic Operations</topic>
				<lessonTime/>
			</lesson>
		<lesson number="3">
				<lessonTitle>Reflection</lessonTitle>
				<topic>Uses for Meta-Data </topic>
				<topic>The Reflection API </topic>
				<topic>The Class &lt; T &gt; Class </topic>
				<topic>The java.lang.reflect Package</topic>
				<topic>Reading Type Information</topic>
				<topic>Navigating Inheritance Trees </topic>
				<topic>Dynamic Instantiation </topic>
				<topic>Dynamic Invocation </topic>
				<topic>Reflecting on Generics </topic>
				<lessonTime/>
			</lesson>
			<lesson number="4">
				<lessonTitle>Annotations</lessonTitle>
				<topic>Aspect-Oriented Programming and Java</topic>
				<topic>The Annotations Model </topic>
				<topic>Annotation Types and Annotations</topic>
				<topic>Built-In Annotations </topic>
				<topic>Annotations vs. Descriptors (XML) </topic>
				<lessonTime/>
			</lesson>	 
			<lesson number="5">
				<lessonTitle>Sockets</lessonTitle>
				<topic>Network Protocols </topic>
				<topic>The Socket Class</topic>
				<topic>The ServerSocket Class</topic>
				<topic>Connecting Through URL Objects </topic>
				<topic>HTTP and Other TCP Servers</topic>
				<topic>Datagram Clients and Servers</topic>
				<topic>Non-Blocking Sockets</topic>
				<lessonTime/>
			</lesson>
			<lesson number="6">
				<lessonTitle>Overview</lessonTitle>
				<topic>Three Tiers for J2EE </topic>
				<topic>Three Tiers for J2SE</topic>
				<topic>The Case Study</topic>
				<topic>Design Patterns</topic>
				<topic>Domain and Service Models</topic>
				<lessonTime/>
			</lesson>
			<lesson number="7">
				<lessonTitle>The Presentation Tier</lessonTitle>
				<topic>The Standalone/Client Application </topic>
				<topic>JDesktopPane and JinternalFrame</topic>
				<topic>Adapting JList, JTable, and JTree to Services</topic>
				<topic>Presentation-Tier Patterns</topic>
				<lessonTime/>
			</lesson>
			<lesson number="8">
				<lessonTitle>The Business Tier</lessonTitle>
				<topic>Distributing the Application </topic>
				<topic>A Chain of Services</topic>
				<topic>Logging</topic>
				<topic>Business-Tier Patterns</topic>
				<topic>Designing for Latency</topic>
				<lessonTime/>
			</lesson> 
<lesson number="9">
				<lessonTitle>The Persistence Tier</lessonTitle>
				<topic>A Database is Not a Persistence Tier! </topic>
				<topic>Persistence Frameworks </topic>
				<topic>Persistent-Object Strategies</topic>
				<topic>Persistence-Tier Patterns</topic>
				<topic>Caching</topic>
				<lessonTime/>
			</lesson>
<lesson number="10">
				<lessonTitle>Introduction to JFC</lessonTitle>
				<topic>Abstract Windowing Toolkit Basics</topic>
				<topic>Simple Layout Management</topic>
				<topic>Simple Event Handling </topic>
				<topic>Lightweight Controls</topic>
				<topic>JFC Feature Set </topic>
				<topic>JFC Architecture and Relationship to AWT </topic>
				<lessonTime/>
			</lesson>
<lesson number="11">
				<lessonTitle>JFC Application Design</lessonTitle>
				<topic>Role of a JFrame </topic>
				<topic>Building a Frame-Based JFC Application </topic>
				<topic>Panes</topic>
				<topic>Using Dialogs </topic>
				<lessonTime/>
			</lesson>
<lesson number="12">
				<lessonTitle>JFC Components</lessonTitle>
				<topic>JFC Component Class Hierarchy</topic>
				<topic>JComponent Features </topic>
				<topic>Simple Control Types</topic>
				<topic>Text Components </topic>
				<topic>Menus</topic>
				<topic>Managing Look and Feel </topic>
				<lessonTime/>
			</lesson> 
<lesson number="13">
				<lessonTitle>RMI Architecture</lessonTitle>
				<topic>RMI, EJB, and CORBA </topic>
				<topic>RMI Architecture</topic>
				<topic>Lifetime of a Remote Method Invocation</topic>
				<topic>Registries</topic>
				<topic>Naming and URL Resolution</topic>
				<topic>Interface Design </topic>
				<topic>The Remote Interface</topic>
				<topic>Implementation Classes </topic>
				<topic>The RemoteObject and RemoteServer Classes </topic>
				<topic>The UnicastRemoteObject Class </topic>
				<topic>Server Implementation </topic>
				<topic>Using the Registry </topic>
				<topic>Client Implementation</topic>
				<topic>Code Deployment</topic>
				<lessonTime/>
			</lesson> 
<lesson number="14">
				<lessonTitle>Practical RMI</lessonTitle>
				<topic>RMI Marshaling</topic>
				<topic>Passing Objects</topic>
				<topic>The Factory Pattern</topic>
				<topic>Serialization vs. Remote Reference</topic>
				<topic>Designing for Latency </topic>
				<topic>The Transfer Object Pattern </topic>
				<topic>Controlling Object Location</topic>
				<topic>Exception Handling</topic>
				<lessonTime/>
			</lesson>	 
<lesson number="15">
				<lessonTitle>Database and SQL Fundamentals</lessonTitle>
				<topic>Relational Databases and SQL </topic>
				<topic>Database, Schema, Tables, Columns and Rows</topic>
				<topic>SQL Versions and Vendor Implementations</topic>
				<topic>DDL -- Creating and Managing Database Objects</topic>
				<topic>DML -- Retrieving and Managing Data</topic>
				<topic>Sequences</topic>
				<topic>Stored Procedures</topic>
				<topic>Using SQL Terminals</topic>
				<lessonTime/>
			</lesson>
 
<lesson number="16">
				<lessonTitle>JDBC Fundamentals</lessonTitle>
				<topic>What is the JDBC API? </topic>
				<topic>JDBC Drivers</topic>
				<topic>Making a Connection </topic>
				<topic>Creating and Executing a Statement </topic>
				<topic>Retrieving Values from a ResultSet</topic>
				<topic>SQL and Java Datatypes</topic>
				<topic>Creating and Updating Tables </topic>
				<topic>Handling SQL Exceptions and Proper Cleanup</topic>
				<topic>Handling SQLWarning</topic>
				<lessonTime/>
			</lesson>	
<lesson number="17">
				<lessonTitle>Advanced JDBC</lessonTitle>
				<topic>SQL Escape Syntax</topic>
				<topic>Using Prepared Statements</topic>
				<topic>Using Callable Statements</topic>
				<topic>Scrollable Result Sets</topic>
				<topic>Updatable Result Sets </topic>
				<topic>Transactions</topic>
				<topic>Commits, Rollbacks, and Savepoints </topic>
				<topic>Batch Processing </topic>
				<lessonTime/>
			</lesson>
	 
<lesson number="18">
				<lessonTitle>Introduction to Row Sets</lessonTitle>
				<topic>Row Sets in GUI and J2EE programming</topic>
				<topic>Advantages of RowSets</topic>
				<topic>RowSet Specializations</topic>
				<topic>Using CachedRowSets</topic>
				<lessonTime/>
			</lesson>
			
			<nextClass url="../../html/advanced.html">Java Advanced Topics</nextClass>
		</courseContent>
		<courseware>
			<bookTitle/>
			<publisher>publisher</publisher>
			<bookNumber/>
			<notes/>
			<author/>
		</courseware>
	</class>
</courses>
