jdk/src/linux/doc/man/idlj.1
author katleman
Fri, 20 Jan 2012 13:08:48 -0800
changeset 11494 0720b6b09943
parent 9573 c02ff5a7c67b
child 21743 3d979da7bdf0
permissions -rw-r--r--
Added tag jdk8-b22 for changeset 054ae6fb4346
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
     1
." Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     2
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     3
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
     4
." This code is free software; you can redistribute it and/or modify it
90ce3da70b43 Initial load
duke
parents:
diff changeset
     5
." under the terms of the GNU General Public License version 2 only, as
90ce3da70b43 Initial load
duke
parents:
diff changeset
     6
." published by the Free Software Foundation.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     7
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
     8
." This code is distributed in the hope that it will be useful, but WITHOUT
90ce3da70b43 Initial load
duke
parents:
diff changeset
     9
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    10
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
90ce3da70b43 Initial load
duke
parents:
diff changeset
    11
." version 2 for more details (a copy is included in the LICENSE file that
90ce3da70b43 Initial load
duke
parents:
diff changeset
    12
." accompanied this code).
90ce3da70b43 Initial load
duke
parents:
diff changeset
    13
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
    14
." You should have received a copy of the GNU General Public License version
90ce3da70b43 Initial load
duke
parents:
diff changeset
    15
." 2 along with this work; if not, write to the Free Software Foundation,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    16
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    17
."
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2692
diff changeset
    18
." Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2692
diff changeset
    19
." or visit www.oracle.com if you need additional information or have any
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2692
diff changeset
    20
." questions.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    21
."
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    22
.TH idlj 1 "10 May 2011"
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    23
90ce3da70b43 Initial load
duke
parents:
diff changeset
    24
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    25
.SH "Name"
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    26
idlj \- The IDL\-to\-Java Compiler
90ce3da70b43 Initial load
duke
parents:
diff changeset
    27
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    28
\f3idlj\fP generates Java bindings from a given IDL file. 
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    29
.SH "Synopsis"
90ce3da70b43 Initial load
duke
parents:
diff changeset
    30
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    31
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
    32
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    33
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
    34
idlj [ \fP\f3options\fP\f3 ] \fP\f4idl\-file\fP\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    35
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
    36
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    37
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
    38
90ce3da70b43 Initial load
duke
parents:
diff changeset
    39
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    40
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    41
where \f2idl\-file\fP is the name of a file containing Interface Definition Language (IDL) definitions. \f2Options\fP may appear in any order, but must precede the \f2idl\-file\fP.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    42
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    43
.SH "Description"
90ce3da70b43 Initial load
duke
parents:
diff changeset
    44
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    45
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    46
The IDL\-to\-Java Compiler generates the Java bindings for a given IDL file.\  For binding details, see the 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    47
.na
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    48
\f2OMG IDL to Java Language Language Mapping Specification\fP @
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
    49
