<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<!--
 
 Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved.
 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.

 This code is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License version 2 only, as
 published by the Free Software Foundation.  Oracle designates this
 particular file as subject to the "Classpath" exception as provided
 by Oracle in the LICENSE file that accompanied this code.

 This code is distributed in the hope that it will be useful, but WITHOUT
 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 version 2 for more details (a copy is included in the LICENSE file that
 accompanied this code).

 You should have received a copy of the GNU General Public License version
 2 along with this work; if not, write to the Free Software Foundation,
 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 or visit www.oracle.com if you need additional information or have any
 questions.


-->

</head>
<body bgcolor="white">

<P>Allows programmers to construct object implementations that are portable
between different ORB products.  

<P>The Portable Object Adaptor (POA) is designed to meet the following goals:
<P>
<UL>
<LI>Allow programmers to construct object implementations that are portable between different ORB products.
<LI>Provide support for objects with persistent identities.
<LI>Provide support for transparent activation of objects.
<LI>Allow a single servant to support multiple object identities simultaneously.
</UL>



<P>Given an interface <tt>My</tt> defined in <tt>My.idl</tt>, the file <tt>MyPOA.java</tt> is generated by the <tt>idlj</tt> compiler. You must provide the implementation for <tt>My</tt> and it must inherit from <tt>MyPOA</tt>.  

<P><TT>MyPOA.java</TT> is a stream-based skeleton that extends <tt>org.omg.PortableServer.Servant</tt> and implements the <tt>InvokeHandler</tt> interface and the operations interface associated with the IDL interface the skeleton implements.

<P>The <TT>PortableServer</TT> module for the Portable Object Adapter (POA) defines the native <tt>Servant</tt> type. In the Java programming language, the <tt>Servant</tt> type is mapped to the Java <TT>org.omg.PortableServer.Servant</TT> class.  It serves as the base class for all POA servant implementations and provides a number of methods that may 
be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior.
 


<P>All Mapping corresponds to the Chapter 11 of 
 CORBA V2.3.1 specified by OMG document formal/99-10-07.pdf.
 The exception to this is the <code>id</code> attribute, which is added in ptc/00-08-06, 
 section 11.3.8.26.

<H3>Package Specification</H3>
 
<P>For a precise list of supported sections of official specifications with which 
the Java[tm] Platform, Standard Edition 6, ORB complies, see <A 
HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA 
support in Java[tm] SE 6</A>.
<p>
@since 1.4
<br>
@serial exclude
</body>
</html>
