%!PS-Adobe-3.0 %%BoundingBox: (atend) %%Pages: (atend) %%PageOrder: (atend) %%DocumentFonts: (atend) %%Creator: Frame 5.0 %%DocumentData: Clean7Bit %%EndComments %%BeginProlog % % Frame ps_prolog 5.0, for use with Frame 5.0 products % This ps_prolog file is Copyright (c) 1986-1995 Frame Technology % Corporation. All rights reserved. This ps_prolog file may be % freely copied and distributed in conjunction with documents created % using FrameMaker, FrameMaker/SGML and FrameViewer as long as this % copyright notice is preserved. % % FrameMaker users specify the proper paper size for each print job in the % "Print" dialog's "Printer Paper Size" "Width" and "Height~ fields. If the % printer that the PS file is sent to does not support the requested paper % size, or if there is no paper tray of the proper size currently installed, % then the job will not be printed. The following flag, if set to true, will % cause the job to print on the default paper in such cases. /FMAllowPaperSizeMismatch false def % % Frame products normally print colors as their true color on a color printer % or as shades of gray, based on luminance, on a black-and white printer. The % following flag, if set to true, forces all non-white colors to print as pure % black. This has no effect on bitmap images. /FMPrintAllColorsAsBlack false def % % Frame products can either set their own line screens or use a printer's % default settings. Three flags below control this separately for no % separations, spot separations and process separations. If a flag % is true, then the default printer settings will not be changed. If it is % false, Frame products will use their own settings from a table based on % the printer's resolution. /FMUseDefaultNoSeparationScreen true def /FMUseDefaultSpotSeparationScreen true def /FMUseDefaultProcessSeparationScreen false def % % For any given PostScript printer resolution, Frame products have two sets of % screen angles and frequencies for printing process separations, which are % recomended by Adobe. The following variable chooses the higher frequencies % when set to true or the lower frequencies when set to false. This is only % effective if the appropriate FMUseDefault...SeparationScreen flag is false. /FMUseHighFrequencyScreens true def % % The following is a set of predefined optimal frequencies and angles for various % common dpi settings. This is taken from "Advances in Color Separation Using % PostScript Software Technology," from Adobe Systems (3/13/89 P.N. LPS 0043) % and corrolated with information which is in various PPD (4.0) files. % % The "dpiranges" figure is the minimum dots per inch device resolution which % can support this setting. The "low" and "high" values are controlled by the % setting of the FMUseHighFrequencyScreens flag above. The "TDot" flags control % the use of the "Yellow Triple Dot" feature whereby the frequency id divided by % three, but the dot function is "trippled" giving a block of 3x3 dots per cell. % % PatFreq is a compromise pattern frequency for ps Level 2 printers which is close % to the ideal WYSIWYG pattern frequency of 9 repetitions/inch but does not beat % (too badly) against the screen frequencies of any separations for that DPI. /dpiranges [ 2540 2400 1693 1270 1200 635 600 0 ] def /CMLowFreqs [ 100.402 94.8683 89.2289 100.402 94.8683 66.9349 63.2456 47.4342 ] def /YLowFreqs [ 95.25 90.0 84.65 95.25 90.0 70.5556 66.6667 50.0 ] def /KLowFreqs [ 89.8026 84.8528 79.8088 89.8026 84.8528 74.8355 70.7107 53.033 ] def /CLowAngles [ 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 ] def /MLowAngles [ 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 ] def /YLowTDot [ true true false true true false false false ] def /CMHighFreqs [ 133.87 126.491 133.843 108.503 102.523 100.402 94.8683 63.2456 ] def /YHighFreqs [ 127.0 120.0 126.975 115.455 109.091 95.25 90.0 60.0 ] def /KHighFreqs [ 119.737 113.137 119.713 128.289 121.218 89.8026 84.8528 63.6395 ] def /CHighAngles [ 71.5651 71.5651 71.5651 70.0169 70.0169 71.5651 71.5651 71.5651 ] def /MHighAngles [ 18.4349 18.4349 18.4349 19.9831 19.9831 18.4349 18.4349 18.4349 ] def /YHighTDot [ false false true false false true true false ] def /PatFreq [ 10.5833 10.0 9.4055 10.5833 10.0 10.5833 10.0 9.375 ] def % % PostScript Level 2 printers contain an "Accurate Screens" feature which can % improve process separation rendering at the expense of compute time. This % flag is ignored by PostScript Level 1 printers. /FMUseAcccurateScreens true def % % The following PostScript procedure defines the spot function that Frame % products will use for process separations. You may un-comment-out one of % the alternative functions below, or use your own. % % Dot function /FMSpotFunction {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1 sub } {dup mul exch dup mul add 1 exch sub }ifelse } def % % Line function % /FMSpotFunction { pop } def % % Elipse function % /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add % sqrt 1 exch sub } def % % /FMversion (5.0) def /fMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def /FMPColor fMLevel1 { false /colorimage where {pop pop true} if } { true } ifelse def /FrameDict 400 dict def systemdict /errordict known not {/errordict 10 dict def errordict /rangecheck {stop} put} if % The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } bind def } if /FMshowpage /showpage load def /FMquit /quit load def /FMFAILURE { dup = flush FMshowpage /Helvetica findfont 12 scalefont setfont 72 200 moveto show 72 220 moveto show FMshowpage FMquit } def /FMVERSION { FMversion ne { (Frame product version does not match ps_prolog! Check installation;) (also check ~/fminit and ./fminit for old versions) FMFAILURE } if } def /FMBADEPSF { (Adobe's PostScript Language Reference Manual, 2nd Edition, section H.2.4) (says your EPS file is not valid, as it calls X ) dup dup (X) search pop exch pop exch pop length 5 -1 roll putinterval FMFAILURE } def /fmConcatProcs { /proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx }def FrameDict begin [ /ALDsave /FMdicttop /FMoptop /FMpointsize /FMsaveobject /b /bitmapsave /blut /bpside /bs /bstring /bwidth /c /cf /cs /cynu /depth /edown /fh /fillvals /fw /fx /fy /g /gfile /gindex /grnt /gryt /gstring /height /hh /i /im /indx /is /k /kk /landscape /lb /len /llx /lly /m /magu /manualfeed /n /offbits /onbits /organgle /orgbangle /orgbfreq /orgbproc /orgbxfer /orgfreq /orggangle /orggfreq /orggproc /orggxfer /orgmatrix /orgproc /orgrangle /orgrfreq /orgrproc /orgrxfer /orgxfer /pagesave /paperheight /papersizedict /paperwidth /pos /pwid /r /rad /redt /sl /str /tran /u /urx /ury /val /width /width /ws /ww /x /x1 /x2 /xindex /xpoint /xscale /xx /y /y1 /y2 /yelu /yindex /ypoint /yscale /yy ] { 0 def } forall /FmBD {bind def} bind def systemdict /pdfmark known { /fMAcrobat true def /FmPD /pdfmark load def /FmPT /show load def currentdistillerparams /CoreDistVersion get 2000 ge { /FmPD2 /pdfmark load def /FmPA { mark exch /Dest exch 5 3 roll /View [ /XYZ null 6 -2 roll FmDC exch pop null] /DEST FmPD }FmBD } { /FmPD2 /cleartomark load def /FmPA {pop pop pop}FmBD } ifelse } { /fMAcrobat false def /FmPD /cleartomark load def /FmPD2 /cleartomark load def /FmPT /pop load def /FmPA {pop pop pop}FmBD } ifelse /FmDC { transform fMDefaultMatrix itransform cvi exch cvi exch }FmBD /FmBx { dup 3 index lt {3 1 roll exch} if 1 index 4 index lt {4 -1 roll 3 1 roll exch 4 1 roll} if }FmBD /FMnone 0 def /FMcyan 1 def /FMmagenta 2 def /FMyellow 3 def /FMblack 4 def /FMcustom 5 def /fMNegative false def /FrameSepIs FMnone def /FrameSepBlack 0 def /FrameSepYellow 0 def /FrameSepMagenta 0 def /FrameSepCyan 0 def /FrameSepRed 1 def /FrameSepGreen 1 def /FrameSepBlue 1 def /FrameCurGray 1 def /FrameCurPat null def /FrameCurColors [ 0 0 0 1 0 0 0 ] def /FrameColorEpsilon .001 def /eqepsilon { sub dup 0 lt {neg} if FrameColorEpsilon le } bind def /FrameCmpColorsCMYK { 2 copy 0 get exch 0 get eqepsilon { 2 copy 1 get exch 1 get eqepsilon { 2 copy 2 get exch 2 get eqepsilon { 3 get exch 3 get eqepsilon } {pop pop false} ifelse }{pop pop false} ifelse } {pop pop false} ifelse } bind def /FrameCmpColorsRGB { 2 copy 4 get exch 0 get eqepsilon { 2 copy 5 get exch 1 get eqepsilon { 6 get exch 2 get eqepsilon }{pop pop false} ifelse } {pop pop false} ifelse } bind def /RGBtoCMYK { 1 exch sub 3 1 roll 1 exch sub 3 1 roll 1 exch sub 3 1 roll 3 copy 2 copy le { pop } { exch pop } ifelse 2 copy le { pop } { exch pop } ifelse dup dup dup 6 1 roll 4 1 roll 7 1 roll sub 6 1 roll sub 5 1 roll sub 4 1 roll } bind def /CMYKtoRGB { dup dup 4 -1 roll add 5 1 roll 3 -1 roll add 4 1 roll add 1 exch sub dup 0 lt {pop 0} if 3 1 roll 1 exch sub dup 0 lt {pop 0} if exch 1 exch sub dup 0 lt {pop 0} if exch } bind def /FrameSepInit { 1.0 RealSetgray } bind def /FrameSetSepColor { /FrameSepBlue exch def /FrameSepGreen exch def /FrameSepRed exch def /FrameSepBlack exch def /FrameSepYellow exch def /FrameSepMagenta exch def /FrameSepCyan exch def /FrameSepIs FMcustom def setCurrentScreen } bind def /FrameSetCyan { /FrameSepBlue 1.0 def /FrameSepGreen 1.0 def /FrameSepRed 0.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 1.0 def /FrameSepIs FMcyan def setCurrentScreen } bind def /FrameSetMagenta { /FrameSepBlue 1.0 def /FrameSepGreen 0.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 1.0 def /FrameSepCyan 0.0 def /FrameSepIs FMmagenta def setCurrentScreen } bind def /FrameSetYellow { /FrameSepBlue 0.0 def /FrameSepGreen 1.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 1.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMyellow def setCurrentScreen } bind def /FrameSetBlack { /FrameSepBlue 0.0 def /FrameSepGreen 0.0 def /FrameSepRed 0.0 def /FrameSepBlack 1.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMblack def setCurrentScreen } bind def /FrameNoSep { /FrameSepIs FMnone def setCurrentScreen } bind def /FrameSetSepColors { FrameDict begin [ exch 1 add 1 roll ] /FrameSepColors exch def end } bind def /FrameColorInSepListCMYK { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsCMYK { pop true exit } if } forall dup true ne {pop false} if } bind def /FrameColorInSepListRGB { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsRGB { pop true exit } if } forall dup true ne {pop false} if } bind def /RealSetgray /setgray load def /RealSetrgbcolor /setrgbcolor load def /RealSethsbcolor /sethsbcolor load def end /setgray { FrameDict begin FrameSepIs FMnone eq { RealSetgray } { FrameSepIs FMblack eq { RealSetgray } { FrameSepIs FMcustom eq FrameSepRed 0 eq and FrameSepGreen 0 eq and FrameSepBlue 0 eq and { RealSetgray } { 1 RealSetgray pop } ifelse } ifelse } ifelse end } bind def /setrgbcolor { FrameDict begin FrameSepIs FMnone eq { RealSetrgbcolor } { 3 copy [ 4 1 roll ] FrameColorInSepListRGB { FrameSepBlue eq exch FrameSepGreen eq and exch FrameSepRed eq and { 0 } { 1 } ifelse } { FMPColor { RealSetrgbcolor currentcmykcolor } { RGBtoCMYK } ifelse FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind def /sethsbcolor { FrameDict begin FrameSepIs FMnone eq { RealSethsbcolor } { RealSethsbcolor currentrgbcolor setrgbcolor } ifelse end } bind def FrameDict begin /setcmykcolor where { pop /RealSetcmykcolor /setcmykcolor load def } { /RealSetcmykcolor { 4 1 roll 3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat RealSetrgbcolor pop } bind def } ifelse userdict /setcmykcolor { FrameDict begin FrameSepIs FMnone eq { RealSetcmykcolor } { 4 copy [ 5 1 roll ] FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and { 0 } { 1 } ifelse } { FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind put fMLevel1 { /patScreenDict 7 dict dup begin <0f1e3c78f0e1c387> [ 45 { pop } {exch pop} .5 2 sqrt] FmBD <0f87c3e1f0783c1e> [ 135 { pop } {exch pop} .5 2 sqrt] FmBD [ 0 { pop } dup .5 2 ] FmBD [ 90 { pop } dup .5 2 ] FmBD <8142241818244281> [ 45 { 2 copy lt {exch} if pop} dup .75 2 sqrt] FmBD <03060c183060c081> [ 45 { pop } {exch pop} .875 2 sqrt] FmBD <8040201008040201> [ 135 { pop } {exch pop} .875 2 sqrt] FmBD end def } { /patProcDict 5 dict dup begin <0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def <8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -1 -1 moveto 9 9 lineto stroke } bind def <03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def end def /patDict 15 dict dup begin /PatternType 1 def /PaintType 2 def /TilingType 3 def /BBox [ 0 0 8 8 ] def /XStep 8 def /YStep 8 def /PaintProc { begin patProcDict bstring known { patProcDict bstring get exec } { 8 8 true [1 0 0 -1 0 8] bstring imagemask } ifelse end } bind def end def } ifelse /combineColor { FrameSepIs FMnone eq { graymode fMLevel1 or not { [/Pattern [/DeviceCMYK]] setcolorspace FrameCurColors 0 4 getinterval aload pop FrameCurPat setcolor } { FrameCurColors 3 get 1.0 ge { FrameCurGray RealSetgray } { fMAcrobat not FMPColor graymode and and { 0 1 3 { FrameCurColors exch get 1 FrameCurGray sub mul } for RealSetcmykcolor } { 4 1 6 { FrameCurColors exch get graymode { 1 exch sub 1 FrameCurGray sub mul 1 exch sub } { 1.0 lt {FrameCurGray} {1} ifelse } ifelse } for RealSetrgbcolor } ifelse } ifelse } ifelse } { FrameCurColors 0 4 getinterval aload FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and FrameSepIs FMcustom eq and { FrameCurGray } { 1 } ifelse } { FrameSepIs FMblack eq {FrameCurGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop FrameCurGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse graymode fMLevel1 or not { [/Pattern [/DeviceGray]] setcolorspace FrameCurPat setcolor } { graymode not fMLevel1 and { dup 1 lt {pop FrameCurGray} if } if RealSetgray } ifelse } ifelse } bind def /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /fMDefaultMatrix matrix defaultmatrix def /fMatrix2 matrix def /dpi 72 0 fMDefaultMatrix dtransform dup mul exch dup mul add sqrt def /freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def /sangle 1 0 fMDefaultMatrix dtransform exch atan def sangle fMatrix2 rotate fMDefaultMatrix fMatrix2 concatmatrix dup 0 get /sflipx exch def 3 get /sflipy exch def /screenIndex { 0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for } bind def /getCyanScreen { FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getMagentaScreen { FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getYellowScreen { FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse screenIndex dup 3 1 roll get 3 1 roll get { 3 div {2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat FMSpotFunction } } {/FMSpotFunction load } ifelse 0.0 exch } bind def /getBlackScreen { FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse screenIndex get 45.0 /FMSpotFunction load } bind def /getSpotScreen { getBlackScreen } bind def /getCompositeScreen { getBlackScreen } bind def /FMSetScreen fMLevel1 { /setscreen load }{ { 8 dict begin /HalftoneType 1 def /SpotFunction exch def /Angle exch def /Frequency exch def /AccurateScreens FMUseAcccurateScreens def currentdict end sethalftone } bind } ifelse def /setDefaultScreen { FMPColor { orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer } { orgxfer cvx settransfer } ifelse orgfreq organgle orgproc cvx setscreen } bind def /setCurrentScreen { FrameSepIs FMnone eq { FMUseDefaultNoSeparationScreen { setDefaultScreen } { getCompositeScreen FMSetScreen } ifelse } { FrameSepIs FMcustom eq { FMUseDefaultSpotSeparationScreen { setDefaultScreen } { getSpotScreen FMSetScreen } ifelse } { FMUseDefaultProcessSeparationScreen { setDefaultScreen } { FrameSepIs FMcyan eq { getCyanScreen FMSetScreen } { FrameSepIs FMmagenta eq { getMagentaScreen FMSetScreen } { FrameSepIs FMyellow eq { getYellowScreen FMSetScreen } { getBlackScreen FMSetScreen } ifelse } ifelse } ifelse } ifelse } ifelse } ifelse } bind def end /FMDOCUMENT { array /FMfonts exch def /#copies exch def FrameDict begin 0 ne /manualfeed exch def /paperheight exch def /paperwidth exch def 0 ne /fMNegative exch def 0 ne /edown exch def /yscale exch def /xscale exch def fMLevel1 { manualfeed {setmanualfeed} if /FMdicttop countdictstack 1 add def /FMoptop count def setpapername manualfeed {true} {papersize} ifelse {manualpapersize} {false} ifelse {desperatepapersize} {false} ifelse {papersizefailure} if count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for } {2 dict dup /PageSize [paperwidth paperheight] put manualfeed {dup /ManualFeed manualfeed put} if {setpagedevice} stopped {papersizefailure} if } ifelse FMPColor { currentcolorscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def cvlit /orgbproc exch def /orgbangle exch def /orgbfreq exch def cvlit /orggproc exch def /orggangle exch def /orggfreq exch def cvlit /orgrproc exch def /orgrangle exch def /orgrfreq exch def currentcolortransfer fMNegative { 1 1 4 { pop { 1 exch sub } fmConcatProcs 4 1 roll } for 4 copy setcolortransfer } if cvlit /orgxfer exch def cvlit /orgbxfer exch def cvlit /orggxfer exch def cvlit /orgrxfer exch def } { currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def currenttransfer fMNegative { { 1 exch sub } fmConcatProcs dup settransfer } if cvlit /orgxfer exch def } ifelse end } def /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit /landscape exch 0 ne def landscape { 90 rotate 0 exch dup /pwid exch def neg translate pop }{ pop /pwid exch def } ifelse edown { [-1 0 0 1 pwid 0] concat } if 0 0 moveto paperwidth 0 lineto paperwidth paperheight lineto 0 paperheight lineto 0 0 lineto 1 setgray fill xscale yscale scale /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /FMFONTDEFINE { FrameDict begin findfont ReEncode 1 index exch definefont FMfonts 3 1 roll put end } def /FMFILLS { FrameDict begin dup array /fillvals exch def dict /patCache exch def end } def /FMFILL { FrameDict begin fillvals 3 1 roll put end } def /FMNORMALIZEGRAPHICS { newpath 1 setlinewidth 0 setlinecap 0 0 0 sethsbcolor 0 setgray } bind def /FMBEGINEPSF { end /FMEPSF save def /showpage {} def % See Adobe's "PostScript Language Reference Manual, 2nd Edition", page 714. % "...the following operators MUST NOT be used in an EPS file:" (emphasis ours) /banddevice {(banddevice) FMBADEPSF} def /clear {(clear) FMBADEPSF} def /cleardictstack {(cleardictstack) FMBADEPSF} def /copypage {(copypage) FMBADEPSF} def /erasepage {(erasepage) FMBADEPSF} def /exitserver {(exitserver) FMBADEPSF} def /framedevice {(framedevice) FMBADEPSF} def /grestoreall {(grestoreall) FMBADEPSF} def /initclip {(initclip) FMBADEPSF} def /initgraphics {(initgraphics) FMBADEPSF} def /quit {(quit) FMBADEPSF} def /renderbands {(renderbands) FMBADEPSF} def /setglobal {(setglobal) FMBADEPSF} def /setpagedevice {(setpagedevice) FMBADEPSF} def /setshared {(setshared) FMBADEPSF} def /startjob {(startjob) FMBADEPSF} def /lettertray {(lettertray) FMBADEPSF} def /letter {(letter) FMBADEPSF} def /lettersmall {(lettersmall) FMBADEPSF} def /11x17tray {(11x17tray) FMBADEPSF} def /11x17 {(11x17) FMBADEPSF} def /ledgertray {(ledgertray) FMBADEPSF} def /ledger {(ledger) FMBADEPSF} def /legaltray {(legaltray) FMBADEPSF} def /legal {(legal) FMBADEPSF} def /statementtray {(statementtray) FMBADEPSF} def /statement {(statement) FMBADEPSF} def /executivetray {(executivetray) FMBADEPSF} def /executive {(executive) FMBADEPSF} def /a3tray {(a3tray) FMBADEPSF} def /a3 {(a3) FMBADEPSF} def /a4tray {(a4tray) FMBADEPSF} def /a4 {(a4) FMBADEPSF} def /a4small {(a4small) FMBADEPSF} def /b4tray {(b4tray) FMBADEPSF} def /b4 {(b4) FMBADEPSF} def /b5tray {(b5tray) FMBADEPSF} def /b5 {(b5) FMBADEPSF} def FMNORMALIZEGRAPHICS [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall fx fw 2 div add fy fh 2 div add translate rotate fw 2 div neg fh 2 div neg translate fw urx llx sub div fh ury lly sub div scale llx neg lly neg translate /FMdicttop countdictstack 1 add def /FMoptop count def } bind def /FMENDEPSF { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMEPSF restore FrameDict begin } bind def FrameDict begin /setmanualfeed { %%BeginFeature *ManualFeed True statusdict /manualfeed true put %%EndFeature } bind def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /inch {72 mul} def /pagedimen { paperheight sub abs 16 lt exch paperwidth sub abs 16 lt and {/papername exch def} {pop} ifelse } bind def /setpapername { /papersizedict 14 dict def papersizedict begin /papername /unknown def /Letter 8.5 inch 11.0 inch pagedimen /LetterSmall 7.68 inch 10.16 inch pagedimen /Tabloid 11.0 inch 17.0 inch pagedimen /Ledger 17.0 inch 11.0 inch pagedimen /Legal 8.5 inch 14.0 inch pagedimen /Statement 5.5 inch 8.5 inch pagedimen /Executive 7.5 inch 10.0 inch pagedimen /A3 11.69 inch 16.5 inch pagedimen /A4 8.26 inch 11.69 inch pagedimen /A4Small 7.47 inch 10.85 inch pagedimen /B4 10.125 inch 14.33 inch pagedimen /B5 7.16 inch 10.125 inch pagedimen end } bind def /papersize { papersizedict begin /Letter {lettertray letter} def /LetterSmall {lettertray lettersmall} def /Tabloid {11x17tray 11x17} def /Ledger {ledgertray ledger} def /Legal {legaltray legal} def /Statement {statementtray statement} def /Executive {executivetray executive} def /A3 {a3tray a3} def /A4 {a4tray a4} def /A4Small {a4tray a4small} def /B4 {b4tray b4} def /B5 {b5tray b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end statusdict begin stopped end } bind def /manualpapersize { papersizedict begin /Letter {letter} def /LetterSmall {lettersmall} def /Tabloid {11x17} def /Ledger {ledger} def /Legal {legal} def /Statement {statement} def /Executive {executive} def /A3 {a3} def /A4 {a4} def /A4Small {a4small} def /B4 {b4} def /B5 {b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end stopped } bind def /desperatepapersize { statusdict /setpageparams known { paperwidth paperheight 0 1 statusdict begin {setpageparams} stopped end } {true} ifelse } bind def /papersizefailure { FMAllowPaperSizeMismatch not { (The requested paper size is not available in any currently-installed tray) (Edit the PS file to "FMAllowPaperSizeMismatch true" to use default tray) FMFAILURE } if } def /DiacriticEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /ReEncode { dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall 0 eq {/Encoding DiacriticEncoding def} if currentdict end } bind def FMPColor { /BEGINBITMAPCOLOR { BITMAPCOLOR} def /BEGINBITMAPCOLORc { BITMAPCOLORc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUECOLOR } def /BEGINBITMAPTRUECOLORc { BITMAPTRUECOLORc } def /BEGINBITMAPCMYK { BITMAPCMYK } def /BEGINBITMAPCMYKc { BITMAPCMYKc } def } { /BEGINBITMAPCOLOR { BITMAPGRAY} def /BEGINBITMAPCOLORc { BITMAPGRAYc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUEGRAY } def /BEGINBITMAPTRUECOLORc { BITMAPTRUEGRAYc } def /BEGINBITMAPCMYK { BITMAPCMYKGRAY } def /BEGINBITMAPCMYKc { BITMAPCMYKGRAYc } def } ifelse /K { FMPrintAllColorsAsBlack { dup 1 eq 2 index 1 eq and 3 index 1 eq and not {7 {pop} repeat 0 0 0 1 0 0 0} if } if FrameCurColors astore pop combineColor } bind def /graymode true def fMLevel1 { /fmGetFlip { fMatrix2 exch get mul 0 lt { -1 } { 1 } ifelse } FmBD } if /setPatternMode { fMLevel1 { 2 index patScreenDict exch known { pop pop patScreenDict exch get aload pop freq mul 5 2 roll fMatrix2 currentmatrix 1 get 0 ne { 3 -1 roll 90 add 3 1 roll sflipx 1 fmGetFlip sflipy 2 fmGetFlip neg mul } { sflipx 0 fmGetFlip sflipy 3 fmGetFlip mul } ifelse 0 lt {exch pop} {pop} ifelse fMNegative { {neg} fmConcatProcs } if bind systemdict /setscreen get exec /FrameCurGray exch def } { /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq sangle landscape {90 add} if {/ypoint exch def /xpoint exch def /xindex xpoint 1 add 2 div bpside mul cvi def /yindex ypoint 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne fMNegative {not} if {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen offbits offbits onbits add div fMNegative {1.0 exch sub} if /FrameCurGray exch def } ifelse } { pop pop dup patCache exch known { patCache exch get } { dup patDict /bstring 3 -1 roll put patDict 9 PatFreq screenIndex get div dup matrix scale makepattern dup patCache 4 -1 roll 3 -1 roll put } ifelse /FrameCurGray 0 def /FrameCurPat exch def } ifelse /graymode false def combineColor } bind def /setGrayScaleMode { graymode not { /graymode true def fMLevel1 { setCurrentScreen } if } if /FrameCurGray exch def combineColor } bind def /normalize { transform round exch round exch itransform } bind def /dnormalize { dtransform round exch round exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /H { lnormalize setlinewidth } bind def /Z { setlinecap } bind def /PFill { graymode fMLevel1 or not { gsave 1 setgray eofill grestore } if } bind def /PStroke { graymode fMLevel1 or not { gsave 1 setgray stroke grestore } if stroke } bind def /X { fillvals exch get dup type /stringtype eq {8 1 setPatternMode} {setGrayScaleMode} ifelse } bind def /V { PFill gsave eofill grestore } bind def /Vclip { clip } bind def /Vstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /N { PStroke } bind def /Nclip { strokepath clip newpath } bind def /Nstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /M {newpath moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /rarc {rad arcto } bind def /RR { /rad exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def mark newpath { x1 y1 rad add moveto x1 y2 x2 y2 rarc x2 y2 x2 y1 rarc x2 y1 x1 y1 rarc x1 y1 x1 y2 rarc closepath } stopped {x1 y1 x2 y2 R} if cleartomark } bind def /RRR { /rad exch def normalize /y4 exch def /x4 exch def normalize /y3 exch def /x3 exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def newpath normalize moveto mark { x2 y2 x3 y3 rarc x3 y3 x4 y4 rarc x4 y4 x1 y1 rarc x1 y1 x2 y2 rarc closepath } stopped {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if cleartomark } bind def /C { grestore gsave R clip setCurrentScreen } bind def /CP { grestore gsave Y clip setCurrentScreen } bind def /F { FMfonts exch get FMpointsize scalefont setfont } bind def /Q { /FMpointsize exch def F } bind def /T { moveto show } bind def /RF { rotate 0 ne {-1 1 scale} if } bind def /TF { gsave moveto RF show grestore } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /PF { gsave moveto RF 0 32 3 2 roll widthshow grestore } bind def /S { moveto 0 exch ashow } bind def /SF { gsave moveto RF 0 exch ashow grestore } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /BF { gsave moveto RF 0 32 4 2 roll 0 exch awidthshow grestore } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /Gstrk { savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /Gclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GG { gsave newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /GGclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GGstrk { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /A { gsave savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /Aclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /Astrk { Gstrk } bind def /AA { gsave savematrix newpath 3 index 2 div add exch 4 index 2 div sub exch normalize 3 index 2 div sub exch 4 index 2 div add exch translate rotate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /AAclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /AAstrk { GGstrk } bind def /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 7 sub def /FMsaveobject save def userdict begin /showpage {} def FMNORMALIZEGRAPHICS 3 index neg 3 index neg translate } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /rip { bis ris copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop ris gis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop gis bis copy pop dup add is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /rip4 { kis cis copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop cis mis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop mis yis copy pop dup dup add is exch cf cs readline pop { ic exch get exec add } forall pop pop yis kis copy pop 3 mul is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /wbytes { dup dup 8 gt { pop 8 idiv mul } { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse } bind def /BEGINBITMAPBWc { 1 {} COMMONBITMAPc } bind def /BEGINBITMAPGRAYc { 8 {} COMMONBITMAPc } bind def /BEGINBITMAP2BITc { 2 {} COMMONBITMAPc } bind def /COMMONBITMAPc { /cvtProc exch def /depth exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def cvtProc /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height depth [width 0 0 height neg 0 height] {ip} image bitmapsave restore grestore } bind def /BEGINBITMAPBW { 1 {} COMMONBITMAP } bind def /BEGINBITMAPGRAY { 8 {} COMMONBITMAP } bind def /BEGINBITMAP2BIT { 2 {} COMMONBITMAP } bind def /COMMONBITMAP { /cvtProc exch def /depth exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def cvtProc /is width depth wbytes string def /cf currentfile def width height depth [width 0 0 height neg 0 height] {cf is readhexstring pop} image bitmapsave restore grestore } bind def /ngrayt 256 array def /nredt 256 array def /nbluet 256 array def /ngreent 256 array def fMLevel1 { /colorsetup { currentcolortransfer /gryt exch def /blut exch def /grnt exch def /redt exch def 0 1 255 { /indx exch def /cynu 1 red indx get 255 div sub def /magu 1 green indx get 255 div sub def /yelu 1 blue indx get 255 div sub def /kk cynu magu min yelu min def /u kk currentundercolorremoval exec def % /u 0 def nredt indx 1 0 cynu u sub max sub redt exec put ngreent indx 1 0 magu u sub max sub grnt exec put nbluet indx 1 0 yelu u sub max sub blut exec put ngrayt indx 1 kk currentblackgeneration exec sub gryt exec put } for {255 mul cvi nredt exch get} {255 mul cvi ngreent exch get} {255 mul cvi nbluet exch get} {255 mul cvi ngrayt exch get} setcolortransfer {pop 0} setundercolorremoval {} setblackgeneration } bind def } { /colorSetup2 { [ /Indexed /DeviceRGB 255 {dup red exch get 255 div exch dup green exch get 255 div exch blue exch get 255 div} ] setcolorspace } bind def } ifelse /fakecolorsetup { /tran 256 string def 0 1 255 {/indx exch def tran indx red indx get 77 mul green indx get 151 mul blue indx get 28 mul add add 256 idiv put} for currenttransfer {255 mul cvi tran exch get 255.0 div} exch fmConcatProcs settransfer } bind def /BITMAPCOLOR { /depth 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def fMLevel1 { colorsetup /is width depth wbytes string def /cf currentfile def width height depth [width 0 0 height neg 0 height] {cf is readhexstring pop} {is} {is} true 3 colorimage } { colorSetup2 /is width depth wbytes string def /cf currentfile def 7 dict dup begin /ImageType 1 def /Width width def /Height height def /ImageMatrix [width 0 0 height neg 0 height] def /DataSource {cf is readhexstring pop} bind def /BitsPerComponent depth def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPCOLORc { /depth 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def fMLevel1 { colorsetup /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height depth [width 0 0 height neg 0 height] {ip} {is} {is} true 3 colorimage } { colorSetup2 /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def 7 dict dup begin /ImageType 1 def /Width width def /Height height def /ImageMatrix [width 0 0 height neg 0 height] def /DataSource {ip} bind def /BitsPerComponent depth def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPTRUECOLORc { /depth 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 width getinterval def /gis im width width getinterval def /bis im width 2 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop ris} {gis} {bis} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPCMYKc { /depth 32 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /cis im 0 width getinterval def /mis im width width getinterval def /yis im width 2 mul width getinterval def /kis im width 3 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip4 pop cis} {mis} {yis} {kis} true 4 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLOR { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /gis width string def /bis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop } { cf gis readhexstring pop } { cf bis readhexstring pop } true 3 colorimage bitmapsave restore grestore } bind def /BITMAPCMYK { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /mis width string def /yis width string def /kis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop } { cf mis readhexstring pop } { cf yis readhexstring pop } { cf kis readhexstring pop } true 4 colorimage bitmapsave restore grestore } bind def /BITMAPTRUEGRAYc { /depth 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 width getinterval def /gis im width width getinterval def /bis im width 2 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop ris gis bis width gray} image bitmapsave restore grestore } bind def /BITMAPCMYKGRAYc { /depth 32 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /cis im 0 width getinterval def /mis im width width getinterval def /yis im width 2 mul width getinterval def /kis im width 3 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop cis mis yis kis width cgray} image bitmapsave restore grestore } bind def /cgray { /ww exch def /k exch def /y exch def /m exch def /c exch def 0 1 ww 1 sub { /i exch def c i get m i get y i get k i get CMYKtoRGB .144 mul 3 1 roll .587 mul 3 1 roll .299 mul add add c i 3 -1 roll floor cvi put } for c } bind def /gray { /ww exch def /b exch def /g exch def /r exch def 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul b i get .114 mul add add r i 3 -1 roll floor cvi put } for r } bind def /BITMAPTRUEGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /gis width string def /bis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop cf gis readhexstring pop cf bis readhexstring pop width gray} image bitmapsave restore grestore } bind def /BITMAPCMYKGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /yis width string def /mis width string def /kis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop cf mis readhexstring pop cf yis readhexstring pop cf kis readhexstring pop width cgray} image bitmapsave restore grestore } bind def /BITMAPGRAY { 8 {fakecolorsetup} COMMONBITMAP } bind def /BITMAPGRAYc { 8 {fakecolorsetup} COMMONBITMAPc } bind def /ENDBITMAP { } bind def end /ALDmatrix matrix def ALDmatrix currentmatrix pop /StartALD { /ALDsave save def savematrix ALDmatrix setmatrix } bind def /InALD { restorematrix } bind def /DoneALD { ALDsave restore } bind def /I { setdash } bind def /J { [] 0 setdash } bind def %%EndProlog %%BeginSetup (5.0) FMVERSION 1 1 0 0 612 792 0 1 21 FMDOCUMENT 0 0 /Times-Roman FMFONTDEFINE 1 0 /Times-Italic FMFONTDEFINE 2 1 /Symbol FMFONTDEFINE 3 0 /Times-Bold FMFONTDEFINE 4 0 /Courier FMFONTDEFINE 5 0 /Courier-Oblique FMFONTDEFINE 32 FMFILLS 0 0 FMFILL 1 0.1 FMFILL 2 0.3 FMFILL 3 0.5 FMFILL 4 0.7 FMFILL 5 0.9 FMFILL 6 0.97 FMFILL 7 1 FMFILL 8 <0f1e3c78f0e1c387> FMFILL 9 <0f87c3e1f0783c1e> FMFILL 10 FMFILL 11 FMFILL 12 <8142241818244281> FMFILL 13 <03060c183060c081> FMFILL 14 <8040201008040201> FMFILL 16 1 FMFILL 17 0.9 FMFILL 18 0.7 FMFILL 19 0.5 FMFILL 20 0.3 FMFILL 21 0.1 FMFILL 22 0.03 FMFILL 23 0 FMFILL 24 FMFILL 25 FMFILL 26 <3333333333333333> FMFILL 27 <0000ffff0000ffff> FMFILL 28 <7ebddbe7e7dbbd7e> FMFILL 29 FMFILL 30 <7fbfdfeff7fbfdfe> FMFILL %%EndSetup %%Page: "i" 1 %%BeginPaperSize: Letter %%EndPaperSize 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K J 0 0 0 1 0 0 0 K 54 54 558 720 R 7 X 0 0 0 1 0 0 0 K V 0 12 Q 0 X (The Java Naming and Directory service provider interface \050JNDI SPI\051.) 108 472 T 1 F (Please send comments to jndi@java.sun.com) 108 432 T 54 54 558 720 C 54 540 558 720 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 540 558 720 R 7 X 0 0 0 1 0 0 0 K V 126 612 366 639 R V 1 24 Q 0 X (JavaSoft) 126 623 T 126 549 558 603 R 7 X V 0 X (JNDI SPI: Java) 161.38 587 T 2 F (\324) 313.32 587 T 1 F ( Naming and Directory) 334.68 587 T (Service Provider Interface) 303.41 561 T 54 657 558 666 R 3 X V 0.5 H 0 Z N 54 666 558 666 2 L V 1 H 2 Z 0 X N 126 612 558 612 2 L 7 X V 0.5 H 0 X N 54 549 558 549 2 L 7 X V 1 H 0 X N 0 0 0 1 0 0 0 K 134.55 698.71 M 133.92 698.65 E 133.29 698.48 E 132.66 698.2 E 132.03 697.84 E 131.42 697.41 E 130.81 696.93 E 129.67 695.8 E 128.62 694.61 E 127.71 693.43 E 126.39 691.55 E 126.36 691.46 E 126.32 691.46 E 126.33 691.59 E 127.19 694.61 E 127.5 695.92 E 127.58 696.53 E 127.61 697.08 E 127.59 697.4 E 127.53 697.72 E 127.42 698.01 E 127.26 698.27 E 127.06 698.49 E 126.79 698.66 E 126.47 698.77 E 126.08 698.81 E 125.62 698.77 E 125.16 698.61 E 124.67 698.38 E 124.18 698.07 E 123.69 697.7 E 123.21 697.28 E 122.29 696.35 E 121.49 695.36 E 120.86 694.41 E 120.43 693.6 E 120.31 693.27 E 120.28 693.02 E 120.33 692.71 E 120.42 692.63 E 120.52 692.6 E 120.68 692.64 E 120.83 692.74 E 121.14 693.1 E 121.91 694.22 E 122.54 694.99 E 123.17 695.71 E 123.47 696.01 E 123.77 696.24 E 124.04 696.4 E 124.27 696.45 E 124.35 696.43 E 124.42 696.38 E 124.46 696.25 E 124.48 696.03 E 124.36 695.2 E 124 693.84 E 122.83 690.13 E 121.44 685.94 E 120.25 682.25 E 120.23 681.98 E 120.3 681.88 E 120.43 681.8 E 120.9 681.73 E 121.7 681.7 E 122.32 681.69 E 122.57 681.69 E 122.77 681.72 E 122.94 681.79 E 123.08 681.89 E 123.19 682.06 E 123.26 682.29 E 123.96 684.39 E 124.84 686.55 E 125.88 688.7 E 127.01 690.75 E 127.62 691.73 E 128.35 692.77 E 129.15 693.79 E 130 694.75 E 130.88 695.6 E 131.71 696.27 E 132.12 696.52 E 132.51 696.71 E 132.87 696.83 E 133.2 696.87 E 133.46 696.82 E 133.57 696.76 E 133.66 696.66 E 133.79 696.4 E 133.83 696.01 E 133.78 695.61 E 133.64 695.07 E 133.13 693.65 E 131.62 689.94 E 130.82 687.91 E 130.13 685.96 E 129.67 684.22 E 129.54 683.47 E 129.52 682.81 E 129.6 682.19 E 129.71 681.92 E 129.85 681.69 E 130.05 681.51 E 130.31 681.37 E 130.62 681.28 E 131.01 681.24 E 131.51 681.28 E 131.99 681.41 E 132.46 681.6 E 132.92 681.85 E 133.37 682.16 E 133.81 682.51 E 134.62 683.33 E 135.37 684.24 E 136.03 685.17 E 136.6 686.08 E 137.05 686.88 E 137.2 687.12 E 137.32 687.37 E 137.37 687.51 E 137.37 687.64 E 137.34 687.77 E 137.26 687.91 E 137.21 688.01 E 137.11 688.08 E 136.88 688.12 E 136.73 688.06 E 136.61 687.91 E 135.92 686.73 E 135.49 686.05 E 135.04 685.37 E 134.56 684.76 E 134.09 684.25 E 133.86 684.05 E 133.63 683.9 E 133.42 683.79 E 133.2 683.75 E 133.07 683.79 E 132.96 683.87 E 132.89 684.13 E 133.06 684.9 E 133.49 686.16 E 134.84 689.61 E 135.55 691.51 E 136.17 693.34 E 136.62 694.95 E 136.74 695.63 E 136.78 696.21 E 136.74 696.84 E 136.68 697.13 E 136.61 697.38 E 136.4 697.81 E 136.12 698.15 E 135.8 698.4 E 135.42 698.57 E 135 698.68 E 134.55 698.71 E O V 102.76 692.64 M 102.79 692.5 E 102.86 692.39 E 102.97 692.31 E 103.12 692.28 E 103.28 692.32 E 103.43 692.45 E 103.77 692.92 E 104.23 693.68 E 104.92 694.68 E 105.41 695.34 E 105.91 695.86 E 106.38 696.22 E 106.59 696.32 E 106.76 696.35 E 106.95 696.31 E 107.05 696.2 E 107.09 696.05 E 107.1 695.9 E 107.07 695.62 E 106.93 695.2 E 106.49 693.94 E 105.12 690.41 E 104.4 688.42 E 103.76 686.47 E 103.32 684.7 E 103.19 683.93 E 103.14 683.26 E 103.16 682.89 E 103.23 682.53 E 103.34 682.2 E 103.52 681.89 E 103.74 681.64 E 104.04 681.45 E 104.41 681.33 E 104.85 681.28 E 105.43 681.33 E 106.01 681.45 E 106.59 681.66 E 107.17 681.94 E 107.75 682.29 E 108.33 682.69 E 108.9 683.15 E 109.46 683.64 E 110.58 684.77 E 111.63 686 E 112.64 687.3 E 113.57 688.61 E 113.69 688.68 E 113.72 688.64 E 113.71 688.54 E 113.33 687.27 E 112.94 685.74 E 112.64 684.16 E 112.53 682.74 E 112.57 682.21 E 112.63 681.96 E 112.74 681.72 E 112.9 681.52 E 113.12 681.36 E 113.4 681.25 E 113.78 681.21 E 114.3 681.27 E 114.82 681.44 E 115.36 681.72 E 115.9 682.07 E 116.42 682.49 E 116.93 682.97 E 117.43 683.49 E 117.9 684.03 E 118.73 685.16 E 119.1 685.71 E 119.4 686.23 E 119.65 686.72 E 119.84 687.14 E 119.95 687.51 E 119.99 687.78 E 119.92 688.06 E 119.83 688.15 E 119.68 688.19 E 119.54 688.16 E 119.41 688.08 E 119.19 687.75 E 118.96 687.29 E 118.68 686.73 E 117.97 685.7 E 117.18 684.71 E 116.8 684.3 E 116.43 683.97 E 116.11 683.76 E 115.96 683.7 E 115.82 683.68 E 115.69 683.73 E 115.61 683.84 E 115.58 684.17 E 115.76 685.25 E 116.25 687 E 116.93 689.18 E 117.71 691.53 E 119.16 695.8 E 119.82 697.84 E 119.81 698.03 E 119.75 698.16 E 119.62 698.26 E 119.37 698.29 E 118.01 698.33 E 117.33 698.3 E 116.96 698.21 E 116.78 698.1 E 116.7 697.95 E 116.22 696.75 E 115.58 694.91 E 115.19 693.84 E 114.74 692.71 E 114.22 691.56 E 113.63 690.41 E 112.76 688.99 E 111.83 687.67 E 110.89 686.48 E 109.97 685.44 E 109.09 684.59 E 108.68 684.24 E 108.29 683.95 E 107.93 683.72 E 107.6 683.55 E 107.3 683.44 E 107.04 683.4 E 106.73 683.47 E 106.5 683.64 E 106.35 683.92 E 106.3 684.27 E 106.35 684.68 E 106.49 685.24 E 106.96 686.72 E 108.41 690.56 E 109.19 692.6 E 109.85 694.49 E 110.33 696.07 E 110.46 696.7 E 110.51 697.18 E 110.45 697.64 E 110.36 697.9 E 110.22 698.16 E 110.02 698.39 E 109.75 698.57 E 109.6 698.65 E 109.41 698.7 E 108.98 698.75 E 108.36 698.69 E 107.75 698.51 E 107.16 698.24 E 106.59 697.88 E 106.05 697.46 E 105.53 696.98 E 105.06 696.46 E 104.61 695.92 E 103.85 694.84 E 103.26 693.85 E 102.9 693.08 E 102.76 692.64 E O V 92.28 699.09 M 92.33 698.13 E 92.5 697.22 E 92.79 696.38 E 93.15 695.56 E 93.59 694.79 E 94.08 694.04 E 95.16 692.61 E 96.24 691.22 E 96.73 690.51 E 97.17 689.79 E 97.54 689.06 E 97.82 688.29 E 97.99 687.48 E 98.03 686.63 E 98.02 686.37 E 97.99 686.07 E 97.93 685.74 E 97.83 685.37 E 97.71 684.99 E 97.55 684.61 E 97.36 684.23 E 97.12 683.85 E 96.85 683.49 E 96.54 683.16 E 96.19 682.85 E 95.78 682.59 E 95.34 682.37 E 94.84 682.21 E 94.28 682.11 E 93.67 682.08 E 93.04 682.15 E 92.73 682.22 E 92.43 682.33 E 92.14 682.47 E 91.87 682.63 E 91.61 682.82 E 91.36 683.05 E 91.14 683.32 E 90.95 683.62 E 90.78 683.96 E 90.63 684.33 E 90.51 684.75 E 90.43 685.19 E 90.38 685.69 E 90.36 686.21 E 90.36 688.3 E 90.32 688.58 E 90.19 688.86 E 89.97 688.97 E 89.84 688.99 E 89.71 688.96 E 89.52 688.8 E 89.38 688.6 E 89.18 688.16 E 88.63 685.41 E 88.62 685.37 E 88.64 685.35 E 88.66 685.35 E 88.63 685.35 E 88.45 684.34 E 88.36 683.33 E 88.36 683.18 E 88.38 683.03 E 88.51 682.77 E 88.7 682.54 E 88.94 682.36 E 89.45 682.11 E 89.97 681.88 E 90.53 681.68 E 91.11 681.5 E 91.71 681.36 E 92.34 681.25 E 93 681.18 E 93.67 681.14 E 94.48 681.18 E 95.28 681.3 E 96.04 681.5 E 96.78 681.77 E 97.48 682.11 E 98.15 682.51 E 98.77 682.97 E 99.34 683.48 E 99.86 684.04 E 100.33 684.63 E 100.74 685.26 E 101.08 685.91 E 101.36 686.58 E 101.57 687.28 E 101.7 687.98 E 101.75 688.68 E 101.74 689.23 E 101.68 689.75 E 101.59 690.26 E 101.47 690.73 E 101.32 691.19 E 101.14 691.63 E 100.93 692.05 E 100.69 692.46 E 100.17 693.27 E 99.56 694.06 E 98.21 695.69 E 97.38 696.66 E 96.92 697.21 E 96.46 697.8 E 96.06 698.45 E 95.74 699.14 E 95.54 699.88 E 95.47 700.66 E 95.49 700.99 E 95.54 701.32 E 95.63 701.64 E 95.74 701.96 E 95.88 702.29 E 96.06 702.58 E 96.27 702.88 E 96.51 703.14 E 96.79 703.4 E 97.08 703.63 E 97.42 703.83 E 97.77 703.99 E 98.16 704.13 E 98.58 704.23 E 99.02 704.29 E 99.49 704.3 E 99.81 704.29 E 100.11 704.25 E 100.63 704.11 E 100.86 704.03 E 101.07 703.91 E 101.43 703.66 E 101.74 703.34 E 101.97 702.99 E 102.15 702.6 E 102.29 702.17 E 102.39 701.73 E 102.46 701.29 E 102.51 700.38 E 102.52 698.81 E 102.54 698.57 E 102.57 698.47 E 102.65 698.39 E 102.9 698.27 E 103.17 698.29 E 103.31 698.43 E 103.38 698.57 E 104.25 701.84 E 104.51 702.73 E 104.62 703.21 E 104.67 703.71 E 104.64 703.85 E 104.57 703.97 E 104.35 704.2 E 103.7 704.53 E 103.1 704.78 E 102.53 704.98 E 101.97 705.12 E 101.44 705.23 E 100.89 705.29 E 99.7 705.34 E 98.92 705.32 E 98.16 705.23 E 97.43 705.08 E 96.74 704.86 E 96.09 704.59 E 95.48 704.27 E 94.91 703.89 E 94.39 703.47 E 93.92 703.01 E 93.5 702.52 E 93.15 702.01 E 92.85 701.46 E 92.61 700.89 E 92.43 700.31 E 92.32 699.7 E 92.28 699.09 E O V 60.67 691.17 60.27 690.85 59.82 690.61 59.36 690.47 58.86 690.42 58.38 690.47 57.9 690.61 57.45 690.85 57.04 691.17 56.72 691.58 56.48 692.03 56.34 692.5 56.29 692.99 56.34 693.48 56.48 693.95 56.72 694.4 57.04 694.8 62.98 700.73 64.57 699.15 58.6 693.17 59.04 692.72 65.02 698.7 66.61 697.11 60.67 691.17 60.67 691.17 25 Y V 65.29 694.86 65.7 695.2 66.15 695.42 66.39 695.51 66.63 695.57 66.88 695.6 67.11 695.61 67.61 695.57 68.07 695.42 68.3 695.33 68.52 695.2 68.92 694.86 69.25 694.46 69.48 694.02 69.62 693.55 69.67 693.05 69.62 692.57 69.48 692.09 69.25 691.65 68.92 691.24 62.98 685.31 61.39 686.9 67.37 692.86 66.92 693.31 60.94 687.34 59.36 688.93 65.29 694.86 65.29 694.86 28 Y V 72.99 682.56 73.32 682.16 73.56 681.71 73.7 681.24 73.75 680.75 73.7 680.26 73.56 679.79 73.32 679.34 72.99 678.93 72.58 678.61 72.14 678.37 71.67 678.23 71.18 678.18 70.69 678.23 70.21 678.37 69.77 678.61 69.36 678.93 63.43 684.87 65.02 686.45 71 680.47 71.44 680.93 65.47 686.91 67.06 688.5 72.99 682.56 72.99 682.56 25 Y V 69.3 687.17 68.98 687.58 68.74 688.03 68.6 688.51 68.55 688.99 68.6 689.49 68.74 689.95 68.98 690.39 69.3 690.79 69.71 691.12 70.16 691.35 70.4 691.44 70.63 691.49 70.88 691.53 71.12 691.54 71.61 691.49 72.08 691.35 72.31 691.26 72.53 691.12 72.93 690.79 78.86 684.87 77.28 683.28 71.29 689.26 70.84 688.81 76.82 682.83 75.23 681.24 69.3 687.17 69.3 687.17 28 Y V 77 691.17 76.6 690.85 76.15 690.61 75.68 690.47 75.18 690.42 74.7 690.47 74.22 690.61 73.78 690.85 73.38 691.17 73.05 691.58 72.81 692.03 72.67 692.5 72.62 692.99 72.67 693.48 72.81 693.95 73.05 694.4 73.38 694.8 79.3 700.73 80.89 699.15 74.92 693.17 75.36 692.72 81.34 698.7 82.93 697.11 77 691.17 77 691.17 25 Y V 81.62 694.86 82.03 695.2 82.47 695.42 82.71 695.51 82.95 695.57 83.2 695.6 83.43 695.61 83.93 695.57 84.4 695.42 84.62 695.33 84.84 695.2 85.24 694.86 85.58 694.46 85.8 694.02 85.95 693.55 86 693.05 85.95 692.57 85.8 692.09 85.58 691.65 85.24 691.24 79.3 685.32 77.72 686.9 83.7 692.86 83.24 693.31 77.27 687.34 75.69 688.93 81.62 694.86 81.62 694.86 28 Y V 72.99 698.87 73.32 698.47 73.56 698.02 73.7 697.56 73.75 697.06 73.7 696.58 73.56 696.1 73.32 695.65 72.99 695.24 72.58 694.92 72.14 694.68 71.67 694.54 71.18 694.49 70.69 694.54 70.21 694.68 69.77 694.92 69.36 695.24 63.43 701.18 65.02 702.77 71 696.79 71.44 697.24 65.47 703.22 67.06 704.81 72.99 698.87 72.99 698.87 25 Y V 69.3 703.49 68.98 703.9 68.74 704.34 68.6 704.82 68.55 705.3 68.6 705.8 68.74 706.26 68.98 706.71 69.3 707.11 69.71 707.44 70.16 707.67 70.4 707.76 70.63 707.82 70.88 707.85 71.12 707.86 71.61 707.82 72.08 707.67 72.31 707.58 72.53 707.44 72.93 707.11 78.86 701.18 77.28 699.59 71.29 705.57 70.84 705.12 76.82 699.15 75.23 697.56 69.3 703.49 69.3 703.49 28 Y V 94.41 674.32 94.41 676.62 94.38 676.95 94.29 677.21 94.11 677.37 93.81 677.43 93.62 677.41 93.43 677.33 93.25 677.22 93.09 677.06 92.97 676.86 92.87 676.62 92.8 676.34 92.77 676.03 92.77 674.32 92.11 674.32 92.11 676.62 92.1 676.93 92 677.19 91.82 677.37 91.51 677.43 91.31 677.4 91.11 677.32 90.93 677.2 90.78 677.04 90.66 676.83 90.56 676.59 90.5 676.32 90.48 676.03 90.48 674.32 89.81 674.32 89.81 677.9 90.46 677.9 90.4 677.15 90.41 677.14 90.62 677.48 90.92 677.74 91.28 677.91 91.69 677.97 92.18 677.88 92.49 677.67 92.66 677.41 92.71 677.16 92.89 677.43 93.14 677.69 93.5 677.89 93.98 677.97 94.45 677.9 94.64 677.82 94.79 677.68 94.91 677.52 95.01 677.32 95.08 676.8 95.08 674.32 94.41 674.32 55 Y V 100.12 674.27 99.79 674.29 99.49 674.35 99.22 674.47 98.98 674.63 98.78 674.87 98.62 675.16 98.54 675.54 98.5 675.99 98.53 676.41 98.61 676.79 98.76 677.12 98.96 677.41 99.22 677.65 99.54 677.82 99.92 677.92 100.35 677.96 100.78 677.93 101.18 677.85 101.11 677.28 100.74 677.38 100.32 677.43 99.83 677.33 99.64 677.22 99.48 677.06 99.27 676.64 99.2 676.08 99.25 675.58 99.42 675.18 99.57 675.04 99.75 674.91 99.99 674.85 100.26 674.82 100.73 674.87 101.14 675.01 101.19 674.45 100.73 674.33 100.44 674.29 100.12 674.27 39 Y V 104.02 677.33 103.75 677.35 103.52 677.3 103.32 677.19 103.15 677.02 103.03 676.79 102.94 676.5 102.87 675.75 102.87 674.32 102.2 674.32 102.2 677.9 102.85 677.9 102.83 677.5 102.76 677.05 102.78 677.05 102.94 677.42 103.2 677.72 103.56 677.93 103.79 677.97 104.05 677.96 104.02 677.33 21 Y V 106.36 674.8 106.36 674.25 106.68 674.29 107.04 674.4 107.35 674.57 107.61 674.8 107.82 675.09 107.97 675.42 108.07 675.78 108.1 676.17 108.07 676.62 107.98 677 107.83 677.3 107.63 677.55 107.38 677.74 107.09 677.86 106.78 677.94 106.44 677.96 106.36 677.95 106.36 677.42 106.38 677.43 106.62 677.41 106.83 677.34 107.01 677.24 107.15 677.09 107.26 676.9 107.33 676.68 107.4 676.13 107.38 675.81 107.32 675.54 107.23 675.32 107.09 675.12 106.95 674.98 106.77 674.88 106.59 674.82 106.38 674.8 106.36 674.8 37 Y V 106.36 677.42 106.36 677.95 106.05 677.92 105.69 677.82 105.38 677.65 105.12 677.42 104.92 677.14 104.76 676.82 104.68 676.47 104.64 676.08 104.67 675.64 104.75 675.26 104.9 674.94 105.1 674.69 105.33 674.5 105.62 674.35 105.94 674.28 106.29 674.25 106.36 674.25 106.36 674.8 106.14 674.82 105.93 674.89 105.75 675 105.6 675.14 105.4 675.57 105.33 676.14 105.42 676.71 105.52 676.93 105.66 677.11 105.81 677.26 105.99 677.35 106.36 677.42 32 Y V 109.83 674.25 109.06 674.32 109.07 674.89 109.46 674.8 109.88 674.77 110.22 674.81 110.48 674.91 110.65 675.09 110.71 675.32 110.69 675.46 110.63 675.56 110.44 675.72 109.85 675.93 109.54 676.06 109.26 676.23 109.07 676.49 109 676.89 109.09 677.32 109.37 677.66 109.58 677.79 109.83 677.88 110.47 677.96 111.18 677.89 111.17 677.35 110.8 677.44 110.42 677.47 110.1 677.43 109.86 677.32 109.73 677.17 109.68 676.95 109.76 676.71 109.95 676.55 110.55 676.33 110.86 676.22 111.14 676.04 111.25 675.92 111.33 675.77 111.39 675.6 111.4 675.39 111.38 675.15 111.3 674.94 111.18 674.75 110.99 674.58 110.77 674.44 110.5 674.33 110.19 674.27 109.83 674.25 47 Y V 113.89 673.95 113.57 673.26 113.41 673 113.23 672.8 113.04 672.66 112.82 672.55 112.58 672.5 112.29 672.47 111.81 672.53 111.87 673.11 112.35 673.04 112.62 673.08 112.74 673.14 112.84 673.22 113.04 673.48 113.23 673.91 113.39 674.32 111.99 677.9 112.75 677.9 113.44 676.04 113.73 675.15 113.74 675.15 114.11 676.26 114.7 677.9 115.43 677.9 113.89 673.95 26 Y V 116.8 674.25 116.02 674.32 116.04 674.89 116.43 674.8 116.86 674.77 117.19 674.81 117.45 674.91 117.62 675.09 117.68 675.32 117.66 675.46 117.6 675.56 117.41 675.72 116.82 675.93 116.51 676.06 116.23 676.23 116.04 676.49 115.96 676.89 116.06 677.32 116.35 677.66 116.55 677.79 116.81 677.88 117.44 677.96 118.14 677.89 118.13 677.35 117.77 677.44 117.39 677.47 117.07 677.43 116.84 677.32 116.71 677.17 116.66 676.95 116.74 676.71 116.93 676.55 117.53 676.33 117.84 676.22 118.11 676.04 118.23 675.92 118.31 675.77 118.36 675.6 118.38 675.39 118.35 675.15 118.28 674.94 118.14 674.75 117.96 674.58 117.73 674.44 117.47 674.33 117.15 674.27 116.8 674.25 47 Y V 120.75 674.26 120.28 674.32 120.1 674.4 119.97 674.51 119.81 674.84 119.76 675.33 119.76 677.4 119 677.4 119 677.9 119.76 677.9 119.76 679.06 120.43 679.24 120.43 677.9 121.46 677.9 121.46 677.4 120.43 677.4 120.43 675.56 120.46 675.19 120.54 674.96 120.61 674.9 120.7 674.85 120.96 674.81 121.22 674.83 121.46 674.88 121.46 674.33 121.12 674.28 120.75 674.26 27 Y V 123.8 674.78 123.8 674.26 123.96 674.25 124.29 674.27 124.61 674.31 124.92 674.38 125.21 674.48 125.14 675 124.63 674.83 124.35 674.79 124.06 674.77 123.8 674.78 12 Y V 123.8 676.61 123.8 676.14 125.31 676.14 125.34 676.46 125.32 676.76 125.25 677.04 125.15 677.29 124.99 677.51 124.79 677.7 124.53 677.84 124.22 677.93 123.85 677.96 123.8 677.95 123.8 677.47 123.82 677.48 124.18 677.43 124.44 677.25 124.54 677.12 124.61 676.97 124.65 676.61 123.8 676.61 21 Y V 123.8 677.47 123.8 677.95 123.48 677.92 123.16 677.82 122.87 677.66 122.64 677.43 122.46 677.16 122.32 676.84 122.24 676.48 122.21 676.09 122.24 675.65 122.32 675.27 122.46 674.95 122.65 674.7 122.9 674.5 123.21 674.36 123.56 674.28 123.8 674.26 123.8 674.78 123.79 674.79 123.55 674.86 123.34 674.95 123.17 675.1 123.04 675.3 122.96 675.52 122.91 675.81 122.9 676.14 123.8 676.14 123.8 676.61 122.93 676.61 123.04 676.97 123.23 677.25 123.49 677.43 123.8 677.47 34 Y V 131 674.32 131 676.62 130.97 676.95 130.88 677.21 130.8 677.3 130.7 677.37 130.4 677.43 130.02 677.33 129.69 677.06 129.45 676.62 129.36 676.03 129.36 674.32 128.71 674.32 128.71 676.62 128.68 676.93 128.59 677.19 128.41 677.37 128.1 677.43 127.71 677.32 127.38 677.04 127.25 676.83 127.16 676.59 127.07 676.03 127.07 674.32 126.39 674.32 126.39 677.9 127.04 677.9 127.03 677.53 126.99 677.15 127 677.14 127.21 677.48 127.5 677.74 127.87 677.91 128.29 677.97 128.55 677.95 128.77 677.88 129.08 677.67 129.25 677.41 129.31 677.16 129.47 677.43 129.73 677.69 130.1 677.89 130.57 677.97 131.04 677.9 131.23 677.82 131.38 677.68 131.51 677.52 131.6 677.32 131.65 677.09 131.67 676.8 131.67 674.32 131 674.32 52 Y V 133.57 674.25 132.79 674.32 132.82 674.89 133.2 674.8 133.63 674.77 133.97 674.81 134.23 674.91 134.4 675.09 134.46 675.32 134.44 675.46 134.38 675.56 134.19 675.72 133.6 675.93 133.28 676.06 133 676.23 132.81 676.49 132.73 676.89 132.83 677.32 133.11 677.66 133.32 677.79 133.58 677.88 134.22 677.96 134.92 677.89 134.9 677.35 134.54 677.44 134.16 677.47 133.85 677.43 133.61 677.32 133.48 677.17 133.43 676.95 133.5 676.71 133.69 676.55 134.29 676.33 134.61 676.22 134.88 676.04 135 675.92 135.07 675.77 135.13 675.6 135.15 675.39 135.12 675.15 135.05 674.94 134.92 674.75 134.73 674.58 134.51 674.44 134.24 674.33 133.92 674.27 133.57 674.25 47 Y V 96.95 678.49 97.12 678.53 97.26 678.62 97.36 678.76 97.4 678.92 97.36 679.09 97.26 679.22 97.12 679.31 96.95 679.34 96.79 679.31 96.64 679.22 96.55 679.08 96.51 678.92 96.55 678.76 96.64 678.62 96.79 678.53 96.95 678.49 17 Y V 96.08 677.91 96.08 677.4 96.62 677.4 96.62 674.32 97.28 674.32 97.28 677.9 96.08 677.91 7 Y V 0 0 0 1 0 0 0 K 54 54 558 720 C 0 0 612 792 C 54 54 558 126 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 54 558 126 R 7 X 0 0 0 1 0 0 0 K V 306 72 552 108 R V 1 12 Q 0 X (1.1Beta1) 509 100 T (December 1, 1997) 463.69 78 T 63 72 261 108 R 7 X V 0 X (Java Naming and Directory SPI) 63 100 T 54 117 558 117 2 L 7 X V 1 H 2 Z 0 X N 54 63 558 63 2 L 7 X V 0 X N 0 0 612 792 C 54 54 558 720 C 0 0 0 1 0 0 0 K 75 208 537 328 C 0 0 0 0.1 0.9 0.9 0.9 K 136.53 313 139.64 300.43 146.82 306.31 146.82 299.59 157.31 306.77 153.46 297.95 172.71 312.54 159.22 295.59 165.78 295.59 163.82 292.62 193.49 292.62 168.09 285.31 183.48 281.15 167.01 278.04 180.79 272.62 163.82 274.63 187.72 261.31 159.22 271.67 159.22 262.23 146.82 267.66 151.16 250 139.64 266.82 136.15 262.92 132.27 266.82 121.68 256.92 121.68 268.39 107.29 255.08 115.44 270.41 103.82 264.77 110.23 273.08 88.82 273.08 103.26 281.73 76.5 283.92 103.26 285.52 89.97 287.62 103.44 288.31 90.35 295.46 108.1 292.62 92.28 303.54 112.69 295.58 110.36 306.54 125.09 299.59 125.09 308.62 132.27 300.43 44 Y 0 X 0 0 0 0.1 0.9 0.9 0.9 K V 0.2 H 0 Z N 0 0 0 1 0 0 0 K 1 10 Q 0 0 0 1 0 0 0 K (Package) 121.5 286 T (names) 121.5 277 T 0 0 0 1 0 0 0 K 0 0 0 0.1 0.9 0.9 0.9 K 201 256 543 310 R 0 0 0 0.1 0.9 0.9 0.9 K V 0.5 H 2 Z N 210 256 534.01 301 R V 0 0 0 1 0 0 0 K 0 F 0 0 0 1 0 0 0 K (JNDI is being packaged as a Ja) 210 294.33 T (v) 334.21 294.33 T (a 1.1-compatible Standard Extension. The JNDI) 338.96 294.33 T 0 0 0 0.1 0.9 0.9 0.9 K 0 0 0 1 0 0 0 K (packages ha) 210 282.33 T (v) 258.39 282.33 T (e been renamed to use the \322ja) 263.24 282.33 T (v) 380.78 282.33 T (ax\323 pre\336x, follo) 385.53 282.33 T (wing the con) 448.88 282.33 T (v) 500.14 282.33 T (ention) 504.99 282.33 T 0 0 0 0.1 0.9 0.9 0.9 K 0 0 0 1 0 0 0 K (for Ja) 210 270.33 T (v) 232.29 270.33 T (a Standard Extensions.) 237.04 270.33 T 0 0 0 0.1 0.9 0.9 0.9 K 0 0 0 1 0 0 0 K 0 0 0 0.1 0.9 0.9 0.9 K 0 0 0 1 0 0 0 K 54 54 558 720 C 0 0 612 792 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "i" 1 %%Page: "ii" 2 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (ii) 303.22 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 F 0 X (Copyright \251 1997 by Sun Microsystems Inc.) 108 581.33 T (901 San Antonio Road, Palo Alto, CA 94303.) 108 564.33 T (All rights reserved.) 108 547.33 T -0.61 (RESTRICTED RIGHTS: Use, duplication or disclosure by the government is subject to the restrictions as set forth) 108 394.33 P 0.23 (in subparagraph \050c\051 \0501\051 \050ii\051 of the Rights in Technical Data and Computer Software Clause as DFARS 252.227-) 108 382.33 P (7013 and FAR 52.227-19.) 108 370.33 T -0.15 (Sun, Sun Microsystems, the Sun logo, Java, and JavaSoft, are trademarks or registered trademarks of Sun Micro-) 108 302.33 P (systems, Inc.) 108 290.33 T -0.3 (THIS PUBLICATION IS PROVIDED \322AS IS\323 WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS) 108 239.33 P -0.4 (OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MECHANTABIL-) 108 227.33 P (ITY, FITNESS FOR A PARTICULAR USE, OR NON-INFRINGEMENT.) 108 215.33 T 2.37 (THIS PUBLICATION COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ER-) 108 198.33 P 0.09 (RORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES) 108 186.33 P 0.38 (WILL BE INCORPORATED IN NEW EDITIONS OF THE PUBLICATION. SUN MICROSYSTEMS, INC.,) 108 174.33 P 1.19 (MAY MAKE NEW IMPROVEMENTS AND/OR CHANGES IN THE PRODUCT\050S\051 AND/OR THE PRO-) 108 162.33 P (GRAM\050S\051 DESCRIBED IN THIS PUBLICATION AT ANY TIME.) 108 150.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "ii" 2 %%Page: "iii" 3 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 32.67 558 42.67 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (JavaSoft) 54 36 T (iii) 301.83 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X V 0 X (Java Naming and Directory SPI) 54 749.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 54 558 720 R 7 X V 3 18 Q 0 X (Contents) 270 708 T 0 12 Q (1 JNDI Service Provider Interface \050SPI\051) 54 674 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 255 674 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (1) 480 674 T 0 0 0 1 0 0 0 K (2 Implementing the Context Interface) 54 650 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 243 650 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2) 480 650 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2.1 Basic Support) 104.4 633 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 198 633 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2) 480 633 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2.2 Federation Support) 104.4 619 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 222 619 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2) 480 619 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 10 Q (2.2.1 Names) 153 606.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 207.5 606.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2) 481 606.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2.2.2 Resolving Through a Context) 153 594.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 297.5 594.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2) 481 594.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2.2.3 Resolving Through to Subinterfaces of Context) 153 582.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . .) 370 582.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (3) 481 582.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2.2.4 Continuing an Operation in a Federation) 153 570.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . .) 340 570.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (4) 481 570.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 12 Q (2.3 Referrals) 104.4 557 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 174 557 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (5) 480 557 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2.4 Schema Support) 104.4 543 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 210 543 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (6) 480 543 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2.5 Java Object Support) 104.4 529 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 228 529 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (7) 480 529 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2.6 Context Environment Support) 104.4 515 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 276 515 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (8) 480 515 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 10 Q (2.6.1 Initializing a Context\325s Environment) 153 502.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 325 502.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (8) 481 502.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2.6.2 Inheritance) 153 490.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 225 490.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (9) 481 490.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2.6.3 Updates to the Environment) 153 478.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 292.5 478.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (9) 481 478.33 T 0 0 0 1 0 0 0 K 0 12 Q (3 The Initial Context) 54 455 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 162 455 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (10) 474 455 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (3.1 Implementing An Initial Context) 104.4 438 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 288 438 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (10) 474 438 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (3.2 Making An Initial Context Implementation Available to JNDI) 104.4 424 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . .) 429 424 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (11) 474 424 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 10 Q (3.2.1 The java.naming.factory.initial Property) 153 411.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . .) 340 411.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (11) 476 411.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (3.2.2 URL Context Implementations) 153 399.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 302.5 399.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (11) 476 399.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (3.2.3 Initial Context Factory Builder) 153 387.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 302.5 387.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (12) 476 387.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 12 Q (3.3 Implementing a Subclass of InitialContext) 104.4 374 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . .) 333 374 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (12) 474 374 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 10 Q (3.3.1 Using the SPI to get the Initial Context) 153 361.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . .) 335 361.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (13) 476 361.33 T 0 0 0 1 0 0 0 K 0 12 Q (4 Objects Bound in the Namespace) 54 338 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 231 338 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (15) 474 338 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (4.1 Object Factories) 104.4 321 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 210 321 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (15) 474 321 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 10 Q (4.1.1 Context Factory) 153 308.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 245 308.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (16) 476 308.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (4.1.2 URL Context Factory) 153 296.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 267.5 296.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (16) 476 296.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (4.1.3 Making Object Factories Available to JNDI) 153 284.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . .) 355 284.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (16) 476 284.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 12 Q (4.2 References and Referenceable) 104.4 271 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 276 271 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (17) 474 271 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 10 Q (4.2.1 Storing References in the Namespace) 153 258.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 330 258.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (17) 476 258.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (4.2.2 Class information in Reference) 153 246.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 305 246.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (18) 476 246.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 12 Q (4.3 URLs as Reference Information) 104.4 233 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 285 233 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (19) 474 233 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (4.4 Storing Serializable Objects) 104.4 219 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 264 219 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (19) 474 219 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (4.5 The java.naming.factory.object Property) 104.4 205 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . .) 324 205 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (20) 474 205 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (4.6 Object Factory Builder) 104.4 191 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 240 191 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (21) 474 191 T 0 0 0 1 0 0 0 K (5 Making Context Implementations Available to JNDI) 54 167 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . .) 324 167 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (22) 474 167 T 0 0 0 1 0 0 0 K (6 Overview of the Interface) 54 143 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 195 143 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (23) 474 143 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (6.1 NamingManager and DirectoryManager) 104.4 126 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . .) 324 126 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (23) 474 126 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (6.2 Federation Support) 104.4 112 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 222 112 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (23) 474 112 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (6.3 Object Factories) 104.4 98 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 210 98 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (23) 474 98 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (6.4 Initial Contexts) 104.4 84 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 204 84 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (23) 474 84 T 0 0 0 1 0 0 0 K ( Appendix A:) 54 60 T 0 0 0 1 0 0 0 K ( Service Provider Example) 119.33 60 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 255 60 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (25) 474 60 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "iii" 3 %%Page: "iv" 4 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 32.67 558 42.67 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (JavaSoft) 54 36 T (iv) 302.39 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X V 0 X (Java Naming and Directory SPI) 54 749.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X ( Appendix B:) 54 712 T 0 0 0 1 0 0 0 K ( Legend for Class Diagram) 118.67 712 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 252 712 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (35) 474 712 T 0 0 0 1 0 0 0 K ( Appendix C:) 54 688 T 0 0 0 1 0 0 0 K ( JNDI Change History) 118.67 688 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 231 688 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (37) 474 688 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "iv" 4 %%Page: "1" 5 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (JNDI Service Provider Interface \050SPI\051) 404.16 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (1) 303.5 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X (1) 81 708 T (JNDI Service Provider Interface \050SPI\051) 108 708 T 0 12 Q 0.29 (The JNDI SPI provides the means by which different naming and directory service providers) 108 680 P -0.17 (can develop and hook up their implementations so that the corresponding services are accessi-) 108 666 P 0.61 (ble from applications that use JNDI. In addition, because JNDI allows the use of names that) 108 652 P -0.08 (span multiple namespaces, one service provider implementation may need to interact with an-) 108 638 P -0.64 (other in order to complete an operation.) 108 624 P -0.64 ( T) 294.47 624 P -0.64 (he SPI provides methods that allow different provider) 304.16 624 P (implementations to cooperate to complete client JNDI operations.) 108 610 T -0.66 (This document describes the components of the SPI and explains how developers can build ser-) 108 590 P -0.19 (vice providers for JNDI.) 108 576 P -0.19 ( I) 224.73 576 P -0.19 (t is assumed that the reader is familiar with the contents of the) 231.53 576 P 3 F -0.19 (JNDI) 530 576 P (API) 108 562 T 0 F ( document.) 128.66 562 T -0.38 (All service provider developers should read the \322Security Considerations\323 section of the) 108 542 P 3 F -0.38 (JNDI) 530 542 P 0.84 (API) 108 528 P 0 F 0.84 ( document. It contains important issues that all developers using JNDI, especially those) 128.66 528 P (writing service providers, should consider.) 108 514 T 34 620 36 632 R V 34 572 36 584 R V 34 490 36 550 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "1" 5 %%Page: "2" 6 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Implementing the Context Interface) 416.08 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (2) 303.5 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X (2) 81 708 T (Implementing the Context Interface) 108 708 T 0 12 Q -0.41 (One of the basic tasks in building a context implementation is to define a class that implements) 108 680 P -0.13 (the) 108 666 P 4 10 Q -0.27 (Context) 125.53 666 P 0 12 Q -0.13 ( \050or) 167.53 666 P 4 10 Q -0.27 (DirContext) 187.26 666 P 0 12 Q -0.13 (\051) 247.26 666 P -0.13 ( interface. The following guidelines should be used for develop-) 251.25 666 P (ing this class.) 108 652 T 3 14 Q (2.1) 54 624.67 T ( Basic Support) 75 624.67 T 0 12 Q (The provider defines implementations for each of the methods in the) 108 604 T 4 10 Q (Context) 440.28 604 T 0 12 Q ( interface.) 482.28 604 T (If a method is not supported, it should throw) 108 584 T 4 10 Q (OperationNotSupportedException) 324.66 584 T 0 12 Q (.) 504.66 584 T 0.1 (For methods in the) 108 564 P 4 10 Q 0.2 (Context) 201.74 564 P 0 12 Q 0.1 ( or) 243.74 564 P 4 10 Q 0.2 (DirContext) 259.94 564 P 0 12 Q 0.1 ( i) 319.94 564 P 0.1 (nterfaces that accept a name argument \050either as) 326.38 564 P 0.47 (a) 108 550 P 4 10 Q 0.94 (String) 116.79 550 P 0 12 Q 0.47 ( or a) 152.79 550 P 4 10 Q 0.94 (Name) 178.52 550 P 0 12 Q 0.47 (\051, an empty name denotes the current context. For example, if an empty) 202.52 550 P 0.63 (name is supplied to) 108 536 P 4 10 Q 1.26 (lookup\050\051) 206.51 536 P 0 12 Q 0.63 (, that means to return the current context. If an empty name is) 254.51 536 P -0.75 (supplied to) 108 522 P 4 10 Q -1.49 (list\050\051) 162.51 522 P 0 12 Q -0.75 (, that means to enumerate the names in the current context. If an empty name) 198.51 522 P -0.25 (is supplied to) 108 508 P 4 10 Q -0.51 (getAttributes\050\051) 174.25 508 P 0 12 Q -0.25 (, that means to retrieve the attributes associated with this con-) 264.25 508 P (text.) 108 494 T 3.88 (Appendix A contains an example service provider that implements a flat, in-memory) 108 474 P (namespace.) 108 460 T 3 14 Q (2.2) 54 432.67 T ( Federation Support) 75 432.67 T 3 12 Q (2.2.1) 66 409 T (Names) 108 409 T 0 F 0.81 (A context in a federation will be given a composite name with each context operation.) 108 389 P 0.81 ( T) 532.86 389 P 0.81 (his) 544 389 P -0.16 (composite name may span multiple namespaces, or it may have only a single compound name) 108 375 P 0.3 (component \050which in turn may be made up of one or) 108 361 P 0.3 (several a) 366.91 361 P 0.3 (tomic names\051 that belongs to a) 409.52 361 P -0.31 (single namespace. The context implementation must determine which part of the name is to be) 108 347 P 0.07 (resolved/processed in its context and pass the rest onto the next context. This may be done by) 108 333 P (syntactically examining the name, or dynamically by resolving the name.) 108 319 T 3 F (2.2.2) 66 296 T (Resolving Through a Context) 108 296 T 0 F 0.29 (A context participates in a federation by performing the resolution phase of all of the context) 108 276 P -0.33 (operations. The) 108 262 P 4 10 Q -0.66 (lookup\050\051) 184.99 262 P 0 12 Q -0.33 ( method must always be supported. Support for other methods is op-) 232.99 262 P 0.22 (tional, but if the context is to participate in a federation, then the resolution implicit in all op-) 108 248 P (erations must be supported.) 108 234 T 34 662 36 674 R V 34 560 36 572 R V 34 385 36 397 R V 34 357 36 369 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "2" 6 %%Page: "3" 7 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Implementing the Context Interface) 416.08 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (3) 303.5 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 F 0 X (Figur) 54 713.33 T (e 1: Example of Resolving thr) 77.71 713.33 T (ough Intermediate Contexts to P) 203.91 713.33 T (erf) 342.58 713.33 T (orm a bind\050\051.) 354.54 713.33 T 0 12 Q 0.43 (For example, suppose a context does not support the) 108 483 P 4 10 Q 0.86 (bind\050\051) 366.53 483 P 0 12 Q 0.43 ( operation. When that context is) 402.53 483 P 0.58 (being used as an intermediate context for) 108 469 P 4 10 Q 1.16 (bind\050\051) 312.36 469 P 0 12 Q 0.58 (, it must perform the resolution part of that) 348.36 469 P 0.05 (operation to enable the operation to continue to the next context. It should only throw) 108 455 P 4 10 Q 0.09 (Opera-) 522 455 P -1.28 (tionNotSupportedException) 108 441 P 0 12 Q -0.64 ( if it is being asked to create a binding in its own context. Figure) 258 441 P 0.48 (1 shows an example of how the) 108 427 P 4 10 Q 0.96 (bind\050\051) 265.67 427 P 0 12 Q 0.48 ( operation is passed through intermediate contexts to) 301.67 427 P (be performed in the target context.) 108 413 T 3 F (2.2.3) 66 390 T (Resolving Through to Subinterfaces of Context) 108 390 T 0 F 0.03 (To invoke a) 108 370 P 4 10 Q 0.06 (DirContext) 168.42 370 P 0 12 Q 0.03 ( m) 228.42 370 P 0.03 (ethod \050such as) 240.78 370 P 4 10 Q 0.06 (getAttributes\050\051) 312.53 370 P 0 12 Q 0.03 (\051, the application first obtains an) 402.53 370 P (initial) 108 356 T 4 10 Q (DirContext) 139.01 356 T 0 12 Q (,) 199.01 356 T ( and then perform the operation on the) 202.01 356 T 4 10 Q (DirContext) 389.3 356 T 0 12 Q (.) 449.3 356 T 4 10 Q (DirContext c) 140.4 337.33 T (tx = new Initial) 212.4 337.33 T (DirContext\050) 308.4 337.33 T (\051;) 374.4 337.33 T (Attributes a) 140.4 325.33 T (ttrs = ctx.getAttributes\050someName\051;) 212.4 325.33 T 0 12 Q 0.76 (From the provider\325s perspective, in order to retrieve the attributes,) 108 306 P 4 10 Q 1.52 (getAttributes\050\051) 436.23 306 P 0 12 Q 0.76 ( might) 526.23 306 P 0.67 (need to traverse multiple naming systems. Some of these naming systems only support the) 108 292 P 4 10 Q -0.04 (Context) 108 278 P 0 12 Q -0.02 ( interface, not the) 150 278 P 4 10 Q -0.04 (DirContext) 236.9 278 P 0 12 Q -0.02 ( i) 296.9 278 P -0.02 (nterface. These naming systems are being used as in-) 303.21 278 P -0.35 (termediaries for resolving towards the target context. The target context must support the) 108 264 P 4 10 Q -0.71 (Dir-) 534 264 P (Context) 108 250 T 0 12 Q ( i) 150 250 T (nterface. Figure 2 shows an example of this.) 156.34 250 T 3 10 Q (Figur) 54 231.33 T (e 2: Example of Resolving Thr) 77.71 231.33 T (ough Intermediate non-) 207.25 231.33 T (DirContexts) 308.36 231.33 T 54 499 558 710 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 X 0 0 0 1 0 0 0 K 90 450 13.5 13.5 457.17 581.7 G 0.5 H 2 Z 0 X 90 450 13.5 13.5 457.17 581.7 A 7 X 90 450 13.5 13.5 346 581.7 G 0 X 90 450 13.5 13.5 346 581.7 A 7 X 90 450 13.5 13.5 238.5 581.7 G 0 X 90 450 13.5 13.5 238.5 581.7 A 7 X 90 450 13.5 13.5 126.17 581.7 G 0 X 90 450 13.5 13.5 126.17 581.7 A 4 10 Q (ctx.bind\050\322c1/c2/c3/a\323,) 236.37 681.33 T (\051) 386.36 681.33 T 213.72 581.7 213.72 584.68 224.09 581.7 213.72 578.73 4 Y 0 Z N 213.72 581.7 213.72 584.68 224.09 581.7 213.72 578.73 4 Y V 139.67 581.7 213.47 581.7 2 L 2 Z N 321.22 581.7 321.22 584.68 331.59 581.7 321.22 578.73 4 Y 0 Z N 321.22 581.7 321.22 584.68 331.59 581.7 321.22 578.73 4 Y V 252 581.7 320.97 581.7 2 L 2 Z N 432.38 582.2 432.38 585.18 442.76 582.2 432.38 579.23 4 Y 0 Z N 432.38 582.2 432.38 585.18 442.76 582.2 432.38 579.23 4 Y V 360 582.2 432.13 582.2 2 L 2 Z N 502 575.87 513.67 587.54 R 1 X V 0 X N (bind\050\322c1/c2/c3/a\323, \051) 90 541.6 T (bind\050\322c2/c3/a\323, \051) 187.33 607.67 T (bind\050\322c3/a\323, \051) 306 541.6 T 470.67 581.7 507 581.7 2 L N (bind\050\322a\323, \051) 423 608.83 T 479.33 606.67 491 618.33 R 1 X V 0 X N 369.86 679.5 381.53 691.17 R 1 X V 0 X N (ctx) 116.17 580.1 T 198 541.54 209.67 553.2 R 1 X V 0 X N 278.33 605.83 290 617.5 R 1 X V 0 X N 377.83 540.6 389.5 552.27 R 1 X V 0 X N (a) 486 586.6 T (c3) 387 586.6 T (c2) 279 586.6 T (c1) 168.67 586.6 T 81 512 531 638 R N 214.33 602 236.83 595.2 2 L N 441 602 447.62 591.25 2 L N 324 548 346 568.2 2 L N 120.34 568.6 108 548 2 L N J 81 638 234 674 2 L J 81 638 84.65 638.86 2 L N [7.663 6.641] 7.663 I 84.65 638.86 230.35 673.14 2 L N J 230.35 673.14 234 674 2 L N J 369 674 531 638 2 L J 369 674 372.66 673.19 2 L N [7.404 6.417] 7.404 I 372.66 673.19 527.34 638.82 2 L N J 527.34 638.82 531 638 2 L N J 0 0 612 792 C 54 84 558 228 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 X 0 0 0 1 0 0 0 K 90 450 31.5 18 121.5 174 G 0.5 H 2 Z 0 X 90 450 31.5 18 121.5 174 A 7 X 90 450 31.5 18 337.5 129.67 G 0 X 90 450 31.5 18 337.5 129.67 A 5 X 90 450 31.5 18 400.5 183 G 0 X 90 450 31.5 18 400.5 183 A 450 93 549 147 R 7 X V 0 X N 7 X 90 450 15.75 9 474.75 129 G 0 X 90 450 15.75 9 474.75 129 A 7 X 90 450 13.5 13.5 256.5 133.5 G 0 X 90 450 13.5 13.5 256.5 133.5 A 7 X 90 450 13.5 13.5 193.5 151.5 G 0 X 90 450 13.5 13.5 193.5 151.5 A 173.54 165.4 174.69 168.15 183.12 161.4 172.4 162.66 4 Y 0 Z N 173.54 165.4 174.69 168.15 183.12 161.4 172.4 162.66 4 Y V 153 174 173.31 165.5 2 L 2 Z N 232.91 138.55 234.24 141.21 242.19 133.91 231.58 135.89 4 Y 0 Z N 232.91 138.55 234.24 141.21 242.19 133.91 231.58 135.89 4 Y V 207 151.5 232.68 138.66 2 L 2 Z N 294.78 130.86 295.09 133.82 305.1 129.76 294.46 127.9 4 Y 0 Z N 294.78 130.86 295.09 133.82 305.1 129.76 294.46 127.9 4 Y V 270 133.5 294.53 130.89 2 L 2 Z N 391.93 157.66 389.99 159.91 399.81 164.41 393.87 155.4 4 Y 0 Z N 391.93 157.66 389.99 159.91 399.81 164.41 393.87 155.4 4 Y V 369 138 391.74 157.49 2 L 2 Z N 7 X 90 450 6.75 6.75 475.33 103 G 0 X 90 450 6.75 6.75 475.33 103 A 0 12 Q (target) 388.33 209 T 4 10 Q (DirContext) 418.66 209 T 0 12 Q (starting) 80.83 202.33 T 4 10 Q (DirContext) 119.83 202.33 T 0 9 Q (DirContext) 498.67 124.17 T (Context) 498.67 100.5 T 0 0 612 792 C 34 322 36 378 R 0 X 0 0 0 1 0 0 0 K V 34 274 36 286 R V 34 228 36 258 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "3" 7 %%Page: "4" 8 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Implementing the Context Interface) 416.08 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (4) 303.5 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X -0.47 (In order for intermediate naming systems to participate in the federation for extensions of) 108 712 P 4 10 Q -0.94 (Con-) 534 712 P 2.42 (text) 108 698 P 0 12 Q 1.21 (, they must implement the) 132 698 P 4 10 Q 2.42 (Resolver) 266.05 698 P 0 12 Q 1.21 ( interface. The) 314.05 698 P 4 10 Q 2.42 (Resolver) 390.31 698 P 0 12 Q 1.21 ( interface is used by the) 438.31 698 P -0.17 (JNDI framework to resolve through intermediate contexts that do not support a particular) 108 684 P -0.17 (sub-) 537.34 684 P 0.23 (interface o) 108 670 P 0.23 (f) 159.2 670 P 4 10 Q 0.45 (Context) 166.43 670 P 0 12 Q 0.23 (.) 208.43 670 P 0.23 ( I) 211.43 670 P 0.23 (t consists of two overloaded forms of the method) 218.65 670 P 4 10 Q 0.45 (resolveToClass\050\051) 459 670 P 0 12 Q 0.23 (.) 555 670 P -0.16 (This method is used to partially r) 108 656 P -0.16 (esolve) 265.74 656 P -0.16 ( a) 296.4 656 P -0.16 ( name) 304.57 656 P -0.16 (,) 333.41 656 P -0.16 (stopping at the first context that is an instance) 339.25 656 P 0.03 (of the required subinterface. B) 108 642 P 0.03 (y providing support for this method and the resolution phase of) 254.4 642 P 0.27 (all methods in) 108 628 P 0.27 ( the) 176.55 628 P 4 10 Q 0.55 (Context) 197.76 628 P 0 12 Q 0.27 ( interface, a provider can act as an intermediate context for exten-) 239.76 628 P (sions \050subinterfaces\051 of) 108 614 T 4 10 Q (Context) 222.97 614 T 0 12 Q (.) 264.97 614 T 4 10 Q (public interface Resolver {) 140.4 595.33 T (public ResolveResult) 165.6 583.33 T (resolveToClass\050) 291.6 583.33 T (Name name) 381.6 583.33 T (, Class contextType) 435.6 583.33 T (\051) 549.6 583.33 T (throws NamingException;) 190.8 571.33 T (public ResolveResult) 165.6 559.33 T (resolveToClass\050) 291.6 559.33 T (String name) 381.6 559.33 T (,) 447.6 559.33 T ( Class contextType) 165.6 547.33 T (\051) 483.6 547.33 T (throws NamingException;) 190.8 535.33 T (}) 140.4 523.33 T 3 12 Q (2.2.4) 66 501 T (Continuing an Operation in a Federation) 108 501 T 0 F 0 (In performing an operation on a name that spans multiple namespaces, a context that is acting) 108 481 P 0.19 (as an intermediate context in an intermediate naming system needs to pass the operation onto) 108 467 P 0.25 (the next naming system. The context does this by first constructing a) 108 453 P 4 10 Q 0.5 (CannotProceedExcep-) 444 453 P 1.16 (tion) 108 439 P 0 12 Q 0.58 ( containing information pinpointing how far it has proceeded. In so doing it sets the re-) 132 439 P 0.72 (solved object, resolved name, remaining name, and environment parts of the exception.) 108 425 P 0 9.6 Q 0.57 (1) 535.49 429.8 P 0 12 Q 0.72 ( \050In) 540.29 425 P (the case of the) 108 411 T 4 10 Q (Context.rename\050\051) 179.98 411 T 0 12 Q ( method, it also sets the \322resolved newname\323 part.\051) 275.98 411 T -0.22 (It then obtains a) 108 391 P 1 F -0.22 (continuation context) 187.11 391 P 0 F -0.22 ( from JNDI by passing the) 285.22 391 P 4 10 Q -0.44 (CannotProceedException) 413.88 391 P 0 12 Q -0.22 ( to) 545.88 391 P (static method) 108 377 T 4 10 Q (NamingManager) 175.33 377 T 0 12 Q (.) 253.33 377 T 4 10 Q (getContinuationContext\050\051) 256.33 377 T (public class NamingManager {) 140.4 358.33 T (public static Context getContinuationContext\050) 165.6 346.33 T (CannotProceedException e\051 throws NamingException;) 190.8 334.33 T (...) 165.6 322.33 T (}) 140.4 310.33 T 0 12 Q -0.38 (The information in the exception is used by) 108 291 P 4 10 Q -0.77 (getContinuationContext\050\051) 316.9 291 P 0 12 Q -0.38 ( to create the contin-) 460.9 291 P (uation context instance in which to continue the operation.) 108 277 T 4.04 (To obtain a continuation context for the) 108 257 P 4 10 Q 8.07 (DirContext) 329.9 257 P 0 12 Q 4.04 ( o) 389.9 257 P 4.04 (perations, use) 402.94 257 P 4 10 Q 8.07 (DirectoryMan-) 480 257 P (ager.getContinuationDirContext\050\051) 108 243 T 0 12 Q (.) 300 243 T 4 10 Q (public class DirectoryManager {) 140.4 224.33 T (public static getContinuation) 165.6 212.33 T (DirContext\050) 339.6 212.33 T (CannotProceedException e\051 throws NamingException;) 190.8 200.33 T (...) 165.6 188.33 T (}) 140.4 176.33 T 0 12 Q 0.09 (Upon receiving the continuation context, the operation should be continued using the remain-) 108 157 P (der of the name that has not been resolved.) 108 143 T 54 108 558 122.98 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 108 558 122.98 R 7 X 0 0 0 1 0 0 0 K V 63 120.96 207 120.96 2 L V 0.5 H 2 Z 0 X N 0 0 612 792 C 0 10 Q 0 X 0 0 0 1 0 0 0 K (1.) 72 101.33 T (The) 84 101.33 T 4 9 Q (CannotProceedException) 102.05 101.33 T 0 10 Q ( may well ha) 220.85 101.33 T (v) 272.03 101.33 T (e been thro) 276.88 101.33 T (wn by one of the conte) 321.06 101.33 T (xt\325) 412.28 101.33 T (s internal methods when it) 422.84 101.33 T (disco) 84 89.33 T (v) 104.96 89.33 T (ered that the name being processed is be) 109.81 89.33 T (yond the scope of the conte) 271.01 89.33 T (xt. The process by which the e) 380.56 89.33 T (xception) 502.33 89.33 T (is produced is dependent on the implementation of the conte) 84 77.33 T (xt.) 325.21 77.33 T 34 624 36 692 R V 34 580 36 590 R V 34 544 36 566 R V 34 253 36 265 R V 34 209 36 219 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "4" 8 %%Page: "5" 9 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Implementing the Context Interface) 416.08 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (5) 303.5 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X -0.2 (For example, when attempting to continue a) 108 712 P 4 10 Q -0.39 (bind\050\051) 321.27 712 P 0 12 Q -0.2 (operation, the code in the provider might) 362.87 712 P (look as follows:) 108 698 T 4 10 Q (public void bind\050Name name, Object obj\051 throws NamingException {) 140.4 679.33 T (...) 165.6 667.33 T (try {) 165.6 655.33 T (internal_bind\050name, obj\051;) 190.8 643.33 T (...) 190.8 631.33 T (} catch \050CannotProceedException e\051 {) 165.6 619.33 T (Context cctx =) 190.8 607.33 T (NamingManager.getContinuationContext\050e\051;) 280.8 607.33 T (cctx.bind\050e.getRemainingName\050\051, obj\051;) 190.8 595.33 T (}) 165.6 583.33 T (}) 140.4 571.33 T 0 12 Q 0.44 (In this example,) 108 552 P 4 10 Q 0.88 (bind\050\051) 189.31 552 P 0 12 Q 0.44 ( depends on an internal method,) 225.31 552 P 4 10 Q 0.88 (internal_bind\050\051,) 384.26 552 P 0 12 Q 0.44 ( to carry out the) 480.26 552 P 0.2 (actual work of the bind and to throw a) 108 538 P 4 10 Q 0.41 (CannotProceedException) 296.12 538 P 0 12 Q 0.2 ( when it discovers that it is) 428.12 538 P 1.39 (going beyond this naming system. The exception is then passed to) 108 524 P 4 10 Q 2.79 (getContinuationCon-) 444 524 P 0.3 (text\050\051) 108 510 P 0 12 Q 0.15 ( in order to continue the operation.) 144 510 P 0.15 ( I) 311.2 510 P 0.15 (f the operation cannot be continued, the continua-) 318.34 510 P 1.5 (tion context will throw the) 108 496 P 4 10 Q 3 (CannotProceedException) 245.84 496 P 0 12 Q 1.5 ( to the caller of the original) 377.84 496 P 4 10 Q 3 (bind\050\051) 522 496 P 0 12 Q (operation.) 108 482 T 3 14 Q (2.3) 54 454.67 T ( Referrals) 75 454.67 T 0 12 Q -0.05 (LDAP-style directory services support the notion of) 108 434 P 1 F -0.05 (referrals) 359.96 434 P 0 F -0.05 ( for redirecting a client\325s request) 401.96 434 P 1.53 (to another server. A referral differs from the federation continuation mechanism described) 108 420 P -0.7 (above in that a referral may be presented to the JNDI client, who then decides whether to follow) 108 406 P -0.1 (it, whereas a) 108 392 P 4 10 Q -0.2 (CannotProceedException) 171.02 392 P 0 12 Q -0.1 ( should be returned to the client only when no further) 303.02 392 P 0.21 (progress is possible. Another difference is that an individual service provider offers the capa-) 108 378 P -0.17 (bility of continuing the operation \050and itself determines the mechanism for doing so\051. In a fed-) 108 364 P 0.98 (eration, the mechanism of continuation is beyond the scope of individual service providers:) 108 350 P 1.01 (individual providers benefit from the common federation mechanism provided by the JNDI) 108 336 P (SPI.) 108 322 T 0.23 (A service provider that supports referrals defines a subclass of) 108 302 P 4 10 Q 0.46 (ReferralException) 412.22 302 P 0 12 Q 0.23 ( and pro-) 514.22 302 P -0.36 (vides implementations for its two abstract methods.) 108 288 P 4 10 Q -0.73 (getReferralContext\050\051) 356.11 288 P 0 12 Q -0.36 ( returns a context) 476.11 288 P -0.1 (at which to carry on the operation, and) 108 274 P 4 10 Q -0.19 (getReferralInfo\050\051) 295.52 274 P 0 12 Q -0.1 ( returns information on where the) 397.52 274 P (referral leads to, in a format appropriate to the service provider) 108 260 T (.) 410.24 260 T -0.1 (T) 108 240 P -0.1 (he environment) 115.33 240 P -0.1 (property) 193.11 240 P 4 10 Q -0.21 (java.naming.referral) 236.66 240 P 0 12 Q -0.1 ( s) 356.66 240 P -0.1 (pecifies) 364.23 240 P -0.1 (how t) 404.44 240 P -0.1 (he service provider should) 431.34 240 P -0.22 (treat referrals.) 108 226 P -0.22 ( If the service provider is asked) 175.08 226 P -0.22 (to throw an exception when a referral is encoun-) 327.16 226 P -0.33 (tered,) 108 212 P -0.33 ( or if the provider encounters problems following a referral, it throws a) 134.99 212 P 4 10 Q -0.65 (ReferralExcep-) 474 212 P 1.19 (tion) 108 198 P 0 12 Q 0.59 ( to the application. To continue the operation, the application re-invokes the method on) 132 198 P -0.4 (the referral context using the same arguments it supplied to the original method. The following) 108 184 P (code sample shows how) 108 170 T 4 10 Q (ReferralException) 227.32 170 T 0 12 Q ( may be used by an application:) 329.32 170 T 0 9.6 Q (1) 481.3 174.8 T 54 96 558 110.98 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 96 558 110.98 R 7 X 0 0 0 1 0 0 0 K V 63 108.96 207 108.96 2 L V 0.5 H 2 Z 0 X N 0 0 612 792 C 0 10 Q 0 X 0 0 0 1 0 0 0 K (1.) 72 89.33 T -0.05 (Note that this is code in the) 84 89.33 P 1 F -0.05 (application) 195.61 89.33 P 0 F -0.05 (. In \322Continuing an Operation in a Federation\323, the code sample presented) 241.17 89.33 P (is code in the) 84 77.33 T 1 F (service pr) 139.55 77.33 T (o) 178.81 77.33 T (vider) 183.71 77.33 T 0 F (.) 203.71 77.33 T 34 506 36 518 R V 34 318 36 330 R V 34 284 36 296 R V 34 208 36 268 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "5" 9 %%Page: "6" 10 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Implementing the Context Interface) 416.08 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (6) 303.5 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X (while \050true\051 {) 140.4 713.33 T (try {) 165.6 701.33 T (bindings = ctx.listBindings\050name\051;) 190.8 689.33 T (while \050bindings.hasMore\050\051\051 {) 190.8 677.33 T (b =) 216 665.33 T (\050Binding\051) 240 665.33 T (bindings.next\050\051;) 300 665.33 T (...) 216 653.33 T (}) 190.8 641.33 T (break;) 190.8 629.33 T (} catch \050ReferralException e\051 {) 165.6 617.33 T (ctx = e.getReferralContext\050\051;) 190.8 605.33 T (}) 165.6 593.33 T (}) 140.4 581.33 T 0 12 Q -0.42 (This convention of re-invoking the method using the original arguments is a simple one for ap-) 108 562 P -0.36 (plications to follow.) 108 548 P -0.36 ( T) 203.62 548 P -0.36 (his places the burden on the implementation of the) 213.59 548 P 4 10 Q -0.72 (ReferralException) 456 548 P 0 12 Q -0.23 (to supply enough information to the implementation of the referral context for the operation to) 108 534 P 0 (be continued.) 108 520 P 0 ( N) 172.66 520 P 0 (ote that this will likely render some of the arguments passed to the re-invoked) 184.33 520 P 0.26 (operation superfluous.) 108 506 P 0.26 ( T) 215.57 506 P 0.26 (he referral context implementation is free to ignore any redundant or) 226.16 506 P (unneeded information.) 108 492 T 1.21 (It is possible for an operation to return results in addition to a referral. For example, when) 108 472 P 0.36 (searching a context, the server might return several results in addition to a few referrals as to) 108 458 P -0.06 (where to obtain further results. These results and referrals might be interleaved at the protocol) 108 444 P -0.32 (level. If referrals require user interaction \050i.e. not followed automatically\051, the service provider) 108 430 P 0.22 (should return the results through the search enumeration first. When the results have been re-) 108 416 P -0.19 (turned, the referral exception can then be thrown. This allows a simple programming model to) 108 402 P 0.14 (be used when presenting the user with a clear relationship between a referral and its set of re-) 108 388 P (sults.) 108 374 T 3 14 Q (2.4) 54 326.67 T ( Schema Support) 75 326.67 T 0 12 Q -0.45 (JNDI defines the) 108 306 P 4 10 Q -0.89 (Attribute) 190.98 306 P 0 12 Q -0.45 ( class for representing an attribute in a directory. An attribute con-) 244.98 306 P -0.12 (sists of an attribute identifier \050a string\051 and a set of attribute values, which can be any Java ob-) 108 292 P 1.8 (jects. There are also methods defined in the) 108 278 P 4 10 Q 3.6 (Attribute) 334.02 278 P 0 12 Q 1.8 ( class for obtaining the attribute\325s) 388.02 278 P (definition and syntax definition from the directory\325s schema.) 108 264 T 4 10 Q (public class Attribute {) 140.4 245.33 T -0.9 (public) 165.6 233.33 P -0.9 (DirContext g) 206.7 233.33 P -0.9 (etAttributeDefinition\050\051) 277.8 233.33 P -0.9 ( throws NamingException;) 415.8 233.33 P (public) 165.6 221.33 T (DirContext g) 207.6 221.33 T (etAttributeSyntaxDefinition\050) 279.6 221.33 T (\051) 447.6 221.33 T (throws NamingException;) 190.8 209.33 T (...) 165.6 197.33 T (}) 140.4 185.33 T 0 12 Q 1.37 (The default implementation of) 108 166 P 4 10 Q 2.74 (Attribute) 262.79 166 P 0 12 Q 1.37 ( does not provide real implementations for these) 316.79 166 P 0.87 (methods. A directory provider that has support for such schema information should provide) 108 152 P -0.14 (subclasses of) 108 138 P 4 10 Q -0.27 (Attribute) 173.72 138 P 0 12 Q -0.14 ( that implement these two methods based on its schema mechanisms.) 227.72 138 P 0.49 (The provider should then return instances of these subclasses when asked to return instances) 108 124 P -0.3 (of) 108 110 P 4 10 Q -0.61 (Attribute) 120.69 110 P 0 12 Q -0.3 (. The provider, when it receives an unextended) 174.69 110 P 4 10 Q -0.61 (Attribute) 405.59 110 P 0 12 Q -0.3 ( instance, should use) 459.59 110 P 0.37 (reasonable defaults to determine the attribute\325s definition and syntax, using information such) 108 96 P (as the attribute values\325 class names or conventions used for the attribute identifier.) 108 82 T 34 662 36 672 R V 34 350 36 556 R V 34 206 36 240 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "6" 10 %%Page: "7" 11 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Implementing the Context Interface) 416.08 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (7) 303.5 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X (The) 108 712 T 4 10 Q (DirContext) 129.66 712 T 0 12 Q ( i) 189.66 712 T (nterface contains schema-related methods:) 196 712 T 4 10 Q (public class) 140.4 693.33 T (DirContext {) 218.4 693.33 T (...) 165.6 681.33 T (public) 165.6 669.33 T (DirContext g) 207.6 669.33 T (etSchema\050Name name\051 throws NamingException;) 279.6 669.33 T (public) 165.6 657.33 T (DirContext g) 207.6 657.33 T (etSchema\050String name\051 throws NamingException;) 279.6 657.33 T (public) 165.6 633.33 T (DirContext g) 207.6 633.33 T (etSchemaClassDefinition\050Name name\051) 279.6 633.33 T (throws NamingException;) 190.8 621.33 T (public) 165.6 609.33 T (DirContext g) 207.6 609.33 T (etSchemaClassDefinition\050String name\051) 279.6 609.33 T (throws NamingException;) 190.8 597.33 T (}) 140.4 573.33 T 1.28 (getSchema\050\051) 108 554 P 0 12 Q 0.64 ( returns the schema tree for the named object, while) 174 554 P 4 10 Q 1.28 (getSchemaClassDefini-) 432 554 P 0.34 (tion\050\051) 108 540 P 0 12 Q 0.17 ( returns the schema class definition for the named object. Some systems have just one) 144 540 P -0.02 (global schema and, regardless of the value of the) 108 526 P 4 10 Q -0.03 (name) 345.13 526 P 0 12 Q -0.02 ( argument, will return the same schema) 369.13 526 P -0.68 (tree. Others support finer grained schema definitions, and may return different schema trees de-) 108 512 P (pending on which context is being examined.) 108 498 T 3 14 Q (2.5) 54 470.67 T ( Java Object Support) 75 470.67 T 0 12 Q 0.04 (JNDI encourages providers to supply implementations of the) 108 450 P 4 10 Q 0.07 (Context) 403.58 450 P 0 12 Q 0.04 ( and) 445.58 450 P 4 10 Q 0.07 (DirContext) 468.97 450 P 0 12 Q 0.04 ( i) 528.97 450 P 0.04 (nter-) 535.34 450 P -0.09 (faces that are natural and intuitive for the Java programmer. For example, when looking up a) 108 436 P 0.67 (printer name in the namespace, it is natural for the Java programmer to expect to get back a) 108 422 P (printer object on which to operate.) 108 408 T 4 10 Q (Context ctx = new InitialContext\050\051;) 140.4 389.33 T (Printer prt = \050Printer\051ctx.lookup\050somePrinterName\051;) 140.4 377.33 T (prt.print\050someStreamOfData\051;) 140.4 365.33 T 0 12 Q 0.17 (However, what is bound in the underlying directory or naming services typically are not Java) 108 346 P 0.25 (objects but merely reference information which can be used to locate or access the actual ob-) 108 332 P -0.53 (ject. This case is quite common, especially for Java applications accessing and sharing services) 108 318 P -0.29 (in an existing installed base. The reference in effect acts as a \322pointer\323 to the real object. In the) 108 304 P -0.44 (printer example, what is actually bound might be information on how to access the printer \050e.g.) 108 290 P 0.39 (its protocol type, its server address\051. To enable this easy-to-use model for the application de-) 108 276 P 0.65 (veloper, the provider must do the transformation of the data stored in the underlying service) 108 262 P (into the appropriate Java objects.) 108 248 T -0.18 (There are different ways to achieve this goal. One provider might have access to all the imple-) 108 228 P 0.1 (mentation classes of objects that a directory can return; another provider might have a special) 108 214 P -0.31 (class loader for locating implementation classes for its objects. JNDI supports automatic gen-) 108 200 P -0.6 (eration of objects using information bound in the namespace via the use of the) 108 186 P 4 10 Q -1.19 (Reference) 478.27 186 P 0 12 Q -0.6 ( class) 532.27 186 P 0.37 (\050see) 108 172 P 0.37 (\322References and Referenceable\323 on page) 130.69 172 P 0.37 (17) 331.76 172 P 0.37 (\051 and URLs \050see) 343.76 172 P 0.37 (\322URL Context Factory\323 on) 426.56 172 P -0.42 (page) 108 158 P -0.42 (16) 133.66 158 P -0.42 (\051. By providing the) 145.66 158 P 4 10 Q -0.84 (Reference) 243.48 158 P 0 12 Q -0.42 ( class and a common mechanism for converting a) 297.48 158 P 4 10 Q -0.84 (Ref-) 534 158 P 1.71 (erence) 108 144 P 0 12 Q 0.85 ( into the object identified by the) 144 144 P 4 10 Q 1.71 (Reference) 306.3 144 P 0 12 Q 0.85 (, JNDI encourages different applications) 360.3 144 P 1.2 (and system providers to utilize this mechanism, rather than invent separate mechanisms on) 108 130 P 0.9 (their own. However, this does not preclude providers from using their own mechanisms for) 108 116 P (achieving the same goal.) 108 102 T 34 690 36 720 R V 34 654 36 676 R V 34 630 36 640 R V 34 606 36 616 R V 34 446 36 458 R V 34 154 36 180 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "7" 11 %%Page: "8" 12 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Implementing the Context Interface) 416.08 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (8) 303.5 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X -0.71 (To enable this feature in their contexts, the service provider can use the) 108 712 P 4 10 Q -1.42 (getObjectInstance\050\051) 444 712 P 0 12 Q (method from) 108 698 T 4 10 Q (NamingManager) 173.33 698 T 0 12 Q ( to convert information bound in the namespace into objects.) 251.33 698 T 4 10 Q (Object NamingManager.getObjectInstance\050Object refInfo) 140.4 679.33 T (,) 458.4 679.33 T (Name name,) 367.2 667.33 T (Context nameCtx,) 367.2 655.33 T (Hashtable env\051) 367.2 643.33 T (;) 451.2 643.33 T 0 12 Q 0.24 (For example, suppose printers are represented in the namespace using) 108 624 P 4 10 Q 0.47 (Reference) 448.63 624 P 0 12 Q 0.24 (s. To turn a) 502.63 624 P -0.1 (printer) 108 610 P 4 10 Q -0.2 (Reference) 142.89 610 P 0 12 Q -0.1 ( into a live) 196.89 610 P 4 10 Q -0.2 (Printer) 250.5 610 P 0 12 Q -0.1 ( object, the service provider would use the) 292.5 610 P 4 10 Q -0.2 (getObject-) 498 610 P -1.48 (Instance\050\051) 108 596 P 0 12 Q -0.74 ( method. In this way, the underlying service need not know anything specific about) 168 596 P (printers.) 108 582 T 4 10 Q (Object lookup\050Name name\051 {) 140.4 563.33 T (...) 165.6 551.33 T (Reference ref =) 165.6 539.33 T 4 9 Q (<) 261.6 539.33 T 5 F (some printer reference looked up from directory) 267 539.33 T 4 F (>) 520.8 539.33 T 4 10 Q (;) 526.2 539.33 T (return \050NamingManager.getObjectInstance\050ref,) 165.6 527.33 T (name, this, env\051) 435.6 527.33 T (\051;) 531.6 527.33 T (}) 140.4 515.33 T 0 12 Q -0.46 (When constructing objects to be returned for the following JNDI methods, the service provider) 108 496 P 1.58 (should call) 108 482 P 4 10 Q 3.16 (getObjectInstance\050\051) 166.49 482 P 0 12 Q 1.58 (, or its own mechanism for generating objects from the) 280.49 482 P (bound information, if it wants this feature to be enabled in their contexts.) 108 468 T 4 10 Q (javax.naming.) 140.4 449.33 T (Context.lookup\050\051) 218.4 449.33 T (javax.naming.) 140.4 437.33 T (Context.lookupLink\050\051) 218.4 437.33 T (javax.naming.) 140.4 425.33 T (Binding.getObject\050\051) 218.4 425.33 T (javax.naming.) 140.4 413.33 T (directory.SearchResult.getObject\050\051) 218.4 413.33 T 0 12 Q 0.05 (For) 108 394 P 4 10 Q 0.09 (Binding) 127.71 394 P 0 12 Q 0.05 ( and) 169.71 394 P 4 10 Q 0.09 (SearchResult) 193.14 394 P 0 12 Q 0.05 (, the provider should either pass an object that is the result of) 265.14 394 P 0.03 (calling) 108 380 P 4 10 Q 0.06 (getObjectInstance\050\051) 143.7 380 P 0 12 Q 0.03 ( or its equivalent to the constructor, or override the default im-) 257.7 380 P 0.2 (plementation of) 108 366 P 4 10 Q 0.4 (Binding) 187.06 366 P 0 12 Q 0.2 ( and) 229.06 366 P 4 10 Q 0.4 (SearchResult) 252.79 366 P 0 12 Q 0.2 ( so that their) 324.79 366 P 4 10 Q 0.4 (getObject\050\051) 388.27 366 P 0 12 Q 0.2 ( implementations call) 454.27 366 P 4 10 Q (getObjectInstance\050\051) 108 352 T 0 12 Q ( or its equivalent before returning.) 222 352 T 3 14 Q (2.6) 54 324.67 T (Context) 78.5 324.67 T (Environment) 129.43 324.67 T ( S) 208.77 324.67 T (upport) 220.05 324.67 T 0 12 Q 0.03 (Each instance of) 108 304 P 4 10 Q 0.06 (Context) 190.4 304 P 0 12 Q 0.03 ( \050or) 232.4 304 P 4 10 Q 0.06 (DirContext) 252.46 304 P 0 12 Q 0.03 (\051) 312.46 304 P 0.03 ( can have associated with it a) 316.46 304 P 0.03 (n) 456.62 304 P 1 F 0.03 (environment) 465.65 304 P 0 F 0.03 (w) 528.67 304 P 0.03 (hich) 537.34 304 P 0.48 (contains p) 108 290 P 0.48 (references expressed by the application of how it would like to access the services) 157.48 290 P -0.3 (offered by the context. Examples of) 108 276 P -0.3 ( information found in an) 283.84 276 P -0.3 ( environment) 399.95 276 P -0.3 ( a) 463.31 276 P -0.3 (re security) 471.34 276 P -0.3 (-related) 521.35 276 P 1.73 (information t) 108 262 P 1.73 (hat specify the user\325s credentials and desired level of security \050none, simple,) 172.73 262 P -0.48 (strong\051, and) 108 248 P -0.48 ( c) 164.84 248 P -0.48 (onfiguration information, such as the server to use.) 172.68 248 P -0.48 (A) 416.11 248 P -0.48 (ppendix A of the) 424.77 248 P 3 F -0.48 (JNDI API) 506.82 248 P 0 F (document) 108 234 T ( specifies a preliminary list of environment properties.) 155.33 234 T 0.19 (E) 108 214 P 0.19 (nvironment) 115.33 214 P 0.19 (properties a) 173.85 214 P 0.19 (re defined generically in order to ensure maximum portability. Indi-) 230.36 214 P 0.04 (vidual service providers should map these generic) 108 200 P 0.04 (properties t) 351.23 200 P 0.04 (o characteristics appropriate for) 405.6 200 P 0.67 (their service.) 108 186 P 0.67 ( Properties t) 170.65 186 P 0.67 (hat are not relevant to a provider are silently ignored.) 230 186 P 0.67 (The en) 495.01 186 P 0.67 (viron-) 528.67 186 P -0.68 (ment) 108 172 P -0.68 ( m) 132 172 P -0.68 (ay also be used for) 143.65 172 P -0.68 ( storing s) 230.9 172 P -0.68 (ervice-specific properties) 273.55 172 P -0.68 ( or preferences,) 394.48 172 P -0.68 ( in which case their) 467.41 172 P (applicability across different providers is limited.) 108 158 T 3 F (2.6.1) 66 135 T (Initializing a Context\325s Environment) 108 135 T 0 F 0.11 (Wh) 108 115 P 0.11 (en creating an initial context \050either) 125.33 115 P 4 10 Q 0.21 (InitialContext) 299.92 115 P 0 12 Q 0.11 ( or) 383.92 115 P 4 10 Q 0.21 (InitialDirContext) 400.13 115 P 0 12 Q 0.11 (\051) 502.13 115 P 0.11 (, the appli-) 506.13 115 P -0.54 (cation can supply a) 108 101 P -0.54 (n e) 198.7 101 P -0.54 (nvironment) 212.49 101 P -0.54 ( a) 267.82 101 P -0.54 (s a parameter) 275.61 101 P -0.54 (. The parameter is represented as a) 338.5 101 P 4 10 Q -1.08 (Hashtable) 504 101 P 0 12 Q -0.68 (or any of its subclasses \050e.g.) 108 87 P 4 10 Q -1.36 (Properties) 241.88 87 P 0 12 Q -0.68 (\051. The service provider should make a copy of the con-) 301.89 87 P 34 640 36 686 R V 34 524 36 534 R V 34 410 36 456 R V 34 83 36 334 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "8" 12 %%Page: "9" 13 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Implementing the Context Interface) 416.08 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (9) 303.5 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X 0.5 (tents of the environment so that changes by the caller to the argument would not affect what) 108 712 P 0.14 (the provider sees and vice versa. Note also that if the environment argument is a) 108 698 P 4 10 Q 0.28 (Properties) 498 698 P 0 12 Q 1.91 (instance, enumeration and) 108 684 P 4 10 Q 3.81 (Hashtable.get\050\051) 242.36 684 P 0 12 Q 1.91 ( on the argument only examine the top-level) 332.36 684 P -0.66 (properties \050not any nested defaults\051. This is the expected behavior. The provider is not expected) 108 670 P (to retrieve or enumerate values in the) 108 656 T 4 10 Q (Properties) 289.62 656 T 0 12 Q ( instance\325s nested defaults.) 349.62 656 T 3 F (2.6.2) 66 633 T (Inheritance) 108 633 T 0 F 0.86 (The environment is inherited from parent to child as the context methods proceed from one) 108 613 P -0.35 (context to the next. The entire environment of a context instance is inherited by the child con-) 108 599 P 0.15 (text instances, regardless of whether certain properties within the environment are ignored by) 108 585 P (a particular context.) 108 571 T -0.45 (A) 108 551 P -0.45 ( service provider must pass on the environment) 116.66 551 P -0.45 ( f) 340.46 551 P -0.45 (rom one context instance to the next in order) 347 551 P -0.57 (to implement this \322inheritance\323 trait of environment) 108 537 P -0.57 (s.) 354.52 537 P -0.57 ( Within one provider it can do so by pass-) 362.19 537 P -0.41 (ing the) 108 523 P -0.41 (environment a) 143.19 523 P -0.41 (s an argument to the) 211.77 523 P 4 10 Q -0.81 (Context) 310.05 523 P 0 12 Q -0.41 ( constructor, or to the) 352.05 523 P 4 10 Q -0.81 (NamingManager.ge-) 456 523 P (tObjectInstance\050\051) 108 509 T 0 12 Q ( method for creating) 210 509 T 4 10 Q (Context) 310.64 509 T 0 12 Q ( instances.) 352.64 509 T 0.71 (A) 108 489 P 0.71 (cross providers in a federation, this is supported by passing the environment as part of the) 116.66 489 P 4 10 Q 2.68 (CannotProceedException) 108 475 P 0 12 Q 1.34 ( parameter of the) 240 475 P 4 10 Q 2.68 (NamingManager.getContinuationContext\050\051) 330 475 P 0 12 Q 0.71 (method, which in turn will use this environment when creating an instance of the context in) 108 461 P (which to continue the operation) 108 447 T (.) 259.98 447 T -0.37 (Inheritance can be implemented in any way as long as it preserves the semantics that each con-) 108 427 P 0.08 (text has its own view of its environment. For example, a copy-on-write implementation could) 108 413 P (be used to defer copying of the environment until it is absolutely necessary.) 108 399 T 3 F (2.6.3) 66 376 T (Updates to the Environment) 108 376 T 0 F -0.64 (The) 108 356 P -0.64 (environment of a c) 129.02 356 P -0.64 (ontext) 217.4 356 P -0.64 (can be updated v) 249.76 356 P -0.64 (ia the use of the) 328.8 356 P 4 10 Q -1.29 (addToEnvironment\050\051 and re-) 404.57 356 P (moveFromEnvironment\050\051) 108 342 T 0 12 Q ( m) 234 342 T (ethod) 246.34 342 T (s) 273 342 T ( in the) 277.67 342 T 4 10 Q (Context) 310.67 342 T 0 12 Q ( interface) 352.67 342 T (.) 397.64 342 T 4 10 Q (public interface Context {) 140.4 323.33 T (...) 165.6 311.33 T (public) 165.6 299.33 T (Object a) 207.6 299.33 T (ddToEnvironment\050) 255.6 299.33 T (String propName, Object propVal\051) 351.6 299.33 T (throws NamingException;) 190.8 287.33 T (public) 165.6 263.33 T (Object r) 207.6 263.33 T (emoveFromEnvironment\050) 255.6 263.33 T (String propName\051) 381.6 263.33 T (throws NamingException;) 190.8 251.33 T (}) 140.4 239.33 T 0 12 Q -0.02 (These methods update the environment) 108 220 P -0.02 ( o) 296.55 220 P -0.02 (f this instance of) 305.52 220 P 4 10 Q -0.05 (Context) 388.09 220 P 0 12 Q -0.02 (.) 430.09 220 P -0.02 (A) 436.07 220 P -0.02 (n environment) 444.73 220 P -0.02 (property) 517.34 220 P -0.52 (t) 108 206 P -0.52 (hat is not relevant to the provider is silently ignored but maintained as part of) 111.34 206 P -0.52 ( the e) 474.71 206 P -0.52 (nvironment) 499.67 206 P -0.52 (.) 555 206 P 0.55 (The updated environment) 108 192 P 0.55 ( a) 232.42 192 P 0.55 (ffect) 241.3 192 P 0.55 (s) 263.28 192 P 0.55 ( this instance of) 267.95 192 P 4 10 Q 1.11 (Context) 348.82 192 P 0 12 Q 0.55 (,) 390.82 192 P 0.55 ( and will be inherited by any) 393.82 192 P 0.55 (n) 538.01 192 P 0.55 (ew) 544.01 192 P 1.06 (child) 108 178 P 4 10 Q 2.11 (Context) 136.06 178 P 0 12 Q 1.06 ( instance) 178.06 178 P 1.06 (s, but does not affect any) 221.44 178 P 4 10 Q 2.11 (Context) 350.76 178 P 0 12 Q 1.06 ( instances already in existence. A) 392.76 178 P 0.09 (lookup of the empty name on a) 108 164 P 4 10 Q 0.17 (Context) 260.92 164 P 0 12 Q 0.09 ( will return a new) 302.92 164 P 4 10 Q 0.17 (Context) 391.01 164 P 0 12 Q 0.09 ( instance with an environ-) 433.01 164 P (ment inherited as with any other child.) 108 150 T 34 146 36 720 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "9" 13 %%Page: "10" 14 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (The Initial Context) 482.44 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (10) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X (3) 81 708 T (The Initial Context) 108 708 T 0 12 Q -0.57 (Since all JNDI methods are performed relative to a context, an application needs a starting con-) 108 680 P -0.08 (text in order to invoke JNDI methods. This starting context is referred to as the) 108 666 P 1 F -0.08 (initial context) 488.74 666 P 0 F -0.08 (.) 555 666 P -0.5 (The bindings in the initial context are determined by policies set forth by the initial context ser-) 108 652 P 4.31 (vice provider, perhaps using standard policies for naming global and enterprise-wide) 108 638 P 1.67 (namespaces. For example, the initial context might contain a binding to the Internet DNS) 108 624 P 0.09 (namespace, a binding to the enterprise-wide namespace, and a binding to a personal directory) 108 610 P (belonging to the user who is running the application.) 108 596 T (An application obtains an initial context by making the following call:) 108 576 T 4 10 Q (Context ctx = new InitialContext\050\051;) 140.4 557.33 T 0 12 Q 0.36 (An alternate constructor allows a) 108 538 P 0.36 (n environment t) 268.08 538 P 0.36 (o be passed as an argument.) 344.8 538 P 0.36 ( T) 480.58 538 P 0.36 (his allows the) 491.27 538 P 0.12 (application to pass in preferences or security information to be used in the construction of the) 108 524 P (initial context.) 108 510 T 4 10 Q (Hashtable e) 140.4 491.33 T (nv = new) 206.4 491.33 T (Hashtable\0505, 0.75\051) 260.4 491.33 T (;) 368.4 491.33 T 4 8 Q (1) 374.4 495.33 T 4 10 Q (env.put\050\322) 140.4 479.33 T (java.naming.s) 194.4 479.33 T (ecurity.principal\323, \322jsmith\323\051;) 272.4 479.33 T (env.put\050\322) 140.4 467.33 T (java.naming.s) 194.4 467.33 T (ecurity.credentials\323, \322xxxxxxx\323\051;) 272.4 467.33 T (Context ctx = new InitialContext\050env\051;) 140.4 455.33 T 0 12 Q (Subsequent to getting an initial context, the application can invoke) 108 436 T 4 10 Q (Context) 430.98 436 T 0 12 Q ( methods.) 472.98 436 T 4 10 Q (Object obj = ctx.lookup\050\322this/is/a/test\323\051;) 140.4 417.33 T 0 12 Q 0 (The) 108 398 P 4 10 Q 0.01 (InitialContext) 129.66 398 P 0 12 Q 0 ( class selects an actual initial context implementation using a default al-) 213.66 398 P 0.75 (gorithm that can be overridden by installing an) 108 384 P 1 F 0.75 (initial context factory builder) 341.96 384 P 0 F 0.75 ( \050described be-) 485.2 384 P (low\051.) 108 370 T -0.19 (The) 108 350 P 4 10 Q -0.38 (InitialDirContext) 129.47 350 P 0 12 Q -0.19 ( i) 231.47 350 P -0.19 (s an extension of) 237.62 350 P 4 10 Q -0.38 (InitialContext) 320.84 350 P 0 12 Q -0.19 (. It is used for performing direc-) 404.84 350 P 0.26 (tory operations using the initial context. The algorithms and policies described in this section) 108 336 P 0.25 (also apply to) 108 322 P 4 10 Q 0.49 (InitialDirContext) 173.07 322 P 0 12 Q 0.25 (.) 275.07 322 P 0.25 ( Places where) 278.07 322 P 4 10 Q 0.49 (DirContext) 347.79 322 P 0 12 Q 0.25 ( i) 407.79 322 P 0.25 (s required instead of) 414.37 322 P 4 10 Q 0.49 (Context) 516 322 P 0 12 Q (have been noted.) 108 308 T 3 14 Q (3.1) 54 280.67 T ( Implementing An Initial Context) 75 280.67 T 0 12 Q -0.73 (An initial context implements the) 108 260 P 4 10 Q -1.45 (Context) 268.04 260 P 0 12 Q -0.73 ( or) 310.04 260 P 4 10 Q -1.45 (DirContext) 324.59 260 P 0 12 Q -0.73 ( i) 384.59 260 P -0.73 (nterface. Its implementation should) 390.2 260 P (follow the same guidelines outlined in \322Implementing the Context Interface\323 on page) 108 246 T (2.) 520.61 246 T 0.31 (In addition to the implementation classes for) 108 226 P 4 10 Q 0.62 (Context) 327.14 226 P 0 12 Q 0.31 ( and/or) 369.14 226 P 4 10 Q 0.62 (DirContext) 406.42 226 P 0 12 Q 0.31 (,) 466.42 226 P 0.31 ( the provider must) 469.42 226 P 0.24 (also supply an implementation for) 108 212 P 4 10 Q 0.47 (InitialContextFactory) 276.18 212 P 0 12 Q 0.24 (, which is responsible for gener-) 402.18 212 P 0.09 (ating instances of the initial context.) 108 198 P 4 10 Q 0.19 (InitialContextFactory) 285.54 198 P 0 12 Q 0.09 ( contains a single method,) 411.54 198 P 4 10 Q 0.19 (ge-) 540 198 P (tInitialContext\050\051) 108 184 T 0 12 Q (.) 210 184 T 54 84 558 98.98 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 84 558 98.98 R 7 X 0 0 0 1 0 0 0 K V 63 96.96 207 96.96 2 L V 0.5 H 2 Z 0 X N 0 0 612 792 C 0 10 Q 0 X 0 0 0 1 0 0 0 K (1.) 72 77.33 T (Y) 84 77.33 T (ou can also use a subclass of) 90.12 77.33 T 4 F (Hashtable) 207.04 77.33 T 0 F ( \050e.g.) 261.04 77.33 T 4 F (Properties) 283.81 77.33 T 0 F (\051 for this.) 343.81 77.33 T 34 534 36 546 R V 34 464 36 498 R V 34 346 36 358 R V 34 318 36 330 R V 34 256 36 268 R V 34 222 36 234 R V 34 74 36 84 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "10" 14 %%Page: "11" 15 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (The Initial Context) 482.44 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (11) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X (public interface InitialContextFactory {) 140.4 713.33 T (public Context getInitialContext\050) 165.6 701.33 T (Hashtable env\051) 363.6 701.33 T (throws NamingException;) 190.8 689.33 T (}) 140.4 677.33 T 0 12 Q -0.05 (This method generates instances of) 108 658 P 4 10 Q -0.09 (Context) 279.4 658 P 0 12 Q -0.05 ( or) 321.4 658 P 4 10 Q -0.09 (DirContext) 337.3 658 P 0 12 Q -0.05 ( t) 397.3 658 P -0.05 (hat serve as initial contexts. The) 403.59 658 P 0.15 (implementation class for) 108 644 P 4 10 Q 0.31 (InitialContextFactory) 230.12 644 P 0 12 Q 0.15 ( must be public and contain a public) 356.12 644 P 4 10 Q 0.31 (null) 534 644 P 0 12 Q (constructor. Appendix A contains an example of an) 108 630 T 4 10 Q (InitialContextFactory) 358.28 630 T 0 12 Q (.) 484.28 630 T 3 14 Q (3.2) 54 602.67 T ( Making An Initial Context Implementation Available to JNDI) 75 602.67 T 0 12 Q (There are three ways in which an initial context implementation is made available to JNDI:) 108 582 T (\245) 115 562 T (The) 126 562 T 4 10 Q (java.naming.factory.initial) 147.66 562 T 0 12 Q ( e) 309.66 562 T (nvironment or system property.) 317.99 562 T (\245) 115 542 T (URL Context Implementations.) 126 542 T (\245) 115 522 T (An initial context implementation factory.) 126 522 T 3 F (3.2.1) 66 479 T (The) 108 479 T (java.naming.factory.initial P) 131 479 T (roperty) 277.67 479 T 0 F 0.78 (The property) 108 459 P 4 10 Q 1.57 (java.naming.factory.initial) 174.88 459 P 0 12 Q 0.78 ( c) 336.88 459 P 0.78 (ontains the fully-qualified class name of an) 346 459 P 0.31 (initial context factory. The class must implement the) 108 445 P 4 10 Q 0.61 (InitialContextFactory) 366.09 445 P 0 12 Q 0.31 ( interface and) 492.09 445 P -0.35 (have a public) 108 431 P 4 10 Q -0.7 (null) 173.93 431 P 0 12 Q -0.35 ( constructor. JNDI will load the initial context factory class and then invoke) 197.93 431 P 4 10 Q -1.02 (getInitialContext\050\051) 108 417 P 0 12 Q -0.51 ( on it to obtain a) 222 417 P 4 10 Q -1.02 (Context) 300.28 417 P 0 12 Q -0.51 ( or) 342.28 417 P 4 10 Q -1.02 (DirContext) 357.26 417 P 0 12 Q -0.51 ( i) 417.26 417 P -0.51 (nstance to be used as the ini-) 423.08 417 P (tial context.) 108 403 T 1.33 (An application that wants to use this initial context must supply the) 108 383 P 4 10 Q 2.67 (java.naming.facto-) 450 383 P 5.52 (ry.initial) 108 369 P 0 12 Q 2.76 ( p) 168 369 P 2.76 (roperty either in the environment passed to the) 179.76 369 P 4 10 Q 5.52 (InitialContext) 428.48 369 P 0 12 Q 2.76 ( or) 512.48 369 P 4 10 Q 5.52 (Ini-) 534 369 P -0.25 (tialDirContext) 108 355 P 0 12 Q -0.12 ( c) 192 355 P -0.12 (onstructors, or as one of the program\325s system properties. If the property is) 200.21 355 P (supplied as part of the environment) 108 341 T (,) 277.64 341 T ( the system property is not consulted.) 280.64 341 T 3 F (3.2.2) 66 318 T (URL Context Implementations) 108 318 T 0 F -0.67 (If a URL string) 108 298 P 0 9.6 Q -0.54 (1) 179.64 302.8 P 0 12 Q -0.67 ( i) 184.44 298 P -0.67 (s passed to the initial context, it will be resolved using the corresponding URL) 190.1 298 P 0.63 (context implementation. This is independent of any initial context implementations obtained) 108 284 P (using the) 108 270 T 4 10 Q (java.naming.factory.initial) 154.67 270 T 0 12 Q ( e) 316.67 270 T (nvironment or system property.) 325 270 T -0.62 (The URL context implementation is obtained using an object factory for the URL scheme iden-) 108 250 P -0.46 (tified in the URL string. The factory\325s class name is of the form) 108 236 P 1 F -0.46 (urlScheme) 411.35 236 P 4 10 Q -0.91 (URLContextFacto-) 462 236 P 5.57 (ry) 108 222 P 0 12 Q 2.78 ( in the package specified using the) 120 222 P 4 10 Q 5.57 (java.naming.factory.url.pkgs) 307.78 222 P 0 12 Q 2.78 ( e) 475.78 222 P 2.78 (nvironment or) 486.89 222 P -0.53 (system property.) 108 208 P 4 10 Q -1.07 (java.naming.factory.url.pkgs) 189.92 208 P 0 12 Q -0.53 ( c) 357.92 208 P -0.53 (ontains a colon-separated list of package) 365.72 208 P -0.01 (prefixes. Each package prefix in this property is tried in the order specified to load the factory) 108 194 P -0.3 (class. If none of the prefixes work, the default package prefix) 108 180 P 4 10 Q -0.61 (com.sun.jndi.url) 402.25 180 P 0 12 Q -0.3 ( is tried. The) 498.25 180 P (factory\325s fully qualified class name is constructed using the following rule:) 108 166 T (package prefix + \322.\323 + URL scheme) 144 146 T ( +) 317.15 146 T ( \322.\323 + class name) 326.92 146 T 54 120 558 134.98 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 120 558 134.98 R 7 X 0 0 0 1 0 0 0 K V 63 132.96 207 132.96 2 L V 0.5 H 2 Z 0 X N 0 0 612 792 C 0 10 Q 0 X 0 0 0 1 0 0 0 K (1.) 72 113.33 T -0.1 (The mention of \322URL\323 in this document refers to a URL string as de\336ned by RFC 1738 and its related RFCs. It is) 84 113.33 P (an) 84 101.33 T (y string that conforms to the syntax described therein, and may not al) 93.29 101.33 T (w) 370.1 101.33 T (ays ha) 377.22 101.33 T (v) 402.29 101.33 T (e corresponding support in the) 407.14 101.33 T -0.36 (ja) 84 89.33 P -0.36 (v) 91.02 89.33 P -0.36 (a.net.URL class or W) 95.77 89.33 P -0.36 (eb bro) 180.26 89.33 P -0.36 (wsers. The URL string is either passed as the) 204.92 89.33 P 4 9 Q -0.78 (String) 384.44 89.33 P 0 10 Q -0.36 ( name parameter) 416.84 89.33 P -0.36 (, or as the \336rst) 482.36 89.33 P (component of the) 84 77.33 T 4 F (Name) 156.49 77.33 T 0 F ( parameter) 180.49 77.33 T (.) 222.42 77.33 T 34 698 36 708 R V 34 654 36 666 R V 34 558 36 570 R V 34 455 36 487 R V 34 413 36 425 R V 34 337 36 377 R V 34 294 36 306 R V 34 266 36 278 R V 34 204 36 230 R V 34 142 36 154 R V 34 74 36 120 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "11" 15 %%Page: "12" 16 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (The Initial Context) 482.44 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (12) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X 2.38 (For example, if the) 108 712 P 1 F 2.38 (urlScheme) 211.82 712 P 0 F 2.38 ( is \322) 262.47 712 P 4 10 Q 4.75 (ldap\323) 286.55 712 P 0 12 Q 2.38 ( and) 316.55 712 P 4 10 Q 4.75 (java.naming.factory.url.pkgs) 344.63 712 P 0 12 Q 2.38 ( c) 512.63 712 P 2.38 (ontains) 523.33 712 P 0.67 (\322) 108 698 P 4 10 Q 1.35 (com.widget:com.wiz.jndi) 113.33 698 P 0 12 Q 0.67 (\323, JNDI will attempt to locate the corresponding object factory) 251.33 698 P (class by loading the following classes until one is successfully instantiated:) 108 684 T 4 10 Q (com.widget.ldap.ldapURLContextFactory) 140.4 665.33 T (com.wiz.jndi.ldap.ldapURLContextFactory) 140.4 653.33 T (com.) 140.4 641.33 T (sun.jndi.url.ldap.ldapURLContextFactory) 164.4 641.33 T 0 12 Q -0.69 (The object factory class implements the) 108 622 P 4 10 Q -1.38 (ObjectFactory) 297.83 622 P 0 12 Q -0.69 ( interface \050see) 375.83 622 P -0.69 (\322URL Context Factory\323) 444.06 622 P -0.16 (on page) 108 608 P -0.16 (16) 148.49 608 P -0.16 (\051 and has a public) 160.49 608 P 4 10 Q -0.33 (null) 247.33 608 P 0 12 Q -0.16 ( constructor. It provides a) 271.33 608 P 4 10 Q -0.33 (getObjectInstance\050\051) 402.16 608 P 0 12 Q -0.16 ( method,) 516.16 608 P 0.31 (which will create instances of) 108 594 P 4 10 Q 0.63 (Context) 255.2 594 P 0 12 Q 0.31 ( or) 297.2 594 P 4 10 Q 0.63 (DirContext) 313.83 594 P 0 12 Q 0.31 ( f) 373.83 594 P 0.31 (or the URL scheme. These instances) 381.14 594 P -0.24 (will then be used to carry out the originally intended) 108 580 P 4 10 Q -0.48 (Context) 360.22 580 P 0 12 Q -0.24 ( or) 402.22 580 P 4 10 Q -0.48 (DirContext) 417.74 580 P 0 12 Q -0.24 ( o) 477.74 580 P -0.24 (peration on the) 486.49 580 P (URL supplied to the initial context.) 108 566 T 3 F (3.2.3) 66 543 T (Initial Context Factory Builder) 108 543 T 0 F -0.26 (If an initial context factory builder has been installed, the application is effectively defining its) 108 523 P -0.21 (own policy of how to locate and construct initial context implementations. When a factory has) 108 509 P 0.13 (been installed, it is solely responsible for creating the initial context implementation. None of) 108 495 P 0.51 (the default policies \050) 108 481 P 4 10 Q 1.01 (java.naming.factory.initial) 207.83 481 P 0 12 Q 0.51 ( p) 369.83 481 P 0.51 (roperty or URL context implementa-) 379.34 481 P (tions\051 normally used by JNDI are employed.) 108 467 T 0.86 (A service provider for an initial context factory builder must define a class that implements) 108 447 P 4 10 Q 0.76 (InitialContextFactoryBuilder) 108 433 P 0 12 Q 0.38 (. This class\325s) 276 433 P 4 10 Q 0.76 (createInitialContextFactory\050\051) 352.62 433 P 0 12 Q 0.38 ( meth-) 526.62 433 P (od generates instances of) 108 419 T 4 10 Q (InitialContextFactory) 231.3 419 T 0 12 Q (.) 357.3 419 T (An application that wants to use this factory must first install it.) 108 399 T 4 10 Q (NamingManager.setInitialContextFactoryBuilder\050factory\051;) 140.4 380.33 T 3 14 Q (3.3) 54 353.67 T (Implementing a Subclass of InitialContext) 78.5 353.67 T 0 12 Q 0.17 (When there is a need to provide an initial context that supports an interface that extends from) 108 333 P 4 10 Q -1.27 (Context) 108 319 P 0 12 Q -0.63 ( or) 150 319 P 4 10 Q -1.27 (DirContext) 164.73 319 P 0 12 Q -0.63 (, the service provider should supply a subclass of) 224.73 319 P 4 10 Q -1.27 (InitialContext) 457.64 319 P 0 12 Q -0.63 ( \050or) 541.64 319 P 4 10 Q 0.28 (InitialDirContext) 108 305 P 0 12 Q 0.14 (\051. To add support for URLs in the same way) 210 305 P 4 10 Q 0.28 (InitialContext) 426.39 305 P 0 12 Q 0.14 ( and) 510.39 305 P 4 10 Q 0.28 (Ini-) 534 305 P -0.24 (tialDirContext) 108 291 P 0 12 Q -0.12 ( do, the subclass would use the protected methods available in) 192 291 P 4 10 Q -0.24 (InitialCon-) 492 291 P (text) 108 277 T 0 12 Q ( as follows.) 132 277 T 0.28 (For example, suppose) 108 257 P 4 10 Q 0.56 (XXXContext) 216.83 257 P 0 12 Q 0.28 ( is a subinterface of) 276.83 257 P 4 10 Q 0.56 (DirContext) 375.21 257 P 0 12 Q 0.28 (. Its initial context imple-) 435.21 257 P -0.48 (mentation would define) 108 243 P 4 10 Q -0.96 (getURLOrDefaultInitXXXCtx\050\051) 223.55 243 P 0 12 Q -0.48 ( methods \050for both) 385.55 243 P 4 10 Q -0.96 (Name) 475.63 243 P 0 12 Q -0.48 ( and) 499.63 243 P 4 10 Q -0.96 (String) 522 243 P 0 12 Q (parameters\051 that retrieve the real initial context to use.) 108 229 T 34 708 36 720 R V 34 576 36 648 R V 34 477 36 489 R V 34 225 36 363 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "12" 16 %%Page: "13" 17 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (The Initial Context) 482.44 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (13) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X (public class InitialXXXContext extends InitialDirContext {) 140.4 713.33 T (...) 165.6 701.33 T (protected XXXContext getURLOrDefaultInitXXXCtx\050Name name\051) 165.6 677.33 T (throws NamingException {) 190.8 665.33 T (Context answer = getURLOrDefaultInitCtx\050name\051;) 190.8 653.33 T (if \050!\050answer instanceof XXXContext\051\051 {) 190.8 641.33 T (throw new NoInitialContextException\050\322Not an XXXContext\323\051;) 216 629.33 T (}) 190.8 617.33 T (return \050XXXContext\051answer;) 190.8 605.33 T (}) 165.6 593.33 T (// similar code for getURLOrDefaultInitXXXCtx\050String name\051) 165.6 581.33 T (}) 140.4 569.33 T 0 12 Q -0.44 (When providing implementations for the new methods in the) 108 550 P 4 10 Q -0.88 (XXXContext) 399.69 550 P 0 12 Q -0.44 ( interface that accept) 459.69 550 P (a) 108 536 T (name argument) 116.33 536 T (,) 190.64 536 T 4 10 Q (getURLOrDefaultInitXXXCtx\050\051) 196.64 536 T 0 12 Q ( is used in the following way.) 358.64 536 T 4 10 Q (public Object XXXMethod1\050Name name, ...\051 throws NamingException {) 140.4 517.33 T (return getURLOrDefaultInitXXXCtx\050name\051.XXXMethod1\050name, ...\051;) 165.6 505.33 T (}) 140.4 493.33 T 0 12 Q -0.38 (When providing implementations for the new methods in the) 108 474 P 4 10 Q -0.76 (XXXContext) 400.21 474 P 0 12 Q -0.38 ( interface that do not) 460.21 474 P (have a) 108 460 T (name) 141.98 460 T ( argument, use) 167.98 460 T 4 10 Q (InitialContext.getDefaultInitCtx\050\051) 241.3 460 T 0 12 Q (.) 445.3 460 T 4 10 Q (protected XXXContext getDefaultInitXXXCtx\050\051 throws NamingException {) 140.4 441.33 T (Context answer = getDefaultInitCtx\050\051;) 165.6 429.33 T (if \050!\050answer instanceof XXXContext\051\051 {) 165.6 417.33 T (throw new NoInitialContextException\050\322Not an XXXContext\323\051;) 190.8 405.33 T (}) 165.6 393.33 T (return \050XXXContext\051answer;) 165.6 381.33 T (}) 140.4 369.33 T (public Object XXXMethod2\050Args args\051 throws NamingException {) 140.4 345.33 T (return getDefaultInitXXXCtx\050\051.XXXMethod2\050args\051;) 165.6 333.33 T (}) 140.4 321.33 T 0 12 Q (The implementation would also provide appropriate constructors for the class.) 108 302 T (Client programs that use this new initial context would look as follows.) 108 282 T 4 10 Q (import com.widget.jndi.InitialXXXContext;) 140.4 263.33 T (...) 140.4 251.33 T (XXXContext ctx = new InitialXXXContext\050env\051;) 140.4 239.33 T (Object obj = ctx.lookup\050name\051;) 140.4 227.33 T (ctx.XXXMethod1\050name, ...\051;) 140.4 215.33 T 3 12 Q (3.3.1) 66 193 T (Using the SPI to get the Initial Context) 108 193 T 0 F 1.19 (The client application can bypass the use of) 108 173 P 4 10 Q 2.37 (InitialContext) 330.11 173 P 0 12 Q 1.19 ( and) 414.11 173 P 4 10 Q 2.37 (InitialDirContext) 439.81 173 P 0 12 Q 1.19 ( by) 541.81 173 P 0.01 (calling) 108 159 P 4 10 Q 0.01 (javax.naming.) 143.67 159 P 0.01 (spi.getInitialContext\050\051) 221.67 159 P 0 12 Q 0.01 ( directly to return an arbitrary subclass of) 359.67 159 P 4 10 Q -0.22 (Context) 108 145 P 0 12 Q -0.11 (. This has the disadvantage of losing the URL support provided by) 150 145 P 4 10 Q -0.22 (InitialContext) 471 145 P 0 12 Q -0.11 (.) 555 145 P -0.18 (\050The service provider can, of course, provide the URL support on its own.\051 This style of usage) 108 131 P (may be suitable for a client application that sets its own initial context factory builder.) 108 117 T 34 113 36 720 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "13" 17 %%Page: "14" 18 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (The Initial Context) 482.44 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (14) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X (import javax.naming.spi.*;) 140.4 713.33 T (NamingManager.setInitialContextFactoryBuilder\050myBuilder\051;) 140.4 701.33 T (Context ctx = NamingManager.getInitialContext\050env\051;) 140.4 689.33 T (...) 140.4 677.33 T (Object obj = ctx.lookup\050name\051;) 140.4 665.33 T (\050XXXContext\051ctx.XXXMethod1\050name,...\051;) 140.4 653.33 T 34 638 36 720 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "14" 18 %%Page: "15" 19 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Objects Bound in the Namespace) 425.24 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (15) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X (4) 81 708 T (O) 108 708 T (bjects Bound in the Namespace) 122 708 T 0 12 Q -0.33 (A natural way for a printer client to use the JNDI namespace is to look up a printer name in the) 108 680 P (namespace and get back a printer object on which to perform printing methods.) 108 666 T 4 10 Q (Context ctx = new InitialContext\050\051;) 140.4 647.33 T (Printer prt = \050Printer\051ctx.lookup\050somePrinterName\051;) 140.4 635.33 T (prt.print\050someStreamOfData\051;) 140.4 623.33 T 0 12 Q -0.6 (This is possible if the printer object is directly bound in the namespace. However, as mentioned) 108 604 P 0.03 (earlier, there are many directories and naming services in which names are not bound directly) 108 590 P 0.51 (to objects, but rather to information used to locate or communicate with the actual object. In) 108 576 P -0.7 (the printer example, perhaps what is bound in the namespace is the address of the printer server.) 108 562 P 0.44 (At the same time, we do not want the a directory or naming service implementation to know) 108 548 P (explicitly about printer addresses and printer objects and how to transform one into the other.) 108 534 T 0.72 (JNDI addresses the different ways in which information about objects can be stored and the) 108 514 P -0.12 (desire to turn such information into Java objects applications can use via the use of) 108 500 P 1 F -0.12 (object fac-) 507.13 500 P (tories) 108 486 T 0 F (.) 135.34 486 T 3 14 Q (4.1) 54 458.67 T ( Object Factories) 75 458.67 T 0 12 Q -0.48 (JNDI provides a generic way for creating objects \050including instances of) 108 438 P 4 10 Q -0.96 (Context) 453.64 438 P 0 12 Q -0.48 (\051 using infor-) 495.64 438 P 0.29 (mation stored in the namespace. That information may be of arbitrary type \050) 108 424 P 4 10 Q 0.58 (Object) 476.43 424 P 0 12 Q 0.29 (\051. For ex-) 512.43 424 P -0.68 (ample it may be a) 108 410 P 4 10 Q -1.36 (Reference) 192.92 410 P 0 12 Q -0.68 (, or a URL, or any other data required to create the object. Turning) 246.92 410 P -0.11 (such information stored in the namespace into an object is supported through the use of) 108 396 P 1 F -0.11 (object) 528.67 396 P 1.12 (factories) 108 382 P 0 F 1.12 (. An object factory is a class that implements the) 150 382 P 4 10 Q 2.23 (ObjectFactory) 397.46 382 P 0 12 Q 1.12 ( interface, which) 475.46 382 P (contains a single method:) 108 368 T 4 10 Q (public interface ObjectFactory {) 140.4 349.33 T (public Object getObjectInstance\050Object refObj,) 165.6 337.33 T ( Name name,) 342 325.33 T ( Context nameCtx,) 342 313.33 T ( Hashtable env\051) 348 301.33 T (throws Exception;) 190.8 289.33 T (}) 140.4 277.33 T 0 12 Q -0.52 (Given some reference information \050) 108 258 P 4 10 Q -1.04 (refObj) 277.86 258 P 0 12 Q -0.52 (\051) 313.86 258 P -0.52 (, optional information about the name of the object) 317.86 258 P 0.12 (and where it is bound, a) 108 244 P 0.12 (nd optionally some additional environment information \050for example,) 223.22 244 P -0.24 (some identity or authentication information about the user creating the object\051,) 108 230 P 4 10 Q -0.48 (getObjectIn-) 486 230 P -0.26 (stance\050\051) 108 216 P 0 12 Q -0.13 ( will create an instance of the object for which this factory is responsible. For exam-) 156 216 P 0.37 (ple, for a printer object factory,) 108 202 P 4 10 Q 0.74 (getObjectInstance\050\051) 263.5 202 P 0 12 Q 0.37 ( would return instances of printers) 377.5 202 P 0.37 (. If) 543.64 202 P 0.43 (an object cannot be created using the arguments supplied,) 108 188 P 4 10 Q 0.86 (getObjectInstance\050\051) 391.82 188 P 0 12 Q 0.43 ( should re-) 505.82 188 P 0.51 (turn) 108 174 P 4 10 Q 1.03 (null) 130.85 174 P 0 12 Q 0.51 (. The) 154.85 174 P 4 10 Q 1.03 (getObjectInstance\050\051) 187.05 174 P 0 12 Q 0.51 ( method should only thrown an exception if no other) 301.05 174 P -0.55 (object factories should subsequently be tried. Consequently,) 108 160 P 4 10 Q -1.1 (getObjectInstance\050\051) 395.77 160 P 0 12 Q -0.55 ( should be) 509.77 160 P (careful about runtime exceptions that might be thrown from its implementation.) 108 146 T 34 702 36 720 R V 34 298 36 332 R V 34 240 36 266 R V 34 142 36 210 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "15" 19 %%Page: "16" 20 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Objects Bound in the Namespace) 425.24 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (16) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 12 Q 0 X (4.1.1) 66 712 T (Context Factory) 108 712 T 0 F 0.47 (A context factory is an object factory that creates instances of) 108 692 P 4 10 Q 0.94 (Context) 412.07 692 P 0 12 Q 0.47 (. The implementation) 454.07 692 P -0.45 (of these contexts for a particular naming or directory service is referred to as a) 108 678 P 1 F -0.45 (service provider) 480.14 678 P 0 F (or) 108 664 T 1 F (context implementation) 121 664 T 0 F (.) 233.32 664 T 3 F (4.1.2) 66 641 T (URL Context Factory) 108 641 T 0 F 0.07 (A URL context factory is a special kind of context factory. It follows these rules when imple-) 108 621 P (menting) 108 607 T 4 10 Q (ObjectFactory.getObjectInstance\050\051) 150.34 607 T 0 12 Q (.) 348.34 607 T (\245) 115 587 T 0.36 (If) 126 587 P 4 10 Q 0.73 (refObj) 137.35 587 P 0 12 Q 0.36 ( is) 173.35 587 P 4 10 Q 0.73 (null) 188.08 587 P 0 12 Q 0.36 (, create a context for resolving URLs of the scheme associated with) 212.08 587 P -0.31 (this factory. The resulting context is not tied to a specific URL.) 126 573 P -0.31 ( F) 426.24 573 P -0.31 (or example, invoking) 435.6 573 P 4 10 Q (getObjectInstance\050null,) 140.4 554.33 T (null, null,) 284.4 554.33 T (env\051) 356.4 554.33 T 0 12 Q -0.04 (on an \322ldap\323 URL context factory returns a context that can resolve LDAP URLs) 126 535 P -0.04 ( \050e.g.) 515.72 535 P 3.81 (\322) 126 521 P 4 F 9.14 (ldap://ldap.wiz.com/o=wiz,c=us) 131.33 521 P 0 F 3.81 (\323 or \322) 347.33 521 P 4 F 9.14 (ldap://ldap.umich.edu/) 381.6 521 P (o=umich,c=us) 126 507 T 0 F (\323, ...\051.) 212.4 507 T (\245) 115 487 T 1.98 (If) 126 487 P 4 10 Q 3.96 (refObj) 138.97 487 P 0 12 Q 1.98 ( is a URL string, create the object identified by the URL. For example,) 174.97 487 P (invoking) 126 473 T 4 10 Q (getObjectInstance\050\322ldap://ldap.wiz.com/o=wiz,c=us\323,) 140.4 454.33 T (null, null,) 452.4 454.33 T (env\051;) 524.4 454.33 T 0 12 Q 0.85 (on an \322ldap\323 URL context factory returns a context for resolving LDAP names \050e.g.) 126 435 P 1.18 (\322) 126 421 P 4 F 2.84 (cn=Jane Smith) 131.33 421 P 0 F 1.18 (\323\051 relative to th) 227.76 421 P 1.18 (e c) 304.29 421 P 1.18 (ontext) 319.13 421 P 1.18 ( \322) 349.13 421 P 4 F 2.84 (o=wiz,c=us) 358.64 421 P 0 F 1.18 (\323 on the LDAP server) 430.64 421 P 4 F (ldap.wiz.com) 126 407 T 0 F (.) 212.4 407 T (\245) 115 387 T -0.23 (If) 126 387 P 4 10 Q -0.45 (refObj) 136.76 387 P 0 12 Q -0.23 ( is an array of URL strings, the assumption is that the URLs are equivalent in) 172.76 387 P -0.19 (terms of the context to which they refer. Verification of whether the URLs are, or need) 126 373 P 0.04 (to be, equivalent is up to the context factory. The order of the URLs in the array is not) 126 359 P 0.53 (significant. The object returned by) 126 345 P 4 10 Q 1.06 (getObjectInstance\050\051) 297.3 345 P 0 12 Q 0.53 ( is the same as that for the) 411.3 345 P (single URL case\321it is an object \050perhaps a context\051 named by the URLs.) 126 331 T -0.08 (URL context factories are used by the initial context when it is passed a URL to resolve. URL) 108 311 P 0.68 (context factories are also used for creating Java objects from URLs stored in the namespace) 108 297 P (\050see) 108 283 T (\322URLs as Reference Information\323 on page) 130.32 283 T (19) 338.26 283 T (\051.) 350.26 283 T 3 F (4.1.3) 66 260 T (Making Object Factories Available to JNDI) 108 260 T 0 F 1.67 (The method) 108 240 P 4 10 Q 3.35 (NamingManager.getObjectInstance\050\051) 172.01 240 P 0 12 Q 1.67 ( is used to turn reference information) 370.01 240 P -0.54 (into Java objects.) 108 226 P 4 10 Q -1.07 (NamingManager.getObjectInstance\050\051) 192.38 226 P 0 12 Q -0.54 ( locates and instantiates an instance) 390.38 226 P (of) 108 212 T 4 10 Q (ObjectFactory) 121 212 T 0 12 Q ( and invokes the) 199 212 T 4 10 Q (getObjectInstance\050\051) 280.32 212 T 0 12 Q ( method on the factory.) 394.32 212 T -0.24 (In addition to being a public method to be used by service providers to turn reference informa-) 108 192 P 2.41 (tion into Java objects \322Java Object Support\323 on page) 108 178 P 2.41 (7\051,) 383.59 178 P 4 10 Q 4.82 (NamingManager.getObjectIn-) 402 178 P -1.27 (stance\050\051) 108 164 P 0 12 Q -0.64 ( is also used internally \050for example, in the implementation of) 156 164 P 4 10 Q -1.27 (getURLContext\050\051) 448.31 164 P 0 12 Q -0.64 ( and) 538.31 164 P 4 10 Q (getContinuationContext\050\051\051.) 108 151.33 T 0 12 Q (There are four ways in which object factories are made available to JNDI:) 108 132 T (\245) 115 112 T (Information in) 126 112 T 4 10 Q (Reference) 198.66 112 T 0 12 Q (,) 252.66 112 T (\245) 115 92 T (URLs as reference,) 126 92 T 34 517 36 581 R V 34 451 36 461 R V 34 417 36 429 R V 34 279 36 291 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "16" 20 %%Page: "17" 21 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Objects Bound in the Namespace) 425.24 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (17) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X (\245) 115 712 T (Use of the) 126 712 T 4 10 Q (java.naming.factory.object) 178.32 712 T 0 12 Q ( s) 334.32 712 T (ystem property,) 341.99 712 T (\245) 115 692 T (Installation of an) 126 692 T 1 F (object factory builder) 210.32 692 T 0 F (.) 314.32 692 T 3 14 Q (4.2) 54 644.67 T ( References and Referenceable) 75 644.67 T 0 12 Q 0.14 (JNDI defines a) 108 624 P 4 10 Q 0.28 (Reference) 183.39 624 P 0 12 Q 0.14 ( class to provide a uniform way of representing reference informa-) 237.39 624 P 0.31 (tion stored in the namespace. A) 108 610 P 4 10 Q 0.63 (Reference) 264.19 610 P 0 12 Q 0.31 ( contains a list of addresses and class information) 318.19 610 P -0.31 (about the object to which this reference refers. An object that has a) 108 596 P 4 10 Q -0.61 (Reference) 427.94 596 P 0 12 Q -0.31 ( implements the) 481.94 596 P 4 10 Q -0.18 (Referenceable) 108 582 P 0 12 Q -0.09 ( interface. The) 186 582 P 4 10 Q -0.18 (Referenceable) 258.36 582 P 0 12 Q -0.09 ( interface contains a single method for retriev-) 336.36 582 P (ing the reference of the object.) 108 568 T 4 10 Q (public interface Referenceable {) 140.4 549.33 T (public Reference getReference\050\051 throws NamingException;) 165.6 537.33 T (}) 140.4 525.33 T 3 12 Q (4.2.1) 66 503 T (Storing References in the Namespace) 108 503 T 0 F 0.41 (When binding a) 108 483 P 4 10 Q 0.83 (Referenceable) 188.9 483 P 0 12 Q 0.41 ( object in the namespace, the information bound is the) 266.9 483 P 4 10 Q 0.83 (Ref-) 534 483 P -1.13 (erence) 108 469 P 0 12 Q -0.56 ( of the object. When the object is looked up, the) 144 469 P 4 10 Q -1.13 (Reference) 370.76 469 P 0 12 Q -0.56 ( is used to create an instance) 424.76 469 P 0.37 (of the corresponding object. The) 108 455 P 4 10 Q 0.73 (bind\050\051) 269.13 455 P 0 12 Q 0.37 ( and) 305.13 455 P 4 10 Q 0.73 (lookup\050\051) 329.19 455 P 0 12 Q 0.37 ( operations are inverses of each other) 377.19 455 P (with regard to how they treat references.) 108 441 T 0.2 (In the printer example, a particular implementation of) 108 421 P 4 10 Q 0.4 (Printer) 370.54 421 P 0 12 Q 0.2 (, say) 412.54 421 P 4 10 Q 0.4 (BSDPrinter) 437.94 421 P 0 12 Q 0.2 (, might have) 497.94 421 P (the following class declaration:) 108 407 T 4 10 Q (public class BSDPrinter implements Printer, Referenceable {) 140.4 388.33 T (String serverName;) 165.6 376.33 T (BSDPrinter\050String srv\051 {) 165.6 352.33 T (...) 190.8 340.33 T (}) 165.6 328.33 T (public void print\050InputStream data\051 throws PrinterException {) 165.6 316.33 T (}) 165.6 304.33 T (public Reference getReference\050\051 throws NamingException {) 165.6 292.33 T (return new Reference\050\322Printer\323,) 190.8 280.33 T ( new) 291.6 268.33 T (String) 339.6 268.33 T (RefAddr\050\322bsd\323, serverName\051\051;) 375.6 268.33 T (}) 165.6 256.33 T (}) 140.4 244.33 T 0 12 Q -0.11 (When this object is bound in the namespace, the service provider uses) 108 225 P 4 10 Q -0.23 (getReference\050\051) 445.57 225 P 0 12 Q -0.11 ( to re-) 529.57 225 P -0.61 (trieve the object\325s reference, in this case its protocol type \050\322) 108 211 P 4 10 Q -1.23 (bsd) 388.12 211 P 0 12 Q -0.61 (\323\051 and server name \050the instance) 406.12 211 P -0.22 (variable) 108 197 P 4 10 Q -0.44 (serverName) 149.43 197 P 0 12 Q -0.22 (\051, and stores this information in the namespace. When the reference is re-) 209.43 197 P 0.15 (trieved from the namespace, the object factory mechanism described in \322Class information in) 108 183 P (Reference\323 is used to turn the reference into an instance of) 108 169 T 4 10 Q (BSDPrinter) 392.24 169 T 0 12 Q (.) 452.24 169 T 0.23 (It is not a requirement that all service providers use) 108 149 P 4 10 Q 0.45 (Reference) 359.56 149 P 0 12 Q 0.23 (. A service provider may bind) 413.56 149 P 0.19 (other reference-like information in the namespace \050such as a URL) 108 135 P 0.19 (, or the serialized form of a) 426.58 135 P 0.11 (serializable object\051, a) 108 121 P 0.11 (nd use that information to create corresponding objects to be returned to) 210.52 121 P 0.67 (applications.) 108 107 P 4 10 Q 1.35 (Reference) 172.67 107 P 0 12 Q 0.67 ( was introduced so that different providers need not invent different) 226.67 107 P (ways of achieving the same result.) 108 93 T 34 708 36 720 R V 34 265 36 275 R V 34 117 36 143 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "17" 21 %%Page: "18" 22 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Objects Bound in the Namespace) 425.24 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (18) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 12 Q 0 X (4.2.2) 66 712 T (Class information in Reference) 108 712 T 0 F -0.48 (A) 108 692 P 4 10 Q -0.97 ( Reference) 116.66 692 P 0 12 Q -0.48 ( contains methods for returning the class name and location of the object factory.) 175.7 692 P (The following methods are found in) 108 678 T 4 10 Q (Reference) 283.98 678 T 0 12 Q (.) 337.98 678 T 4 10 Q (public class Reference {) 140.4 659.33 T (...) 165.6 647.33 T (public String) 165.6 635.33 T (getClassName\050\051;) 249.6 635.33 T (public String getFactoryClassName\050\051;) 165.6 623.33 T (public String getFactoryClassLocation\050\051;) 165.6 611.33 T (}) 140.4 599.33 T 0 12 Q 0.16 (If the object is an instance of) 108 580 P 4 10 Q 0.32 (Reference) 250.75 580 P 0 12 Q 0.16 ( or) 304.75 580 P 4 10 Q 0.32 (Referenceable) 321.06 580 P 0 12 Q 0.16 (, its corresponding object factory) 399.06 580 P 1.44 (can be located using information in) 108 566 P 4 10 Q 2.88 (Reference) 289.27 566 P 0 12 Q 1.44 (. The) 343.27 566 P 4 10 Q 2.88 (getFactoryClassName\050\051) 373.8 566 P 0 12 Q 1.44 ( method re-) 499.8 566 P -0.35 (trieves the name of the factory class that implements the) 108 552 P 4 10 Q -0.7 (ObjectFactory) 377.76 552 P 0 12 Q -0.35 ( interface. This facto-) 455.76 552 P 3.76 (ry must implement the) 108 538 P 4 10 Q 7.53 (ObjectFactory) 234.39 538 P 0 12 Q 3.76 ( interface and have a public) 312.39 538 P 4 10 Q 7.53 (null) 470.25 538 P 0 12 Q 3.76 ( constructor.) 494.25 538 P 4 10 Q -0.92 (getFactoryClassLocation\050\051) 108 524 P 0 12 Q -0.46 ( retrieves the location of the class implementation for the facto-) 258 524 P (ry. This will typically be a URL of the factory\325s class file.) 108 510 T -0.17 (The object is created by invoking the) 108 490 P 4 10 Q -0.35 (getObjectInstance\050\051) 287.74 490 P 0 12 Q -0.17 ( method on the object factory in-) 401.74 490 P 0.22 (stance with the) 108 476 P 4 10 Q 0.44 (Reference) 183.65 476 P 0 12 Q 0.22 ( and environment as arguments. This creates an instance of a class) 237.65 476 P (identified by) 108 462 T 4 10 Q (getClassName\050\051) 172 462 T 0 12 Q (.) 256 462 T -0.24 (Note that all the classes necessary to instantiate the object returned to the application are made) 108 442 P 1.53 (available using mechanisms provided by JNDI.) 108 428 P 1.53 ( T) 342.96 428 P 1.53 (he application doesn\325t have to install the) 354.83 428 P (classes locally.) 108 414 T 3 10 Q (Figur) 54 395.33 T (e 3: Example Using Refer) 77.71 395.33 T (ence to Get Back An Object Fr) 186.4 395.33 T (om the Namespace) 317.86 395.33 T 0 12 Q 0.36 (Returning to the printer example,) 108 159.5 P 4 10 Q 0.73 (BSDPrinter) 272.47 159.5 P 0 12 Q 0.36 ( uses the) 332.47 159.5 P 4 10 Q 0.73 (Reference) 377.89 159.5 P 0 12 Q 0.36 ( class to store information) 431.89 159.5 P -0.39 (regarding how to construct instances of) 108 145.5 P 4 10 Q -0.77 (BSDPrinter) 297.64 145.5 P 0 12 Q -0.39 ( and address information for communicat-) 357.64 145.5 P 0.48 (ing with the print server. The) 108 131.5 P 4 10 Q 0.96 (Reference) 253.87 131.5 P 0 12 Q 0.48 ( contains the class name of the object \050\322) 307.86 131.5 P 4 10 Q 0.96 (Printer\323) 503 131.5 P 0 12 Q 0.48 (\051,) 551 131.5 P 0.72 (the class name of the printer object factory \050\322) 108 117.5 P 4 10 Q 1.44 (PrinterFactory) 331.04 117.5 P 0 12 Q 0.72 (\323\051 and a URL for loading the) 415.04 117.5 P -0.27 (factory\325s class implementation. Using the factory class name and implementation location, the) 108 103.5 P 2.34 (provider first loads the implementation of) 108 89.5 P 4 10 Q 4.68 (PrinterFactory) 325.35 89.5 P 0 12 Q 2.34 ( and creates an instance of a) 409.35 89.5 P 54 175.5 558 392 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 171 311.5 189 329.5 R 3 X 0 0 0 1 0 0 0 K V 0.5 H 2 Z 0 X N 4 9 Q (PrinterFactory) 92.68 316.6 T 225 239.5 279 293.5 R N 380.02 330.36 468 302.5 2 L N 375.39 285.17 468 302.5 2 L N 486 329.5 468 311.5 2 L N 486 329.5 504 302.5 2 L N 486 329.5 540 302.5 2 L N 468 302.5 458.68 266.5 2 L N 0 0 0 1 0 0 0 K 0 10 Q (Printer) 318.02 359.1 T 0 0 0 1 0 0 0 K 4 9 Q (Reference) 348.24 359.1 T 180.92 340.74 183.88 340.5 180.07 330.4 177.95 340.99 4 Y 0 Z N 180.92 340.74 183.88 340.5 180.07 330.4 177.95 340.99 4 Y V 180.94 340.99 M 182.11 355.39 190.07 365.5 198 365.5 D 2 Z N 224.61 281.76 226.26 284.24 233.24 276 222.96 279.28 4 Y 0 Z N 224.61 281.76 226.26 284.24 233.24 276 222.96 279.28 4 Y V 180 311.5 224.4 281.9 2 L 2 Z N 234 257.5 243 275.5 4.5 RR V N 0 0 0 1 0 0 0 K 0 10 Q (namespace) 468 239.5 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (application) 234 221.5 T 0 0 0 1 0 0 0 K 411.72 256.83 411.67 259.81 422.09 256.99 411.76 253.85 4 Y 0 Z N 411.72 256.83 411.67 259.81 422.09 256.99 411.76 253.85 4 Y V 279 254.83 411.47 256.83 2 L 2 Z N 0 0 0 1 0 0 0 K (lookup printer name) 306 239.8 T 0 0 0 1 0 0 0 K J 407.29 311.5 407.29 308.52 396.91 311.5 407.29 314.48 4 Y 0 Z N 407.29 311.5 407.29 308.52 396.91 311.5 407.29 314.48 4 Y V J 414 311.5 407.54 311.5 2 L J 414 311.5 407.54 311.5 2 L 2 Z N J 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 9 Q (Printer) 153 267.3 T 0 0 0 1 0 0 0 K 0 10 Q (object) 193.8 267.3 T 0 0 0 1 0 0 0 K J 0 0 0 1 0 0 0 K (bound in namespace) 321.02 347.1 T 0 0 0 1 0 0 0 K 324.88 284 387 334.13 18 RR 5 X V 0 X N 333 311 342 320 R 3 X V 0 X N 0 90 135 45.5 198 320 A 4 9 Q (getObjectInstance\050\051) 216 367.6 T 7 X 90 450 9 9 486 329.5 G 0 X 90 450 9 9 486 329.5 A 7 X 90 450 9 9 504 302.5 G 0 X 90 450 9 9 504 302.5 A 7 X 90 450 8.68 9 458.68 266.5 G 0 X 90 450 8.68 9 458.68 266.5 A 7 X 90 450 9 9 540 302.5 G 0 X 90 450 9 9 540 302.5 A 7 X 90 450 9 9 468 302.5 G 0 X 90 450 9 9 468 302.5 A 7 X 90 450 5 5 361.67 228 G 0 X 90 450 5 5 361.67 228 A (1) 358.33 225.5 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 X 90 450 5 5 423 305.83 G 0 X 90 450 5 5 423 305.83 A (2) 419.67 303.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 X 90 450 5 5 242.67 350.33 G 0 X 90 450 5 5 242.67 350.33 A (3) 239.33 347.83 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 X 90 450 5 5 181.83 292 G 0 X 90 450 5 5 181.83 292 A (4) 178.5 289.5 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 612 792 C 34 424 36 436 R 0 X 0 0 0 1 0 0 0 K V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "18" 22 %%Page: "19" 23 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Objects Bound in the Namespace) 425.24 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (19) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X 0.61 (PrinterFactory) 108 712 P 0 12 Q 0.31 (. The provider then invokes) 192 712 P 4 10 Q 0.61 (getObjectInstance\050\051) 328.84 712 P 0 12 Q 0.31 ( on the factory to create) 442.84 712 P 0.53 (an instance of) 108 698 P 4 10 Q 1.06 (Printer) 179.24 698 P 0 12 Q 0.53 ( using the address information in the reference. For example, one ad-) 221.24 698 P 1.05 (dress in the reference may have an address of type \322) 108 684 P 4 10 Q 2.1 (bsd) 368.43 684 P 0 12 Q 1.05 (\323 containing the print server\325s host) 386.43 684 P -0.16 (name \050\322) 108 670 P 4 10 Q -0.32 (lobby-printserver) 146.16 670 P 0 12 Q -0.16 (\323\051. The) 248.16 670 P 4 10 Q -0.32 (PrinterFactory) 284.83 670 P 0 12 Q -0.16 ( uses the address type \050\322) 368.83 670 P 4 10 Q -0.32 (bsd) 484.34 670 P 0 12 Q -0.16 (\323\051 to decide) 502.34 670 P 0.52 (to create a) 108 656 P 4 10 Q 1.04 (BSDPrinter) 161.88 656 P 0 12 Q 0.52 ( instance and passes the address contents \050\322) 221.88 656 P 4 10 Q 1.04 (lobby-printserver) 433.82 656 P 0 12 Q 0.52 (\323\051 to) 535.82 656 P (its constructor. The resulting) 108 642 T 4 10 Q (BSDPrinter) 248.99 642 T 0 12 Q ( object is returned as the result of) 308.99 642 T 4 10 Q (lookup\050\051) 471.62 642 T 0 12 Q (.) 519.62 642 T 0.63 (When the application invokes) 108 622 P 4 10 Q 1.27 (print\050\051) 256.51 622 P 0 12 Q 0.63 (on the) 307.23 622 P 4 10 Q 1.27 (BSDPrinter) 341.16 622 P 0 12 Q 0.63 ( instance returned by) 401.16 622 P 4 10 Q 1.27 (lookup\050\051) 507 622 P 0 12 Q 0.63 (,) 555 622 P -0.13 (the data is sent to the print server on the machine \322) 108 608 P 4 10 Q -0.26 (lobby-printserver) 350.21 608 P 0 12 Q -0.13 (\323 for printing. The ap-) 452.21 608 P 0.93 (plication need not know the details of the) 108 594 P 4 10 Q 1.87 (Reference) 316.77 594 P 0 12 Q 0.93 ( stored in the namespace, the protocol) 370.77 594 P 0.32 (used to perform the job, or whether the) 108 580 P 4 10 Q 0.63 (BSDPrinter) 300.83 580 P 0 12 Q 0.32 ( class was defined locally or loaded over) 360.83 580 P -0.35 (the network. The transformation of the information stored in the underlying service into an ob-) 108 566 P -0.48 (ject that implements the) 108 552 P 4 10 Q -0.96 (Printer) 224.07 552 P 0 12 Q -0.48 ( interface is done transparently through the cooperation of the) 266.07 552 P 0.7 (service provider \050which stores bindings of printer names to printer address information\051, the) 108 538 P 0.11 (printer service provider \050which provides the Java) 108 524 P 4 10 Q 0.22 (PrinterFactory) 347.03 524 P 0 12 Q 0.11 ( and) 431.03 524 P 4 10 Q 0.22 (BSDPrinter) 454.57 524 P 0 12 Q 0.11 ( classes\051,) 514.57 524 P 0.13 (and the JNDI SPI framework \050which ties the two together to return an object that the applica-) 108 510 P (tion can directly use\051.) 108 496 T 3 14 Q (4.3) 54 468.67 T ( URLs as Reference Information) 75 468.67 T 0 12 Q 0.75 (When an object in the namespace is bound to a URL string, or an array of URL strings. the) 108 448 P -0.33 (object factory is identified using the same mechanism used to identify the factory when a URL) 108 434 P -0.28 (is passed to the initial context \050see \322URL Context Implementations\323 on page) 108 420 P -0.28 (11\051. If this mech-) 475.53 420 P 2.38 (anism does not successfully locate an object factory, the) 108 406 P 4 10 Q 4.75 (java.naming.factory.object) 402 406 P 0 12 Q (p) 108 392 T (roperty \050described in the next section\051 is used.) 114 392 T -0.11 (For the printer example, instead of using a) 108 372 P 4 10 Q -0.21 (Reference) 313.46 372 P 0 12 Q -0.11 ( to represent a printer in the namespace,) 367.46 372 P 0.08 (a) 108 358 P 0.08 ( URL may be stored \050) 113.33 358 P 0.08 (perhaps something like) 218.04 358 P 0.08 (\322) 332.61 358 P 4 10 Q 0.16 (printer:bsd://lobby-printserver) 337.94 358 P 0 12 Q 0.08 (\323\051.) 523.94 358 P 0.08 ( T) 536.26 358 P 0.08 (he) 546.67 358 P 4 10 Q -1.32 (NamingManager.getObjectInstance\050\051) 108 344 P 0 12 Q -0.66 ( method will look for and create the URL context fac-) 306 344 P -0.33 (tory class) 108 330 P 4 10 Q -0.66 (printerURLContextFactory) 156 330 P 0 12 Q -0.33 (. If successful, naming manager passes the URL to the) 300 330 P (factory to create a) 108 316 T 4 10 Q (Printer) 197.29 316 T 0 12 Q ( instance.) 239.29 316 T 0.47 (Note that this approach differs from the) 108 296 P 4 10 Q 0.94 (Reference) 304.26 296 P 0 12 Q 0.47 ( approach in that the classes for the URL) 358.26 296 P 0.56 (context factory \050) 108 282 P 4 10 Q 1.12 (printerURLContextFactory) 188.43 282 P 0 12 Q 0.56 (\051 must be available to the application \050perhaps) 332.43 282 P 0.53 (by appropriate setting of class paths\051. In the) 108 268 P 4 10 Q 1.06 (Reference) 325.21 268 P 0 12 Q 0.53 ( approach, the classes for the factory) 379.21 268 P (are located dynamically.) 108 254 T 3 14 Q (4.4) 54 226.67 T (Storing Serializable Objects) 78.5 226.67 T 0 12 Q 0.16 (When an object being bound in the namespace is) 108 206 P 4 10 Q 0.31 (Serializable) 347.04 206 P 0 12 Q 0.16 ( but not) 419.04 206 P 4 10 Q 0.31 (Referenceable) 459.18 206 P 0 12 Q 0.16 (, the) 537.18 206 P 0.23 (service provider should if possible store the serialized form of the object. When the object is) 108 192 P (later looked up, the object should be deserialized and returned.) 108 178 T 0.2 (Note that for a service provider to store serialized objects it must be able to store binary data,) 108 158 P 0.61 (and it must not have a data size limit too small for the serialized objects in question. Not all) 108 144 P 0.03 (service providers meet these requirements. Note also that, as with the use of URLs for storing) 108 130 P 0.25 (reference information, the dynamic class-loading facility of the Reference mechanism cannot) 108 116 P 0.18 (be used. The required classes must be made available to the application by some other means) 108 102 P (\050such as the appropriate setting of class paths\051.) 108 88 T 34 388 36 400 R V 34 354 36 366 R V 34 84 36 236 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "19" 23 %%Page: "20" 24 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Objects Bound in the Namespace) 425.24 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (20) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 14 Q 0 X (4.5) 54 710.67 T ( The) 75 710.67 T (java.naming.factory.object P) 105.34 710.67 T (roperty) 277.97 710.67 T 0 12 Q 0.17 (In addition to extracting factory information from) 108 690 P 4 10 Q 0.34 (Reference) 350.83 690 P 0 12 Q 0.17 (s, or using URLs, factories may) 404.83 690 P (be made available to JNDI with the) 108 676 T 4 10 Q (java.naming.factory.object) 280.97 676 T 0 12 Q ( p) 436.97 676 T (roperty.) 445.97 676 T -0.58 (The property) 108 656 P 4 10 Q -1.15 (java.naming.factory.object) 172.16 656 P 0 12 Q -0.58 ( c) 328.16 656 P -0.58 (ontains a colon-separated list of fully-qualified) 335.92 656 P 0.2 (class names of object factories. Each class must implement the) 108 642 P 4 10 Q 0.4 (ObjectFactory) 414.29 642 P 0 12 Q 0.2 ( interface and) 492.29 642 P -0.25 (have a public) 108 628 P 4 10 Q -0.49 (null) 174.24 628 P 0 12 Q -0.25 ( constructor. For each class in the list, JNDI attempts to load and instantiate) 198.24 628 P 0.06 (the factory class, and to invoke the) 108 614 P 4 10 Q 0.13 (ObjectFactory.getObjectInstance\050\051) 278.41 614 P 0 12 Q 0.06 ( method on it us-) 476.41 614 P 0.13 (ing the object and environment) 108 600 P 0.13 ( a) 257.85 600 P 0.13 (rguments supplied. If the creation is successful, the resulting) 266.31 600 P -0.04 (object is returned, otherwise, JNDI goes on to attempt the same procedure on the next class in) 108 586 P (the list.) 108 572 T -0.09 (The) 108 552 P 4 10 Q -0.17 (java.naming.factory.object) 129.57 552 P 0 12 Q -0.09 ( p) 285.57 552 P -0.09 (roperty is made available to an application either in the) 294.49 552 P -0.59 (environment property set passed to the) 108 538 P 4 10 Q -1.18 (InitialContext) 293.11 538 P 0 12 Q -0.59 ( or) 377.11 538 P 4 10 Q -1.18 (InitialDirContext) 391.93 538 P 0 12 Q -0.59 ( c) 493.93 538 P -0.59 (onstructors,) 501.67 538 P -0.15 (or as one of the program\325s system properties. If the property is supplied as part of the environ-) 108 524 P (ment) 108 510 T (,) 132 510 T ( the system property is not consulted.) 135 510 T 3 10 Q (Figur) 54 491.33 T (e 4: Example using) 77.71 491.33 T (ja) 161.05 491.33 T (v) 169.13 491.33 T (a.naming) 174.03 491.33 T (.factory) 213.61 491.33 T (.object t) 245.95 491.33 T (o Get Back an Object fr) 280.38 491.33 T (om the Namespace) 382.13 491.33 T 0 12 Q -0.11 (For the printer example, instead of using a) 108 255.5 P 4 10 Q -0.21 (Reference) 313.46 255.5 P 0 12 Q -0.11 ( to represent a printer in the namespace,) 367.46 255.5 P 0.03 (some other information is stored. When that information is later retrieved, the object factories) 108 241.5 P 0.34 (specified) 108 227.5 P 4 10 Q 0.67 (java.naming.factory.object) 154.66 227.5 P 0 12 Q 0.34 ( a) 310.66 227.5 P 0.34 (re tried in turn to attempt to turn that information) 319.32 227.5 P (into a) 108 213.5 T 4 10 Q (Printer) 138 213.5 T 0 12 Q ( instance.) 180 213.5 T (A service provider for such an object must do the following:) 108 193.5 T (1.) 126 173.5 T (Define the class for the object \050e.g) 144 173.5 T 4 10 Q (BSDPrinter) 311.95 173.5 T 0 12 Q (\051.) 371.95 173.5 T (2.) 126 153.5 T 0.05 (Define the class for reference information for the object. This is the object that will be) 144 153.5 P 0.43 (bound in the namespace. This need not be) 144 139.5 P 4 10 Q 0.85 (Reference) 351.7 139.5 P 0 12 Q 0.43 (. It can be anything that will be) 405.7 139.5 P 0.34 (understood by its corresponding object factory \050e.g. some string containing the server) 144 125.5 P (name \322) 144 111.5 T 4 10 Q (printer type=bsd; host=lobby-printserver) 178.32 111.5 T 0 12 Q (\323\051.) 418.32 111.5 T 54 271.5 558 488 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 225 407.5 243 425.5 R 13 X 0 0 0 1 0 0 0 K V 0.5 H 2 Z 0 X N 171 407.5 189 425.5 R 3 X V 0 X N 252 407.5 270 425.5 R 8 X V 0 X N 198 407.5 216 425.5 R 12 X V 0 X N 0 0 0 1 0 0 0 K 0 10 Q (Object factories) 59.66 407.8 T 0 0 0 1 0 0 0 K 378 434.5 M 362.69 427.95 303.79 444.44 325.47 411.67 D 337.87 392.92 367.66 403.71 377.59 415.83 D 382.64 422 388.12 431.07 379.17 434.17 D 5 X V 0 X N 225 335.5 279 389.5 R N 383.13 431.37 468 398.5 2 L N 358.17 403.62 468 398.5 2 L N 486 425.5 468 407.5 2 L N 486 425.5 504 398.5 2 L N 486 425.5 540 398.5 2 L N 468 398.5 458.68 362.5 2 L N 0 0 0 1 0 0 0 K (information about printer) 318.02 455.1 T 0 0 0 1 0 0 0 K 0 90 126.88 31.37 198 430.13 A 180.92 436.74 183.88 436.5 180.07 426.4 177.95 436.99 4 Y 0 Z N 180.92 436.74 183.88 436.5 180.07 426.4 177.95 436.99 4 Y V 180.94 436.99 M 182.11 451.39 190.07 461.5 198 461.5 D 2 Z N 208.98 436.62 211.91 436.1 207.16 426.39 206.04 437.14 4 Y 0 Z N 208.98 436.62 211.91 436.1 207.16 426.39 206.04 437.14 4 Y V 209.02 436.87 M 209.79 441.17 213.18 443.5 216 443.5 D 2 Z N 0 90 108.88 13.37 216 430.13 A 241.25 434.17 243.53 432.26 234.58 426.2 238.96 436.08 4 Y 0 Z N 241.25 434.17 243.53 432.26 234.58 426.2 238.96 436.08 4 Y V 241.41 434.36 M 241.74 434.76 242.46 434.5 243 434.5 D 2 Z N 0 90 81.88 4.37 243 430.13 A 280.95 419.22 281.67 416.33 270.88 416.72 280.23 422.11 4 Y 0 Z N 280.95 419.22 281.67 416.33 270.88 416.72 280.23 422.11 4 Y V 281.2 419.28 324.88 430.13 2 L 2 Z N 224.61 377.76 226.26 380.24 233.24 372 222.96 375.28 4 Y 0 Z N 224.61 377.76 226.26 380.24 233.24 372 222.96 375.28 4 Y V 180 407.5 224.4 377.9 2 L 2 Z N 234 353.5 243 371.5 4.5 RR V N 0 0 0 1 0 0 0 K (namespace) 468 335.5 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (application) 234 317.5 T 0 0 0 1 0 0 0 K 411.72 353.29 411.66 356.27 422.1 353.48 411.77 350.32 4 Y 0 Z N 411.72 353.29 411.66 356.27 422.1 353.48 411.77 350.32 4 Y V 279 350.83 411.47 353.29 2 L 2 Z N 0 0 0 1 0 0 0 K (lookup printer name) 306 335.8 T 0 0 0 1 0 0 0 K J 407.29 407.5 407.29 404.52 396.91 407.5 407.29 410.48 4 Y 0 Z N 407.29 407.5 407.29 404.52 396.91 407.5 407.29 410.48 4 Y V J 414 407.5 407.54 407.5 2 L J 414 407.5 407.54 407.5 2 L 2 Z N J 0 0 0 1 0 0 0 K (in) 59.66 395.8 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 9 Q (Printer) 153 363.3 T 0 0 0 1 0 0 0 K 0 10 Q (object) 193.8 363.3 T 0 0 0 1 0 0 0 K J 0 0 0 1 0 0 0 K (bound in namespace) 321.02 443.1 T 0 0 0 1 0 0 0 K 4 9 Q (getObjectInstance\050\051) 207 470 T 7 X 90 450 9 9 486 425.5 G 0 X 90 450 9 9 486 425.5 A 7 X 90 450 9 9 504 398.5 G 0 X 90 450 9 9 504 398.5 A 7 X 90 450 8.68 9 458.68 362.5 G 0 X 90 450 8.68 9 458.68 362.5 A 7 X 90 450 9 9 540 398.5 G 0 X 90 450 9 9 540 398.5 A 7 X 90 450 9 9 468 398.5 G 0 X 90 450 9 9 468 398.5 A 7 X 90 450 5 5 361.67 324 G 0 X 90 450 5 5 361.67 324 A (1) 358.33 321.5 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 X 90 450 5 5 425.5 408.5 G 0 X 90 450 5 5 425.5 408.5 A (2) 422.17 406 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 X 90 450 5 5 162.67 447.33 G 0 X 90 450 5 5 162.67 447.33 A (3) 159.33 444.83 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 X 90 450 5 5 211 393 G 0 X 90 450 5 5 211 393 A (4) 207.67 390.5 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 7 Q (java.naming.factory.object) 71.1 395.77 T 0 0 612 792 C 34 706 36 720 R 0 X 0 0 0 1 0 0 0 K V 34 652 36 684 R V 34 596 36 608 R V 34 534 36 560 R V 34 488 36 518 R V 34 223.5 36 235.5 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "20" 24 %%Page: "21" 25 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Objects Bound in the Namespace) 425.24 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (21) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X (3.) 126 712 T 0.67 (Define a factory class that implements) 144 712 P 4 10 Q 1.34 (ObjectFactory) 335.33 712 P 0 12 Q 0.67 ( \050e.g.) 413.33 712 P 4 10 Q 1.34 (PrinterFactory) 442 712 P 0 12 Q 0.67 (\051. This) 526 712 P 0.12 (class\325s) 144 698 P 4 10 Q 0.23 (getObjectInstance\050\051) 179.11 698 P 0 12 Q 0.12 ( method will create an instance of the class from step 1) 293.11 698 P 3.23 (\050e.g.) 144 684 P 4 10 Q 6.46 (BSDPrinter) 171.55 684 P 0 12 Q 3.23 (\051 when given an instance of class from step 2 \050e.g. \322) 231.55 684 P 4 10 Q 6.46 (printer) 516 684 P (type=bsd; host=lobby-printserver) 144 670 T 0 12 Q (\323\051.) 336 670 T -0.69 (The service provider should automatically convert between the actual object \050e.g.) 108 650 P 4 10 Q -1.38 (BSDPrinter) 494 650 P 0 12 Q -0.69 (\051) 554 650 P 0.61 (and the reference information \050step 2, e.g. \322) 108 636 P 4 10 Q 1.22 (printer type=bsd; host=lobby-printserv-) 321.55 636 P (er) 108 622 T 0 12 Q (\323\051 when binding or looking up the object.) 120 622 T -0.68 (An application that wants to use a particular factory for generating objects must include the fac-) 108 602 P 0.4 (tory\325s class name in its) 108 588 P 4 10 Q 0.81 (java.naming.factory.object) 223.01 588 P 0 12 Q 0.4 ( e) 379.01 588 P 0.4 (nvironment or system property and) 387.74 588 P (make the factory\325s classes and object classes available.) 108 574 T 3 14 Q (4.6) 54 546.67 T ( Object Factory Builder) 75 546.67 T 0 12 Q 0.65 (If an) 108 526 P 1 F 0.65 (object factory builder) 134.61 526 P 0 F 0.65 ( has been installed, the application is effectively defining its own) 239.9 526 P 0.21 (policy of how to locate and construct object factories. When a builder has been installed, it is) 108 512 P -0.16 (solely responsible for creating object factories. None of the default policies \050) 108 498 P 4 10 Q -0.32 (Reference) 474.16 498 P 0 12 Q -0.16 (, URL) 528.16 498 P (string, or) 108 484 T 4 10 Q (java.naming.factory.object) 154.33 484 T 0 12 Q ( p) 310.33 484 T (roperty\051 normally used by JNDI are employed.) 319.33 484 T 3 10 Q (Figur) 54 465.33 T (e 5: Example using an Object F) 77.71 465.33 T (actory Builder to Get Back an Object fr) 211.35 465.33 T (om the Namespace) 380.87 465.33 T 0 12 Q (A service provider for an object factory builder must do the following:) 108 202 T (1.) 126 182 T (Define object factories that implement) 144 182 T 4 10 Q (ObjectFactory) 331.63 182 T 0 12 Q (.) 409.63 182 T (2.) 126 162 T 11.62 (Define a class that implements) 144 162 P 4 10 Q 23.25 (ObjectFactoryBuilder) 352.43 162 P 0 12 Q 11.62 (. This class\325s) 472.43 162 P 4 10 Q 3.34 (createObjectFactory\050\051) 144 148 P 0 12 Q 1.67 ( method will use the constructors for the) 270 148 P 4 10 Q 3.34 (ObjectFactory) 480 148 P 0 12 Q (classes in step 1.) 144 134 T (An application that wants to use this factory builder must first install it.) 108 114 T 4 10 Q (NamingManager.setObjectFactoryBuilder\050builder\051;) 165.6 95.33 T 54 218 558 462 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 171 354 189 372 R 3 X 0 0 0 1 0 0 0 K V 0.5 H 2 Z 0 X N 4 9 Q (PrinterFactory) 92.68 359.1 T 378 381 M 362.69 374.45 303.79 390.94 325.47 358.17 D 337.87 339.42 367.66 350.21 377.59 362.33 D 382.64 368.5 388.12 377.57 379.17 380.67 D 5 X V 0 X N 225 282 279 336 R N 383.13 377.87 468 345 2 L N 358.17 350.12 468 345 2 L N 0 0 0 1 0 0 0 K 0 10 Q (information about printer) 318.02 401.6 T 0 0 0 1 0 0 0 K 0 90 126.88 31.37 198 376.63 A 180.92 383.24 183.88 383 180.07 372.9 177.95 383.49 4 Y 0 Z N 180.92 383.24 183.88 383 180.07 372.9 177.95 383.49 4 Y V 180.94 383.49 M 182.11 397.89 190.07 408 198 408 D 2 Z N 224.61 324.26 226.26 326.74 233.24 318.5 222.96 321.78 4 Y 0 Z N 224.61 324.26 226.26 326.74 233.24 318.5 222.96 321.78 4 Y V 180 354 224.4 324.4 2 L 2 Z N 234 300 243 318 4.5 RR V N 0 0 0 1 0 0 0 K (namespace) 468 282 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (application) 234 264 T 0 0 0 1 0 0 0 K 411.72 299.79 411.66 302.77 422.1 299.98 411.77 296.82 4 Y 0 Z N 411.72 299.79 411.66 302.77 422.1 299.98 411.77 296.82 4 Y V 279 297.33 411.47 299.79 2 L 2 Z N 0 0 0 1 0 0 0 K (lookup printer name) 306 282.3 T 0 0 0 1 0 0 0 K J 407.29 354 407.29 351.02 396.91 354 407.29 356.98 4 Y 0 Z N 407.29 354 407.29 351.02 396.91 354 407.29 356.98 4 Y V J 414 354 407.54 354 2 L J 414 354 407.54 354 2 L 2 Z N J 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 9 Q (Printer) 153 309.8 T 0 0 0 1 0 0 0 K 0 10 Q (object) 193.8 309.8 T 0 0 0 1 0 0 0 K J 0 0 0 1 0 0 0 K (bound in namespace) 321.02 389.6 T 0 0 0 1 0 0 0 K 207 371.5 288 425.5 18 RR 6 X V 0 X N 0 0 0 1 0 0 0 K (Installed Object factory builder) 162 435.8 T 0 0 0 1 0 0 0 K 486 372 468 354 2 L 7 X V 0 X N 486 372 504 345 2 L 7 X V 0 X N 486 372 540 345 2 L 7 X V 0 X N 468 345 458.68 309 2 L 7 X V 0 X N 7 X 90 450 9 9 486 372 G 0 X 90 450 9 9 486 372 A 7 X 90 450 9 9 504 345 G 0 X 90 450 9 9 504 345 A 7 X 90 450 8.68 9 458.68 309 G 0 X 90 450 8.68 9 458.68 309 A 7 X 90 450 9 9 540 345 G 0 X 90 450 9 9 540 345 A 7 X 90 450 9 9 468 345 G 0 X 90 450 9 9 468 345 A 7 X 90 450 5 5 188.5 333.33 G 0 X 90 450 5 5 188.5 333.33 A 4 9 Q (4) 185.17 330.83 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 X 90 450 5 5 399.33 275 G 0 X 90 450 5 5 399.33 275 A (1) 396 272.5 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 X 90 450 5 5 425.17 354.17 G 0 X 90 450 5 5 425.17 354.17 A (2) 421.83 351.67 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 X 90 450 5 5 173.5 411.67 G 0 X 90 450 5 5 173.5 411.67 A (3) 170.17 409.17 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 612 792 C 34 584 36 596 R 0 X 0 0 0 1 0 0 0 K V 34 480 36 492 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "21" 25 %%Page: "22" 26 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Making Context Implementations Available to JNDI) 349.41 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (22) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X (5) 81 708 T (Making Context Implementations Available to JNDI) 108 708 T 0 12 Q 0.09 (In general, the JNDI mechanisms for creating generic objects using object factories described) 108 680 P -0.45 (in) 108 666 P -0.45 (\322Object Factories\323 on page) 119.89 666 P -0.45 (15) 251.85 666 P -0.45 ( also apply to how JNDI creates) 263.85 666 P 4 10 Q -0.89 (Context) 417.02 666 P 0 12 Q -0.45 ( instances using con-) 459.02 666 P -0.11 (text factories. However, if there is just one provider \050that obtained through the initial context\051,) 108 652 P 0.02 (and there is no need for that provider to use other providers, then the initial context is the sole) 108 638 P 0.37 (controller of how context implementations are located. \050See service provider example in Ap-) 108 624 P 0.13 (pendix A\051. This section is only relevant for serving composite namespaces, in which multiple) 108 610 P (providers are involved.) 108 596 T 0.01 (A service provider must define a class that implements the) 108 576 P 4 10 Q 0.01 (Context) 392.01 576 P 0 12 Q 0.01 ( interface, and a class that) 434.01 576 P 0.2 (implements the) 108 562 P 4 10 Q 0.4 (ObjectFactory) 185.07 562 P 0 12 Q 0.2 ( interface for creating instances of this) 263.07 562 P 4 10 Q 0.4 (Context) 451.42 562 P 0 12 Q 0.2 ( class.) 493.42 562 P 0.2 ( A) 522.94 562 P 0.2 ( pro-) 534.81 562 P -0.07 (vider can use either) 108 548 P 4 10 Q -0.14 (Reference) 204.35 548 P 0 12 Q -0.07 (s, URLs, or the other alternatives described in) 258.35 548 P -0.07 (\322Objects Bound) 481.08 548 P 0.51 (in the Namespace\323 on page) 108 534 P 0.51 (15) 244.32 534 P 0.51 ( to create instances of) 256.32 534 P 4 10 Q 1.01 (Context) 365.83 534 P 0 12 Q 0.51 ( using object factories for their) 407.83 534 P 4 10 Q -0.17 (Context) 108 520 P 0 12 Q -0.09 ( classes. Usually, context implementations act as object factories for) 150 520 P 4 10 Q -0.17 (Context) 479.76 520 P 0 12 Q -0.09 ( classes) 521.76 520 P -0.25 (\050i.e. they implement the) 108 506 P 4 10 Q -0.5 (ObjectFactory) 224.32 506 P 0 12 Q -0.25 ( interface\051. In these factories,) 302.32 506 P 4 10 Q -0.5 (ObjectFactory.getO-) 444 506 P 1.14 (bjectInstance\050\051) 108 492 P 0 12 Q 0.57 ( returns instances of) 198 492 P 4 10 Q 1.14 (Context) 299.6 492 P 0 12 Q 0.57 ( \050or) 341.6 492 P 4 10 Q 1.14 (DirContext) 362.74 492 P 0 12 Q 0.57 (\051) 422.74 492 P 0.57 (. The provider must ensure) 426.73 492 P 0.25 (that the object factories are made known to JNDI either via the use of) 108 478 P 4 10 Q 0.51 (Reference) 448.16 478 P 0 12 Q 0.25 (, URLs, the) 502.16 478 P 4 10 Q (java.naming.factory.object) 108 464 T 0 12 Q ( p) 264 464 T (roperty, or by installing its own object factory builder.) 273 464 T 34 662 36 674 R V 34 530 36 570 R V 34 488 36 500 R V 34 460 36 472 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "22" 26 %%Page: "23" 27 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Overview of the Interface) 456.08 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (23) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X (6) 81 708 T (Overview of the Interface) 108 708 T 3 14.4 Q (1) 304.43 715.2 T 0 12 Q -0.47 (The JNDI SPI is contained in the package) 108 680 P 4 10 Q -0.94 (javax.naming.) 308.22 680 P -0.94 (spi) 386.22 680 P 0 12 Q -0.47 (. The following sections provide) 404.22 680 P (an overview of the SPI. For more details on the SPI, see the corresponding) 108 666 T 3 F (javadoc) 469.28 666 T 0 F (.) 509.28 666 T 3 14 Q (6.1) 54 489 T ( NamingManager and DirectoryManager) 75 489 T 0 12 Q 1.12 (The) 108 468.33 P 4 10 Q 2.24 (NamingManager) 130.78 468.33 P 0 12 Q 1.12 ( class contains static methods that perform provider-related operations.) 208.78 468.33 P 0.05 (For example, it contains methods to create instances of objects using) 108 454.33 P 4 10 Q 0.1 (Reference) 441.18 454.33 P 0 12 Q 0.05 (, to obtain an) 495.18 454.33 P 0.31 (instance of the initial context using the) 108 440.33 P 4 10 Q 0.61 (java.naming.factory.initial) 299.13 440.33 P 0 12 Q 0.31 ( p) 461.13 440.33 P 0.31 (roperty, and to in-) 470.43 440.33 P 2 (stall) 108 426.33 P 4 10 Q 4 (ObjectFactoryBuilder) 133.01 426.33 P 0 12 Q 2 ( and) 253.01 426.33 P 4 10 Q 4 (InitialContextFactoryBuilder) 280.34 426.33 P 0 12 Q 2 (. The) 448.34 426.33 P 4 10 Q 4 (DirectoryMan-) 480 426.33 P (ager) 108 412.33 T 0 12 Q ( class provides similar static methods for) 132 412.33 T 4 10 Q (DirContext) 330.98 412.33 T 0 12 Q ( r) 390.98 412.33 T (elated operations.) 397.98 412.33 T 3 14 Q (6.2) 54 385 T ( Federation Support) 75 385 T 0 12 Q 0.1 (The) 108 364.33 P 4 10 Q 0.2 (Resolver) 129.76 364.33 P 0 12 Q 0.1 ( interface defines a method for providers to implement that allows them to par-) 177.76 364.33 P -0.58 (ticipate in a federation for supporting extended interfaces to) 108 350.33 P 4 10 Q -1.15 (Context) 393.08 350.33 P 0 12 Q -0.58 (. See \322Resolving Through) 435.08 350.33 P (to Subinterfaces of Context\323 on page) 108 336.33 T (3 for more details.) 288.64 336.33 T 4 10 Q 1.41 (ResolveResult) 108 316.33 P 0 12 Q 0.7 ( is the return value of calling) 186 316.33 P 4 10 Q 1.41 (Resolver.resolveToClass\050\051) 331.9 316.33 P 0 12 Q 0.7 (. It contains the) 481.9 316.33 P (object to which resolution succeeded, and the remaining name yet to be resolved.) 108 302.33 T 3 14 Q (6.3) 54 275 T ( Object Factories) 75 275 T 4 10 Q 0.34 (ObjectFactory) 108 254.33 P 0 12 Q 0.17 ( is the interface for supporting creation of objects using information stored in) 186 254.33 P (the namespace. See) 108 240.33 T (\322Object Factories\323 on page) 204.64 240.33 T (15) 337.93 240.33 T ( for more details.) 349.93 240.33 T 4 10 Q 3.55 (ObjectFactoryBuilder) 108 220.33 P 0 12 Q 1.78 ( is the interface for creating object factories. See) 228 220.33 P 1.78 (\322Object Factory) 479.24 220.33 P (Builder\323 on page) 108 206.33 T (21) 192.98 206.33 T ( for more details) 204.98 206.33 T (.) 283.97 206.33 T 3 14 Q (6.4) 54 179 T ( Initial Contexts) 75 179 T 4 10 Q 0.38 (InitialContextFactory) 108 158.33 P 0 12 Q 0.19 ( is the interface for creating an initial context instance. See \322Imple-) 234 158.33 P (menting An Initial Context\323 on page) 108 144.33 T (10 for more details.) 286.66 144.33 T 4 10 Q 1.25 (InitialContextFactoryBuilder) 108 124.33 P 0 12 Q 0.63 ( is the interface for creating) 276 124.33 P 4 10 Q 1.25 (InitialContextFactory) 415.04 124.33 P 0 12 Q 0.63 ( in-) 541.04 124.33 P (stances. See \322Initial Context Factory Builder\323 on page) 108 110.33 T (12 for more details.) 371.63 110.33 T 54 84 558 98.98 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 84 558 98.98 R 7 X 0 0 0 1 0 0 0 K V 63 96.96 207 96.96 2 L V 0.5 H 2 Z 0 X N 0 0 612 792 C 0 10 Q 0 X 0 0 0 1 0 0 0 K (1.) 72 77.33 T (See Appendix B for le) 84 77.33 T (gend of class diagram.) 173.28 77.33 T 54 72 558 720 C 90 512.33 558 644 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 30.24 666.76 453 761.76 449.43 95 96.79 524.83 FMBEGINEPSF %%BeginDocument: /home/jndi/scott/ws/jndi/doc/java.naming.spi-0.eps %!PS-Adobe-3.0 EPSF-3.0 %%DocumentFonts: LucidaSans-Typewriter %%DocumentNeededFonts: LucidaSans-Typewriter %%BoundingBox: 30.24 666.76 453 761.76 %%EndComments /fontsize 6.00 def /boxdict 100 dict def boxdict begin /inch { 72 mul } def % % Primary input variables. If you change the default font, make sure % to update the comments above too. % /defaultfont /LucidaSans-Typewriter def /defaultscale fontsize def % % This variable is the approximate amount that the `center' of the text % line is above the baseline, as a fraction of the total height of % the font. % /centerabovebaseline 0 def /realtextheight 0 def /setcenterabovebaseline { gsave 0 0 moveto (\() false charpath pathbbox exch pop exch neg exch 2 index add /realtextheight exch def realtextheight div /centerabovebaseline exch def pop grestore } def /pagebegin { /pagerestore save def defaultfont findfont defaultscale scalefont setfont setcenterabovebaseline .5 inch -.5 inch translate } def /descender { /lly 0.0 def /ury 0.0 def { ( ) dup 0 4 -1 roll put charheight pop dup lly lt { /lly exch def } { pop } ifelse } forall lly } def % % This show operator takes a width and scales the text to fit the width. % It can scale height and width identically (aspect=1), or just scale % width (aspect=0), or scale width twice as much as height (aspect=0.5). % Set aspect to your taste. /mtwshow means max-text-width-show. A % more functional solution would take the maxtextwidth as a parameter % rather than using a global, but this has more impact on the existing % code so I don't do that. % /aspect 0.5 def /mtwshow { gsave 0 h 2 div centerabovebaseline 0.5 sub realtextheight mul add rmoveto currentpoint translate dup stringwidth pop dup javamaxtextwidth gt { 0 centerabovebaseline translate javamaxtextwidth exch div dup aspect mul 1 aspect sub add scale 0 centerabovebaseline neg translate } { pop } ifelse 0 0 moveto show grestore } def % % This macro gives us a rectangular path, just like rectstroke except it does not stroke. % Assumes origin is lower left hand corner, so only two args are passed. % /rectpath { /h exch def /w exch def newpath 0 0 moveto w 0 rlineto 0 h rlineto w neg 0 rlineto closepath } def % % This macro works like rectpath except it draws rounded corners. The radius of % the rounded corners must be set in the global variable /roundrectradius. % /roundrectradius 0 def /roundrectpath { /h exch def /w exch def newpath w 2 div 0 moveto w 0 w h roundrectradius arct w h w 2 div h roundrectradius arct 0 h 0 0 roundrectradius arct 0 0 w 2 div 0 roundrectradius arct closepath } def % % This macro takes a width and a height and draws either a roundrectpath or a rectpath % depending on the setting of the /rounded macro. It also sets the roundrectradius % to half the height before doing this, as appropriate for the smaller boxes. % /rounded false def % by default, square boxes. /javarect { /h exch def /w exch def /roundrectradius h 2 div def w h rounded { roundrectpath } { rectpath } ifelse } def % % Draw a shadowed box/rounded box. This is the four-argument macro that takes a x, y, % width, and height. % /shadowed true def /corner false def /shadowxoff 2 def /shadowyoff -2 def /shadowcolor { 0.6 0.6 0.6 } def /boxbgcolor { 1 1 1 } def /dotted false def /dotcolor { 0 0 0 } def /black { 0 0 0 } def /javabox { /h exch def /w exch def gsave translate shadowed { gsave shadowxoff shadowyoff translate shadowcolor setrgbcolor w h javarect gsave stroke grestore fill grestore } if w h javarect gsave boxbgcolor setrgbcolor fill grestore stroke % % Always draw the dot centered at position (w-h/2, h/2) with a size of 0.6 of the height. % /javamaxtextwidth maxtextwidth def dotted { gsave /r 0.4 h mul 2 div def w h 2 div sub h 2 div r 0 360 arc gsave dotcolor setrgbcolor fill grestore stroke grestore % chan: don't decrease the width. I'll take of that % when generating the code. %/javamaxtextwidth javamaxtextwidth r h 2 div add sub def } if corner { gsave w h 3 div sub 0 moveto w h 3 div lineto w 0 lineto w h 3 div sub 0 lineto gsave stroke grestore black setrgbcolor fill grestore % chan: don't decrease the width. I'll take of that % when generating the code. %/javamaxtextwidth javamaxtextwidth r h 2 div add sub def } if grestore } def end % %%EndProlog %%BeginSetup boxdict begin %%EndSetup %%Page: 1 1 pagebegin 1 setlinecap 1 setlinejoin % currentlinewidth 0.1 mul setlinewidth .3 setlinewidth /rounded false def /corner true def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.0 inch 10.84 inch 1.6 inch 0.16 inch javabox 0.08 inch 10.84 inch moveto (java.lang.Object) mtwshow /rounded false def /corner true def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.24 inch 10.6 inch 1.6 inch 0.16 inch javabox 0.32 inch 10.6 inch moveto (NamingManager) mtwshow /rounded false def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.48 inch 10.36 inch 1.6 inch 0.16 inch javabox 0.5599999999999999 inch 10.36 inch moveto (DirectoryManager) mtwshow /rounded false def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.24 inch 10.12 inch 1.6 inch 0.16 inch javabox 0.32 inch 10.12 inch moveto (ResolveResult) mtwshow gsave 0.12 inch 10.84 inch moveto 0.12 inch 10.68 inch lineto 0.24 inch 10.68 inch lineto stroke grestore gsave 0.12 inch 10.84 inch moveto 0.12 inch 10.2 inch lineto 0.24 inch 10.2 inch lineto stroke grestore gsave 0.36 inch 10.6 inch moveto 0.36 inch 10.44 inch lineto 0.48 inch 10.44 inch lineto stroke grestore /rounded true def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 3.84 inch 10.84 inch 1.6 inch 0.16 inch javabox 3.92 inch 10.84 inch moveto (InitialContextFactory) mtwshow /rounded true def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 3.84 inch 10.6 inch 1.6 inch 0.16 inch javabox 3.92 inch 10.6 inch moveto (InitialContextFactoryBuilder) mtwshow /rounded true def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 3.84 inch 10.36 inch 1.6 inch 0.16 inch javabox 3.92 inch 10.36 inch moveto (ObjectFactory) mtwshow /rounded true def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 3.84 inch 10.12 inch 1.6 inch 0.16 inch javabox 3.92 inch 10.12 inch moveto (ObjectFactoryBuilder) mtwshow /rounded true def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 3.84 inch 9.879999999999999 inch 1.6 inch 0.16 inch javabox 3.92 inch 9.879999999999999 inch moveto (Resolver) mtwshow grestore showpage pagerestore restore %%Trailer end %%EOF %%EndDocument FMENDEPSF 54 72 558 720 C 0 0 612 792 C 34 676 36 688 R 0 X 0 0 0 1 0 0 0 K V 34 436.33 36 448.33 R V 34 408.33 36 420.33 R V 34 202.33 36 248.33 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "23" 27 %%Page: "24" 28 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory SPI) 54 749.33 T (Overview of the Interface) 456.08 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (24) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "24" 28 %%Page: "25" 29 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (25) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X ( Appendix A: Service Provider Example) 149.51 415 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "25" 29 %%Page: "26" 30 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (26) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X 0.67 (This appendix contains a simple service provider. It implements a flat namespace \050with no) 108 712 P 0.93 (federation support\051. It shows how to produce a context implementation by providing all the) 108 698 P (methods in the) 108 684 T 4 10 Q (Context) 181.67 684 T 0 12 Q ( interface.) 223.67 684 T 0.31 (An instance of this context is bound directly as the initial context. This example provides the) 108 664 P (corresponding) 108 650 T 4 10 Q (InitialContextFactory) 179.65 650 T 0 12 Q ( definition.) 305.65 650 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "26" 30 %%Page: "27" 31 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (27) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 14 Q 0 X (A.1) 54 710.67 T ( Simple Flat Context) 78.11 710.67 T 3 12 Q (A.1.1) 63.34 687 T (Context Implementation) 108 687 T 4 10 Q (/*) 140.4 657.33 T ( * Copyright \050c\051 1997. Sun Microsystems. All rights reserved.) 140.4 645.33 T ( */) 140.4 633.33 T (package ctxegs.flat;) 140.4 621.33 T (import javax.naming.*;) 140.4 597.33 T (import java.util.*;) 140.4 585.33 T (/**) 140.4 561.33 T -1.2 ( * A sample service provider that implements a flat namespace in memory.) 140.4 549.33 P ( */) 140.4 537.33 T (class FlatCtx implements Context {) 140.4 513.33 T ( Hashtable myEnv;) 140.4 501.33 T ( private Hashtable bindings = new Hashtable\05011\051;) 140.4 489.33 T ( static NameParser myParser = new FlatNameParser\050\051;) 140.4 477.33 T ( FlatCtx\050Hashtable environment\051 {) 140.4 453.33 T ( myEnv = \050environment != null\051) 140.4 441.33 T ( ? \050Hashtable\051\050environment.clone\050\051\051) 165.6 429.33 T ( : null;) 165.6 417.33 T ( }) 140.4 405.33 T ( public Object lookup\050String name\051 throws NamingException {) 140.4 381.33 T ( if \050name.equals\050\322\322\051\051 {) 140.4 369.33 T -0.63 ( // Asking to look up this context itself. Create and return) 140.4 357.33 P ( // a new instance with its own independent environment.) 140.4 345.33 T ( return \050new FlatCtx\050myEnv\051\051;) 140.4 333.33 T ( }) 140.4 321.33 T ( Object answer = bindings.get\050name\051;) 140.4 309.33 T ( if \050answer == null\051 {) 140.4 297.33 T ( throw new NameNotFoundException\050name + \322 not found\323\051;) 140.4 285.33 T ( }) 140.4 273.33 T ( return answer;) 140.4 261.33 T ( }) 140.4 249.33 T ( public Object lookup\050Name name\051 throws NamingException {) 140.4 225.33 T ( // Flat namespace; no federation; just call string version) 140.4 213.33 T ( return lookup\050name.toString\050\051\051;) 140.4 201.33 T ( }) 140.4 189.33 T -0.2 ( public void bind\050String name, Object obj\051 throws NamingException {) 140.4 165.33 P ( if \050name.equals\050\322\322\051\051 {) 140.4 153.33 T ( throw new InvalidNameException\050\322Cannot bind empty name\323\051;) 140.4 141.33 T ( }) 140.4 129.33 T ( if \050bindings.get\050name\051 != null\051 {) 140.4 117.33 T ( throw new NameAlreadyBoundException\050) 140.4 105.33 T ( \322Use rebind to override\323\051;) 140.4 93.33 T ( }) 140.4 81.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "27" 31 %%Page: "28" 32 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (28) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X ( bindings.put\050name, obj\051;) 140.4 713.33 T ( }) 140.4 701.33 T ( public void bind\050Name name, Object obj\051 throws NamingException {) 140.4 677.33 T ( // Flat namespace; no federation; just call string version) 140.4 665.33 T ( bind\050name.toString\050\051, obj\051;) 140.4 653.33 T ( }) 140.4 641.33 T -1.2 ( public void rebind\050String name, Object obj\051 throws NamingException {) 140.4 617.33 P ( if \050name.equals\050\322\322\051\051 {) 140.4 605.33 T ( throw new InvalidNameException\050\322Cannot bind empty name\323\051;) 140.4 593.33 T ( }) 140.4 581.33 T ( bindings.put\050name, obj\051;) 140.4 569.33 T ( }) 140.4 557.33 T -0.2 ( public void rebind\050Name name, Object obj\051 throws NamingException {) 140.4 533.33 P ( // Flat namespace; no federation; just call string version) 140.4 521.33 T ( rebind\050name.toString\050\051, obj\051;) 140.4 509.33 T ( }) 140.4 497.33 T ( public void unbind\050String name\051 throws NamingException {) 140.4 473.33 T ( if \050name.equals\050\322\322\051\051 {) 140.4 461.33 T -0.49 ( throw new InvalidNameException\050\322Cannot unbind empty name\323\051;) 140.4 449.33 P ( }) 140.4 437.33 T ( bindings.remove\050name\051;) 140.4 425.33 T ( }) 140.4 413.33 T ( public void unbind\050Name name\051 throws NamingException {) 140.4 389.33 T ( // Flat namespace; no federation; just call string version) 140.4 377.33 T ( unbind\050name.toString\050\051\051;) 140.4 365.33 T ( }) 140.4 353.33 T ( public void rename\050String oldname, String newname\051) 140.4 329.33 T ( throws NamingException {) 140.4 317.33 T ( if \050oldname.equals\050\322\322\051 || newname.equals\050\322\322\051\051 {) 140.4 305.33 T -0.49 ( throw new InvalidNameException\050\322Cannot rename empty name\323\051;) 140.4 293.33 P ( }) 140.4 281.33 T ( // Check if new name exists) 140.4 257.33 T ( if \050bindings.get\050newname\051 != null\051 {) 140.4 245.33 T ( throw new NameAlreadyBoundException\050newname +) 140.4 233.33 T ( \322 is already bound\323\051;) 140.4 221.33 T ( }) 140.4 209.33 T ( // Check if old name is bound) 140.4 185.33 T ( Object oldBinding = bindings.remove\050oldname\051;) 140.4 173.33 T ( if \050oldBinding == null\051 {) 140.4 161.33 T ( throw new NameNotFoundException\050oldname + \322 not bound\323\051;) 140.4 149.33 T ( }) 140.4 137.33 T ( bindings.put\050newname, oldBinding\051;) 140.4 113.33 T ( }) 140.4 101.33 T ( public void rename\050Name oldname, Name newname\051) 140.4 77.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "28" 32 %%Page: "29" 33 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (29) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X ( throws NamingException {) 140.4 713.33 T ( // Flat namespace; no federation; just call string version) 140.4 701.33 T ( rename\050oldname.toString\050\051, newname.toString\050\051\051;) 140.4 689.33 T ( }) 140.4 677.33 T ( public NamingEnumeration list\050String name\051) 140.4 653.33 T ( throws NamingException {) 140.4 641.33 T ( if \050name.equals\050\322\322\051\051 {) 140.4 629.33 T ( // listing this context) 140.4 617.33 T ( return new FlatNames\050bindings.keys\050\051\051;) 140.4 605.33 T ( }) 140.4 593.33 T ( // Perhaps \324name\325 names a context) 140.4 569.33 T ( Object target = lookup\050name\051;) 140.4 557.33 T ( if \050target instanceof Context\051 {) 140.4 545.33 T ( return \050\050Context\051target\051.list\050\322\322\051;) 140.4 533.33 T ( }) 140.4 521.33 T ( throw new NotContextException\050name + \322 cannot be listed\323\051;) 140.4 509.33 T ( }) 140.4 497.33 T ( public NamingEnumeration list\050Name name\051) 140.4 473.33 T ( throws NamingException {) 140.4 461.33 T ( // Flat namespace; no federation; just call string version) 140.4 449.33 T ( return list\050name.toString\050\051\051;) 140.4 437.33 T ( }) 140.4 425.33 T ( public NamingEnumeration listBindings\050String name\051) 140.4 401.33 T ( throws NamingException {) 140.4 389.33 T ( if \050name.equals\050\322\322\051\051 {) 140.4 377.33 T ( // listing this context) 140.4 365.33 T ( return new FlatBindings\050bindings.keys\050\051\051;) 140.4 353.33 T ( }) 140.4 341.33 T ( // Perhaps \324name\325 names a context) 140.4 317.33 T ( Object target = lookup\050name\051;) 140.4 305.33 T ( if \050target instanceof Context\051 {) 140.4 293.33 T ( return \050\050Context\051target\051.listBindings\050\322\322\051;) 140.4 281.33 T ( }) 140.4 269.33 T ( throw new NotContextException\050name + \322 cannot be listed\323\051;) 140.4 257.33 T ( }) 140.4 245.33 T ( public NamingEnumeration listBindings\050Name name\051) 140.4 221.33 T ( throws NamingException {) 140.4 209.33 T ( // Flat namespace; no federation; just call string version) 140.4 197.33 T ( return listBindings\050name.toString\050\051\051;) 140.4 185.33 T ( }) 140.4 173.33 T -0.84 ( public void destroySubcontext\050String name\051 throws NamingException {) 140.4 149.33 P ( throw new OperationNotSupportedException\050) 140.4 137.33 T ( \322FlatCtx does not support subcontexts\323\051;) 140.4 125.33 T ( }) 140.4 113.33 T ( public void destroySubcontext\050Name name\051 throws NamingException {) 140.4 89.33 T ( // Flat namespace; no federation; just call string version) 140.4 77.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "29" 33 %%Page: "30" 34 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (30) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X ( destroySubcontext\050name.toString\050\051\051;) 140.4 713.33 T ( }) 140.4 701.33 T ( public Context createSubcontext\050String name\051) 140.4 677.33 T ( throws NamingException {) 140.4 665.33 T ( throw new OperationNotSupportedException\050) 140.4 653.33 T ( \322FlatCtx does not support subcontexts\323\051;) 140.4 641.33 T ( }) 140.4 629.33 T -0.84 ( public Context createSubcontext\050Name name\051 throws NamingException {) 140.4 605.33 P ( // Flat namespace; no federation; just call string version) 140.4 593.33 T ( return createSubcontext\050name.toString\050\051\051;) 140.4 581.33 T ( }) 140.4 569.33 T ( public Object lookupLink\050String name\051 throws NamingException {) 140.4 545.33 T ( // This flat context does not treat links specially) 140.4 533.33 T ( return lookup\050name\051;) 140.4 521.33 T ( }) 140.4 509.33 T ( public Object lookupLink\050Name name\051 throws NamingException {) 140.4 485.33 T ( // Flat namespace; no federation; just call string version) 140.4 473.33 T ( return lookupLink\050name.toString\050\051\051;) 140.4 461.33 T ( }) 140.4 449.33 T ( public NameParser getNameParser\050String name\051) 140.4 425.33 T ( throws NamingException {) 140.4 413.33 T ( return myParser;) 140.4 401.33 T ( }) 140.4 389.33 T -0.84 ( public NameParser getNameParser\050Name name\051 throws NamingException {) 140.4 365.33 P ( // Flat namespace; no federation; just call string version) 140.4 353.33 T ( return getNameParser\050name.toString\050\051\051;) 140.4 341.33 T ( }) 140.4 329.33 T ( public String composeName\050String name, String prefix\051) 140.4 305.33 T ( throws NamingException {) 140.4 293.33 T ( Name result = composeName\050new CompositeName\050name\051,) 140.4 281.33 T ( new CompositeName\050prefix\051\051;) 140.4 269.33 T ( return result.toString\050\051;) 140.4 257.33 T ( }) 140.4 245.33 T ( public Name composeName\050Name name, Name prefix\051) 140.4 221.33 T ( throws NamingException {) 140.4 209.33 T ( Name result = \050Name\051\050prefix.clone\050\051\051;) 140.4 197.33 T ( result.addAll\050name\051;) 140.4 185.33 T ( return result;) 140.4 173.33 T ( }) 140.4 161.33 T ( public Object addToEnvironment\050String propName, Object propVal\051) 140.4 137.33 T ( throws NamingException {) 140.4 125.33 T ( if \050myEnv == null\051 {) 140.4 113.33 T ( myEnv = new Hashtable\0505, 0.75f\051;) 140.4 101.33 T (}) 165.6 89.33 T (return myEnv.put\050propName, propVal\051;) 165.6 77.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "30" 34 %%Page: "31" 35 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (31) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X ( }) 140.4 713.33 T ( public Object removeFromEnvironment\050String propName\051) 140.4 689.33 T ( throws NamingException {) 140.4 677.33 T ( if \050myEnv == null\051) 140.4 665.33 T ( return null;) 140.4 653.33 T (return myEnv.remove\050propName\051;) 165.6 629.33 T ( }) 140.4 617.33 T ( public Hashtable getEnvironment\050\051 throws NamingException {) 140.4 593.33 T ( return myEnv;) 140.4 581.33 T ( }) 140.4 569.33 T ( public void close\050\051 throws NamingException {) 140.4 545.33 T (myEnv = null;) 165.6 533.33 T (bindings = null;) 165.6 521.33 T ( }) 140.4 509.33 T ( // Class for enumerating name/class pairs) 140.4 485.33 T ( class FlatNames implements NamingEnumeration {) 140.4 473.33 T ( Enumeration names;) 140.4 461.33 T ( FlatNames \050Enumeration names\051 {) 140.4 437.33 T ( this.names = names;) 140.4 425.33 T ( }) 140.4 413.33 T ( public boolean hasMoreElements\050\051 {) 140.4 389.33 T ( return names.hasMoreElements\050\051;) 140.4 377.33 T ( }) 140.4 365.33 T ( public boolean hasMore\050\051 throws NamingException {) 140.4 341.33 T ( return hasMoreElements\050\051;) 140.4 329.33 T ( }) 140.4 317.33 T ( public Object nextElement\050\051 {) 140.4 293.33 T ( String name = \050String\051names.nextElement\050\051;) 140.4 281.33 T -0.56 ( String className = bindings.get\050name\051.getClass\050\051.getName\050\051;) 140.4 269.33 P ( return new NameClassPair\050name, className\051;) 140.4 257.33 T ( }) 140.4 245.33 T ( public Object next\050\051 throws NamingException {) 140.4 221.33 T ( return nextElement\050\051;) 140.4 209.33 T ( }) 140.4 197.33 T ( }) 140.4 185.33 T ( // Class for enumerating bindings) 140.4 161.33 T ( class FlatBindings implements NamingEnumeration {) 140.4 149.33 T ( Enumeration names;) 140.4 137.33 T ( FlatBindings \050Enumeration names\051 {) 140.4 113.33 T ( this.names = names;) 140.4 101.33 T ( }) 140.4 89.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "31" 35 %%Page: "32" 36 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (32) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X ( public boolean hasMoreElements\050\051 {) 140.4 713.33 T ( return names.hasMoreElements\050\051;) 140.4 701.33 T ( }) 140.4 689.33 T ( public boolean hasMore\050\051 throws NamingException {) 140.4 665.33 T ( return hasMoreElements\050\051;) 140.4 653.33 T ( }) 140.4 641.33 T ( public Object nextElement\050\051 {) 140.4 617.33 T ( String name = \050String\051names.nextElement\050\051;) 140.4 605.33 T ( return new Binding\050name, bindings.get\050name\051\051;) 140.4 593.33 T ( }) 140.4 581.33 T ( public Object next\050\051 throws NamingException {) 140.4 557.33 T ( return nextElement\050\051;) 140.4 545.33 T ( }) 140.4 533.33 T ( }) 140.4 521.33 T (};) 140.4 509.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "32" 36 %%Page: "33" 37 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (33) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 12 Q 0 X (A.1.2) 63.34 712 T (Name Parser) 108 712 T 4 10 Q (/*) 140.4 693.33 T ( * Copyright \050c\051 1997. Sun Microsystems. All rights reserved.) 140.4 681.33 T ( */) 140.4 669.33 T (package ctxegs.flat;) 140.4 657.33 T (import java.naming.NameParser;) 140.4 633.33 T (import java.naming.Name;) 140.4 621.33 T (import java.naming.CompoundName;) 140.4 609.33 T (import java.naming.NamingException;) 140.4 597.33 T (import java.util.Properties;) 140.4 585.33 T (class FlatNameParser implements NameParser {) 140.4 561.33 T ( static Properties syntax = new Properties\050\051;) 140.4 537.33 T ( static {) 140.4 525.33 T ( syntax.put\050\322jndi.syntax.direction\323, \322flat\323\051;) 140.4 513.33 T ( syntax.put\050\322jndi.syntax.ignorecase\323, \322false\323\051;) 140.4 501.33 T ( }) 140.4 489.33 T ( public Name parse\050String name\051 throws NamingException {) 140.4 477.33 T ( return new CompoundName\050name, syntax\051;) 140.4 465.33 T ( }) 140.4 453.33 T (}) 140.4 441.33 T 3 12 Q (A.1.3) 63.34 395 T (Initial Context Factory) 108 395 T 4 10 Q (/*) 140.4 376.33 T ( * Copyright \050c\051 1997. Sun Microsystems. All rights reserved.) 140.4 364.33 T ( */) 140.4 352.33 T (package ctxegs.flat;) 140.4 340.33 T (import java.util.Hashtable;) 140.4 316.33 T (import java.naming.Context;) 140.4 304.33 T (import java.naming.spi.InitialContextFactory;) 140.4 292.33 T (public class FlatInitCtxFactory implements InitialContextFactory {) 140.4 268.33 T ( public Context getInitialContext\050Hashtable env\051 {) 140.4 244.33 T ( return new FlatCtx\050env\051;) 140.4 232.33 T ( }) 140.4 220.33 T (}) 140.4 208.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "33" 37 %%Page: "34" 38 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (34) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "34" 38 %%Page: "35" 39 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (35) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X ( Appendix B: Legend for Class Diagram) 151.5 708 T 0 10.5 Q (In a class diagram, we visually distinguish the dif) 72 681 T (ferent kinds of Ja) 279.68 681 T (v) 352.08 681 T (a entities, as follo) 357.06 681 T (ws:) 430.88 681 T (1.) 63 663 T (The interf) 75 663 T (ace: A rounded rectangle) 116.59 663 T (2.) 63 650 T (The class: A rectangle) 75 650 T (3.) 63 637 T (The abstract class: A rectangle with an empty dot) 75 637 T (4.) 63 624 T (The \336nal class: A rectangle with a black dot) 75 624 T (5.) 63 611 T (Classes with subclasses: A rectangle with a small black triangle on the lo) 75 611 T (wer right corner) 381.54 611 T 0 10 Q (Most of these elements are sho) 54 592.33 T (wn belo) 177.34 592.33 T (w) 209.03 592.33 T (. The class or interf) 215.6 592.33 T (ace being described in the current chapter is shaded gre) 292.98 592.33 T (y \050this is) 514.15 592.33 T (not applicable for package class diagrams\051. A solid line represents) 54 580.33 T 0 9 Q (extends) 321.44 580.33 T 0 10 Q (, while a dotted line represents) 348.93 580.33 T 0 9 Q (implements) 473.64 580.33 T 0 10 Q (.) 515.64 580.33 T 54 72 558 720 C 0 0 0 1 0 0 0 K 126.73 332.19 485.27 577 C 0 30.24 666.76 355 761.76 324.76 95 144.28 407.71 FMBEGINEPSF %%BeginDocument: %!PS-Adobe-3.0 EPSF-3.0 %%DocumentFonts: LucidaSansTypewriter %%DocumentNeededFonts: LucidaSansTypewriter %%BoundingBox: 30.24 666.76 355 761.76 %%EndComments /fontsize 6.00 def /boxdict 100 dict def boxdict begin /inch { 72 mul } def % % Primary input variables. If you change the default font, make sure % to update the comments above too. % /defaultfont /LucidaSansTypewriter def /defaultscale fontsize def % % This variable is the approximate amount that the `center' of the text % line is above the baseline, as a fraction of the total height of % the font. % /centerabovebaseline 0 def /realtextheight 0 def /setcenterabovebaseline { gsave 0 0 moveto (\() false charpath pathbbox exch pop exch neg exch 2 index add /realtextheight exch def realtextheight div /centerabovebaseline exch def pop grestore } def /pagebegin { /pagerestore save def defaultfont findfont defaultscale scalefont setfont setcenterabovebaseline .5 inch -.5 inch translate } def /descender { /lly 0.0 def /ury 0.0 def { ( ) dup 0 4 -1 roll put charheight pop dup lly lt { /lly exch def } { pop } ifelse } forall lly } def % % This show operator takes a width and scales the text to fit the width. % It can scale height and width identically (aspect=1), or just scale % width (aspect=0), or scale width twice as much as height (aspect=0.5). % Set aspect to your taste. /mtwshow means max-text-width-show. A % more functional solution would take the maxtextwidth as a parameter % rather than using a global, but this has more impact on the existing % code so I don't do that. % /aspect 0.5 def /mtwshow { gsave 0 h 2 div centerabovebaseline 0.5 sub realtextheight mul add rmoveto currentpoint translate dup stringwidth pop dup javamaxtextwidth gt { 0 centerabovebaseline translate javamaxtextwidth exch div dup aspect mul 1 aspect sub add scale 0 centerabovebaseline neg translate } { pop } ifelse 0 0 moveto show grestore } def % % This macro gives us a rectangular path, just like rectstroke except it does not stroke. % Assumes origin is lower left hand corner, so only two args are passed. % /rectpath { /h exch def /w exch def newpath 0 0 moveto w 0 rlineto 0 h rlineto w neg 0 rlineto closepath } def % % This macro works like rectpath except it draws rounded corners. The radius of % the rounded corners must be set in the global variable /roundrectradius. % /roundrectradius 0 def /roundrectpath { /h exch def /w exch def newpath w 2 div 0 moveto w 0 w h roundrectradius arct w h w 2 div h roundrectradius arct 0 h 0 0 roundrectradius arct 0 0 w 2 div 0 roundrectradius arct closepath } def % % This macro takes a width and a height and draws either a roundrectpath or a rectpath % depending on the setting of the /rounded macro. It also sets the roundrectradius % to half the height before doing this, as appropriate for the smaller boxes. % /rounded false def % by default, square boxes. /javarect { /h exch def /w exch def /roundrectradius h 2 div def w h rounded { roundrectpath } { rectpath } ifelse } def % % Draw a shadowed box/rounded box. This is the four-argument macro that takes a x, y, % width, and height. % /shadowed true def /corner false def /shadowxoff 2 def /shadowyoff -2 def /shadowcolor { 0.6 0.6 0.6 } def /boxbgcolor { 1 1 1 } def /dotted false def /dotcolor { 0 0 0 } def /black { 0 0 0 } def /javabox { /h exch def /w exch def gsave translate shadowed { gsave shadowxoff shadowyoff translate shadowcolor setrgbcolor w h javarect gsave stroke grestore fill grestore } if w h javarect gsave boxbgcolor setrgbcolor fill grestore stroke % % Always draw the dot centered at position (w-h/2, h/2) with a size of 0.6 of the height. % /javamaxtextwidth maxtextwidth def dotted { gsave /r 0.4 h mul 2 div def w h 2 div sub h 2 div r 0 360 arc gsave dotcolor setrgbcolor fill grestore stroke grestore % chan: don't decrease the width. I'll take of that % when generating the code. %/javamaxtextwidth javamaxtextwidth r h 2 div add sub def } if corner { gsave w h 3 div sub 0 moveto w h 3 div lineto w 0 lineto w h 3 div sub 0 lineto gsave stroke grestore black setrgbcolor fill grestore % chan: don't decrease the width. I'll take of that % when generating the code. %/javamaxtextwidth javamaxtextwidth r h 2 div add sub def } if grestore } def end % %%EndProlog %%BeginSetup boxdict begin %%EndSetup %%Page: 1 1 pagebegin 1 setlinecap 1 setlinejoin % currentlinewidth 0.1 mul setlinewidth .3 setlinewidth /rounded false def /corner true def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.0 inch 10.84 inch 1.6 inch 0.16 inch javabox 0.08 inch 10.84 inch moveto (java.lang.Object) mtwshow /rounded false def /corner true def /dotted true def /dotcolor { 1 1 1 } def /maxtextwidth 97.92 def /boxbgcolor {1 1 1} def 0.24 inch 10.6 inch 1.6 inch 0.16 inch javabox 0.32 inch 10.6 inch moveto (MenuComponent) mtwshow /rounded false def /corner true def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.48 inch 10.36 inch 1.6 inch 0.16 inch javabox 0.5599999999999999 inch 10.36 inch moveto (MenuItem) mtwshow /rounded false def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {0.8 0.8 0.8} def 0.72 inch 10.12 inch 1.6 inch 0.16 inch javabox 0.7999999999999999 inch 10.12 inch moveto (CheckboxMenuItem) mtwshow /rounded false def /corner true def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.72 inch 9.879999999999999 inch 1.6 inch 0.16 inch javabox 0.7999999999999999 inch 9.879999999999999 inch moveto (Menu) mtwshow gsave 0.12 inch 10.84 inch moveto 0.12 inch 10.68 inch lineto 0.24 inch 10.68 inch lineto stroke grestore gsave 0.36 inch 10.6 inch moveto 0.36 inch 10.44 inch lineto 0.48 inch 10.44 inch lineto stroke grestore gsave 0.6 inch 10.36 inch moveto 0.6 inch 10.2 inch lineto 0.72 inch 10.2 inch lineto stroke grestore gsave 0.6 inch 10.36 inch moveto 0.6 inch 9.959999999999999 inch lineto 0.72 inch 9.959999999999999 inch lineto stroke grestore /rounded true def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 2.6399999999999997 inch 10.12 inch 1.6 inch 0.16 inch javabox 2.7199999999999998 inch 10.12 inch moveto (ItemSelectable) mtwshow gsave .5 setlinewidth [0.1 3] 1.6 setdash 2.5199999999999996 inch 10.2 inch moveto 2.5199999999999996 inch 10.2 inch lineto 2.3200000000000003 inch 10.2 inch moveto 2.5199999999999996 inch 10.2 inch lineto 2.5199999999999996 inch 10.2 inch moveto 2.6399999999999997 inch 10.2 inch lineto stroke grestore grestore showpage pagerestore restore %%Trailer end %%EOF %%EndDocument FMENDEPSF 0 0 0 1 0 0 0 K 410.01 437.67 420.55 396.17 2 L 0.5 H 2 Z 0 X 0 0 0 1 0 0 0 K N 0 10 Q (Interf) 425.16 390.24 T (ace) 447.27 390.24 T 269.01 473.91 294.71 515.42 2 L N (Abstract class) 242.66 521.35 T 303.93 440.31 289.44 388.92 2 L N (The current class) 260.45 377.06 T 290.1 457.44 358.62 510.15 2 L N (Class with subclasses) 343.46 518.05 T 329.63 439.65 363.89 380.35 2 L N 0 9 Q (implements) 354.66 368.49 T 192.58 436.36 182.7 399.46 2 L N (e) 163.6 390.24 T (xtends) 167.46 390.24 T 191.93 494.99 184.68 508.83 2 L N 0 10 Q (Class from) 139.88 524.64 T (another package) 139.88 513.58 T 0 0 0 1 0 0 0 K 54 72 558 720 C 0 0 612 792 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "35" 39 %%Page: "36" 40 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (36) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "36" 40 %%Page: "37" 41 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (37) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X ( Appendix C: JNDI Change History) 168.25 708 T 54 665.99 558 676 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 665.99 558 676 R 7 X 0 0 0 1 0 0 0 K V 56 674.02 176 674.02 2 L V 1 H 2 Z 0 X N 0 0 612 792 C 3 12 Q 0 X 0 0 0 1 0 0 0 K (1.1Beta1: JNDI Changes Since 1.0Licensee Release) 54 680 T 3 10 Q (P) 54 646.33 T (ackage Name Change) 60.01 646.33 T 0 F (JNDI is being packaged as a Ja) 54 631.33 T (v) 178.21 631.33 T (a 1.1-compatible Standard Extension. The JNDI packages ha) 182.96 631.33 T (v) 426.32 631.33 T (e been renamed to use the) 431.17 631.33 T (\322ja) 54 619.33 T (v) 65.46 619.33 T (ax\323 pre\336x, follo) 70.21 619.33 T (wing the con) 133.56 619.33 T (v) 184.82 619.33 T (ention for Ja) 189.67 619.33 T (v) 239.46 619.33 T (a Standard Extensions. The ne) 244.21 619.33 T (w package names are:) 365.33 619.33 T 4 F (javax.naming) 455.85 619.33 T 0 F (,) 527.85 619.33 T 4 F (javax.naming.directory) 54 607.33 T 0 F (, and) 185.35 607.33 T 4 F (j) 207.29 607.33 T (avax.naming.spi) 213.29 607.33 T 0 F (.) 303.29 607.33 T 3 F (General Changes) 54 585.33 T 0 F (\245) 54 570.33 T (Property names ha) 72 570.33 T (v) 146.23 570.33 T (e been renamed follo) 151.08 570.33 T (wing the con) 234.97 570.33 T (v) 286.23 570.33 T (ention used by the JDK. The) 291.08 570.33 T (y ha) 405.36 570.33 T (v) 422.1 570.33 T (e a \322ja) 426.95 570.33 T (v) 452.29 570.33 T (a.naming\323 pre\336x. See) 457.04 570.33 T (Appendix A of) 72 558.33 T 3 F (JNDI API) 134.49 558.33 T 0 F ( document for details on the ne) 177.54 558.33 T (w names.) 301.16 558.33 T (\245) 54 546.33 T (Mak) 72 546.33 T (e) 90.23 546.33 T 4 F (java.naming.provider.url) 97.17 546.33 T 0 F ( a system property in addition to being a) 241.17 546.33 T (v) 402.07 546.33 T (ailable as an en) 406.82 546.33 T (vironment property) 467.79 546.33 T (.) 544.63 546.33 T (\245) 54 534.33 T -0.34 (Replaced use of) 72 534.33 P 4 F -0.83 (Properties) 137.33 534.33 P 0 F -0.34 ( with) 197.33 534.33 P 4 F -0.83 (Hashtable) 219.42 534.33 P 0 F -0.34 ( \050) 273.42 534.33 P 4 F -0.83 (Properties) 278.91 534.33 P 0 F -0.34 (\325 superclass\051 for the en) 338.91 534.33 P -0.34 (vironment properties/settings so) 428.21 534.33 P (that service pro) 72 522.33 T (viders and applications can completely enumerate its contents.) 133.5 522.33 T 4 F (Properties) 385.96 522.33 T 0 F ( can still be passed as ar) 445.96 522.33 T (gu-) 541.87 522.33 T -0.23 (ments and returned as v) 72 510.33 P -0.23 (alues when) 165.81 510.33 P 4 F -0.55 (Hashtable) 212.56 510.33 P 0 F -0.23 ( is called for) 266.56 510.33 P -0.23 (. But declaring the methods to use) 315.04 510.33 P 4 F -0.55 (Hashtable) 452.31 510.33 P 0 F -0.23 ( mak) 506.31 510.33 P -0.23 (es clear) 525.7 510.33 P (the f) 72 498.33 T (act that nested) 89.95 498.33 T 4 F (Properties) 149.66 498.33 T 0 F ( are not e) 209.66 498.33 T (xamined for the operation at hand.) 246.44 498.33 T 3 F (API-r) 54 476.33 T (elated Changes) 78.81 476.33 T 0 F (As most of these changes are renames, the 1.1Beta1 release of the code includes a Ja) 54 461.33 T (v) 392.32 461.33 T (a ClassRenamer) 397.07 461.33 T 0 8 Q (1) 461.78 465.33 T 0 10 Q ( program that assists) 465.78 461.33 T (you with the renames. See the instructions for the release for details.) 54 449.33 T (\245) 54 437.33 T (Added) 72 437.33 T 4 F (Context.close\050\051) 101.16 437.33 T 0 F ( to allo) 191.16 437.33 T (w applications to release resources immediately) 218.69 437.33 T (.) 409.39 437.33 T (\245) 54 425.33 T (Added) 72 425.33 T 4 F (InterruptedNamingException) 101.16 425.33 T 0 F ( to indicate a naming operation has been interrupted.) 257.16 425.33 T (\245) 54 413.33 T (Class renames:) 72 413.33 T 4 F (DSContext) 134.77 413.33 T 0 F (->) 188.77 413.33 T 4 F (DirContext) 197.74 413.33 T 0 F (,) 257.74 413.33 T 4 F (InitialDSContext) 262.74 413.33 T 0 F (->) 358.74 413.33 T 4 F (InitialDirContext) 367.71 413.33 T 0 F (,) 469.71 413.33 T 4 F (AttributeSet) 72 401.33 T 0 F (->) 144 401.33 T 4 F (Attributes) 152.97 401.33 T 0 F (,) 212.97 401.33 T 4 F (InvalidAttributeSetException) 217.97 401.33 T 0 F (->) 385.97 401.33 T 4 F (InvalidAttributesException) 394.94 401.33 T 0 F (,) 550.94 401.33 T 4 F (SearchConstraints) 72 389.33 T 0 F (->) 174 389.33 T 4 F (SearchControls, InvalidSearchConstraintsException->Invalid-) 182.97 389.33 T (SearchControlsException.) 72 377.33 T 0 F (\245) 54 365.33 T -0.19 (Mak) 72 365.33 P -0.19 (e) 90.23 365.33 P 4 F -0.44 (Attributes) 96.99 365.33 P 0 F -0.19 (\325 methods look lik) 156.99 365.33 P -0.19 (e) 229.39 365.33 P 4 F -0.44 (Map) 236.15 365.33 P 0 F -0.19 (\325) 254.15 365.33 P -0.19 (s) 256.92 365.33 P 0 8 Q -0.15 (2) 260.82 369.33 P 0 10 Q -0.19 (,) 264.82 365.33 P 4 F -0.44 (Attribute) 269.63 365.33 P 0 F -0.19 (\325) 323.63 365.33 P -0.19 (s methods look lik) 326.41 365.33 P -0.19 (e) 399.38 365.33 P 4 F -0.44 (Set) 406.13 365.33 P 0 F -0.19 (\325) 424.13 365.33 P -0.19 (s, and) 426.91 365.33 P 4 F -0.44 (Name) 452.37 365.33 P 0 F -0.19 (,) 476.37 365.33 P 4 F -0.44 (CompoundName) 481.18 365.33 P 0 F -0.19 (,) 553.18 365.33 P 4 F (CompositeName) 72 353.33 T 0 F (, and) 150 353.33 T 4 F (Reference) 171.94 353.33 T 0 F (\325) 225.94 353.33 T (s methods look lik) 228.72 353.33 T (e) 302.24 353.33 T 4 F (List) 309.18 353.33 T 0 F (\325) 333.18 353.33 T (s.) 335.96 353.33 T (\245) 54 341.33 T (Added protected) 72 341.33 T 4 F (Attribute.Attribute\050\051) 140.87 341.33 T 0 F ( constructor so that subclasses can a) 266.87 341.33 T (v) 410.53 341.33 T (oid allocating) 415.33 341.33 T 4 F (Vector) 472.55 341.33 T 0 F (.) 508 341.33 T (\245) 54 329.33 T (Added constructors to) 72 329.33 T 4 F (Attributes) 162.82 329.33 T 0 F ( that accept an attrib) 222.82 329.33 T (ute.) 303.71 329.33 T (\245) 54 317.33 T (Added) 72 317.33 T 4 F (throws NamingException) 101.16 317.33 T 0 F ( clause to) 233.16 317.33 T 4 F (Attribute) 273.43 317.33 T 0 F (\325) 327.43 317.33 T (s schema methods.) 330.21 317.33 T (\245) 54 305.33 T (Renamed) 72 305.33 T 4 F (DirContext.DELETE_ATTRIBUTE) 112.27 305.33 T 0 F (->) 274.27 305.33 T 4 F (DirContext.REMOVE_ATTRIBUTE) 283.24 305.33 T 0 F (.) 445.24 305.33 T (\245) 54 293.33 T (Replaced) 72 293.33 T 4 F (ModificationEnumeration) 111.71 293.33 T 0 F ( with) 249.71 293.33 T 4 F (ModificationItem[]) 272.49 293.33 T 0 F (.) 380.49 293.33 T (\245) 54 281.33 T (Replaced) 72 281.33 T 4 F (RefAddrEnumeration) 111.71 281.33 T 0 F ( and) 219.71 281.33 T 4 F (StringEnumeration) 239.15 281.33 T 0 F ( with) 341.15 281.33 T 4 F (Enumeration) 363.93 281.33 T 0 F (.) 429.93 281.33 T (\245) 54 269.33 T (Replaced) 72 269.33 T 4 F (AttributeEnumeration) 111.71 269.33 T 0 F (,) 231.71 269.33 T 4 F (NameClassEnumeration) 236.71 269.33 T 0 F (,) 356.71 269.33 T 4 F (BindingEnumeration) 361.71 269.33 T 0 F (, aand) 469.71 269.33 T 4 F (SearchEnu-) 496.09 269.33 T (meration) 72 257.33 T 0 F ( with) 120 257.33 T 4 F (NamingEnumeration) 142.78 257.33 T 0 F ( to allo) 244.78 257.33 T (w generic means of doing JNDI enumerations.) 272.31 257.33 T (\245) 54 245.33 T 4 F (Attribute.getAll\050\051) 72 245.33 T 0 F ( returns) 180 245.33 T 4 F (NamingEnumeration) 212.77 245.33 T 0 F ( instead of) 314.77 245.33 T 4 F (Enumeration) 358.93 245.33 T 0 F (.) 424.93 245.33 T (\245) 54 233.33 T 4 F (Link.getLinkName\050\051) 72 233.33 T 0 F ( returns) 180 233.33 T 4 F (String) 212.77 233.33 T 0 F ( instead of) 248.77 233.33 T 4 F (Name) 292.93 233.33 T 0 F (.) 316.93 233.33 T (\245) 54 221.33 T 4 F (BinaryRefAddr.buf) 72 221.33 T 0 F ( and) 174 221.33 T 4 F (StringRefAddr.contents) 193.44 221.33 T 0 F ( made pri) 325.44 221.33 T (v) 362.96 221.33 T (ate. Deleted) 367.71 221.33 T 4 F (Binary.getAddressBy-) 417.97 221.33 T (tes\050\051) 72 209.33 T 0 F (,) 102 209.33 T 4 F (StringRefAddr.getAddressString\050\051) 107 209.33 T 0 F (,) 299 209.33 T 4 F (BinaryRefAddr.size\050\051) 304 209.33 T 0 F (.) 424 209.33 T (\245) 54 197.33 T (Renamed) 72 197.33 T 4 F (RefAddr.getAddressContents\050\051) 112.27 197.33 T 0 F (->) 280.27 197.33 T 4 F (getContent\050\051) 289.24 197.33 T 0 F (.) 361.24 197.33 T (\245) 54 185.33 T (Remo) 72 185.33 T (v) 95.74 185.33 T (ed) 100.59 185.33 T 4 F (DSException) 112.53 185.33 T 0 F (, re-parented e) 178.53 185.33 T (xceptions to be subclass of) 235.85 185.33 T 4 F (NamingException) 345.56 185.33 T 0 F (\245) 54 173.33 T -0.38 (Remo) 72 173.33 P -0.38 (v) 95.74 173.33 P -0.38 (ed most constructors from) 100.59 173.33 P 4 F -0.91 (NamingException) 206.29 173.33 P 0 F -0.38 ( and its subclasses. Each has tw) 296.29 173.33 P -0.38 (o constructors: one that accepts an) 420.3 173.33 P (e) 72 161.33 T (xplanation and a public constructor that tak) 76.29 161.33 T (es no parameters.) 249.5 161.33 T (\245) 54 149.33 T (Remo) 72 149.33 T (v) 95.74 149.33 T (ed) 100.59 149.33 T 4 F (Name.toString\050\051) 112.53 149.33 T 0 F (,) 202.53 149.33 T 4 F (equals\050\051) 207.53 149.33 T 0 F (,) 255.53 149.33 T 4 F (hashCode\050\051) 260.53 149.33 T 0 F ( as these are already de\336ned by) 320.53 149.33 T 4 F (Object) 447.99 149.33 T 0 F (.) 483.99 149.33 T (\245) 54 137.33 T (Constructors for abstract classes) 72 137.33 T 4 F (RefAddr) 203.64 137.33 T 0 F ( and) 245.64 137.33 T 4 F (ReferralException) 265.08 137.33 T 0 F ( are no) 367.08 137.33 T (w protected.) 394.04 137.33 T 54 96 558 110.98 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 96 558 110.98 R 7 X 0 0 0 1 0 0 0 K V 63 108.96 207 108.96 2 L V 0.5 H 2 Z 0 X N 0 0 612 792 C 0 10 Q 0 X 0 0 0 1 0 0 0 K (1.) 72 89.33 T (Thanks to the Swing team for use and distrib) 84 89.33 T (ution of this program.) 263.23 89.33 T (2.) 72 77.33 T (See http://ja) 84 77.33 T (v) 131.86 77.33 T (a.sun.com/products/jdk/pre) 136.61 77.33 T (vie) 245.24 77.33 T (w/docs/guide/collections/ for information on) 257.21 77.33 T 4 F (Map) 438.31 77.33 T 0 F (,) 456.31 77.33 T 4 F (Set) 461.31 77.33 T 0 F ( and) 479.31 77.33 T 4 F (List) 498.75 77.33 T 0 F (.) 522.75 77.33 T 34 74 36 688 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "37" 41 %%Page: "38" 42 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (38) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 F 0 X (SPI-r) 54 713.33 T (elated Changes) 77.15 713.33 T 0 F (\245) 54 698.33 T 4 F (NamingManager.getObjectInstance\050\051) 72 698.33 T 0 F ( and) 270 698.33 T 4 F (ObjectFactory.getObjectInstance\050\051) 289.44 698.33 T 0 F ( allo) 487.44 698.33 T (w the caller) 504.69 698.33 T (to supply tw) 72 686.33 T (o optional parameters: a name and a conte) 121.35 686.33 T (xt. The name is the name of the object resolv) 289.77 686.33 T (ed relati) 469.59 686.33 T (v) 501.83 686.33 T (e to the con-) 506.68 686.33 T (te) 72 674.33 T (xt supplied. An object f) 79.07 674.33 T (actory can mak) 173.13 674.33 T (e use of this information to g) 234.12 674.33 T (ather further information about the object to create.) 349.62 674.33 T (See the corresponding ja) 72 662.33 T (v) 170.39 662.33 T (adoc for these methods for details. Corresponding \336elds and accessor methods were added to) 175.14 662.33 T 4 F (CannotProceedException) 72 650.33 T 0 F ( so that this information, if supplied, can be propag) 204 650.33 T (ated.) 408.1 650.33 T (\245) 54 638.33 T (Constants used in) 72 638.33 T 4 F (NamingManager) 145.06 638.33 T 0 F ( for property names remo) 223.06 638.33 T (v) 324.55 638.33 T (ed:) 329.4 638.33 T 4 F (O) 344.12 638.33 T (bjectFactoryProperty) 350.12 638.33 T (,) 470.12 638.33 T (I) 478.9 638.33 T (nitialCon-) 484.9 638.33 T (textFactoryProperty) 72 626.33 T 0 F (,) 185.35 626.33 T 4 F (P) 190.35 626.33 T (kgPathProperty) 196.35 626.33 T 0 F (. These were used for internal de) 279.7 626.33 T (v) 410.24 626.33 T (elopment. Programs should use the) 415.09 626.33 T (appropriate strings instead.) 72 614.33 T (\245) 54 602.33 T 4 F -0.12 (NamingManager.getObjectInstance\050\051) 72 602.33 P 0 F -0.05 ( returns original input if it cannot create a f) 270 602.33 P -0.05 (actory using the reference of) 441.35 602.33 P (the object \050it used to return) 72 590.33 T 4 F (null) 182.54 590.33 T 0 F (\051.) 206.54 590.33 T (\245) 54 578.33 T 4 F (InitialContext) 72 578.33 T 0 F ( constructor that tak) 156 578.33 T (es no parameters calls) 235.61 578.33 T 4 F (NamingManager.getInitialContext\050\051) 326.14 578.33 T 0 F ( with a) 524.14 578.33 T 4 F (null) 72 566.33 T 0 F ( en) 96 566.33 T (vironment instead of empty en) 107.54 566.33 T (vironment.) 229.35 566.33 T 54 526.99 558 537 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 526.99 558 537 R 7 X 0 0 0 1 0 0 0 K V 56 535.02 176 535.02 2 L V 1 H 2 Z 0 X N 0 0 612 792 C 3 12 Q 0 X 0 0 0 1 0 0 0 K (1.0Licensee Release: J) 54 541 T (NDI Changes Since) 167.64 541 T (1.0) 269.98 541 T (Beta) 284.98 541 T (1) 308.3 541 T 3 10 Q (P) 54 507.33 T (ackage Name Change) 60.01 507.33 T 0 F (T) 54 492.33 T (o allo) 59.31 492.33 T (w this release to w) 81.56 492.33 T (ork in all Ja) 155.89 492.33 T (v) 202.63 492.33 T (a 1.1 systems, the JNDI classes ha) 207.38 492.33 T (v) 344.38 492.33 T (e been temporarily renamed from the) 349.23 492.33 T 4 F (java.nam-) 497.8 492.33 T (ing) 54 480.33 T 0 F ( hierarch) 72 480.33 T (y to) 107.21 480.33 T 4 F (com.sun.java.naming) 124.99 480.33 T 0 F (.) 238.99 480.33 T 3 F (API-r) 54 458.33 T (elated Changes) 78.81 458.33 T 0 F (\245) 54 443.33 T 4 F (SearchConstraints) 72 443.33 T 0 F ( no) 174 443.33 T (w implements) 186.25 443.33 T 4 F (java.io.Serializable) 245.14 443.33 T 0 F (.) 365.14 443.33 T (\245) 54 431.33 T (Added) 72 431.33 T 4 F (ReferralException.skipReferrals\050\051) 101.16 431.33 T 0 F ( to allo) 299.16 431.33 T (w application to skip indi) 326.69 431.33 T (vidual referrals.) 428.11 431.33 T (\245) 54 419.33 T (Added constructor to) 72 419.33 T 4 F (NoInitialContextException) 158.93 419.33 T 0 F ( that accepts an e) 308.93 419.33 T (xplanation string.) 377.09 419.33 T (\245) 54 407.33 T (Added) 72 407.33 T 4 F (SchemaViolationException) 101.16 407.33 T 0 F ( for reporting schema-related problems.) 245.16 407.33 T (\245) 54 395.33 T (Renamed) 72 395.33 T 4 F (java.naming.directory.SearchTimeLimitExceededException) 112.27 395.33 T 0 F ( to) 436.27 395.33 T 4 F (java.naming.Time-) 449.05 395.33 T -0.49 (LimitExceededException) 72 383.33 P 0 F -0.2 (so that it can be used by the) 209.51 383.33 P 4 F -0.49 (java.naming) 321.19 383.33 P 0 F -0.2 ( package. Added) 387.19 383.33 P 4 F -0.49 (java.naming.Limi-) 456 383.33 P (tExceededException) 72 371.33 T 0 F (, which is the super class of) 180 371.33 T 4 F (TimeLimitExceededException) 292.76 371.33 T 0 F ( and) 448.76 371.33 T 4 F (SizeLimitExceededException) 72 359.33 T 0 F ( \050ne) 228 359.33 T (w as well\051.) 243.02 359.33 T (\245) 54 347.33 T (T) 72 347.33 T (o assist in deb) 77.31 347.33 T (ugging and displaying classes, added) 133.5 347.33 T 4 F (AttributeSet.toString\050\051) 284.04 347.33 T 0 F (,) 422.04 347.33 T 4 F (Binding.toString\050\051) 427.04 347.33 T 0 F (,) 535.04 347.33 T 4 F (SearchResult.toString\050\051) 72 335.33 T 0 F (.) 210 335.33 T (\245) 54 323.33 T -0.1 (Clari\336ed semantics of the o) 72 323.33 P -0.1 (v) 181.43 323.33 P -0.1 (erloaded form of) 186.28 323.33 P 4 F -0.25 (search\050\051) 255.66 323.33 P 0 F -0.1 ( that accepts a matching attrib) 303.67 323.33 P -0.1 (ute set \050) 422.65 323.33 P 4 F -0.25 (AttributeSet) 454.1 323.33 P 0 F -0.1 (\051. If the) 526.1 323.33 P (matching attrib) 72 311.33 T (ute set is) 132.63 311.33 T 4 F (null) 170.13 311.33 T 0 F ( or empty) 194.13 311.33 T (, return all the objects in the tar) 231.81 311.33 T (get conte) 356.61 311.33 T (xt.) 392.84 311.33 T (\245) 54 299.33 T 4 F (AttributeSet) 72 299.33 T 0 F ( no) 144 299.33 T (w implements) 156.25 299.33 T 4 F (Cloneable) 215.14 299.33 T 0 F (, and has a) 269.14 299.33 T 4 F (clone\050\051) 313.85 299.33 T 0 F ( method.) 355.85 299.33 T 3 F (SPI-r) 54 277.33 T (elated Changes) 77.15 277.33 T 0 F (\245) 54 262.33 T (Added \322set\323 methods to) 72 262.33 T 4 F (NameClassPair) 170.32 262.33 T 0 F (,) 247.92 262.33 T 4 F (Binding) 252.92 262.33 T 0 F (, and) 294.92 262.33 T 4 F (SearchResult) 316.86 262.33 T 0 F ( classes and made the protected \336elds pri-) 388.86 262.33 T (v) 72 250.33 T (ate. This enables service pro) 76.75 250.33 T (viders to update the \336elds in these classes without subclassing.) 190.18 250.33 T (\245) 54 238.33 T (Added a constructor to) 72 238.33 T 4 F (NameClassPair) 165.87 238.33 T 0 F (,) 243.47 238.33 T 4 F ( Binding) 245.97 238.33 T 0 F (,) 293.97 238.33 T (and) 302.47 238.33 T 4 F ( SearchResult) 316.91 238.33 T 0 F ( that accepts a \322relati) 394.91 238.33 T (v) 478.52 238.33 T (e\323 parameter) 483.37 238.33 T (, and) 534.33 238.33 T 4 F (isRelative\050\051) 72 226.33 T 0 F ( and) 144 226.33 T 4 F (setRelative\050\051) 163.44 226.33 T 0 F ( methods. This allo) 241.44 226.33 T (ws service pro) 317.86 226.33 T (viders to return names that are not relati) 375.47 226.33 T (v) 534.91 226.33 T (e to) 539.76 226.33 T (the tar) 72 214.33 T (get conte) 97.09 214.33 T (xt of the search. Non-relati) 133.32 214.33 T (v) 240.54 214.33 T (e names are named using URL strings.) 245.39 214.33 T (\245) 54 202.33 T -0.4 (Contract between) 72 202.33 P 4 F -0.96 (NamingManager.getObjectInstance\050\051) 143.96 202.33 P 0 F -0.4 ( and) 341.96 202.33 P 4 F -0.96 (ObjectFactory) 360.59 202.33 P 0 F -0.4 ( is clari\336ed. An object f) 438.59 202.33 P -0.4 (actory) 530.91 202.33 P -0 (returns) 72 190.33 P 4 F -0 (null) 102.27 190.33 P 0 F -0 ( if it cannot create the object; it only thro) 126.27 190.33 P -0 (ws an e) 289.6 190.33 P -0 (xception \050which is passed up to the caller of) 319.43 190.33 P 4 F -0 (NamingMan-) 498 190.33 P (ager.getObjectInstance\050\051) 72 178.33 T 0 F (\051 if no other object f) 216 178.33 T (actories should be tried.) 296.16 178.33 T (\245) 54 166.33 T (Replaced) 72 166.33 T 4 F (Resolver.resolvePenultimate\050\051) 111.71 166.33 T 0 F ( with) 285.71 166.33 T 4 F (Resolver.resolveToClass\050\051) 308.49 166.33 T 0 F (. This allo) 458.49 166.33 T (ws more ef) 498.52 166.33 T (\336-) 542.7 166.33 T (cient implementation of service pro) 72 154.33 T (viders by allo) 214.05 154.33 T (wing the resolution to stop at the \336rst conte) 268.24 154.33 T (xt that e) 441.42 154.33 T (xports a tar) 473.49 154.33 T (get class,) 518.3 154.33 T (rather than requiring resolution to proceed to the penultimate conte) 72 142.33 T (xt. The \336nal service pro) 339.86 142.33 T (vider in a chain of federated) 434.97 142.33 T (naming systems no longer needs to implement) 72 130.33 T 4 F (Resolver) 260.05 130.33 T 0 F (; only the intermediate pro) 308.05 130.33 T (viders.must do so.) 414 130.33 T (\245) 54 118.33 T -0.15 (Remo) 72 118.33 P -0.15 (v) 95.74 118.33 P -0.15 (ed) 100.59 118.33 P 4 F -0.36 (NotDSContextException) 112.38 118.33 P 0 F -0.15 (. Service pro) 238.38 118.33 P -0.15 (viders should use) 288.74 118.33 P 4 F -0.36 (NotContextException) 360.23 118.33 P 0 F -0.15 ( with the tar) 474.23 118.33 P -0.15 (get class) 521.64 118.33 P (name in the e) 72 106.33 T (xplanation to indicate that a particular subclass of) 125.45 106.33 T 4 F (Context) 326.53 106.33 T 0 F ( is required b) 368.53 106.33 T (ut not found.) 420.82 106.33 T (\245) 54 94.33 T (The def) 72 94.33 T (ault package pre\336x for loading URL conte) 102.72 94.33 T (xt f) 271.98 94.33 T (actories has changed from \322sun.jndi.url\323 to \322com.sun.jndi.url\323) 285.49 94.33 T (because of package renaming.) 72 82.33 T 34 537 36 720 R V 34 476.99 36 486.99 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "38" 42 %%Page: "39" 43 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (39) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 F 0 X (Document V) 54 713.33 T (ersion Numbers Reset) 106.6 713.33 T 0 F -0.16 (The earlier) 54 698.33 P -0.16 (v) 99.76 698.33 P -0.16 (ersions of the JNDI documents were labeled as v) 104.61 698.33 P -0.16 (ersions 1.0, 1.1. and 1.2. The) 298.68 698.33 P -0.16 (y should ha) 413.53 698.33 P -0.16 (v) 459.12 698.33 P -0.16 (e been) 463.97 698.33 P -0.16 (\322Early Access\323,) 491.96 698.33 P (\322) 54 686.33 T (Beta) 58.44 686.33 T (1\323) 76.77 686.33 T (a) 88.71 686.33 T (nd so on,) 93.15 686.33 T (to match the code releases.) 132.04 686.33 T 54 646.99 558 657 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 646.99 558 657 R 7 X 0 0 0 1 0 0 0 K V 56 655.02 176 655.02 2 L V 1 H 2 Z 0 X N 0 0 612 792 C 3 12 Q 0 X 0 0 0 1 0 0 0 K (1.0Beta1: J) 54 661 T (NDI Changes Since) 111.32 661 T (1.0Early Access) 213.66 661 T 3 10 Q (API-r) 54 627.33 T (elated Changes) 78.81 627.33 T 0 F (\245) 54 612.33 T -0.01 (Added) 72 612.33 P 4 F -0.03 (java.naming.ReferralException) 101.15 612.33 P 0 F -0.01 ( to support client-side referrals. This abstract class is used to represent) 275.15 612.33 P -0.17 (a referral e) 72 600.33 P -0.17 (xception, such as that a) 114.81 600.33 P -0.17 (v) 206.96 600.33 P -0.17 (ailable in LD) 211.71 600.33 P -0.17 (AP v3. A service pro) 263.74 600.33 P -0.17 (vider de\336nes a subclass of) 347.05 600.33 P 4 F -0.41 (ReferralException) 453.67 600.33 P 0 F (to handle its o) 72 588.33 T (wn style of referrals.) 128.14 588.33 T (\245) 54 564.33 T (Added) 72 564.33 T 4 F (compareTo\050\051) 101.16 564.33 T 0 F ( to) 167.16 564.33 T 4 F (Name) 179.94 564.33 T 0 F ( \050and related classes) 203.94 564.33 T 4 F (CompositeName) 286.69 564.33 T 0 F (,) 364.69 564.33 T 4 F (CompoundName) 369.69 564.33 T 0 F (\051.) 441.69 564.33 T (public int compareTo\050Object obj\051;) 108 542.33 T (This method compares this) 72 524.33 T 4 F (Name) 182.55 524.33 T 0 F ( with the speci\336ed) 206.55 524.33 T 4 F (Object) 282.1 524.33 T 0 F ( for order) 318.1 524.33 T (. It returns a ne) 355.31 524.33 T (g) 417.92 524.33 T (ati) 422.87 524.33 T (v) 432.62 524.33 T (e inte) 437.47 524.33 T (ger) 459.26 524.33 T (, zero, or a positi) 471.63 524.33 T (v) 538.59 524.33 T (e) 543.44 524.33 T (inte) 72 512.33 T (ger as this) 86.85 512.33 T 4 F (Name) 129.9 512.33 T 0 F ( is less than, equal to, or greater than the gi) 153.9 512.33 T (v) 325.29 512.33 T (en) 330.14 512.33 T 4 F (Object) 342.08 512.33 T 0 F (. This method is useful for sorting a list of) 378.08 512.33 T (names.) 72 500.33 T (\245) 54 476.33 T (Added \324) 72 476.33 T 4 F (throws NamingException) 104.49 476.33 T 0 F (\325 to) 236.49 476.33 T 4 F (Referenceable.getReference\050\051) 252.6 476.33 T 0 F ( so that the implementor of) 420.6 476.33 T 4 F (getReference\050\051) 72 464.33 T 0 F ( can thro) 156 464.33 T (w an e) 190.74 464.33 T (xception if it encounters one.) 216.69 464.33 T (public Reference getReference\050\051 throws NamingException;) 108 442.33 T (\245) 54 424.33 T 4 F -0.15 (AttributeSet) 72 424.33 P 0 F -0.06 ( w) 144 424.33 P -0.06 (as originally case-sensiti) 153.56 424.33 P -0.06 (v) 251.51 424.33 P -0.06 (e. That is, the case of an attrib) 256.36 424.33 P -0.06 (ute identi\336er w) 375.98 424.33 P -0.06 (as considered when retrie) 436.3 424.33 P -0.06 (ving) 537.78 424.33 P (or adding an attrib) 72 412.33 T (ute to the set. T) 145.4 412.33 T (o better support service pro) 206.54 412.33 T (viders that support case-insensiti) 315.81 412.33 T (v) 446.38 412.33 T (e attrib) 451.23 412.33 T (ute identi\336ers, an) 479.08 412.33 T 4 F (AttributeSet) 72 400.33 T 0 F ( may no) 144 400.33 T (w be made case-insensiti) 175.97 400.33 T (v) 275.42 400.33 T (e. This change in) 280.27 400.33 T (v) 348.19 400.33 T (olv) 352.99 400.33 T (ed adding a ne) 365.62 400.33 T (w constructor to) 423.41 400.33 T 4 F (Attribute-) 490.9 400.33 T (Set) 72 388.33 T 0 F ( and a ne) 90 388.33 T (w method for interrog) 125.57 388.33 T (ating an attrib) 213.56 388.33 T (ute set about its handling of case.) 268.91 388.33 T (public AttributeSet\050boolean caseIgnore\051;) 108 366.33 T 4 F (public boolean isCaseIgnored\050\051;) 108 348.33 T 0 F (\245) 54 330.33 T 4 F (Context.setEnvironment\050\051) 72 330.33 T 0 F ( w) 216 330.33 T (as insuf) 225.62 330.33 T (\336cient to allo) 256.2 330.33 T (w both addition and remo) 308.73 330.33 T (v) 411.35 330.33 T (al of en) 416.1 330.33 T (vironment properties. The) 445.69 330.33 T (change is to replace) 72 318.33 T 4 F (setEnvironment\050\051) 153.64 318.33 T 0 F ( with) 249.64 318.33 T 4 F (addToEnvironment\050\051) 272.42 318.33 T 0 F ( and) 380.42 318.33 T 4 F (removeFromEnvironment\050\051) 399.86 318.33 T 0 F (.) 537.86 318.33 T (public Properties addToEnvironment\050Properties additions\051 throws NamingException;) 108 296.33 T 4 F (public Properties removeFromEnvironment\050Properties deletions\051 throws) 108 278.33 T (NamingException;) 108 266.33 T 0 F (\245) 54 248.33 T -0.27 (Added) 72 248.33 P 4 F -0.65 (hasMore\050\051) 100.89 248.33 P 0 F -0.27 ( to) 154.89 248.33 P 4 F -0.65 (BindingEnumeration) 167.13 248.33 P 0 F -0.27 (,) 275.13 248.33 P 4 F -0.65 (NameClassEnumeration) 279.86 248.33 P 0 F -0.27 ( and) 399.86 248.33 P 4 F -0.65 (SearchEnumeration) 418.75 248.33 P 0 F -0.27 ( so that a) 520.75 248.33 P (service pro) 72 236.33 T (vider can thro) 116 236.33 T (w an e) 171.29 236.33 T (xception when this query f) 197.24 236.33 T (ails for some une) 303.79 236.33 T (xpected reason.) 372.24 236.33 T 4 F (Enumeration.has-) 436.94 236.33 T (MoreElements\050\051) 72 224.33 T 0 F ( cannot thro) 156 224.33 T (w e) 203.52 224.33 T (xceptions. The w) 217.53 224.33 T (orkaround is for) 286.03 224.33 T 4 F (hasMoreElements\050\051) 352.96 224.33 T 0 F ( to return) 454.96 224.33 T 4 F (true) 494.12 224.33 T 0 F ( and sa) 518.12 224.33 T (v) 545.69 224.33 T (e) 550.54 224.33 T -0.1 (the e) 72 212.33 P -0.1 (xception until the program calls) 90.91 212.33 P 4 F -0.24 (next\050\051) 220.12 212.33 P 0 F -0.1 (.) 256.12 212.33 P 4 F -0.24 (hasMore\050\051) 263.42 212.33 P 0 F -0.1 ( allo) 317.42 212.33 P -0.1 (ws a pro) 334.57 212.33 P -0.1 (vider to indicate to the caller that it has encoun-) 368.1 212.33 P (tered an e) 72 200.33 T (xception while determining whether there are more elements. The caller that w) 110.72 200.33 T (ants to be noti\336ed of e) 426.1 200.33 T (xceptions) 515.11 200.33 T (can use) 72 188.33 T 4 F (hasMore\050\051) 104.21 188.33 T 0 F ( instead of) 158.21 188.33 T 4 F (hasMoreElements\050\051) 202.37 188.33 T 0 F (.) 304.37 188.33 T (public boolean hasMore\050\051 throws NamingException;) 108 166.33 T (\245) 54 148.33 T (Added a ne) 72 148.33 T (w constructor to) 117.29 148.33 T 4 F (OperationNotSupportedException) 184.78 148.33 T 0 F ( that accepts an e) 364.78 148.33 T (xplanation message as ar) 432.94 148.33 T (gu-) 532.46 148.33 T (ment. This a) 72 136.33 T (v) 121.52 136.33 T (oids the pro) 126.32 136.33 T (vider ha) 173.39 136.33 T (ving to use the tw) 205.68 136.33 T (o steps of creating an empty) 276.69 136.33 T 4 F (OperationNotSupportedExcep-) 391.67 136.33 T (tion) 72 124.33 T 0 F ( and then setting the e) 96 124.33 T (xplanation.) 183.34 124.33 T (\245) 54 100.33 T (Added) 72 100.33 T 4 F (composeName\050\051) 101.16 100.33 T 0 F ( methods to) 179.16 100.33 T 4 F (Context) 228.33 100.33 T 0 F ( class. These may be used to k) 270.33 100.33 T (eep track of the full name of an object as) 391.32 100.33 T (name resolution proceeds from conte) 72 88.33 T (xt to conte) 220.15 88.33 T (xt.) 262.22 88.33 T 34 657 36 705 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "39" 43 %%Page: "40" 44 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (40) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 F 0 X (\245) 54 713.33 T (Remo) 72 713.33 T (v) 95.74 713.33 T (ed e) 100.59 713.33 T (xtraneous parameter in) 116.82 713.33 T 4 F (NamingException.getRootCause\050\051) 210.96 713.33 T 0 F (.) 390.96 713.33 T 3 F (SPI-r) 54 691.33 T (elated Changes) 77.15 691.33 T 0 F (\245) 54 676.33 T -0.33 (Clari\336ed ho) 72 676.33 P -0.33 (w URL conte) 118.92 676.33 P -0.33 (xt f) 171.99 676.33 P -0.33 (actories and conte) 185.17 676.33 P -0.33 (xts are located and created. Eliminated the \324) 256.56 676.33 P 4 F -0.79 (String url) 431.92 676.33 P 0 F -0.33 (\325 ar) 491.13 676.33 P -0.33 (gument from) 504.22 676.33 P 4 F (NamingManager.getURLContext\050\051) 72 664.33 T 0 F ( and clari\336ed its semantics.) 246 664.33 T 4 F -0.28 (getURLContext\050String scheme, Properties env\051) 72 652.33 P 0 F -0.12 ( no) 335.16 652.33 P -0.12 (w returns a conte) 347.29 652.33 P -0.12 (xt for resolving URLs with scheme) 415.38 652.33 P (id) 72 640.33 T 4 F (scheme) 82.28 640.33 T 0 F (. It is not tied to an) 118.28 640.33 T (y speci\336c URLs, only the scheme id. See) 193.41 640.33 T 3 F (JNDI SPI) 360.06 640.33 T 0 F ( document and) 401.45 640.33 T 4 F (NamingMan-) 462.83 640.33 T (ager.getURLContext\050\051) 72 628.33 T 0 F ( for details.) 192 628.33 T (\245) 54 604.33 T -0.31 (Clari\336ed ho) 72 604.33 P -0.31 (w) 118.94 604.33 P 4 F -0.75 (NamingManager.getObjectInstance\050\051) 128.35 604.33 P 0 F -0.31 ( treats URLs. F) 326.35 604.33 P -0.31 (ormerly) 386.37 604.33 P -0.31 (, it only treated) 417.38 604.33 P 4 F -0.75 (References) 479.18 604.33 P 0 F -0.31 ( and) 539.18 604.33 P 4 F -0.79 (Referenceables) 72 592.33 P 0 F -0.33 ( specially) 156 592.33 P -0.33 (. It no) 193.07 592.33 P -0.33 (w treats URLs specially as well. Y) 215.77 592.33 P -0.33 (ou can no) 351.29 592.33 P -0.33 (w call) 389.26 592.33 P 4 F -0.79 (getObjectInstance\050\051) 415.27 592.33 P 0 F -0.33 ( with a) 529.27 592.33 P (URL string or an array of URL strings and get back an object identi\336ed by the URL. See) 72 580.33 T 3 F (JNDI SPI) 429.45 580.33 T 0 F ( document and) 470.84 580.33 T 4 F (NamingManager.getObjectInstance\050\051) 72 568.33 T 0 F ( for details.) 270 568.33 T (\245) 54 544.33 T (Placed additional requirements on URL conte) 72 544.33 T (xt f) 254.88 544.33 T (actories on ho) 268.39 544.33 T (w to treat its ar) 324.24 544.33 T (guments so that all URL conte) 384.05 544.33 T (xt f) 505.84 544.33 T (actories) 519.35 544.33 T (beha) 72 532.33 T (v) 90.68 532.33 T (e consistently) 95.53 532.33 T (. See) 149.6 532.33 T 3 F (JNDI SPI) 171.54 532.33 T 0 F ( document and) 212.93 532.33 T 4 F (ObjectFactory.getObjectInstance\050\051) 274.31 532.33 T 0 F ( for details.) 472.31 532.33 T (\245) 54 508.33 T 4 F (NamingManager.getContinuationContext\050\051) 72 508.33 T 0 F ( and) 300 508.33 T 4 F (DirectoryManager.getContinuationDSCon-) 319.44 508.33 T (text\050\051) 72 496.33 T 0 F ( accept as an ar) 108 496.33 T (gument) 168.9 496.33 T 4 F (CannotProceedException) 201.4 496.33 T 0 F ( instead of a resolv) 333.4 496.33 T (ed object. This allo) 408.79 496.33 T (ws information) 485.2 496.33 T (required to create a continuation conte) 72 484.33 T (xt to be passed using one ar) 225.42 484.33 T (gument and accommodates a common programming) 335.78 484.33 T (scenario of service pro) 72 472.33 T (viders using) 162.65 472.33 T 4 F (CannotProceedException) 213.76 472.33 T 0 F ( to indicate the state of the operation.) 345.76 472.33 T (\245) 54 448.33 T (Added a \324remaining ne) 72 448.33 T (wname\325 part to) 163.67 448.33 T 4 F (CannotProceedException) 226.71 448.33 T 0 F ( so that information required to continue a) 358.71 448.33 T 4 F -0.82 (rename\050\051) 72 436.33 P 0 F -0.34 ( can be represented, and an en) 120 436.33 P -0.34 (vironment part for storing and retrie) 237.78 436.33 P -0.34 (ving the en) 379.97 436.33 P -0.34 (vironment to use when resolution) 423.33 436.33 P (continues..) 72 424.33 T 3 F (System Pr) 54 402.33 T (operties) 97.42 402.33 T 0 F (\245) 54 387.33 T (T) 72 387.33 T (w) 77.31 387.33 T (o ne) 84.43 387.33 T (w system properties are introduced.) 101.12 387.33 T 0 12 Q (\245) 115 368 T 4 10 Q -1.1 (jndi.urlfactory.pkgs) 126 368 P 0 12 Q -0.55 (: Specifies package prefixes to use when loading URL context) 246 368 P (factories. See) 126 354 T 4 10 Q (NamingManager.getURLContext\050\051) 193.64 354 T 0 12 Q (.) 367.64 354 T (\245) 115 334 T 4 10 Q 4.54 (jndi.dns.url) 126 334 P 0 12 Q 2.27 (: Specifies DNS service location when using DNS names in \322jndi\323) 198 334 P (URLs \050e.g \322) 126 320 T 4 10 Q (jndi://dnsname/...) 184.32 320 T 0 12 Q (\323\051.) 292.32 320 T 0 10 Q (These can also be passed as en) 72 301.33 T (vironment properties to the) 194.34 301.33 T 4 F (InitialContext) 305.44 301.33 T 0 F ( constructor) 389.44 301.33 T (.) 436.38 301.33 T 3 F (En) 54 279.33 T (vir) 65.83 279.33 T (onment Pr) 77.87 279.33 T (operties) 122.96 279.33 T 0 F (\245) 54 264.33 T 4 F -0.42 (jndi.service.host) 72 264.33 P 0 F -0.17 ( and) 174 264.33 P 4 F -0.42 (jndi.service.port) 193.09 264.33 P 0 F -0.17 ( ha) 295.09 264.33 P -0.17 (v) 306.66 264.33 P -0.17 (e been replaced by the more general) 311.51 264.33 P 4 F -0.42 (jndi.service.url) 457.17 264.33 P 0 F -0.17 (.) 553.17 264.33 P 4 F (jndi.service.url) 72 252.33 T 0 F ( speci\336es the location information for con\336guring a conte) 168 252.33 T (xt.) 397.82 252.33 T (Conte) 72 240.33 T (xt service pro) 95.74 240.33 T (vider are encouraged to use this ne) 150.02 240.33 T (w en) 288.62 240.33 T (vironment property) 307.38 240.33 T (. The) 384.22 240.33 T (y are still free to use additional en) 404.62 240.33 T (vi-) 540.03 240.33 T (ronment properties as needed for their pro) 72 228.33 T (vider) 240.14 228.33 T (.) 260.14 228.33 T (\245) 54 216.33 T (Added) 72 216.33 T 4 F (jndi.service.followReferrals) 101.16 216.33 T 0 F (: Speci\336es that referrals encountered by the service pro) 269.16 216.33 T (vider are to be) 488.95 216.33 T (follo) 72 204.33 T (wed automatically) 90.64 204.33 T (.) 163.59 204.33 T 54 164.99 558 175 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 164.99 558 175 R 7 X 0 0 0 1 0 0 0 K V 56 173.03 176 173.03 2 L V 1 H 2 Z 0 X N 0 0 612 792 C 3 12 Q 0 X 0 0 0 1 0 0 0 K (1.0Early Access:) 54 179 T (JNDI Changes Since) 141.65 179 T (Initial Documentation Release) 249.98 179 T 3 10 Q (General Changes) 54 145.33 T 0 F (\245) 54 130.33 T (Renamed packages) 72 130.33 T 4 F (jndi.ns -> java.naming) 108 118.33 T (jndi.ds -> java.naming.directory) 108 100.33 T (jndi.spi -> java.naming.spi) 108 82.33 T 34 175 36 187 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "40" 44 %%Page: "41" 45 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (41) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 F 0 X (\245) 54 713.33 T (Added implements) 72 713.33 T 4 F (java.io.Serializable) 150.33 713.33 T 0 F ( to the follo) 270.33 713.33 T (wing classes and interf) 316.47 713.33 T (aces:) 407.74 713.33 T 4 F (Name) 140.4 701.33 T (NameClassPair) 140.4 689.33 T (RefAddr) 140.4 677.33 T (Reference) 140.4 665.33 T (Attribute) 140.4 653.33 T (AttributeSet) 140.4 641.33 T (ModificationItem) 140.4 629.33 T (ModificationEnumeration) 140.4 617.33 T (SearchConstraints) 140.4 605.33 T 0 F (\245) 54 593.33 T (Renamed the \322count\323 methods to be more descripti) 72 593.33 T (v) 276.44 593.33 T (e.) 281.29 593.33 T 4 F (Reference.count\050\051 -> Reference.getAddressCount\050\051) 140.4 581.33 T (Name.count\050\051 -> Name.getComponentCount\050\051) 140.4 569.33 T ([same for CompoundName and CompositeName]) 165.6 557.33 T (Attribute.count\050\051 -> Attribute.getValueCount\050\051) 140.4 545.33 T (AttributeSet.count\050\051 -> AttributeSet.getAttributeCount\050\051) 140.4 533.33 T (ModificationEnumeration.count\050\051 ->) 140.4 521.33 T (ModificationEnumeration.getModificationItemCount\050\051) 165.6 509.33 T 0 F (\245) 54 497.33 T -0.14 (Renamed methods with \324) 72 497.33 P 4 F -0.35 (SubContext) 171.84 497.33 P 0 F -0.14 (\325 to \324) 231.84 497.33 P 4 F -0.35 (Subcontext) 250.99 497.33 P 0 F -0.14 (\325. The ne) 310.99 497.33 P -0.14 (w method names are no) 346.27 497.33 P -0.14 (w) 440.42 497.33 P 4 F -0.35 (Context.createSub-) 450 497.33 P (context\050\051) 72 485.33 T 0 F (,) 126 485.33 T 4 F (Context.destroySubcontext\050\051) 131 485.33 T 0 F (, and) 293 485.33 T 4 F (DSContext.createSubcontext\050\051) 314.94 485.33 T 0 F (.) 482.94 485.33 T 3 F (Name-r) 54 463.33 T (elated Changes) 86.58 463.33 T 0 F (\245) 54 448.33 T 4 F -0.38 (NameParser) 72 448.33 P 0 F -0.16 ( is no) 132 448.33 P -0.16 (w an interf) 153.1 448.33 P -0.16 (ace instead of abstract class. None of its methods contain an) 196.01 448.33 P -0.16 (y implementation so it is more) 434.5 448.33 P (\337e) 72 436.33 T (xible for it to be an interf) 81.85 436.33 T (ace. Remo) 182.29 436.33 T (v) 224.35 436.33 T (ed the) 229.2 436.33 T 4 F (getNamingConvention\050\051) 255.86 436.33 T 0 F ( method from) 381.86 436.33 T 4 F (NameParser) 438.8 436.33 T 0 F (.) 498.25 436.33 T (\245) 54 424.33 T (Added class hierarch) 72 424.33 T (y to) 155.81 424.33 T 4 F (NamingException) 173.59 424.33 T 0 F ( for security-related e) 263.59 424.33 T (xceptions.) 349.24 424.33 T 4 F (NamingException) 108 412.33 T (NamingSecurityException) 145 394.33 T (NoPermissionException) 182 376.33 T (AuthenticationException) 182 358.33 T (AuthenticationNotSupportedException) 182 340.33 T 0 F (\245) 54 322.33 T (Added) 72 322.33 T 4 F (throws IllegalNameException) 101.16 322.33 T 0 F ( to name-manipulation methods so that the) 263.16 322.33 T (y ha) 433.56 322.33 T (v) 450.3 322.33 T (e a w) 455.15 322.33 T (ay of indicating) 476.15 322.33 T (error) 72 310.33 T (. This applies to the) 90.88 310.33 T 4 F (Name) 171.99 310.33 T 0 F ( interf) 195.99 310.33 T (ace, the) 220.05 310.33 T 4 F (CompositeName) 253.09 310.33 T 0 F ( and) 331.09 310.33 T 4 F (CompoundName) 350.53 310.33 T 0 F ( classes.) 422.53 310.33 T 4 F (prependName\050\051) 140.4 298.33 T (appendName\050\051) 140.4 286.33 T (insertName\050\051) 140.4 274.33 T (prependComponent\050\051) 140.4 262.33 T (appendComponent\050\051) 140.4 250.33 T (insertComponent\050\051) 140.4 238.33 T (deleteComponent\050\051) 140.4 226.33 T 0 F (\245) 54 202.33 T (The follo) 72 202.33 T (wing constructors thro) 108.69 202.33 T (w) 198.43 202.33 T 4 F (IllegalNameException) 208.15 202.33 T 0 F ( instead of) 328.15 202.33 T 4 F (NamingException) 372.31 202.33 T (CompositeName\050\051) 140.4 190.33 T (CompoundName\050\051) 140.4 178.33 T 3 F (DSContext-r) 54 156.33 T (elated Changes:) 108.25 156.33 T 0 F (\245) 54 141.33 T (Dropped \324) 72 141.33 T 4 F (WithAttributes) 112.82 141.33 T 0 F (\325 suf) 196.82 141.33 T (\336x from) 214.62 141.33 T 4 F (bindWithAttributes\050\051, rebindWithAttributes\050\051,) 249.62 141.33 T 0 F (and) 525.62 141.33 T 4 F (createSubContextWithAttributes\050\051) 72 129.33 T 0 F (. The) 264 129.33 T (y are no) 284.4 129.33 T (w simply) 316.36 129.33 T 4 F (DSContext.bind\050\051, DSCon-) 355.81 129.33 T (text.rebind\050\051,) 72 117.33 T 0 F (and) 162 117.33 T 4 F (DSContext.createSubcontext\050\051,) 178.94 117.33 T 0 F (respecti) 358.94 117.33 T (v) 389.79 117.33 T (ely) 394.64 117.33 T (.) 406.21 117.33 T (\245) 54 105.33 T (Remo) 72 105.33 T (v) 95.74 105.33 T (ed) 100.59 105.33 T 4 F (DSContext.SearchFilter) 112.53 105.33 T 0 F ( class and replaced tw) 244.53 105.33 T (o e) 332.18 105.33 T (xisting) 343.97 105.33 T 4 F (DSContext.Search\050\051) 373.7 105.33 T 0 F ( methods:) 481.7 105.33 T 4 F (public SearchEnumeration search\050String name, String filterExpr,) 108 93.33 T (Object[] filterArgs, SearchConstraints constraints\051;) 145 75.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "41" 45 %%Page: "42" 46 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (42) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X (public SearchEnumeration search\050Name name, String filterExpr,) 108 713.33 T (Object[] filterArgs, SearchConstraints constraints\051;) 145 695.33 T 0 12 Q -0.31 (where) 108 658 P 4 10 Q -0.61 (filterExpr) 140.01 658 P 0 12 Q -0.31 ( contains \324) 200.01 658 P 4 10 Q -0.61 ({n}) 249.39 658 P 0 12 Q -0.31 (\325,) 267.39 658 P 4 10 Q -0.61 (n) 277.08 658 P 0 12 Q -0.31 ( is an integer and denotes the n\325th element in) 283.08 658 P 4 10 Q -0.61 (filterArgs) 498 658 P 0 12 Q 0.69 (to substitute in the expression. The reason for this change is that) 108 644 P 4 10 Q 1.38 (SearchFilter) 427.28 644 P 0 12 Q 0.69 ( had limited) 499.28 644 P 0.15 (capabilities and a full class for it was not justified. These changes make the syntax for substi-) 108 630 P -0.19 (tution of variables within an expression consistent with the formatting methods in) 108 616 P 4 10 Q -0.39 (java.text) 501 616 P 0 12 Q -0.19 (.) 555 616 P 0 10 Q (\245) 54 597.33 T (Renamed) 72 597.33 T 4 F (AttributeSet.modify\050\051) 112.27 597.33 T 0 F ( to) 238.27 597.33 T 4 F (AttributeSet.replace\050\051) 251.05 597.33 T 0 F ( for consistent usage of \324replace\325 with) 383.05 597.33 T 4 F (Attribute.replaceValue\050\051) 72 585.33 T 0 F ( and) 216 585.33 T 4 F (DSContext.REPLACE_ATTRIBUTE) 235.44 585.33 T 0 F (.) 397.44 585.33 T (\245) 54 573.33 T (Changes to) 72 573.33 T 4 F (Attribute) 119.22 573.33 T 0 F ( class:) 173.22 573.33 T 0 12 Q (\245) 115 554 T 1.15 (Added) 126 554 P 4 10 Q 2.31 (Attribute.contains\050\051) 162.15 554 P 0 12 Q 1.15 ( for testing whether an attribute contains a specified) 282.15 554 P (value.) 126 540 T (\245) 115 520 T 4 10 Q 3.91 (Attribute.add\050\051) 126 520 P 0 12 Q 1.96 ( throws) 216 520 P 4 10 Q 3.91 (AttributeInUseException) 258.58 520 P 0 12 Q 1.96 ( instead of the more general) 396.58 520 P 4 10 Q (NamingException) 126 506 T 0 12 Q (.) 216 506 T (\245) 115 486 T 1.71 (Schema methods return) 126 486 P 4 10 Q 3.41 (null) 247.43 486 P 0 12 Q 1.71 ( by default. Removed protected variables) 271.43 486 P 4 10 Q 3.41 (syntax) 481.96 486 P 0 12 Q 1.71 ( and) 517.97 486 P 4 10 Q (attr_defn) 126 472 T 0 12 Q (.) 180 472 T 0 10 Q (\245) 54 453.33 T (Added) 72 453.33 T 4 F (InvalidAttributeSetException) 101.16 453.33 T 0 F ( to deal with the case of incorrectly or insuf) 269.16 453.33 T (\336ciently speci\336ed attrib) 443.04 453.33 T (ute) 537.28 453.33 T (sets.) 72 441.33 T 3 F (SPI-r) 54 419.33 T (elated Changes) 77.15 419.33 T 0 F (\245) 54 404.33 T (Renamed some class and interf) 72 404.33 T (ace names in) 196.32 404.33 T 4 F (java.naming.spi) 250.47 404.33 T 0 F ( for consistenc) 340.47 404.33 T (y) 398.64 404.33 T 4 F (InitialContextImpl -> InitialContextFactory) 108 392.33 T (InitialContextImplFactory -> InitialContextFactoryBuilder) 108 374.33 T (setInitialContextImplFactory\050\051 -> setInitialContextFactoryBuilder\050\051) 108 356.33 T (hasInitialContextImplFactory\050\051 -> hasInitialContextFactoryBuilder\050\051) 108 338.33 T (InitialContextImplFactory.createInitialContextImpl\050\051 ->) 108 320.33 T (InitialContextFactoryBuilder.createInitialContextFactory\050\051) 182 302.33 T (JNDIManager -> NamingManager) 108 284.33 T (JNDIDSManager -> DirectoryManager) 108 266.33 T 0 F (\245) 54 248.33 T (Renamed) 72 248.33 T 4 F (createObject\050\051) 112.27 248.33 T 0 F ( to) 196.27 248.33 T 4 F (getObjectInstance\050\051) 209.05 248.33 T 0 F ( so that it is consistent with similar usage in other Ja) 323.05 248.33 T (v) 531.46 248.33 T (a) 536.21 248.33 T (packages.) 72 236.33 T 4 F (JNDIManager.createObject\050\051 -> NamingManager.getObjectInstance\050\051) 108 224.33 T (ObjectFactory.createObject\050\051 -> ObjectFactory.getObjectInstance\050\051.) 108 206.33 T 0 F (\245) 54 188.33 T (Renamed property) 72 188.33 T 4 F ( jndi.initialContext) 146.15 188.33 T 0 F ( to) 266.15 188.33 T 4 F (jndi.initialContextFactory) 278.93 188.33 T 0 F ( for consistenc) 434.93 188.33 T (y with method) 493.1 188.33 T (names.) 72 176.33 T (\245) 54 164.33 T (The) 72 164.33 T 4 F (jndi.initialContextFactory) 90.05 164.33 T 0 F ( property no) 246.05 164.33 T (w contains a single class name instead of a colon-separated list) 294.68 164.33 T (because it does not mak) 72 152.33 T (e sense to ha) 167.44 152.33 T (v) 218.06 152.33 T (e more than one class.) 222.91 152.33 T (\245) 54 140.33 T -0.06 (T) 72 140.33 P -0.06 (o pro) 77.31 140.33 P -0.06 (vide more \337e) 97.93 140.33 P -0.06 (xibility and to a) 150.42 140.33 P -0.06 (v) 213.09 140.33 P -0.06 (oid) 217.89 140.33 P 4 F -0.15 (SecurityManager) 233.11 140.33 P 0 F -0.06 (-related problems in some con\336gurations, the system prop-) 322.91 140.33 P -0.05 (erties) 72 128.33 P 4 F -0.13 (jndi.initialContextFactory) 96.11 128.33 P 0 F -0.05 ( and) 252.1 128.33 P 4 F -0.13 (jndi.objectFactories) 271.43 128.33 P 0 F -0.05 ( can be passed as part of the en) 391.43 128.33 P -0.05 (vironment) 514.45 128.33 P (properties passed to the constructors for) 72 116.33 T 4 F (InitialContext) 234.19 116.33 T 0 F ( and) 318.19 116.33 T 4 F (InitialDSContext) 337.63 116.33 T 0 F (, and) 433.63 116.33 T 4 F (ObjectFac-) 455.57 116.33 T (tory.getObjectInstance\050\051) 72 104.33 T 0 F (.) 216 104.33 T (\245) 54 92.33 T (Some protected methods in) 72 92.33 T 4 F (NamingManager) 183.66 92.33 T 0 F ( and) 261.66 92.33 T 4 F (DirectoryManager) 281.1 92.33 T 0 F ( are no) 377.1 92.33 T (w pri) 404.06 92.33 T (v) 424.64 92.33 T (ate. This pro) 429.39 92.33 T (vides more \337e) 479.51 92.33 T (xibil-) 536.02 92.33 T (ity in subsequent changes to these classes without e) 72 80.33 T (xposing details of the implementation) 277.94 80.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "42" 46 %%Page: "43" 47 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (43) 301 36 T (12/1/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "43" 47 %%Trailer %%BoundingBox: 0 0 612 792 %%PageOrder: Ascend %%Pages: 47 %%DocumentFonts: Times-Roman %%+ Times-Italic %%+ Symbol %%+ Times-Bold %%+ Courier %%+ Courier-Oblique %%EOF .