.fi
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    50
http://download.oracle.com/javase/7/docs/technotes/guides/idl/mapping/jidlMapping.html. Some previous releases of the IDL\-to\-Java compiler were named \f2idltojava\fP.
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    51
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    52
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    53
Emitting Client and Server Bindings
90ce3da70b43 Initial load
duke
parents:
diff changeset
    54
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    55
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    56
To generate Java bindings for an IDL file named My.idl:
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    57
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    58
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    59
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    60
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    61
idlj My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    62
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    63
\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    64
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    65
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    66
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    67
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    68
This generates the client\-side bindings and is equivalent to:
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    69
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    70
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    71
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    72
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    73
idlj \fP\f3\-fclient\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    74
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    75
.fi
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    76
90ce3da70b43 Initial load
duke
parents:
diff changeset
    77
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    78
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    79
The client\-side bindings do not include the server\-side skeleton. If you want to generate the server\-side bindings for the interfaces:
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    80
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    81
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    82
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    83
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    84
idlj \fP\f3\-fserver\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    85
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    86
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    87
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    88
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    89
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    90
Server\-side bindings include the client\-side bindings plus the skeleton, all of which are \f2POA\fP (that is, Inheritance Model) classes. If you want to generate both client and server\-side bindings, use one of the following (equivalent) commands:
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    91
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    92
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    93
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    94
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    95
idlj \fP\f3\-fclient \-fserver\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    96
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    97
idlj \f3\-fall\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    98
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
    99
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   100
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   101
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   102
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   103
There are two possible server\-side models: the Inheritance Model and the Tie Delegation Model.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   104
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   105
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   106
The default server\-side model is the \f2Portable Servant Inheritance Model\fP. Given an interface \f2My\fP defined in \f2My.idl\fP, the file \f2MyPOA.java\fP is generated. You must provide the implementation for \f2My\fP and it must inherit from \f2MyPOA\fP.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   107
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   108
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   109
\f2MyPOA.java\fP is a stream\-based skeleton that extends 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   110
.na
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   111
\f2org.omg.PortableServer.Servant\fP @
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   112
.fi
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   113
http://download.oracle.com/javase/7/docs/api/org/omg/PortableServer/Servant.html and implements the \f2InvokeHandler\fP interface and the operations interface associated with the IDL interface the skeleton implements.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   114
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   115
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   116
The \f2PortableServer\fP module for the 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   117
.na
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   118
\f2Portable Object Adapter (POA)\fP @
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   119
.fi
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   120
http://download.oracle.com/javase/7/docs/technotes/guides/idl/POA.html defines the native \f2Servant\fP type. In the Java programming language, the \f2Servant\fP type is mapped to the Java \f2org.omg.PortableServer.Servant\fP 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.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   121
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   122
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   123
Another option for the Inheritance Model is to use the \f2\-oldImplBase\fP flag in order to generate server\-side bindings that are compatible with versions of the Java programming language prior to J2SE 1.4. Note that using the \f2\-oldImplBase\fP flag is non\-standard: these APIs are being deprecated. You would use this flag ONLY for compatibility with existing servers written in J2SE 1.3. In that case, you would need to modify an existing MAKEFILE to add the \f2\-oldImplBase\fP flag to the \f2idlj\fP compiler, otherwise POA\-based server\-side mappings will be generated. To generate server\-side bindings that are backwards compatible:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   124
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   125
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   126
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   127
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   128
idlj \fP\f3\-fclient \-fserver\fP \f3\-oldImplBase\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   129
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   130
idlj \f3\-fall\fP \f3\-oldImplBase\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   131
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   132
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   133
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   134
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   135
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   136
Given an interface \f2My\fP defined in \f2My.idl\fP, the file \f2_MyImplBase.java\fP is generated. You must provide the implementation for \f2My\fP and it must inherit from \f2_MyImplBase\fP.
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   137
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   138
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   139
The other server\-side model is called the Tie Model. This is a delegation model. Because it is not possible to generate ties and skeletons at the same time, they must be generated separately. The following commands generate the bindings for the Tie Model:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   140
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   141
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   142
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   143
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   144
idlj \fP\f3\-fall\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   145
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   146
idlj \f3\-fallTIE\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   147
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   148
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   149
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   150
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   151
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   152
For the interface \f2My\fP, the second command generates \f2MyPOATie.java\fP. The constructor to \f2MyPOATie\fP takes a \f2delegate\fP. In this example, using the default POA model, the constructor also needs a \f2poa\fP. You must provide the implementation for \f2delegate\fP, but it does not have to inherit from any other class, only the interface \f2MyOperations\fP. But to use it with the ORB, you must wrap your implementation within \f2MyPOATie\fP. For instance:
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   153
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   154
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   155
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   156
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   157
    ORB orb = ORB.init(args, System.getProperties());
90ce3da70b43 Initial load
duke
parents:
diff changeset
   158
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   159
90ce3da70b43 Initial load
duke
parents:
diff changeset
   160
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   161
    // Get reference to rootpoa & activate the POAManager
90ce3da70b43 Initial load
duke
parents:
diff changeset
   162
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   163
    POA rootpoa = (POA)orb.resolve_initial_references("RootPOA");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   164
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   165
    rootpoa.the_POAManager().activate();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   166
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   167
90ce3da70b43 Initial load
duke
parents:
diff changeset
   168
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   169
    // create servant and register it with the ORB
90ce3da70b43 Initial load
duke
parents:
diff changeset
   170
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   171
    MyServant myDelegate = new MyServant();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   172
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   173
    myDelegate.setORB(orb); 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   174
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   175
90ce3da70b43 Initial load
duke
parents:
diff changeset
   176
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   177
    // create a tie, with servant being the delegate.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   178
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   179
    MyPOATie tie = new MyPOATie(myDelegate, rootpoa);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   180
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   181
90ce3da70b43 Initial load
duke
parents:
diff changeset
   182
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   183
    // obtain the objectRef for the tie
90ce3da70b43 Initial load
duke
parents:
diff changeset
   184
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   185
    My ref = tie._this(orb);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   186
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   187
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   188
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   189
90ce3da70b43 Initial load
duke
parents:
diff changeset
   190
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   191
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   192
You might want to use the Tie model instead of the typical Inheritance model if your implementation must inherit from some other implementation. Java allows any number of interface inheritance, but there is only one slot for class inheritance. If you use the inheritance model, that slot is used up . By using the Tie Model, that slot is freed up for your own use. The drawback is that it introduces a level of indirection: one extra method call occurs when invoking a method.
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   193
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   194
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   195
To generate server\-side, Tie model bindings that are compatible with versions of the IDL to Java language mapping in versions prior to J2SE 1.4.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   196
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   197
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   198
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   199
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   200
idlj \fP\f3\-oldImplBase\fP \f3\-fall\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   201
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   202
idlj \f3\-oldImplBase\fP \f3\-fallTIE\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   203
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   204
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   205
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   206
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   207
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   208
For the interface \f2My\fP, this will generate \f2My_Tie.java\fP. The constructor to \f2My_Tie\fP takes a \f2impl\fP. You must provide the implementation for \f2impl\fP, but it does not have to inherit from any other class, only the interface \f2HelloOperations\fP. But to use it with the ORB, you must wrap your implementation within \f2My_Tie\fP. For instance:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   209
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   210
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   211
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   212
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   213
    ORB orb = ORB.init(args, System.getProperties());
90ce3da70b43 Initial load
duke
parents:
diff changeset
   214
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   215
90ce3da70b43 Initial load
duke
parents:
diff changeset
   216
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   217
    // create servant and register it with the ORB
90ce3da70b43 Initial load
duke
parents:
diff changeset
   218
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   219
    MyServant myDelegate = new MyServant();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   220
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   221
    myDelegate.setORB(orb); 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   222
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   223
90ce3da70b43 Initial load
duke
parents:
diff changeset
   224
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   225
    // create a tie, with servant being the delegate.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   226
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   227
    MyPOATie tie = new MyPOATie(myDelegate);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   228
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   229
90ce3da70b43 Initial load
duke
parents:
diff changeset
   230
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   231
    // obtain the objectRef for the tie
90ce3da70b43 Initial load
duke
parents:
diff changeset
   232
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   233
    My ref = tie._this(orb);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   234
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   235
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   236
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   237
90ce3da70b43 Initial load
duke
parents:
diff changeset
   238
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   239
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   240
Specifying Alternate Locations for Emitted Files
90ce3da70b43 Initial load
duke
parents:
diff changeset
   241
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   242
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   243
If you want to direct the emitted files to a directory other than the current directory, invoke the compiler as:
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   244
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   245
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   246
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   247
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   248
idlj \fP\f3\-td /altdir\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   249
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   250
.fi
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   251
90ce3da70b43 Initial load
duke
parents:
diff changeset
   252
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   253
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   254
For the interface \f2My\fP, the bindings will be emitted to \f2/altdir/My.java\fP, etc., instead of \f2./My.java\fP.
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   255
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   256
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   257
Specifying Alternate Locations for Include Files
90ce3da70b43 Initial load
duke
parents:
diff changeset
   258
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   259
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   260
If \f2My.idl\fP included another idl file, \f2MyOther.idl\fP, the compiler assumes that \f2MyOther.idl\fP resides in the local directory. If it resides in \f2/includes\fP, for example, then you would invoke the compiler with the following command:
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   261
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   262
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   263
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   264
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   265
idlj \fP\f3\-i /includes\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   266
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   267
.fi
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   268
90ce3da70b43 Initial load
duke
parents:
diff changeset
   269
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   270
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   271
If \f2My.idl\fP also included \f2Another.idl\fP that resided in \f2/moreIncludes\fP, for example, then you would invoke the compiler with the following command:
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   272
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   273
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   274
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   275
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   276
idlj \fP\f3\-i /includes \-i /moreIncludes\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   277
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   278
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   279
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   280
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   281
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   282
Since this form of include can become irritatingly long, another means of indicating to the compiler where to search for included files is provided. This technique is similar to the idea of an environment variable. Create a file named \f2idl.config\fP in a directory that is listed in your CLASSPATH. Inside of \f2idl.config\fP, provide a line with the following form:
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   283
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   284
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   285
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   286
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   287
includes=/includes;/moreIncludes
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   288
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   289
\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   290
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   291
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   292
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   293
.LP
2692
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   294
The compiler will find this file and read in the includes list. Note that in this example the separator character between the two directories is a semicolon (;). This separator character is platform dependent. On the Windows platform, use a semicolon, on the Unix platform, use a colon, etc. For more information on \f2includes\fP, see the 
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   295
.na
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   296
\f2Setting the Classpath\fP @
345bc8d65b19 6837214: Update JDK7 man pages
tbell
parents: 2
diff changeset
   297
.fi
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   298
http://download.oracle.com/javase/7/docs/technotes/tools/index.html#general.
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   299
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   300
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   301
Emitting Bindings for Include Files
90ce3da70b43 Initial load
duke
parents:
diff changeset
   302
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   303
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   304
By default, only those interfaces, structs, etc, that are defined in the idl file on the command line have Java bindings generated for them. The types defined in included files are not generated. For example, assume the following two idl files:
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   305
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   306
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   307
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   308
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   309
\f4My.idl\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   310
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   311
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   312
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   313
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   314
#include <MyOther.idl>
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   315
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   316
interface My
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   317
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   318
{
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   319
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   320
};
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   321
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   322
\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   323
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   324
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   325
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   326
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   327
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   328
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   329
\f4MyOther.idl\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   330
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   331
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   332
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   333
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   334
interface MyOther
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   335
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   336
{
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   337
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   338
};
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   339
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   340
\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   341
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   342
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   343
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   344
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   345
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   346
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   347
The following command will only generate the java bindings for \f2My\fP:
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   348
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   349
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   350
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   351
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   352
idlj My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   353
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   354
\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   355
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   356
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   357
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   358
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   359
To generate all of the types in \f2My.idl\fP and all of the types in the files that \f2My.idl\fP includes (in this example, \f2MyOther.idl\fP), use the following command:
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   360
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   361
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   362
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   363
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   364
idlj \fP\f3\-emitAll\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   365
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   366
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   367
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   368
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   369
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   370
There is a caveat to the default rule. \f2#include\fP statements which appear at global scope are treated as described. These \f2#include\fP statements can be thought of as import statements. \f2#include\fP statements which appear within some enclosing scope are treated as true \f2#include\fP statements, meaning that the code within the included file is treated as if it appeared in the original file and, therefore, Java bindings are emitted for it. Here is an example:
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   371
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   372
90ce3da70b43 Initial load
duke
parents:
diff changeset
   373
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   374
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   375
\f4My.idl\fP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   376
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   377
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   378
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   379
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   380
#include <MyOther.idl>
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   381
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   382
interface My
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   383
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   384
{
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   385
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   386
  #include <Embedded.idl>
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   387
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   388
};
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   389
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   390
\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   391
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   392
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   393
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   394
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   395
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   396
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   397
\f4MyOther.idl\fP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   398
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   399
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   400
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   401
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   402
interface MyOther
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   403
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   404
{
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   405
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   406
};
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   407
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   408
\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   409
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   410
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   411
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   412
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   413
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   414
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   415
\f4Embedded.idl\fP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   416
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   417
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   418
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   419
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   420
enum E {one, two, three};
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   421
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   422
\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   423
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   424
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   425
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   426
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   427
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   428
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   429
Running the following command:
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   430
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   431
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   432
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   433
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   434
idlj My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   435
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   436
\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   437
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   438
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   439
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   440
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   441
will generate the following list of Java files:
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   442
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   443
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   444
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   445
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   446
./MyHolder.java
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   447
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   448
./MyHelper.java
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   449
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   450
./_MyStub.java
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   451
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   452
./MyPackage
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   453
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   454
./MyPackage/EHolder.java
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   455
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   456
./MyPackage/EHelper.java
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   457
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   458
./MyPackage/E.java
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   459
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   460
./My.java
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   461
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   462
\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   463
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   464
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   465
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   466
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   467
Notice that \f2MyOther.java\fP was not generated because it is defined in an import\-like \f2#include\fP. But \f2E.java\fP \f2was\fP generated because it was defined in a true \f2#include\fP. Also notice that since \f2Embedded.idl\fP was included within the scope of the interface \f2My\fP, it appears within the scope of \f2My\fP (that is,in \f2MyPackage\fP).
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   468
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   469
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   470
If the \f2\-emitAll\fP flag had been used in the previous example, then all types in all included files would be emitted.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   471
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   472
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   473
Inserting Package Prefixes
90ce3da70b43 Initial load
duke
parents:
diff changeset
   474
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   475
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   476
Suppose that you work for a company named ABC that has constructed the following IDL file:
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   477
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   478
90ce3da70b43 Initial load
duke
parents:
diff changeset
   479
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   480
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   481
\f4Widgets.idl\fP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   482
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   483
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   484
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   485
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   486
module Widgets
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   487
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   488
{
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   489
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   490
  interface W1 {...};
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   491
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   492
  interface W2 {...};
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   493
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   494
};
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   495
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   496
\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   497
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   498
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   499
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   500
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   501
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   502
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   503
Running this file through the IDL\-to\-Java compiler will place the Java bindings for \f2W1\fP and \f2W2\fP within the package \f2Widgets\fP. But there is an industry convention that states that a company's packages should reside within a package named \f2com.<company name>\fP. The \f2Widgets\fP package is not good enough. To follow convention, it should be \f2com.abc.Widgets\fP. To place this package prefix onto the \f2Widgets\fP module, execute the following:
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   504
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   505
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   506
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   507
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   508
idlj \fP\f3\-pkgPrefix Widgets com.abc\fP Widgets.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   509
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   510
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   511
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   512
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   513
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   514
If you have an IDL file which includes \f2Widgets.idl\fP, the \f2\-pkgPrefix\fP flag must appear in that command also. If it does not, then your IDL file will be looking for a \f2Widgets\fP package rather than a \f2com.abc.Widgets\fP package.
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   515
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   516
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   517
If you have a number of these packages that require prefixes, it might be easier to place them into the \f2idl.config\fP file described above. Each package prefix line should be of the form:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   518
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   519
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   520
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   521
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   522
PkgPrefix.<type>=<prefix>
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   523
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   524
\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   525
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   526
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   527
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   528
So the line for the above example would be: 
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   529
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   530
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   531
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   532
PkgPrefix.Widgets=com.abc
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   533
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   534
\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   535
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   536
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   537
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   538
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   539
The use of this option does not affect the Repository ID.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   540
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   541
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   542
Defining Symbols Before Compilation
90ce3da70b43 Initial load
duke
parents:
diff changeset
   543
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   544
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   545
You may need to define a symbol for compilation that is not defined within the IDL file, perhaps to include debugging code in the bindings. The command
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   546
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   547
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   548
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   549
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   550
idlj \fP\f3\-d\fP MYDEF My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   551
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   552
.fi
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   553
90ce3da70b43 Initial load
duke
parents:
diff changeset
   554
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   555
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   556
is the equivalent of putting the line \f2#define MYDEF\fP inside \f2My.idl\fP.
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   557
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   558
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   559
Preserving Pre\-Existing Bindings
90ce3da70b43 Initial load
duke
parents:
diff changeset
   560
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   561
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   562
If the Java binding files already exist, the \f2\-keep\fP flag will keep the compiler from overwriting them. The default is to generate all files without considering if they already exist. If you've customized those files (which you should not do unless you are very comfortable with their contents), then the \f2\-keep\fP option is very useful. The command
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   563
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   564
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   565
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   566
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   567
idlj \fP\f3\-keep\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   568
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   569
.fi
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   570
90ce3da70b43 Initial load
duke
parents:
diff changeset
   571
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   572
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   573
emits all client\-side bindings that do not already exist.
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   574
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   575
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   576
Viewing Progress of Compilation
90ce3da70b43 Initial load
duke
parents:
diff changeset
   577
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   578
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   579
The IDL\-to\-Java compiler will generate status messages as it progresses through its phases of execution. Use the \f2\-v\fP option to activate this "verbose" mode:
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   580
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   581
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   582
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   583
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   584
idlj \fP\f3\-v\fP My.idl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   585
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   586
.fi
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   587
90ce3da70b43 Initial load
duke
parents:
diff changeset
   588
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   589
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   590
By default the compiler does not operate in verbose mode.
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   591
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   592
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   593
Displaying Version Information
90ce3da70b43 Initial load
duke
parents:
diff changeset
   594
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   595
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   596
To display the build version of the IDL\-to\-Java compiler, specify the \f2\-version\fP option on the command\-line:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   597
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   598
.nf
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   599
\f3
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   600
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   601
idlj \-version
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   602
.fl
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   603
\fP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   604
.fi
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   605
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   606
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   607
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   608
Version information also appears within the bindings generated by the compiler. Any additional options appearing on the command\-line are ignored.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   609
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   610
.SH "Options"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   611
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   612
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   613
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   614
\-d symbol 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   615
This is equivalent to the following line in an IDL file: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   616
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   617
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   618
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   619
#define \fP\f4symbol\fP\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   620
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   621
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   622
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   623
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   624
\-emitAll 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   625
Emit all types, including those found in \f2#include\fP files. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   626
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   627
\-fside 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   628
Defines what bindings to emit. \f2side\fP is one of \f2client\fP, \f2server\fP, \f2serverTIE\fP, \f2all\fP, or \f2allTIE\fP. The \f2\-fserverTIE\fP and \f2\-fallTIE\fP options cause delegate model skeletons to be emitted. Assumes \f2\-fclient\fP if the flag is not specified. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   629
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   630
\-i include\-path 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   631
By default, the current directory is scanned for included files. This option adds another directory. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   632
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   633
\-keep 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   634
If a file to be generated already exists, do not overwrite it. By default it is overwritten. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   635
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   636
\-noWarn 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   637
Suppresses warning messages. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   638
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   639
\-oldImplBase 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   640
Generates skeletons compatible with pre\-1.4 JDK ORBs. By default, the POA Inheritance Model server\-side bindings are generated. This option provides backward\-compatibility with older versions of the Java programming language by generating server\-side bindings that are \f2ImplBase\fP Inheritance Model classes. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   641
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   642
\-pkgPrefix type prefix 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   643
Wherever \f2type\fP is encountered at file scope, prefix the generated Java package name with \f2prefix\fP for all files generated for that type. The \f2type\fP is the simple name of either a top\-level module, or an IDL type defined outside of any module. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   644
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   645
\-pkgTranslate type package 
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   646
Whenever the module name \f2type\fP is encountered in an identifier, replace it in the identifier with \f2package\fP for all files in the generated Java package. Note that \f2pkgPrefix\fP changes are made first. \f2type\fP is the simple name of either a top\-level module, or an IDL type defined outside of any module, and must match the full package name exactly.
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   647
.br
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   648
.br
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   649
If more than one translation matches an identifier, the longest match is chosen. For example, if the arguments include: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   650
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   651
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   652
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   653
  \-pkgTranslate foo bar \-pkgTranslate foo.baz buzz.fizz
90ce3da70b43 Initial load
duke
parents:
diff changeset
   654
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   655
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   656
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   657
The following translations would occur: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   658
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   659
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   660
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   661
foo          => bar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   662
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   663
foo.boo      => bar.boo
90ce3da70b43 Initial load
duke
parents:
diff changeset
   664
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   665
foo.baz      => buzz.fizz
90ce3da70b43 Initial load
duke
parents:
diff changeset
   666
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   667
foo.baz.bar  => buzz.fizz.bar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   668
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   669
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   670
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   671
The following package names cannot be translated: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   672
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   673
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   674
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   675
\f2org\fP 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   676
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   677
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   678
\f2org.omg\fP or any subpackages of \f2org.omg\fP 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   679
.RE
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   680
Any attempt to translate these packages will result in uncompilable code, and the use of these packages as the first argument after \f2\-pkgTranslate\fP will be treated as an error. 
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   681
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   682
\-skeletonName xxx%yyy 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   683
Use \f2xxx%yyy\fP as the pattern for naming the skeleton. The defaults are: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   684
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   685
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   686
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   687
%POA for the \f2POA\fP base class (\f2\-fserver\fP or \f2\-fall\fP) 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   688
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   689
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   690
_%ImplBase for the \f2oldImplBase\fP class (\f2\-oldImplBase\fP and (\f2\-fserver\fP or \f2\-fall\fP)) 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   691
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   692
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   693
\-td dir 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   694
Use \f2dir\fP for the output directory instead of the current directory. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   695
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   696
\-tieName xxx%yyy 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   697
Name the tie according to the pattern. The defaults are: 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   698
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   699
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   700
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   701
%POATie for the \f2POA\fP tie base class (\f2\-fserverTie\fP or \f2\-fallTie\fP) 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   702
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   703
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   704
%_Tie for the \f2oldImplBase\fP tie class (\f2\-oldImplBase\fP and (\f2\-fserverTie\fP or \f2\-fallTie\fP)) 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   705
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   706
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   707
\-nowarn, \-verbose 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   708
Verbose mode. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   709
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   710
\-version 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   711
Display version information and terminate. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   712
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   713
90ce3da70b43 Initial load
duke
parents:
diff changeset
   714
.LP
9573
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   715
.LP
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   716
See the Description section for more option information.
c02ff5a7c67b 7043684: Update man pages for JDK 7 tools
bpatel
parents: 5865
diff changeset
   717
.LP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   718
.SH "Restrictions:"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   719
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   720
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   721
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   722
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   723
Escaped identifiers in the global scope may not have the same spelling as IDL primitive types, \f2Object\fP, or \f2ValueBase\fP. This is because the symbol table is pre\-loaded with these identifiers; allowing them to be redefined would overwrite their original definitions. (Possible permanent restriction). 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   724
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   725
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   726
The \f2fixed\fP IDL type is not supported. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   727
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   728
90ce3da70b43 Initial load
duke
parents:
diff changeset
   729
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   730
.SH "Known Problems:"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   731
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   732
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   733
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   734
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   735
No import generated for global identifiers. If you invoke on an unexported local impl, you do get an exception, but it seems to be due to a \f2NullPointerException\fP in the \f2ServerDelegate\fP DSI code. 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   736
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   737
90ce3da70b43 Initial load
duke
parents:
diff changeset
   738
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   739