%!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.1) 537 100 T (January 29, 1998) 467.68 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 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 (1/29/98) 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 (1/29/98) 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 Support for Objects in the Java Programming Language) 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 ( . . . . . . . . . . . . .) 399 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 Throwing Exceptions) 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 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 234 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 (3.4 Implementing a Subclass of InitialContext) 104.4 360 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 360 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (12) 474 360 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.4.1 Using the SPI to get the Initial Context) 153 347.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . .) 335 347.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (13) 476 347.33 T 0 0 0 1 0 0 0 K 0 12 Q (4 Objects Bound in the Namespace) 54 324 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 324 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (15) 474 324 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (4.1 Object Factories) 104.4 307 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 307 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (15) 474 307 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 294.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 245 294.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (16) 476 294.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 282.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 267.5 282.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (16) 476 282.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 270.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . .) 355 270.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (16) 476 270.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 257 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 257 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (17) 474 257 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 244.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 330 244.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (17) 476 244.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 232.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 305 232.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (18) 476 232.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 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 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 285 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.4 Storing Serializable Objects) 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 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 264 205 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (19) 474 205 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 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 (. . . . . . . . . . . . . . . . . . . . . . . . .) 324 191 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (20) 474 191 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (4.6 Object Factory Builder) 104.4 177 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 177 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (21) 474 177 T 0 0 0 1 0 0 0 K (5 Making Context Implementations Available to JNDI) 54 153 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 153 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (22) 474 153 T 0 0 0 1 0 0 0 K (6 Overview of the Interface) 54 129 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 129 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (23) 474 129 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (6.1 NamingManager and DirectoryManager) 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 (. . . . . . . . . . . . . . . . . . . . . . . . .) 324 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.2 Federation Support) 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 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 222 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.3 Object Factories) 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 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 210 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 0 0 0 1 0 0 0 K (6.4 Initial Contexts) 104.4 70 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 70 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (23) 474 70 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 (1/29/98) 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 A:) 54 712 T 0 0 0 1 0 0 0 K ( Service Provider Example) 119.33 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 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 255 712 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (25) 474 712 T 0 0 0 1 0 0 0 K ( Appendix B:) 54 688 T 0 0 0 1 0 0 0 K ( Legend for Class Diagram) 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 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 252 688 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (35) 474 688 T 0 0 0 1 0 0 0 K ( Appendix C:) 54 664 T 0 0 0 1 0 0 0 K ( JNDI Change History) 118.67 664 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 664 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (37) 474 664 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 (1/29/98) 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. The SPI provides methods that allow different provider) 108 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. It is assumed that the reader is familiar with the contents of the) 108 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 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 (1/29/98) 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 interface. The following guidelines should be used for develop-) 247.26 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 ( interfaces that accept a name argument \050either as) 319.94 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. This) 108 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 several atomic names\051 that belongs to a) 108 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 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 (1/29/98) 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 ( method \050such as) 228.42 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 (, and then perform the operation on the) 199.01 356 T 4 10 Q (DirContext) 389.3 356 T 0 12 Q (.) 449.3 356 T 4 10 Q (DirContext ctx = new InitialDirContext\050\051;) 140.4 337.33 T (Attributes attrs = ctx.getAttributes\050someName\051;) 140.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 ( interface. These naming systems are being used as in-) 296.9 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 ( interface. Figure 2 shows an example of this.) 150 250 T 3 10 Q (Figur) 54 231.33 T (e 2: Example of Resolving Thr) 77.71 231.33 T (ough Intermediate non-DirContexts) 207.25 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 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 (1/29/98) 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 sub-) 108 684 P 0.23 (interface of) 108 670 P 4 10 Q 0.45 (Context) 166.43 670 P 0 12 Q 0.23 (. It consists of two overloaded forms of the method) 208.43 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 resolve a name, stopping at the first context that is an instance) 108 656 P 0.03 (of the required subinterface. By providing support for this method and the resolution phase of) 108 642 P 0.27 (all methods in the) 108 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 resolveToClass\050Name name, Class contextType\051) 165.6 583.33 T (throws NamingException;) 190.8 571.33 T (public ResolveResult resolveToClass\050String name,) 165.6 559.33 T ( Class contextType\051) 165.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 ( operations, use) 389.9 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 getContinuationDirContext\050) 165.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 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 (1/29/98) 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. If the operation cannot be continued, the continua-) 144 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 -0.1 (The environment property) 108 240 P 4 10 Q -0.21 (java.naming.referral) 236.66 240 P 0 12 Q -0.1 ( specifies how the service provider should) 356.66 240 P -0.22 (treat referrals. If the service provider is asked to throw an exception when a referral is encoun-) 108 226 P -0.33 (tered, or if the provider encounters problems following a referral, it throws a) 108 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 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 (1/29/98) 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 = \050Binding\051 bindings.next\050\051;) 216 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. This places the burden on the implementation of the) 108 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. Note that this will likely render some of the arguments passed to the re-invoked) 108 520 P 0.26 (operation superfluous. The referral context implementation is free to ignore any redundant or) 108 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.2 (sists of an attribute identifier \050a string\051 and a set of attribute values, which can be any object in) 108 292 P 0.73 (the Java programming language. There are also methods defined in the) 108 278 P 4 10 Q 1.45 (Attribute) 459.23 278 P 0 12 Q 0.73 ( class for) 513.23 278 P (obtaining the attribute\325s 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 DirContext getAttributeDefinition\050\051 throws NamingException;) 165.6 233.33 P (public DirContext getAttributeSyntaxDefinition\050\051) 165.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 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 (1/29/98) 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 ( interface contains schema-related methods:) 189.66 712 T 4 10 Q (public class DirContext {) 140.4 693.33 T (...) 165.6 681.33 T (public DirContext getSchema\050Name name\051 throws NamingException;) 165.6 669.33 T (public DirContext getSchema\050String name\051 throws NamingException;) 165.6 657.33 T (public DirContext getSchemaClassDefinition\050Name name\051) 165.6 633.33 T (throws NamingException;) 190.8 621.33 T (public DirContext getSchemaClassDefinition\050String name\051) 165.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 ( Support for Objects in the Java Programming Language) 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 ( inter-) 528.97 450 P 0.34 (faces that are natural and intuitive for the Java application programmer. For example, when) 108 436 P 0.4 (looking up a printer name in the namespace, it is natural for the programmer to expect to get) 108 422 P (back a 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.73 (However, what is bound in the underlying directory or naming services typically are not objects) 108 346 P 0.15 (in the Java programming language but merely reference information which can be used to lo-) 108 332 P -0.37 (cate or access the actual object. This case is quite common, especially for Java applications ac-) 108 318 P 1.39 (cessing and sharing services in an existing installed base. The reference in effect acts as a) 108 304 P -0.64 (\322pointer\323 to the real object. In the printer example, what is actually bound might be information) 108 290 P 0.13 (on how to access the printer \050e.g. its protocol type, its server address\051. To enable this easy-to-) 108 276 P 0.65 (use model for the application developer, the provider must do the transformation of the data) 108 262 P -0.56 (stored in the underlying service into the appropriate objects in the Java programming language.) 108 248 P -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 \322References and Referenceable\323 on page) 108 172 P 0.37 (17\051 and URLs \050see \322URL Context Factory\323 on) 331.76 172 P -0.42 (page) 108 158 P -0.42 (16\051. By providing the) 133.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 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 (1/29/98) 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 (Name name,) 367.2 667.33 T (Context nameCtx,) 367.2 655.33 T (Hashtable env\051;) 367.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, name, this, env\051\051;) 165.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.Context.lookup\050\051) 140.4 449.33 T (javax.naming.Context.lookupLink\050\051) 140.4 437.33 T (javax.naming.Binding.getObject\050\051) 140.4 425.33 T (javax.naming.directory.SearchResult.getObject\050\051) 140.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 Environment Support) 75 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 can have associated with it an) 312.46 304 P 1 F 0.03 (environment) 465.65 304 P 0 F 0.03 (which) 528.67 304 P 0.48 (contains preferences expressed by the application of how it would like to access the services) 108 290 P -0.3 (offered by the context. Examples of information found in an environment are security-related) 108 276 P 1.73 (information that specify the user\325s credentials and desired level of security \050none, simple,) 108 262 P -0.48 (strong\051, and configuration information, such as the server to use. Appendix A of the) 108 248 P 3 F -0.48 (JNDI API) 506.82 248 P 0 F (document specifies a preliminary list of environment properties.) 108 234 T 0.19 (Environment properties are defined generically in order to ensure maximum portability. Indi-) 108 214 P 0.04 (vidual service providers should map these generic properties to characteristics appropriate for) 108 200 P 0.67 (their service. Properties that are not relevant to a provider are silently ignored. The environ-) 108 186 P -0.68 (ment may also be used for storing service-specific properties or preferences, in which case their) 108 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 (When creating an initial context \050either) 108 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, the appli-) 502.13 115 P -0.54 (cation can supply an environment as a parameter. The parameter is represented as a) 108 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 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 (1/29/98) 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 service provider must pass on the environment from one context instance to the next in order) 108 551 P -0.57 (to implement this \322inheritance\323 trait of environments. Within one provider it can do so by pass-) 108 537 P -0.41 (ing the environment as an argument to the) 108 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 (Across providers in a federation, this is supported by passing the environment as part of the) 108 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 -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 environment of a context can be updated via the use of the) 108 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 ( methods in the) 234 342 T 4 10 Q (Context) 310.67 342 T 0 12 Q ( interface.) 352.67 342 T 4 10 Q (public interface Context {) 140.4 323.33 T (...) 165.6 311.33 T (public Object addToEnvironment\050String propName, Object propVal\051) 165.6 299.33 T (throws NamingException;) 190.8 287.33 T (public Object removeFromEnvironment\050String propName\051) 165.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 of this instance of) 108 220 P 4 10 Q -0.05 (Context) 388.09 220 P 0 12 Q -0.02 (. An environment property) 430.09 220 P -0.52 (that is not relevant to the provider is silently ignored but maintained as part of the environment.) 108 206 P 0.55 (The updated environment affects this instance of) 108 192 P 4 10 Q 1.11 (Context) 348.82 192 P 0 12 Q 0.55 (, and will be inherited by any new) 390.82 192 P 1.06 (child) 108 178 P 4 10 Q 2.11 (Context) 136.06 178 P 0 12 Q 1.06 ( instances, but does not affect any) 178.06 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 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 (1/29/98) 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 an environment to be passed as an argument. This allows the) 108 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 env = new Hashtable\0505, 0.75\051;) 140.4 491.33 T 4 8 Q (1) 374.4 495.33 T 4 10 Q (env.put\050) 140.4 479.33 T (Context.SECURITY_PRINCIPAL,) 188.4 479.33 T ("j) 356.4 479.33 T (smith) 368.4 479.33 T ("\051) 398.4 479.33 T (;) 410.4 479.33 T (env.put\050) 140.4 467.33 T (Context.SECURITY_CREDENTIALS,) 188.4 467.33 T ("x) 368.4 467.33 T (xxxxxx) 380.4 467.33 T ("\051) 416.4 467.33 T (;) 428.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) 140.4 417.33 T ("t) 284.4 417.33 T (his/is/a/test) 296.4 417.33 T ("\051) 374.4 417.33 T (;) 386.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 ( is an extension of) 231.47 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 (. Places where) 275.07 322 P 4 10 Q 0.49 (DirContext) 347.79 322 P 0 12 Q 0.25 ( is required instead of) 407.79 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 ( interface. Its implementation should) 384.59 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 (, the provider must) 466.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 464 36 486 R V 34 414 36 424 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 (1/29/98) 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\050Hashtable env\051) 165.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 ( that serve as initial contexts. The) 397.3 658 P 0.4 (implementation class for) 108 644 P 4 10 Q 0.79 (InitialContextFactory) 230.85 644 P 0 12 Q 0.4 ( must be public and contain a public) 356.85 644 P 0.4 ( c) 533.28 644 P 0.4 (on-) 542 644 P 0.6 (structor) 108 630 P 0.6 ( that does not take any arguments.) 144.66 630 P 0.6 ( Appendix A contains an example of an) 311.9 630 P 4 10 Q 1.2 (Initial-) 510 630 P (ContextFactory) 108 616 T 0 12 Q (.) 192 616 T 3 14 Q (3.2) 54 588.67 T ( Making An Initial Context Implementation Available to JNDI) 75 588.67 T 0 12 Q (There are three ways in which an initial context implementation is made available to JNDI:) 108 568 T (\245) 115 548 T (The) 126 548 T 4 10 Q (java.naming.factory.initial) 147.66 548 T 0 12 Q ( environment or system property.) 309.66 548 T (\245) 115 528 T (URL Context Implementations.) 126 528 T (\245) 115 508 T (An initial context implementation factory.) 126 508 T 3 F (3.2.1) 66 465 T (The java.naming.factory.initial Property) 108 465 T 0 F 0.78 (The property) 108 445 P 4 10 Q 1.57 (java.naming.factory.initial) 174.88 445 P 0 12 Q 0.78 ( contains the fully-qualified class name of an) 336.88 445 P 0.31 (initial context factory. The class must implement the) 108 431 P 4 10 Q 0.61 (InitialContextFactory) 366.09 431 P 0 12 Q 0.31 ( interface and) 492.09 431 P 0.27 (have a public) 108 417 P 0.27 ( c) 172.52 417 P 0.27 (onstructor) 181.12 417 P 0.27 ( that does not take any arguments) 229.78 417 P 0.27 (. JNDI will load the initial context) 392.05 417 P -0.49 (factory class and then invoke) 108 403 P 4 10 Q -0.97 (getInitialContext\050\051) 248.54 403 P 0 12 Q -0.49 ( on it to obtain a) 362.55 403 P 4 10 Q -0.97 (Context) 440.97 403 P 0 12 Q -0.49 ( or) 482.97 403 P 4 10 Q -0.97 (DirContext) 498 403 P 0 12 Q (instance to be used as the initial context.) 108 389 T 1.33 (An application that wants to use this initial context must supply the) 108 369 P 4 10 Q 2.67 (java.naming.facto-) 450 369 P 5.52 (ry.initial) 108 355 P 0 12 Q 2.76 ( property either in the environment passed to the) 168 355 P 4 10 Q 5.52 (InitialContext) 428.48 355 P 0 12 Q 2.76 ( or) 512.48 355 P 4 10 Q 5.52 (Ini-) 534 355 P -0.25 (tialDirContext) 108 341 P 0 12 Q -0.12 ( constructors, or as one of the program\325s system properties. If the property is) 192 341 P (supplied as part of the environment, the system property is not consulted) 108 327 T (.) 456.64 327 T 3 F (3.2.2) 66 304 T (U) 108 304 T (RL Context Implementations) 116.66 304 T 0 F -0.67 (If a URL string) 108 284 P 0 9.6 Q -0.54 (1) 179.64 288.8 P 0 12 Q -0.67 ( is passed to the initial context, it will be resolved using the corresponding URL) 184.44 284 P 0.63 (context implementation. This is independent of any initial context implementations obtained) 108 270 P (using the) 108 256 T 4 10 Q (java.naming.factory.initial) 154.67 256 T 0 12 Q ( environment or system property.) 316.67 256 T -0.62 (The URL context implementation is obtained using an object factory for the URL scheme iden-) 108 236 P -0.46 (tified in the URL string. The factory\325s class name is of the form) 108 222 P 1 F -0.46 (urlScheme) 411.35 222 P 4 10 Q -0.91 (URLContextFacto-) 462 222 P 5.57 (ry) 108 208 P 0 12 Q 2.78 ( in the package specified using the) 120 208 P 4 10 Q 5.57 (java.naming.factory.url.pkgs) 307.78 208 P 0 12 Q 2.78 ( environment or) 475.78 208 P -0.53 (system property.) 108 194 P 4 10 Q -1.07 (java.naming.factory.url.pkgs) 189.92 194 P 0 12 Q -0.53 ( contains a colon-separated list of package) 357.92 194 P -0.01 (prefixes. Each package prefix in this property is tried in the order specified to load the factory) 108 180 P -0.3 (class. If none of the prefixes work, the default package prefix) 108 166 P 4 10 Q -0.61 (com.sun.jndi.url) 402.25 166 P 0 12 Q -0.3 ( is tried. The) 498.25 166 P (factory\325s fully qualified class name is constructed using the following rule:) 108 152 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 4 F (java.net.URL) 84 89.33 T 0 F ( class or W) 156 89.33 T (eb bro) 199.91 89.33 T (wsers. The URL string is either passed as the) 224.93 89.33 T 4 9 Q (String) 407.68 89.33 T 0 10 Q ( name parameter) 440.08 89.33 T (, or as) 506.32 89.33 T (the \336rst component of the) 84 77.33 T 4 F (Name) 189.27 77.33 T 0 F ( parameter) 213.27 77.33 T (.) 255.2 77.33 T 34 626 36 652 R V 34 413 36 425 R V 34 300 36 335 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 (1/29/98) 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 (package prefix + \322.\323 + URL scheme + \322.\323 + class name) 144 712 T 2.38 (For example, if the) 108 692 P 1 F 2.38 (urlScheme) 211.82 692 P 0 F 2.38 ( is \322) 262.47 692 P 4 10 Q 4.75 (ldap\323) 286.55 692 P 0 12 Q 2.38 ( and) 316.55 692 P 4 10 Q 4.75 (java.naming.factory.url.pkgs) 344.63 692 P 0 12 Q 2.38 ( contains) 512.63 692 P 0.67 (\322) 108 678 P 4 10 Q 1.35 (com.widget:com.wiz.jndi) 113.33 678 P 0 12 Q 0.67 (\323, JNDI will attempt to locate the corresponding object factory) 251.33 678 P (class by loading the following classes until one is successfully instantiated:) 108 664 T 4 10 Q (com.widget.ldap.ldapURLContextFactory) 140.4 645.33 T (com.wiz.jndi.ldap.ldapURLContextFactory) 140.4 633.33 T (com.sun.jndi.url.ldap.ldapURLContextFactory) 140.4 621.33 T 0 12 Q -0.69 (The object factory class implements the) 108 602 P 4 10 Q -1.38 (ObjectFactory) 297.83 602 P 0 12 Q -0.69 ( interface \050see \322URL Context Factory\323) 375.83 602 P 0.25 (on page) 108 588 P 0.25 (16\051 and has a public) 148.91 588 P 0.25 ( c) 246.57 588 P 0.25 (onstructor) 255.16 588 P 0.25 ( that takes no arguments) 303.82 588 P 0.25 (. It provides a) 421.49 588 P 4 10 Q 0.51 (getObject-) 498 588 P 3.29 (Instance\050\051) 108 574 P 0 12 Q 1.64 ( method, which will create instances of) 168 574 P 4 10 Q 3.29 (Context) 370.13 574 P 0 12 Q 1.64 ( or) 412.13 574 P 4 10 Q 3.29 (DirContext) 431.42 574 P 0 12 Q 1.64 ( for the URL) 491.42 574 P -0.49 (scheme. These instances will then be used to carry out the originally intended) 108 560 P 4 10 Q -0.97 (Context) 476.97 560 P 0 12 Q -0.49 ( or) 518.97 560 P 4 10 Q -0.97 (Dir-) 534 560 P (Context) 108 546 T 0 12 Q ( operation on the URL supplied to the initial context.) 150 546 T 3 F (3.2.3) 66 523 T (Initial Context Factory Builder) 108 523 T 0 F -0.26 (If an initial context factory builder has been installed, the application is effectively defining its) 108 503 P -0.21 (own policy of how to locate and construct initial context implementations. When a factory has) 108 489 P 0.13 (been installed, it is solely responsible for creating the initial context implementation. None of) 108 475 P 0.51 (the default policies \050) 108 461 P 4 10 Q 1.01 (java.naming.factory.initial) 207.83 461 P 0 12 Q 0.51 ( property or URL context implementa-) 369.83 461 P (tions\051 normally used by JNDI are employed.) 108 447 T 0.86 (A service provider for an initial context factory builder must define a class that implements) 108 427 P 4 10 Q 0.76 (InitialContextFactoryBuilder) 108 413 P 0 12 Q 0.38 (. This class\325s) 276 413 P 4 10 Q 0.76 (createInitialContextFactory\050\051) 352.62 413 P 0 12 Q 0.38 ( meth-) 526.62 413 P (od generates instances of) 108 399 T 4 10 Q (InitialContextFactory) 231.3 399 T 0 12 Q (.) 357.3 399 T (An application that wants to use this factory must first install it.) 108 379 T 4 10 Q (NamingManager.setInitialContextFactoryBuilder\050factory\051;) 140.4 360.33 T 3 14 Q (3.3) 54 333.67 T (Throwing Exceptions) 78.5 333.67 T 0 12 Q 0.82 (When the environment or system property) 108 313 P 4 10 Q 1.64 (java.naming.factory.initial) 318.9 313 P 0 12 Q 0.82 ( is set to a non-) 480.9 313 P 4 10 Q 0 (null) 108 299 P 0 12 Q 0 ( value, the) 132 299 P 4 10 Q 0 (InitialContext) 184.66 299 P 0 12 Q 0 ( and) 268.66 299 P 4 10 Q 0 (InitialDirContext) 292 299 P 0 12 Q 0 ( constructors will invoke) 394 299 P 4 10 Q 0 (Naming-) 516 299 P -0.88 (Manager.getInitialContext\050\051) 108 285 P 0 12 Q -0.44 ( using the environment properties supplied. If the initial con-) 270 285 P -0.06 (text cannot be created, for example as a result of an authentication problem, the initial context) 108 271 P 0.08 (factory can throw an exception to indicate this problem. Note however that it is up to the pro-) 108 257 P 0 (vider implementation) 108 243 P 1 F 0 (when) 214 243 P 0 F 0 ( it verifies and indicates to users of the initial context any environ-) 239.34 243 P 3.2 (ment property- or connection- related problems. It can do so lazily\321delaying until an) 108 229 P (operation is performed on the context, or eagerly, at the time the context is created.) 108 215 T 3 14 Q (3.4) 54 167.67 T ( Implementing a Subclass of InitialContext) 75 167.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 147 P 4 10 Q -1.27 (Context) 108 133 P 0 12 Q -0.63 ( or) 150 133 P 4 10 Q -1.27 (DirContext) 164.73 133 P 0 12 Q -0.63 (, the service provider should supply a subclass of) 224.73 133 P 4 10 Q -1.27 (InitialContext) 457.64 133 P 0 12 Q -0.63 ( \050or) 541.64 133 P 4 10 Q 0.28 (InitialDirContext) 108 119 P 0 12 Q 0.14 (\051. To add support for URLs in the same way) 210 119 P 4 10 Q 0.28 (InitialContext) 426.39 119 P 0 12 Q 0.14 ( and) 510.39 119 P 4 10 Q 0.28 (Ini-) 534 119 P -0.24 (tialDirContext) 108 105 P 0 12 Q -0.12 ( do, the subclass would use the protected methods available in) 192 105 P 4 10 Q -0.24 (InitialCon-) 492 105 P (text) 108 91 T 0 12 Q ( as follows.) 132 91 T 34 584 36 596 R V 34 191 36 343 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 (1/29/98) 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.28 (For example, suppose) 108 712 P 4 10 Q 0.56 (XXXContext) 216.83 712 P 0 12 Q 0.28 ( is a subinterface of) 276.83 712 P 4 10 Q 0.56 (DirContext) 375.21 712 P 0 12 Q 0.28 (. Its initial context imple-) 435.21 712 P -0.48 (mentation would define) 108 698 P 4 10 Q -0.96 (getURLOrDefaultInitXXXCtx\050\051) 223.55 698 P 0 12 Q -0.48 ( methods \050for both) 385.55 698 P 4 10 Q -0.96 (Name) 475.63 698 P 0 12 Q -0.48 ( and) 499.63 698 P 4 10 Q -0.96 (String) 522 698 P 0 12 Q (parameters\051 that retrieve the real initial context to use.) 108 684 T 4 10 Q (public class InitialXXXContext extends InitialDirContext {) 140.4 665.33 T (...) 165.6 653.33 T (protected XXXContext getURLOrDefaultInitXXXCtx\050Name name\051) 165.6 629.33 T (throws NamingException {) 190.8 617.33 T (Context answer = getURLOrDefaultInitCtx\050name\051;) 190.8 605.33 T (if \050!\050answer instanceof XXXContext\051\051 {) 190.8 593.33 T (throw new NoInitialContextException\050\322Not an XXXContext\323\051;) 216 581.33 T (}) 190.8 569.33 T (return \050XXXContext\051answer;) 190.8 557.33 T (}) 165.6 545.33 T (// similar code for getURLOrDefaultInitXXXCtx\050String name\051) 165.6 533.33 T (}) 140.4 521.33 T 0 12 Q -0.44 (When providing implementations for the new methods in the) 108 502 P 4 10 Q -0.88 (XXXContext) 399.69 502 P 0 12 Q -0.44 ( interface that accept) 459.69 502 P (a name argument,) 108 488 T 4 10 Q (getURLOrDefaultInitXXXCtx\050\051) 196.64 488 T 0 12 Q ( is used in the following way.) 358.64 488 T 4 10 Q (public Object XXXMethod1\050Name name, ...\051 throws NamingException {) 140.4 469.33 T (return getURLOrDefaultInitXXXCtx\050name\051.XXXMethod1\050name, ...\051;) 165.6 457.33 T (}) 140.4 445.33 T 0 12 Q -0.38 (When providing implementations for the new methods in the) 108 426 P 4 10 Q -0.76 (XXXContext) 400.21 426 P 0 12 Q -0.38 ( interface that do not) 460.21 426 P (have a name argument, use) 108 412 T 4 10 Q (InitialContext.getDefaultInitCtx\050\051) 241.3 412 T 0 12 Q (.) 445.3 412 T 4 10 Q (protected XXXContext getDefaultInitXXXCtx\050\051 throws NamingException {) 140.4 393.33 T (Context answer = getDefaultInitCtx\050\051;) 165.6 381.33 T (if \050!\050answer instanceof XXXContext\051\051 {) 165.6 369.33 T (throw new NoInitialContextException\050\322Not an XXXContext\323\051;) 190.8 357.33 T (}) 165.6 345.33 T (return \050XXXContext\051answer;) 165.6 333.33 T (}) 140.4 321.33 T (public Object XXXMethod2\050Args args\051 throws NamingException {) 140.4 297.33 T (return getDefaultInitXXXCtx\050\051.XXXMethod2\050args\051;) 165.6 285.33 T (}) 140.4 273.33 T 0 12 Q (The implementation would also provide appropriate constructors for the class.) 108 254 T (Client programs that use this new initial context would look as follows.) 108 234 T 4 10 Q (import com.widget.jndi.InitialXXXContext;) 140.4 215.33 T (...) 140.4 203.33 T (XXXContext ctx = new InitialXXXContext\050env\051;) 140.4 191.33 T (Object obj = ctx.lookup\050name\051;) 140.4 179.33 T (ctx.XXXMethod1\050name, ...\051;) 140.4 167.33 T 3 12 Q (3.4.1) 66 145 T (Using the SPI to get the Initial Context) 108 145 T 0 F 1.19 (The client application can bypass the use of) 108 125 P 4 10 Q 2.37 (InitialContext) 330.11 125 P 0 12 Q 1.19 ( and) 414.11 125 P 4 10 Q 2.37 (InitialDirContext) 439.81 125 P 0 12 Q 1.19 ( by) 541.81 125 P 0.01 (calling) 108 111 P 4 10 Q 0.01 (javax.naming.spi.getInitialContext\050\051) 143.67 111 P 0 12 Q 0.01 ( directly to return an arbitrary subclass of) 359.67 111 P 4 10 Q -0.22 (Context) 108 97 P 0 12 Q -0.11 (. This has the disadvantage of losing the URL support provided by) 150 97 P 4 10 Q -0.22 (InitialContext) 471 97 P 0 12 Q -0.11 (.) 555 97 P 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 (1/29/98) 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.18 (\050The service provider can, of course, provide the URL support on its own.\051 This style of usage) 108 712 P (may be suitable for a client application that sets its own initial context factory builder.) 108 698 T 4 10 Q (import javax.naming.spi.*;) 140.4 679.33 T (NamingManager.setInitialContextFactoryBuilder\050myBuilder\051;) 140.4 667.33 T (Context ctx = NamingManager.getInitialContext\050env\051;) 140.4 655.33 T (...) 140.4 643.33 T (Object obj = ctx.lookup\050name\051;) 140.4 631.33 T (\050XXXContext\051ctx.XXXMethod1\050name,...\051;) 140.4 619.33 T 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 (1/29/98) 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 (Objects Bound in the Namespace) 108 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.08 (desire to turn such information into objects that Java applications can use via the use of) 108 500 P 1 F -0.08 (object) 528.67 500 P (factories) 108 486 T 0 F (.) 150 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) 342 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, optional information about the name of the object) 313.86 258 P 0.12 (and where it is bound, and optionally some additional environment information \050for example,) 108 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. If) 377.5 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 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 (1/29/98) 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. For example, invoking) 126 573 P 4 10 Q (getObjectInstance\050null, null, null, env\051) 140.4 554.33 T 0 12 Q -0.04 (on an \322ldap\323 URL context factory returns a context that can resolve LDAP URLs \050e.g.) 126 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, null, null, env\051;) 140.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 the context \322) 227.76 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 1.11 (context factories are also used for creating objects in the Java programming language from) 108 297 P (URLs stored in the namespace \050see \322URLs as Reference Information\323 on page) 108 283 T (19\051.) 487.9 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.63 (into objects in the Java programming language.) 108 226 P 4 10 Q 1.26 (NamingManager.getObjectInstance\050\051) 343.04 226 P 0 12 Q 0.63 ( lo-) 541.04 226 P 0.27 (cates and instantiates an instance of) 108 212 P 4 10 Q 0.54 (ObjectFactory) 283.59 212 P 0 12 Q 0.27 ( and invokes the) 361.59 212 P 4 10 Q 0.54 (getObjectInstance\050\051) 444 212 P 0 12 Q (method on the factory.) 108 198 T -0.24 (In addition to being a public method to be used by service providers to turn reference informa-) 108 178 P 2.84 (tion into objects \322Support for Objects in the Java Programming Language\323 on page) 108 164 P 2.84 (7\051,) 545 164 P 4 10 Q 2.82 (NamingManager.getObjectInstance\050\051) 108 150 P 0 12 Q 1.41 ( is also used internally \050for example, in the imple-) 306 150 P (mentation of) 108 136 T 4 10 Q (getURLContext\050\051) 172 136 T 0 12 Q ( and) 262 136 T 4 10 Q (getContinuationContext\050\051\051.) 285.32 136 T 0 12 Q (There are four ways in which object factories are made available to JNDI:) 108 116 T (\245) 115 96 T (Information in) 126 96 T 4 10 Q (Reference) 198.66 96 T 0 12 Q (,) 252.66 96 T (\245) 115 76 T (URLs as reference,) 126 76 T 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 (1/29/98) 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 ( system property,) 334.32 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 StringRefAddr\050\322bsd\323, serverName\051\051;) 291.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, or the serialized form of a) 108 135 P 0.11 (serializable object\051, and use that information to create corresponding objects to be returned to) 108 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 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 (1/29/98) 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 0.59 (ry must implement the) 108 538 P 4 10 Q 1.19 (ObjectFactory) 221.71 538 P 0 12 Q 0.59 ( interface and have a public) 299.71 538 P 0.59 ( c) 434.97 538 P 0.59 (onstructor) 443.9 538 P 0.59 ( that takes no) 492.56 538 P 0.63 (arguments) 108 524 P 0.63 (.) 157.99 524 P 4 10 Q 1.26 (getFactoryClassLocation\050\051) 164.62 524 P 0 12 Q 0.63 ( retrieves the location of the class implementation) 314.62 524 P (for the factory. 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. The application doesn\325t have to install the) 108 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 520 36 546 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 (1/29/98) 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.51 (printer service provider \050which provides the) 108 524 P 4 10 Q 1.01 (PrinterFactory) 324.99 524 P 0 12 Q 0.51 ( and) 408.99 524 P 4 10 Q 1.01 (BSDPrinter) 433.34 524 P 0 12 Q 0.51 ( classes\051, and) 493.34 524 P 0.52 (the JNDI SPI framework \050which ties the two together to return an object that the application) 108 510 P (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 (property \050described in the next section\051 is used.) 108 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 URL may be stored \050perhaps something like \322) 108 358 P 4 10 Q 0.16 (printer:bsd://lobby-printserver) 337.94 358 P 0 12 Q 0.08 (\323\051. The) 523.94 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) 75 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 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 (1/29/98) 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 java.naming.factory.object Property) 75 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 ( property.) 436.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 ( contains a colon-separated list of fully-qualified) 328.16 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.17 (have a public) 108 628 P 0.17 ( c) 172.32 628 P 0.17 (onstructor) 180.82 628 P 0.17 ( that takes no arguments) 229.48 628 P 0.17 (. For each class in the list, JNDI attempts to) 346.82 628 P 2.77 (load and instantiate the factory class, and to invoke the) 108 614 P 4 10 Q 5.54 (ObjectFactory.getObjectIn-) 402 614 P 0.83 (stance\050\051) 108 600 P 0 12 Q 0.41 ( method on it using the object and environment arguments supplied. If the creation) 156 600 P -0.44 (is successful, the resulting object is returned, otherwise, JNDI goes on to attempt the same pro-) 108 586 P (cedure on the next class in 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 ( property is made available to an application either in the) 285.57 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 ( constructors,) 493.93 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, the system property is not consulted.) 108 510 T 3 10 Q (Figur) 54 491.33 T (e 4: Example using ja) 77.71 491.33 T (v) 169.13 491.33 T (a.naming) 174.03 491.33 T (.factory) 213.61 491.33 T (.object to Get Back an Object fr) 245.95 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 ( are tried in turn to attempt to turn that information) 310.66 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 624 36 636 R 0 X 0 0 0 1 0 0 0 K 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 (1/29/98) 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 ( environment or system property and) 379.01 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 ( property\051 normally used by JNDI are employed.) 310.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 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 (1/29/98) 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 \322Object Factories\323 on page) 108 666 P -0.45 (15 also apply to how JNDI creates) 251.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. A pro-) 493.42 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 \322Objects Bound) 258.35 548 P 0.51 (in the Namespace\323 on page) 108 534 P 0.51 (15 to create instances of) 244.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. The provider must ensure) 422.74 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 ( property, or by installing its own object factory builder.) 264 464 T 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 (1/29/98) 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.spi) 308.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 ( property, and to in-) 461.13 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 ( related operations.) 390.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 \322Object Factories\323 on page) 108 240.33 T (15 for more details.) 337.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 \322Object Factory) 228 220.33 P (Builder\323 on page) 108 206.33 T (21 for more details.) 192.98 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/rosanna/ws/jndi/doc/javax.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 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 (1/29/98) 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 (1/26/98) 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 (1/26/98) 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 (1/26/98) 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 1998. Sun Microsystems. All rights reserved.) 140.4 645.33 T ( */) 140.4 633.33 T (package examples.spi.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 (1/26/98) 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 (1/26/98) 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 (1/26/98) 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 (1/26/98) 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 (if \050myEnv == null\051 {) 165.6 581.33 T ( // Must return non-null) 165.6 569.33 T ( myEnv = new Hashtable\0503, 0.75f\051;) 165.6 557.33 T (}) 165.6 545.33 T ( return myEnv;) 140.4 533.33 T ( }) 140.4 521.33 T ( public void close\050\051 throws NamingException {) 140.4 497.33 T (myEnv = null;) 165.6 485.33 T (bindings = null;) 165.6 473.33 T ( }) 140.4 461.33 T ( // Class for enumerating name/class pairs) 140.4 437.33 T ( class FlatNames implements NamingEnumeration {) 140.4 425.33 T ( Enumeration names;) 140.4 413.33 T ( FlatNames \050Enumeration names\051 {) 140.4 389.33 T ( this.names = names;) 140.4 377.33 T ( }) 140.4 365.33 T ( public boolean hasMoreElements\050\051 {) 140.4 341.33 T ( return names.hasMoreElements\050\051;) 140.4 329.33 T ( }) 140.4 317.33 T ( public boolean hasMore\050\051 throws NamingException {) 140.4 293.33 T ( return hasMoreElements\050\051;) 140.4 281.33 T ( }) 140.4 269.33 T ( public Object nextElement\050\051 {) 140.4 245.33 T ( String name = \050String\051names.nextElement\050\051;) 140.4 233.33 T -0.56 ( String className = bindings.get\050name\051.getClass\050\051.getName\050\051;) 140.4 221.33 P ( return new NameClassPair\050name, className\051;) 140.4 209.33 T ( }) 140.4 197.33 T ( public Object next\050\051 throws NamingException {) 140.4 173.33 T ( return nextElement\050\051;) 140.4 161.33 T ( }) 140.4 149.33 T ( }) 140.4 137.33 T ( // Class for enumerating bindings) 140.4 113.33 T ( class FlatBindings implements NamingEnumeration {) 140.4 101.33 T ( Enumeration names;) 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 (1/26/98) 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 ( FlatBindings \050Enumeration names\051 {) 140.4 713.33 T ( this.names = names;) 140.4 701.33 T ( }) 140.4 689.33 T ( public boolean hasMoreElements\050\051 {) 140.4 665.33 T ( return names.hasMoreElements\050\051;) 140.4 653.33 T ( }) 140.4 641.33 T ( public boolean hasMore\050\051 throws NamingException {) 140.4 617.33 T ( return hasMoreElements\050\051;) 140.4 605.33 T ( }) 140.4 593.33 T ( public Object nextElement\050\051 {) 140.4 569.33 T ( String name = \050String\051names.nextElement\050\051;) 140.4 557.33 T ( return new Binding\050name, bindings.get\050name\051\051;) 140.4 545.33 T ( }) 140.4 533.33 T ( public Object next\050\051 throws NamingException {) 140.4 509.33 T ( return nextElement\050\051;) 140.4 497.33 T ( }) 140.4 485.33 T ( }) 140.4 473.33 T (};) 140.4 461.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 (1/26/98) 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 1998. Sun Microsystems. All rights reserved.) 140.4 681.33 T ( */) 140.4 669.33 T (package examples.spi.flat;) 140.4 657.33 T (import javax.naming.NameParser;) 140.4 633.33 T (import javax.naming.Name;) 140.4 621.33 T (import javax.naming.CompoundName;) 140.4 609.33 T (import javax.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 1998. Sun Microsystems. All rights reserved.) 140.4 364.33 T ( */) 140.4 352.33 T (package examples.spi.flat;) 140.4 340.33 T (import java.util.Hashtable;) 140.4 316.33 T (import javax.naming.Context;) 140.4 304.33 T (import javax.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 (1/26/98) 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 (1/29/98) 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 (1/29/98) 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 (1/29/98) 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 Histor) 168.25 708 T (y) 434.75 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.1: JNDI Changes Since 1.1Beta1) 54 680 T 3 10 Q (API-r) 54 646.33 T (elated Changes) 78.81 646.33 T 0 F (\245) 54 631.33 T 4 F (DirContext.search\050\051) 72 631.33 T 0 F ( accepts RFC 2254 \336lters instead of RFC 1960 \336lters.) 186 631.33 T (\245) 54 619.33 T (Added constants for en) 72 619.33 T (vironment properties to) 164.08 619.33 T 4 F (Context) 260.46 619.33 T 0 F ( interf) 302.46 619.33 T (ace.) 326.52 619.33 T (\245) 54 607.33 T (Changed) 72 607.33 T 4 F (Attributes.remove\050\051) 110.05 607.33 T 0 F ( and) 224.05 607.33 T 4 F (Attributes.put\050\051) 243.49 607.33 T 0 F ( to return) 339.49 607.33 T 4 F (Attribute) 378.65 607.33 T 0 F ( instead of) 432.65 607.33 T 4 F (Object) 476.81 607.33 T 0 F (.) 512.81 607.33 T (\245) 54 595.33 T 4 F (Name.add\050\051) 72 595.33 T 0 F ( and) 132 595.33 T 4 F (Name.addAll\050\051) 151.44 595.33 T 0 F ( \050and related methods in) 229.44 595.33 T 4 F (CompositeName) 328.59 595.33 T 0 F ( and) 406.59 595.33 T 4 F (CompoundName) 426.03 595.33 T 0 F (\051 are changed) 498.03 595.33 T (so that the) 72 583.33 T (y return the updated instance of) 112.96 583.33 T 4 F (Name) 241.82 583.33 T 0 F (. This allo) 265.82 583.33 T (ws constructs such as) 305.85 583.33 T 4 F (new CompositeName\050"a"\051.add\050"b"\051.add\050"c"\051) 72 571.33 T 0 F ( to be supported.) 312 571.33 T (\245) 54 559.33 T (Mo) 72 559.33 T (v) 85.74 559.33 T (ed) 90.59 559.33 T 4 F (implements) 102.53 559.33 T (Cloneable) 165.03 559.33 T 0 F ( from) 219.03 559.33 T 4 F (CompositeName) 243.47 559.33 T 0 F ( and) 321.47 559.33 T 4 F (CompoundName) 340.91 559.33 T 0 F ( to) 412.91 559.33 T 4 F (Name) 425.69 559.33 T 0 F (, where the) 449.69 559.33 T 4 F (clone\050\051) 496.34 559.33 T 0 F (method is declared.) 72 547.33 T (\245) 54 535.33 T (T) 72 535.33 T (urned) 77.66 535.33 T 4 F (Attribute) 102.93 535.33 T 0 F ( and) 156.93 535.33 T 4 F (Attributes) 176.37 535.33 T 0 F ( into interf) 236.37 535.33 T (aces and renamed the original classes) 278.49 535.33 T 4 F (BasicAttribute) 430.67 535.33 T 0 F ( and) 514.67 535.33 T 4 F (BasicAttributes) 72 523.33 T 0 F (, respecti) 162 523.33 T (v) 197.85 523.33 T (ely) 202.7 523.33 T (.) 214.27 523.33 T (\245) 54 511.33 T (Allo) 72 511.33 T (w class name to be speci\336ed in) 89.53 511.33 T 4 F (Binding) 215.9 511.33 T 0 F ( and) 257.9 511.33 T 4 F (SearchResult) 277.34 511.33 T 0 F ( constructors, and added) 349.34 511.33 T 4 F (NameClassPair.set-) 449.04 511.33 T (ClassName\050\051) 72 499.33 T 0 F (.) 138 499.33 T (\245) 54 487.33 T 4 F (DirContext.REMOVE_ATTRIBUTE) 72 487.33 T 0 F ( does not require none) 234 487.33 T (xistent attrib) 322.72 487.33 T (utes or their v) 372.8 487.33 T (alues to be ignored.) 427.82 487.33 T (\245) 54 475.33 T -0.29 (Added) 72 475.33 P 4 F -0.7 (throws NamingException) 100.87 475.33 P 0 F -0.29 ( clause to) 232.16 475.33 P 4 F -0.7 (InitialContext) 271.55 475.33 P 0 F -0.29 ( and) 355.55 475.33 P 4 F -0.7 (InitialDirContext) 374.4 475.33 P 0 F -0.29 ( constructors so that) 476.4 475.33 P (connection problems can be reported and thro) 72 463.33 T (wn at construction time.) 255.04 463.33 T 3 F (SPI-r) 54 441.33 T (elated Changes) 77.15 441.33 T 0 F (\245) 54 426.33 T 4 F (InitialContextFactory.getInitialContext\050\051) 72 426.33 T 0 F ( must return a non-null initial conte) 318 426.33 T (xt \050instead of possibly) 459.51 426.33 T (null\051.) 72 414.33 T (\245) 54 402.33 T 4 F (InitialContextFactoryBuilder.createInitialConetxtFactory\050\051) 72 402.33 T 0 F ( and) 420 402.33 T 4 F (ObjectFactory-) 439.44 402.33 T -0.34 (Builder.createObjectFactory\050\051) 72 390.33 P 0 F -0.14 ( no) 246 390.33 P -0.14 (w ha) 258.11 390.33 P -0.14 (v) 276.93 390.33 P -0.14 (e a) 281.78 390.33 P 4 F -0.34 (throws NamingException) 295.38 390.33 P 0 F -0.14 ( clause and must return non-null.) 427.05 390.33 P (\245) 54 378.33 T 4 F (NamingManager.getObjectInstance\050\051) 72 378.33 T 0 F ( and) 270 378.33 T 4 F (getURLContext\050\051) 289.44 378.33 T 0 F ( pass up e) 379.44 378.33 T (xceptions thro) 418.45 378.33 T (wn for operational) 475.14 378.33 T (errors \050e.g. problem instantiating a f) 72 366.33 T (actory class\051.) 216.04 366.33 T 54 326.98 558 336.99 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 326.98 558 336.99 R 7 X 0 0 0 1 0 0 0 K V 56 335.02 176 335.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) 54 340.99 T (.1Beta1: JNDI Changes Since 1.0Licensee Release) 60 340.99 T 3 10 Q (P) 54 307.32 T (ackage Name Change) 60.01 307.32 T 0 F (JNDI is being packaged as a Ja) 54 292.32 T (v) 178.21 292.32 T (a 1.1-compatible Standard Extension. The JNDI packages ha) 182.96 292.32 T (v) 426.32 292.32 T (e been renamed to use the) 431.17 292.32 T (\322ja) 54 280.32 T (v) 65.46 280.32 T (ax\323 pre\336x, follo) 70.21 280.32 T (wing the con) 133.56 280.32 T (v) 184.82 280.32 T (ention for Ja) 189.67 280.32 T (v) 239.46 280.32 T (a Standard Extensions. The ne) 244.21 280.32 T (w package names are:) 365.33 280.32 T 4 F (javax.naming) 455.85 280.32 T 0 F (,) 527.85 280.32 T 4 F (javax.naming.directory) 54 268.32 T 0 F (, and) 185.35 268.32 T 4 F (javax.naming.spi) 207.29 268.32 T 0 F (.) 303.29 268.32 T 3 F (General Changes) 54 246.32 T 0 F (\245) 54 231.32 T (Property names ha) 72 231.32 T (v) 146.23 231.32 T (e been renamed follo) 151.08 231.32 T (wing the con) 234.97 231.32 T (v) 286.23 231.32 T (ention used by the JDK. The) 291.08 231.32 T (y ha) 405.36 231.32 T (v) 422.1 231.32 T (e a \322ja) 426.95 231.32 T (v) 452.29 231.32 T (a.naming\323 pre\336x. See) 457.04 231.32 T (Appendix A of) 72 219.32 T 3 F (JNDI API) 134.49 219.32 T 0 F ( document for details on the ne) 177.54 219.32 T (w names.) 301.16 219.32 T (\245) 54 207.32 T (Mak) 72 207.32 T (e) 90.23 207.32 T 4 F (java.naming.provider.url) 97.17 207.32 T 0 F ( a system property in addition to being a) 241.17 207.32 T (v) 402.07 207.32 T (ailable as an en) 406.82 207.32 T (vironment property) 467.79 207.32 T (.) 544.63 207.32 T (\245) 54 195.32 T -0.34 (Replaced use of) 72 195.32 P 4 F -0.83 (Properties) 137.33 195.32 P 0 F -0.34 ( with) 197.33 195.32 P 4 F -0.83 (Hashtable) 219.42 195.32 P 0 F -0.34 ( \050) 273.42 195.32 P 4 F -0.83 (Properties) 278.91 195.32 P 0 F -0.34 (\325 superclass\051 for the en) 338.91 195.32 P -0.34 (vironment properties/settings so) 428.21 195.32 P (that service pro) 72 183.32 T (viders and applications can completely enumerate its contents.) 133.5 183.32 T 4 F (Properties) 385.96 183.32 T 0 F ( can still be passed as ar) 445.96 183.32 T (gu-) 541.87 183.32 T -0.23 (ments and returned as v) 72 171.32 P -0.23 (alues when) 165.81 171.32 P 4 F -0.55 (Hashtable) 212.56 171.32 P 0 F -0.23 ( is called for) 266.56 171.32 P -0.23 (. But declaring the methods to use) 315.04 171.32 P 4 F -0.55 (Hashtable) 452.31 171.32 P 0 F -0.23 ( mak) 506.31 171.32 P -0.23 (es clear) 525.7 171.32 P (the f) 72 159.32 T (act that nested) 89.95 159.32 T 4 F (Properties) 149.66 159.32 T 0 F ( are not e) 209.66 159.32 T (xamined for the operation at hand.) 246.44 159.32 T 3 F (API-r) 54 137.32 T (elated Changes) 78.81 137.32 T 0 F (As most of these changes are renames, the 1.1Beta1 release of the code includes a Ja) 54 122.32 T (v) 392.32 122.32 T (a ClassRenamer) 397.07 122.32 T 0 8 Q (1) 461.78 126.32 T 0 10 Q ( program that assists) 465.78 122.32 T (you with the renames. See the instructions for the release for details.) 54 110.32 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 (Thanks to the Swing team for use and distrib) 84 77.33 T (ution of this program.) 263.23 77.33 T 34 336.99 36 720 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 (1/29/98) 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) 72 713.33 T 4 F (Context.close\050\051) 101.16 713.33 T 0 F ( to allo) 191.16 713.33 T (w applications to release resources immediately) 218.69 713.33 T (.) 409.39 713.33 T (\245) 54 701.33 T (Added) 72 701.33 T 4 F (InterruptedNamingException) 101.16 701.33 T 0 F ( to indicate a naming operation has been interrupted.) 257.16 701.33 T (\245) 54 689.33 T (Class renames:) 72 689.33 T 4 F (DSContext) 134.77 689.33 T 0 F (->) 188.77 689.33 T 4 F (DirContext) 197.74 689.33 T 0 F (,) 257.74 689.33 T 4 F (InitialDSContext) 262.74 689.33 T 0 F (->) 358.74 689.33 T 4 F (InitialDirContext) 367.71 689.33 T 0 F (,) 469.71 689.33 T 4 F (AttributeSet) 72 677.33 T 0 F (->) 144 677.33 T 4 F (Attributes) 152.97 677.33 T 0 F (,) 212.97 677.33 T 4 F (InvalidAttributeSetException) 217.97 677.33 T 0 F (->) 385.97 677.33 T 4 F (InvalidAttributesException) 394.94 677.33 T 0 F (,) 550.94 677.33 T 4 F (SearchConstraints) 72 665.33 T 0 F (->) 174 665.33 T 4 F (SearchControls, InvalidSearchConstraintsException->Invalid-) 182.97 665.33 T (SearchControlsException.) 72 653.33 T 0 F (\245) 54 641.33 T -0.19 (Mak) 72 641.33 P -0.19 (e) 90.23 641.33 P 4 F -0.44 (Attributes) 96.99 641.33 P 0 F -0.19 (\325 methods look lik) 156.99 641.33 P -0.19 (e) 229.39 641.33 P 4 F -0.44 (Map) 236.15 641.33 P 0 F -0.19 (\325) 254.15 641.33 P -0.19 (s) 256.92 641.33 P 0 8 Q -0.15 (1) 260.82 645.33 P 0 10 Q -0.19 (,) 264.82 641.33 P 4 F -0.44 (Attribute) 269.63 641.33 P 0 F -0.19 (\325) 323.63 641.33 P -0.19 (s methods look lik) 326.41 641.33 P -0.19 (e) 399.38 641.33 P 4 F -0.44 (Set) 406.13 641.33 P 0 F -0.19 (\325) 424.13 641.33 P -0.19 (s, and) 426.91 641.33 P 4 F -0.44 (Name) 452.37 641.33 P 0 F -0.19 (,) 476.37 641.33 P 4 F -0.44 (CompoundName) 481.18 641.33 P 0 F -0.19 (,) 553.18 641.33 P 4 F (CompositeName) 72 629.33 T 0 F (, and) 150 629.33 T 4 F (Reference) 171.94 629.33 T 0 F (\325) 225.94 629.33 T (s methods look lik) 228.72 629.33 T (e) 302.24 629.33 T 4 F (List) 309.18 629.33 T 0 F (\325) 333.18 629.33 T (s.) 335.96 629.33 T (\245) 54 617.33 T (Added protected) 72 617.33 T 4 F (Attribute.Attribute\050\051) 140.87 617.33 T 0 F ( constructor so that subclasses can a) 266.87 617.33 T (v) 410.53 617.33 T (oid allocating) 415.33 617.33 T 4 F (Vector) 472.55 617.33 T 0 F (.) 508 617.33 T (\245) 54 605.33 T (Added constructors to) 72 605.33 T 4 F (Attributes) 162.82 605.33 T 0 F ( that accept an attrib) 222.82 605.33 T (ute.) 303.71 605.33 T (\245) 54 593.33 T (Added) 72 593.33 T 4 F (throws NamingException) 101.16 593.33 T 0 F ( clause to) 233.16 593.33 T 4 F (Attribute) 273.43 593.33 T 0 F (\325) 327.43 593.33 T (s schema methods.) 330.21 593.33 T (\245) 54 581.33 T (Renamed) 72 581.33 T 4 F (DirContext.DELETE_ATTRIBUTE) 112.27 581.33 T 0 F (->) 274.27 581.33 T 4 F (DirContext.REMOVE_ATTRIBUTE) 283.24 581.33 T 0 F (.) 445.24 581.33 T (\245) 54 569.33 T (Replaced) 72 569.33 T 4 F (ModificationEnumeration) 111.71 569.33 T 0 F ( with) 249.71 569.33 T 4 F (ModificationItem[]) 272.49 569.33 T 0 F (.) 380.49 569.33 T (\245) 54 557.33 T (Replaced) 72 557.33 T 4 F (RefAddrEnumeration) 111.71 557.33 T 0 F ( and) 219.71 557.33 T 4 F (StringEnumeration) 239.15 557.33 T 0 F ( with) 341.15 557.33 T 4 F (Enumeration) 363.93 557.33 T 0 F (.) 429.93 557.33 T (\245) 54 545.33 T (Replaced) 72 545.33 T 4 F (AttributeEnumeration) 111.71 545.33 T 0 F (,) 231.71 545.33 T 4 F (NameClassEnumeration) 236.71 545.33 T 0 F (,) 356.71 545.33 T 4 F (BindingEnumeration) 361.71 545.33 T 0 F (, aand) 469.71 545.33 T 4 F (SearchEnu-) 496.09 545.33 T (meration) 72 533.33 T 0 F ( with) 120 533.33 T 4 F (NamingEnumeration) 142.78 533.33 T 0 F ( to allo) 244.78 533.33 T (w generic means of doing JNDI enumerations.) 272.31 533.33 T (\245) 54 521.33 T 4 F (Attribute.getAll\050\051) 72 521.33 T 0 F ( returns) 180 521.33 T 4 F (NamingEnumeration) 212.77 521.33 T 0 F ( instead of) 314.77 521.33 T 4 F (Enumeration) 358.93 521.33 T 0 F (.) 424.93 521.33 T (\245) 54 509.33 T 4 F (Link.getLinkName\050\051) 72 509.33 T 0 F ( returns) 180 509.33 T 4 F (String) 212.77 509.33 T 0 F ( instead of) 248.77 509.33 T 4 F (Name) 292.93 509.33 T 0 F (.) 316.93 509.33 T (\245) 54 497.33 T 4 F (BinaryRefAddr.buf) 72 497.33 T 0 F ( and) 174 497.33 T 4 F (StringRefAddr.contents) 193.44 497.33 T 0 F ( made pri) 325.44 497.33 T (v) 362.96 497.33 T (ate. Deleted) 367.71 497.33 T 4 F (Binary.getAddressBy-) 417.97 497.33 T (tes\050\051) 72 485.33 T 0 F (,) 102 485.33 T 4 F (StringRefAddr.getAddressString\050\051) 107 485.33 T 0 F (,) 299 485.33 T 4 F (BinaryRefAddr.size\050\051) 304 485.33 T 0 F (.) 424 485.33 T (\245) 54 473.33 T (Renamed) 72 473.33 T 4 F (RefAddr.getAddressContents\050\051) 112.27 473.33 T 0 F (->) 280.27 473.33 T 4 F (getContent\050\051) 289.24 473.33 T 0 F (.) 361.24 473.33 T (\245) 54 461.33 T (Remo) 72 461.33 T (v) 95.74 461.33 T (ed) 100.59 461.33 T 4 F (DSException) 112.53 461.33 T 0 F (, re-parented e) 178.53 461.33 T (xceptions to be subclass of) 235.85 461.33 T 4 F (NamingException) 345.56 461.33 T 0 F (\245) 54 449.33 T -0.38 (Remo) 72 449.33 P -0.38 (v) 95.74 449.33 P -0.38 (ed most constructors from) 100.59 449.33 P 4 F -0.91 (NamingException) 206.29 449.33 P 0 F -0.38 ( and its subclasses. Each has tw) 296.29 449.33 P -0.38 (o constructors: one that accepts an) 420.3 449.33 P (e) 72 437.33 T (xplanation and a public constructor that tak) 76.29 437.33 T (es no parameters.) 249.5 437.33 T (\245) 54 425.33 T (Remo) 72 425.33 T (v) 95.74 425.33 T (ed) 100.59 425.33 T 4 F (Name.toString\050\051) 112.53 425.33 T 0 F (,) 202.53 425.33 T 4 F (equals\050\051) 207.53 425.33 T 0 F (,) 255.53 425.33 T 4 F (hashCode\050\051) 260.53 425.33 T 0 F ( as these are already de\336ned by) 320.53 425.33 T 4 F (Object) 447.99 425.33 T 0 F (.) 483.99 425.33 T (\245) 54 413.33 T (Constructors for abstract classes) 72 413.33 T 4 F (RefAddr) 203.64 413.33 T 0 F ( and) 245.64 413.33 T 4 F (ReferralException) 265.08 413.33 T 0 F ( are no) 367.08 413.33 T (w protected.) 394.04 413.33 T 3 F (SPI-r) 54 391.33 T (elated Changes) 77.15 391.33 T 0 F (\245) 54 376.33 T 4 F (NamingManager.getObjectInstance\050\051) 72 376.33 T 0 F ( and) 270 376.33 T 4 F (ObjectFactory.getObjectInstance\050\051) 289.44 376.33 T 0 F ( allo) 487.44 376.33 T (w the caller) 504.69 376.33 T (to supply tw) 72 364.33 T (o optional parameters: a name and a conte) 121.35 364.33 T (xt. The name is the name of the object resolv) 289.77 364.33 T (ed relati) 469.59 364.33 T (v) 501.83 364.33 T (e to the con-) 506.68 364.33 T (te) 72 352.33 T (xt supplied. An object f) 79.07 352.33 T (actory can mak) 173.13 352.33 T (e use of this information to g) 234.12 352.33 T (ather further information about the object to create.) 349.62 352.33 T (See the corresponding ja) 72 340.33 T (v) 170.39 340.33 T (adoc for these methods for details. Corresponding \336elds and accessor methods were added to) 175.14 340.33 T 4 F (CannotProceedException) 72 328.33 T 0 F ( so that this information, if supplied, can be propag) 204 328.33 T (ated.) 408.1 328.33 T (\245) 54 316.33 T (Constants used in) 72 316.33 T 4 F (NamingManager) 145.06 316.33 T 0 F ( for property names remo) 223.06 316.33 T (v) 324.55 316.33 T (ed:) 329.4 316.33 T 4 F (ObjectFactoryProperty,) 344.12 316.33 T (InitialCon-) 478.9 316.33 T (textFactoryProperty) 72 304.33 T 0 F (,) 185.35 304.33 T 4 F (PkgPathProperty) 190.35 304.33 T 0 F (. These were used for internal de) 279.7 304.33 T (v) 410.24 304.33 T (elopment. Programs should use the) 415.09 304.33 T (appropriate strings instead.) 72 292.33 T (\245) 54 280.33 T 4 F -0.12 (NamingManager.getObjectInstance\050\051) 72 280.33 P 0 F -0.05 ( returns original input if it cannot create a f) 270 280.33 P -0.05 (actory using the reference of) 441.35 280.33 P (the object \050it used to return) 72 268.33 T 4 F (null) 182.54 268.33 T 0 F (\051.) 206.54 268.33 T (\245) 54 256.33 T 4 F (InitialContext) 72 256.33 T 0 F ( constructor that tak) 156 256.33 T (es no parameters calls) 235.61 256.33 T 4 F (NamingManager.getInitialContext\050\051) 326.14 256.33 T 0 F ( with a) 524.14 256.33 T 4 F (null) 72 244.33 T 0 F ( en) 96 244.33 T (vironment instead of empty en) 107.54 244.33 T (vironment.) 229.35 244.33 T 54 204.99 558 215 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 204.99 558 215 R 7 X 0 0 0 1 0 0 0 K V 56 213.03 176 213.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.0Licensee Release: JNDI Changes Since 1.0Beta1) 54 219 T 3 10 Q (P) 54 185.33 T (ackage Name Change) 60.01 185.33 T 0 F (T) 54 170.33 T (o allo) 59.31 170.33 T (w this release to w) 81.56 170.33 T (ork in all Ja) 155.89 170.33 T (v) 202.63 170.33 T (a 1.1 systems, the JNDI classes ha) 207.38 170.33 T (v) 344.38 170.33 T (e been temporarily renamed from the) 349.23 170.33 T 4 F (java.nam-) 497.8 170.33 T (ing) 54 158.33 T 0 F ( hierarch) 72 158.33 T (y to) 107.21 158.33 T 4 F (com.sun.java.naming) 124.99 158.33 T 0 F (.) 238.99 158.33 T 3 F (API-r) 54 136.33 T (elated Changes) 78.81 136.33 T 0 F (\245) 54 121.33 T 4 F (SearchConstraints) 72 121.33 T 0 F ( no) 174 121.33 T (w implements) 186.25 121.33 T 4 F (java.io.Serializable) 245.14 121.33 T 0 F (.) 365.14 121.33 T (\245) 54 109.33 T (Added) 72 109.33 T 4 F (ReferralException.skipReferrals\050\051) 101.16 109.33 T 0 F ( to allo) 299.16 109.33 T (w application to skip indi) 326.69 109.33 T (vidual referrals.) 428.11 109.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 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 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 (1/29/98) 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 constructor to) 72 713.33 T 4 F (NoInitialContextException) 158.93 713.33 T 0 F ( that accepts an e) 308.93 713.33 T (xplanation string.) 377.09 713.33 T (\245) 54 701.33 T (Added) 72 701.33 T 4 F (SchemaViolationException) 101.16 701.33 T 0 F ( for reporting schema-related problems.) 245.16 701.33 T (\245) 54 689.33 T (Renamed) 72 689.33 T 4 F (java.naming.directory.SearchTimeLimitExceededException) 112.27 689.33 T 0 F ( to) 436.27 689.33 T 4 F (java.naming.Time-) 449.05 689.33 T -0.49 (LimitExceededException) 72 677.33 P 0 F -0.2 (so that it can be used by the) 209.51 677.33 P 4 F -0.49 (java.naming) 321.19 677.33 P 0 F -0.2 ( package. Added) 387.19 677.33 P 4 F -0.49 (java.naming.Limi-) 456 677.33 P (tExceededException) 72 665.33 T 0 F (, which is the super class of) 180 665.33 T 4 F (TimeLimitExceededException) 292.76 665.33 T 0 F ( and) 448.76 665.33 T 4 F (SizeLimitExceededException) 72 653.33 T 0 F ( \050ne) 228 653.33 T (w as well\051.) 243.02 653.33 T (\245) 54 641.33 T (T) 72 641.33 T (o assist in deb) 77.31 641.33 T (ugging and displaying classes, added) 133.5 641.33 T 4 F (AttributeSet.toString\050\051) 284.04 641.33 T 0 F (,) 422.04 641.33 T 4 F (Binding.toString\050\051) 427.04 641.33 T 0 F (,) 535.04 641.33 T 4 F (SearchResult.toString\050\051) 72 629.33 T 0 F (.) 210 629.33 T (\245) 54 617.33 T -0.1 (Clari\336ed semantics of the o) 72 617.33 P -0.1 (v) 181.43 617.33 P -0.1 (erloaded form of) 186.28 617.33 P 4 F -0.25 (search\050\051) 255.66 617.33 P 0 F -0.1 ( that accepts a matching attrib) 303.67 617.33 P -0.1 (ute set \050) 422.65 617.33 P 4 F -0.25 (AttributeSet) 454.1 617.33 P 0 F -0.1 (\051. If the) 526.1 617.33 P (matching attrib) 72 605.33 T (ute set is) 132.63 605.33 T 4 F (null) 170.13 605.33 T 0 F ( or empty) 194.13 605.33 T (, return all the objects in the tar) 231.81 605.33 T (get conte) 356.61 605.33 T (xt.) 392.84 605.33 T (\245) 54 593.33 T 4 F (AttributeSet) 72 593.33 T 0 F ( no) 144 593.33 T (w implements) 156.25 593.33 T 4 F (Cloneable) 215.14 593.33 T 0 F (, and has a) 269.14 593.33 T 4 F (clone\050\051) 313.85 593.33 T 0 F ( method.) 355.85 593.33 T 3 F (SPI-r) 54 571.33 T (elated Changes) 77.15 571.33 T 0 F (\245) 54 556.33 T (Added \322set\323 methods to) 72 556.33 T 4 F (NameClassPair) 170.32 556.33 T 0 F (,) 247.92 556.33 T 4 F (Binding) 252.92 556.33 T 0 F (, and) 294.92 556.33 T 4 F (SearchResult) 316.86 556.33 T 0 F ( classes and made the protected \336elds pri-) 388.86 556.33 T (v) 72 544.33 T (ate. This enables service pro) 76.75 544.33 T (viders to update the \336elds in these classes without subclassing.) 190.18 544.33 T (\245) 54 532.33 T (Added a constructor to) 72 532.33 T 4 F (NameClassPair) 165.87 532.33 T 0 F (,) 243.47 532.33 T 4 F ( Binding) 245.97 532.33 T 0 F (,) 293.97 532.33 T (and) 302.47 532.33 T 4 F ( SearchResult) 316.91 532.33 T 0 F ( that accepts a \322relati) 394.91 532.33 T (v) 478.52 532.33 T (e\323 parameter) 483.37 532.33 T (, and) 534.33 532.33 T 4 F (isRelative\050\051) 72 520.33 T 0 F ( and) 144 520.33 T 4 F (setRelative\050\051) 163.44 520.33 T 0 F ( methods. This allo) 241.44 520.33 T (ws service pro) 317.86 520.33 T (viders to return names that are not relati) 375.47 520.33 T (v) 534.91 520.33 T (e to) 539.76 520.33 T (the tar) 72 508.33 T (get conte) 97.09 508.33 T (xt of the search. Non-relati) 133.32 508.33 T (v) 240.54 508.33 T (e names are named using URL strings.) 245.39 508.33 T (\245) 54 496.33 T -0.4 (Contract between) 72 496.33 P 4 F -0.96 (NamingManager.getObjectInstance\050\051) 143.96 496.33 P 0 F -0.4 ( and) 341.96 496.33 P 4 F -0.96 (ObjectFactory) 360.59 496.33 P 0 F -0.4 ( is clari\336ed. An object f) 438.59 496.33 P -0.4 (actory) 530.91 496.33 P -0 (returns) 72 484.33 P 4 F -0 (null) 102.27 484.33 P 0 F -0 ( if it cannot create the object; it only thro) 126.27 484.33 P -0 (ws an e) 289.6 484.33 P -0 (xception \050which is passed up to the caller of) 319.43 484.33 P 4 F -0 (NamingMan-) 498 484.33 P (ager.getObjectInstance\050\051) 72 472.33 T 0 F (\051 if no other object f) 216 472.33 T (actories should be tried.) 296.16 472.33 T (\245) 54 460.33 T (Replaced) 72 460.33 T 4 F (Resolver.resolvePenultimate\050\051) 111.71 460.33 T 0 F ( with) 285.71 460.33 T 4 F (Resolver.resolveToClass\050\051) 308.49 460.33 T 0 F (. This allo) 458.49 460.33 T (ws more ef) 498.52 460.33 T (\336-) 542.7 460.33 T (cient implementation of service pro) 72 448.33 T (viders by allo) 214.05 448.33 T (wing the resolution to stop at the \336rst conte) 268.24 448.33 T (xt that e) 441.42 448.33 T (xports a tar) 473.49 448.33 T (get class,) 518.3 448.33 T (rather than requiring resolution to proceed to the penultimate conte) 72 436.33 T (xt. The \336nal service pro) 339.86 436.33 T (vider in a chain of federated) 434.97 436.33 T (naming systems no longer needs to implement) 72 424.33 T 4 F (Resolver) 260.05 424.33 T 0 F (; only the intermediate pro) 308.05 424.33 T (viders.must do so.) 414 424.33 T (\245) 54 412.33 T -0.15 (Remo) 72 412.33 P -0.15 (v) 95.74 412.33 P -0.15 (ed) 100.59 412.33 P 4 F -0.36 (NotDSContextException) 112.38 412.33 P 0 F -0.15 (. Service pro) 238.38 412.33 P -0.15 (viders should use) 288.74 412.33 P 4 F -0.36 (NotContextException) 360.23 412.33 P 0 F -0.15 ( with the tar) 474.23 412.33 P -0.15 (get class) 521.64 412.33 P (name in the e) 72 400.33 T (xplanation to indicate that a particular subclass of) 125.45 400.33 T 4 F (Context) 326.53 400.33 T 0 F ( is required b) 368.53 400.33 T (ut not found.) 420.82 400.33 T (\245) 54 388.33 T (The def) 72 388.33 T (ault package pre\336x for loading URL conte) 102.72 388.33 T (xt f) 271.98 388.33 T (actories has changed from \322sun.jndi.url\323 to \322com.sun.jndi.url\323) 285.49 388.33 T (because of package renaming.) 72 376.33 T 3 F (Document V) 54 354.33 T (ersion Numbers Reset) 106.6 354.33 T 0 F -0.16 (The earlier v) 54 339.33 P -0.16 (ersions of the JNDI documents were labeled as v) 104.61 339.33 P -0.16 (ersions 1.0, 1.1. and 1.2. The) 298.68 339.33 P -0.16 (y should ha) 413.53 339.33 P -0.16 (v) 459.12 339.33 P -0.16 (e been \322Early Access\323,) 463.97 339.33 P (\322Beta1\323 and so on, to match the code releases.) 54 327.33 T 54 287.99 558 298 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 287.99 558 298 R 7 X 0 0 0 1 0 0 0 K V 56 296.02 176 296.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: JNDI Changes Since 1.0Early Access) 54 302 T 3 10 Q (API-r) 54 268.33 T (elated Changes) 78.81 268.33 T 0 F (\245) 54 253.33 T -0.01 (Added) 72 253.33 P 4 F -0.03 (java.naming.ReferralException) 101.15 253.33 P 0 F -0.01 ( to support client-side referrals. This abstract class is used to represent) 275.15 253.33 P -0.17 (a referral e) 72 241.33 P -0.17 (xception, such as that a) 114.81 241.33 P -0.17 (v) 206.96 241.33 P -0.17 (ailable in LD) 211.71 241.33 P -0.17 (AP v3. A service pro) 263.74 241.33 P -0.17 (vider de\336nes a subclass of) 347.05 241.33 P 4 F -0.41 (ReferralException) 453.67 241.33 P 0 F (to handle its o) 72 229.33 T (wn style of referrals.) 128.14 229.33 T (\245) 54 205.33 T (Added) 72 205.33 T 4 F (compareTo\050\051) 101.16 205.33 T 0 F ( to) 167.16 205.33 T 4 F (Name) 179.94 205.33 T 0 F ( \050and related classes) 203.94 205.33 T 4 F (CompositeName) 286.69 205.33 T 0 F (,) 364.69 205.33 T 4 F (CompoundName) 369.69 205.33 T 0 F (\051.) 441.69 205.33 T (public int compareTo\050Object obj\051;) 108 183.33 T (This method compares this) 72 165.33 T 4 F (Name) 182.55 165.33 T 0 F ( with the speci\336ed) 206.55 165.33 T 4 F (Object) 282.1 165.33 T 0 F ( for order) 318.1 165.33 T (. It returns a ne) 355.31 165.33 T (g) 417.92 165.33 T (ati) 422.87 165.33 T (v) 432.62 165.33 T (e inte) 437.47 165.33 T (ger) 459.26 165.33 T (, zero, or a positi) 471.63 165.33 T (v) 538.59 165.33 T (e) 543.44 165.33 T (inte) 72 153.33 T (ger as this) 86.85 153.33 T 4 F (Name) 129.9 153.33 T 0 F ( is less than, equal to, or greater than the gi) 153.9 153.33 T (v) 325.29 153.33 T (en) 330.14 153.33 T 4 F (Object) 342.08 153.33 T 0 F (. This method is useful for sorting a list of) 378.08 153.33 T (names.) 72 141.33 T (\245) 54 117.33 T (Added \324) 72 117.33 T 4 F (throws NamingException) 104.49 117.33 T 0 F (\325 to) 236.49 117.33 T 4 F (Referenceable.getReference\050\051) 252.6 117.33 T 0 F ( so that the implementor of) 420.6 117.33 T 4 F (getReference\050\051) 72 105.33 T 0 F ( can thro) 156 105.33 T (w an e) 190.74 105.33 T (xception if it encounters one.) 216.69 105.33 T (public Reference getReference\050\051 throws NamingException;) 108 83.33 T 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 (1/29/98) 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 4 F -0.15 (AttributeSet) 72 713.33 P 0 F -0.06 ( w) 144 713.33 P -0.06 (as originally case-sensiti) 153.56 713.33 P -0.06 (v) 251.51 713.33 P -0.06 (e. That is, the case of an attrib) 256.36 713.33 P -0.06 (ute identi\336er w) 375.98 713.33 P -0.06 (as considered when retrie) 436.3 713.33 P -0.06 (ving) 537.78 713.33 P (or adding an attrib) 72 701.33 T (ute to the set. T) 145.4 701.33 T (o better support service pro) 206.54 701.33 T (viders that support case-insensiti) 315.81 701.33 T (v) 446.38 701.33 T (e attrib) 451.23 701.33 T (ute identi\336ers, an) 479.08 701.33 T 4 F (AttributeSet) 72 689.33 T 0 F ( may no) 144 689.33 T (w be made case-insensiti) 175.97 689.33 T (v) 275.42 689.33 T (e. This change in) 280.27 689.33 T (v) 348.19 689.33 T (olv) 352.99 689.33 T (ed adding a ne) 365.62 689.33 T (w constructor to) 423.41 689.33 T 4 F (Attribute-) 490.9 689.33 T (Set) 72 677.33 T 0 F ( and a ne) 90 677.33 T (w method for interrog) 125.57 677.33 T (ating an attrib) 213.56 677.33 T (ute set about its handling of case.) 268.91 677.33 T (public AttributeSet\050boolean caseIgnore\051;) 108 655.33 T 4 F (public boolean isCaseIgnored\050\051;) 108 637.33 T 0 F (\245) 54 619.33 T 4 F (Context.setEnvironment\050\051) 72 619.33 T 0 F ( w) 216 619.33 T (as insuf) 225.62 619.33 T (\336cient to allo) 256.2 619.33 T (w both addition and remo) 308.73 619.33 T (v) 411.35 619.33 T (al of en) 416.1 619.33 T (vironment properties. The) 445.69 619.33 T (change is to replace) 72 607.33 T 4 F (setEnvironment\050\051) 153.64 607.33 T 0 F ( with) 249.64 607.33 T 4 F (addToEnvironment\050\051) 272.42 607.33 T 0 F ( and) 380.42 607.33 T 4 F (removeFromEnvironment\050\051) 399.86 607.33 T 0 F (.) 537.86 607.33 T (public Properties addToEnvironment\050Properties additions\051 throws NamingException;) 108 585.33 T 4 F (public Properties removeFromEnvironment\050Properties deletions\051 throws) 108 567.33 T (NamingException;) 108 555.33 T 0 F (\245) 54 537.33 T -0.27 (Added) 72 537.33 P 4 F -0.65 (hasMore\050\051) 100.89 537.33 P 0 F -0.27 ( to) 154.89 537.33 P 4 F -0.65 (BindingEnumeration) 167.13 537.33 P 0 F -0.27 (,) 275.13 537.33 P 4 F -0.65 (NameClassEnumeration) 279.86 537.33 P 0 F -0.27 ( and) 399.86 537.33 P 4 F -0.65 (SearchEnumeration) 418.75 537.33 P 0 F -0.27 ( so that a) 520.75 537.33 P (service pro) 72 525.33 T (vider can thro) 116 525.33 T (w an e) 171.29 525.33 T (xception when this query f) 197.24 525.33 T (ails for some une) 303.79 525.33 T (xpected reason.) 372.24 525.33 T 4 F (Enumeration.has-) 436.94 525.33 T (MoreElements\050\051) 72 513.33 T 0 F ( cannot thro) 156 513.33 T (w e) 203.52 513.33 T (xceptions. The w) 217.53 513.33 T (orkaround is for) 286.03 513.33 T 4 F (hasMoreElements\050\051) 352.96 513.33 T 0 F ( to return) 454.96 513.33 T 4 F (true) 494.12 513.33 T 0 F ( and sa) 518.12 513.33 T (v) 545.69 513.33 T (e) 550.54 513.33 T -0.1 (the e) 72 501.33 P -0.1 (xception until the program calls) 90.91 501.33 P 4 F -0.24 (next\050\051) 220.12 501.33 P 0 F -0.1 (.) 256.12 501.33 P 4 F -0.24 (hasMore\050\051) 263.42 501.33 P 0 F -0.1 ( allo) 317.42 501.33 P -0.1 (ws a pro) 334.57 501.33 P -0.1 (vider to indicate to the caller that it has encoun-) 368.1 501.33 P (tered an e) 72 489.33 T (xception while determining whether there are more elements. The caller that w) 110.72 489.33 T (ants to be noti\336ed of e) 426.1 489.33 T (xceptions) 515.11 489.33 T (can use) 72 477.33 T 4 F (hasMore\050\051) 104.21 477.33 T 0 F ( instead of) 158.21 477.33 T 4 F (hasMoreElements\050\051) 202.37 477.33 T 0 F (.) 304.37 477.33 T (public boolean hasMore\050\051 throws NamingException;) 108 455.33 T (\245) 54 437.33 T (Added a ne) 72 437.33 T (w constructor to) 117.29 437.33 T 4 F (OperationNotSupportedException) 184.78 437.33 T 0 F ( that accepts an e) 364.78 437.33 T (xplanation message as ar) 432.94 437.33 T (gu-) 532.46 437.33 T (ment. This a) 72 425.33 T (v) 121.52 425.33 T (oids the pro) 126.32 425.33 T (vider ha) 173.39 425.33 T (ving to use the tw) 205.68 425.33 T (o steps of creating an empty) 276.69 425.33 T 4 F (OperationNotSupportedExcep-) 391.67 425.33 T (tion) 72 413.33 T 0 F ( and then setting the e) 96 413.33 T (xplanation.) 183.34 413.33 T (\245) 54 389.33 T (Added) 72 389.33 T 4 F (composeName\050\051) 101.16 389.33 T 0 F ( methods to) 179.16 389.33 T 4 F (Context) 228.33 389.33 T 0 F ( class. These may be used to k) 270.33 389.33 T (eep track of the full name of an object as) 391.32 389.33 T (name resolution proceeds from conte) 72 377.33 T (xt to conte) 220.15 377.33 T (xt.) 262.22 377.33 T (\245) 54 353.33 T (Remo) 72 353.33 T (v) 95.74 353.33 T (ed e) 100.59 353.33 T (xtraneous parameter in) 116.82 353.33 T 4 F (NamingException.getRootCause\050\051) 210.96 353.33 T 0 F (.) 390.96 353.33 T 3 F (SPI-r) 54 331.33 T (elated Changes) 77.15 331.33 T 0 F (\245) 54 316.33 T -0.33 (Clari\336ed ho) 72 316.33 P -0.33 (w URL conte) 118.92 316.33 P -0.33 (xt f) 171.99 316.33 P -0.33 (actories and conte) 185.17 316.33 P -0.33 (xts are located and created. Eliminated the \324) 256.56 316.33 P 4 F -0.79 (String url) 431.92 316.33 P 0 F -0.33 (\325 ar) 491.13 316.33 P -0.33 (gument from) 504.22 316.33 P 4 F (NamingManager.getURLContext\050\051) 72 304.33 T 0 F ( and clari\336ed its semantics.) 246 304.33 T 4 F -0.28 (getURLContext\050String scheme, Properties env\051) 72 292.33 P 0 F -0.12 ( no) 335.16 292.33 P -0.12 (w returns a conte) 347.29 292.33 P -0.12 (xt for resolving URLs with scheme) 415.38 292.33 P (id) 72 280.33 T 4 F (scheme) 82.28 280.33 T 0 F (. It is not tied to an) 118.28 280.33 T (y speci\336c URLs, only the scheme id. See) 193.41 280.33 T 3 F (JNDI SPI) 360.06 280.33 T 0 F ( document and) 401.45 280.33 T 4 F (NamingMan-) 462.83 280.33 T (ager.getURLContext\050\051) 72 268.33 T 0 F ( for details.) 192 268.33 T (\245) 54 244.33 T -0.31 (Clari\336ed ho) 72 244.33 P -0.31 (w) 118.94 244.33 P 4 F -0.75 (NamingManager.getObjectInstance\050\051) 128.35 244.33 P 0 F -0.31 ( treats URLs. F) 326.35 244.33 P -0.31 (ormerly) 386.37 244.33 P -0.31 (, it only treated) 417.38 244.33 P 4 F -0.75 (References) 479.18 244.33 P 0 F -0.31 ( and) 539.18 244.33 P 4 F -0.79 (Referenceables) 72 232.33 P 0 F -0.33 ( specially) 156 232.33 P -0.33 (. It no) 193.07 232.33 P -0.33 (w treats URLs specially as well. Y) 215.77 232.33 P -0.33 (ou can no) 351.29 232.33 P -0.33 (w call) 389.26 232.33 P 4 F -0.79 (getObjectInstance\050\051) 415.27 232.33 P 0 F -0.33 ( with a) 529.27 232.33 P (URL string or an array of URL strings and get back an object identi\336ed by the URL. See) 72 220.33 T 3 F (JNDI SPI) 429.45 220.33 T 0 F ( document and) 470.84 220.33 T 4 F (NamingManager.getObjectInstance\050\051) 72 208.33 T 0 F ( for details.) 270 208.33 T (\245) 54 184.33 T (Placed additional requirements on URL conte) 72 184.33 T (xt f) 254.88 184.33 T (actories on ho) 268.39 184.33 T (w to treat its ar) 324.24 184.33 T (guments so that all URL conte) 384.05 184.33 T (xt f) 505.84 184.33 T (actories) 519.35 184.33 T (beha) 72 172.33 T (v) 90.68 172.33 T (e consistently) 95.53 172.33 T (. See) 149.6 172.33 T 3 F (JNDI SPI) 171.54 172.33 T 0 F ( document and) 212.93 172.33 T 4 F (ObjectFactory.getObjectInstance\050\051) 274.31 172.33 T 0 F ( for details.) 472.31 172.33 T (\245) 54 148.33 T 4 F (NamingManager.getContinuationContext\050\051) 72 148.33 T 0 F ( and) 300 148.33 T 4 F (DirectoryManager.getContinuationDSCon-) 319.44 148.33 T (text\050\051) 72 136.33 T 0 F ( accept as an ar) 108 136.33 T (gument) 168.9 136.33 T 4 F (CannotProceedException) 201.4 136.33 T 0 F ( instead of a resolv) 333.4 136.33 T (ed object. This allo) 408.79 136.33 T (ws information) 485.2 136.33 T (required to create a continuation conte) 72 124.33 T (xt to be passed using one ar) 225.42 124.33 T (gument and accommodates a common programming) 335.78 124.33 T (scenario of service pro) 72 112.33 T (viders using) 162.65 112.33 T 4 F (CannotProceedException) 213.76 112.33 T 0 F ( to indicate the state of the operation.) 345.76 112.33 T (\245) 54 88.33 T (Added a \324remaining ne) 72 88.33 T (wname\325 part to) 163.67 88.33 T 4 F (CannotProceedException) 226.71 88.33 T 0 F ( so that information required to continue a) 358.71 88.33 T 4 F -0.82 (rename\050\051) 72 76.33 P 0 F -0.34 ( can be represented, and an en) 120 76.33 P -0.34 (vironment part for storing and retrie) 237.78 76.33 P -0.34 (ving the en) 379.97 76.33 P -0.34 (vironment to use when resolution) 423.33 76.33 P 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 (1/29/98) 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 (continues..) 72 713.33 T 3 F (System Pr) 54 691.33 T (operties) 97.42 691.33 T 0 F (\245) 54 676.33 T (T) 72 676.33 T (w) 77.31 676.33 T (o ne) 84.43 676.33 T (w system properties are introduced.) 101.12 676.33 T 0 12 Q (\245) 115 657 T 4 10 Q -1.1 (jndi.urlfactory.pkgs) 126 657 P 0 12 Q -0.55 (: Specifies package prefixes to use when loading URL context) 246 657 P (factories. See) 126 643 T 4 10 Q (NamingManager.getURLContext\050\051) 193.64 643 T 0 12 Q (.) 367.64 643 T (\245) 115 623 T 4 10 Q 4.54 (jndi.dns.url) 126 623 P 0 12 Q 2.27 (: Specifies DNS service location when using DNS names in \322jndi\323) 198 623 P (URLs \050e.g \322) 126 609 T 4 10 Q (jndi://dnsname/...) 184.32 609 T 0 12 Q (\323\051.) 292.32 609 T 0 10 Q (These can also be passed as en) 72 590.33 T (vironment properties to the) 194.34 590.33 T 4 F (InitialContext) 305.44 590.33 T 0 F ( constructor) 389.44 590.33 T (.) 436.38 590.33 T 3 F (En) 54 568.33 T (vir) 65.83 568.33 T (onment Pr) 77.87 568.33 T (operties) 122.96 568.33 T 0 F (\245) 54 553.33 T 4 F -0.42 (jndi.service.host) 72 553.33 P 0 F -0.17 ( and) 174 553.33 P 4 F -0.42 (jndi.service.port) 193.09 553.33 P 0 F -0.17 ( ha) 295.09 553.33 P -0.17 (v) 306.66 553.33 P -0.17 (e been replaced by the more general) 311.51 553.33 P 4 F -0.42 (jndi.service.url) 457.17 553.33 P 0 F -0.17 (.) 553.17 553.33 P 4 F (jndi.service.url) 72 541.33 T 0 F ( speci\336es the location information for con\336guring a conte) 168 541.33 T (xt.) 397.82 541.33 T (Conte) 72 529.33 T (xt service pro) 95.74 529.33 T (vider are encouraged to use this ne) 150.02 529.33 T (w en) 288.62 529.33 T (vironment property) 307.38 529.33 T (. The) 384.22 529.33 T (y are still free to use additional en) 404.62 529.33 T (vi-) 540.03 529.33 T (ronment properties as needed for their pro) 72 517.33 T (vider) 240.14 517.33 T (.) 260.14 517.33 T (\245) 54 505.33 T (Added) 72 505.33 T 4 F (jndi.service.followReferrals) 101.16 505.33 T 0 F (: Speci\336es that referrals encountered by the service pro) 269.16 505.33 T (vider are to be) 488.95 505.33 T (follo) 72 493.33 T (wed automatically) 90.64 493.33 T (.) 163.59 493.33 T 54 453.99 558 464 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 453.99 558 464 R 7 X 0 0 0 1 0 0 0 K V 56 462.02 176 462.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.0Early Access: JNDI Changes Since Initial Documentation Release) 54 468 T 3 10 Q (General Changes) 54 434.33 T 0 F (\245) 54 419.33 T (Renamed packages) 72 419.33 T 4 F (jndi.ns -> java.naming) 108 407.33 T (jndi.ds -> java.naming.directory) 108 389.33 T (jndi.spi -> java.naming.spi) 108 371.33 T 0 F (\245) 54 353.33 T (Added implements) 72 353.33 T 4 F (java.io.Serializable) 150.33 353.33 T 0 F ( to the follo) 270.33 353.33 T (wing classes and interf) 316.47 353.33 T (aces:) 407.74 353.33 T 4 F (Name) 140.4 341.33 T (NameClassPair) 140.4 329.33 T (RefAddr) 140.4 317.33 T (Reference) 140.4 305.33 T (Attribute) 140.4 293.33 T (AttributeSet) 140.4 281.33 T (ModificationItem) 140.4 269.33 T (ModificationEnumeration) 140.4 257.33 T (SearchConstraints) 140.4 245.33 T 0 F (\245) 54 233.33 T (Renamed the \322count\323 methods to be more descripti) 72 233.33 T (v) 276.44 233.33 T (e.) 281.29 233.33 T 4 F (Reference.count\050\051 -> Reference.getAddressCount\050\051) 140.4 221.33 T (Name.count\050\051 -> Name.getComponentCount\050\051) 140.4 209.33 T ([same for CompoundName and CompositeName]) 165.6 197.33 T (Attribute.count\050\051 -> Attribute.getValueCount\050\051) 140.4 185.33 T (AttributeSet.count\050\051 -> AttributeSet.getAttributeCount\050\051) 140.4 173.33 T (ModificationEnumeration.count\050\051 ->) 140.4 161.33 T (ModificationEnumeration.getModificationItemCount\050\051) 165.6 149.33 T 0 F (\245) 54 137.33 T -0.14 (Renamed methods with \324) 72 137.33 P 4 F -0.35 (SubContext) 171.84 137.33 P 0 F -0.14 (\325 to \324) 231.84 137.33 P 4 F -0.35 (Subcontext) 250.99 137.33 P 0 F -0.14 (\325. The ne) 310.99 137.33 P -0.14 (w method names are no) 346.27 137.33 P -0.14 (w) 440.42 137.33 P 4 F -0.35 (Context.createSub-) 450 137.33 P (context\050\051) 72 125.33 T 0 F (,) 126 125.33 T 4 F (Context.destroySubcontext\050\051) 131 125.33 T 0 F (, and) 293 125.33 T 4 F (DSContext.createSubcontext\050\051) 314.94 125.33 T 0 F (.) 482.94 125.33 T 3 F (Name-r) 54 103.33 T (elated Changes) 86.58 103.33 T 0 F (\245) 54 88.33 T 4 F -0.38 (NameParser) 72 88.33 P 0 F -0.16 ( is no) 132 88.33 P -0.16 (w an interf) 153.1 88.33 P -0.16 (ace instead of abstract class. None of its methods contain an) 196.01 88.33 P -0.16 (y implementation so it is more) 434.5 88.33 P (\337e) 72 76.33 T (xible for it to be an interf) 81.85 76.33 T (ace. Remo) 182.29 76.33 T (v) 224.35 76.33 T (ed the) 229.2 76.33 T 4 F (getNamingConvention\050\051) 255.86 76.33 T 0 F ( method from) 381.86 76.33 T 4 F (NameParser) 438.8 76.33 T 0 F (.) 498.25 76.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 (1/29/98) 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 class hierarch) 72 713.33 T (y to) 155.81 713.33 T 4 F (NamingException) 173.59 713.33 T 0 F ( for security-related e) 263.59 713.33 T (xceptions.) 349.24 713.33 T 4 F (NamingException) 108 701.33 T (NamingSecurityException) 145 683.33 T (NoPermissionException) 182 665.33 T (AuthenticationException) 182 647.33 T (AuthenticationNotSupportedException) 182 629.33 T 0 F (\245) 54 611.33 T (Added) 72 611.33 T 4 F (throws IllegalNameException) 101.16 611.33 T 0 F ( to name-manipulation methods so that the) 263.16 611.33 T (y ha) 433.56 611.33 T (v) 450.3 611.33 T (e a w) 455.15 611.33 T (ay of indicating) 476.15 611.33 T (error) 72 599.33 T (. This applies to the) 90.88 599.33 T 4 F (Name) 171.99 599.33 T 0 F ( interf) 195.99 599.33 T (ace, the) 220.05 599.33 T 4 F (CompositeName) 253.09 599.33 T 0 F ( and) 331.09 599.33 T 4 F (CompoundName) 350.53 599.33 T 0 F ( classes.) 422.53 599.33 T 4 F (prependName\050\051) 140.4 587.33 T (appendName\050\051) 140.4 575.33 T (insertName\050\051) 140.4 563.33 T (prependComponent\050\051) 140.4 551.33 T (appendComponent\050\051) 140.4 539.33 T (insertComponent\050\051) 140.4 527.33 T (deleteComponent\050\051) 140.4 515.33 T 0 F (\245) 54 491.33 T (The follo) 72 491.33 T (wing constructors thro) 108.69 491.33 T (w) 198.43 491.33 T 4 F (IllegalNameException) 208.15 491.33 T 0 F ( instead of) 328.15 491.33 T 4 F (NamingException) 372.31 491.33 T (CompositeName\050\051) 140.4 479.33 T (CompoundName\050\051) 140.4 467.33 T 3 F (DSContext-r) 54 445.33 T (elated Changes:) 108.25 445.33 T 0 F (\245) 54 430.33 T (Dropped \324) 72 430.33 T 4 F (WithAttributes) 112.82 430.33 T 0 F (\325 suf) 196.82 430.33 T (\336x from) 214.62 430.33 T 4 F (bindWithAttributes\050\051, rebindWithAttributes\050\051,) 249.62 430.33 T 0 F (and) 525.62 430.33 T 4 F (createSubContextWithAttributes\050\051) 72 418.33 T 0 F (. The) 264 418.33 T (y are no) 284.4 418.33 T (w simply) 316.36 418.33 T 4 F (DSContext.bind\050\051, DSCon-) 355.81 418.33 T (text.rebind\050\051,) 72 406.33 T 0 F (and) 162 406.33 T 4 F (DSContext.createSubcontext\050\051,) 178.94 406.33 T 0 F (respecti) 358.94 406.33 T (v) 389.79 406.33 T (ely) 394.64 406.33 T (.) 406.21 406.33 T (\245) 54 394.33 T (Remo) 72 394.33 T (v) 95.74 394.33 T (ed) 100.59 394.33 T 4 F (DSContext.SearchFilter) 112.53 394.33 T 0 F ( class and replaced tw) 244.53 394.33 T (o e) 332.18 394.33 T (xisting) 343.97 394.33 T 4 F (DSContext.Search\050\051) 373.7 394.33 T 0 F ( methods:) 481.7 394.33 T 4 F (public SearchEnumeration search\050String name, String filterExpr,) 108 382.33 T (Object[] filterArgs, SearchConstraints constraints\051;) 145 364.33 T (public SearchEnumeration search\050Name name, String filterExpr,) 108 346.33 T (Object[] filterArgs, SearchConstraints constraints\051;) 145 328.33 T 0 12 Q -0.31 (where) 108 291 P 4 10 Q -0.61 (filterExpr) 140.01 291 P 0 12 Q -0.31 ( contains \324) 200.01 291 P 4 10 Q -0.61 ({n}) 249.39 291 P 0 12 Q -0.31 (\325,) 267.39 291 P 4 10 Q -0.61 (n) 277.08 291 P 0 12 Q -0.31 ( is an integer and denotes the n\325th element in) 283.08 291 P 4 10 Q -0.61 (filterArgs) 498 291 P 0 12 Q 0.69 (to substitute in the expression. The reason for this change is that) 108 277 P 4 10 Q 1.38 (SearchFilter) 427.28 277 P 0 12 Q 0.69 ( had limited) 499.28 277 P 0.15 (capabilities and a full class for it was not justified. These changes make the syntax for substi-) 108 263 P -0.19 (tution of variables within an expression consistent with the formatting methods in) 108 249 P 4 10 Q -0.39 (java.text) 501 249 P 0 12 Q -0.19 (.) 555 249 P 0 10 Q (\245) 54 230.33 T (Renamed) 72 230.33 T 4 F (AttributeSet.modify\050\051) 112.27 230.33 T 0 F ( to) 238.27 230.33 T 4 F (AttributeSet.replace\050\051) 251.05 230.33 T 0 F ( for consistent usage of \324replace\325 with) 383.05 230.33 T 4 F (Attribute.replaceValue\050\051) 72 218.33 T 0 F ( and) 216 218.33 T 4 F (DSContext.REPLACE_ATTRIBUTE) 235.44 218.33 T 0 F (.) 397.44 218.33 T (\245) 54 206.33 T (Changes to) 72 206.33 T 4 F (Attribute) 119.22 206.33 T 0 F ( class:) 173.22 206.33 T 0 12 Q (\245) 115 187 T 1.15 (Added) 126 187 P 4 10 Q 2.31 (Attribute.contains\050\051) 162.15 187 P 0 12 Q 1.15 ( for testing whether an attribute contains a specified) 282.15 187 P (value.) 126 173 T (\245) 115 153 T 4 10 Q 3.91 (Attribute.add\050\051) 126 153 P 0 12 Q 1.96 ( throws) 216 153 P 4 10 Q 3.91 (AttributeInUseException) 258.58 153 P 0 12 Q 1.96 ( instead of the more general) 396.58 153 P 4 10 Q (NamingException) 126 139 T 0 12 Q (.) 216 139 T (\245) 115 119 T 1.71 (Schema methods return) 126 119 P 4 10 Q 3.41 (null) 247.43 119 P 0 12 Q 1.71 ( by default. Removed protected variables) 271.43 119 P 4 10 Q 3.41 (syntax) 481.96 119 P 0 12 Q 1.71 ( and) 517.97 119 P 4 10 Q (attr_defn) 126 105 T 0 12 Q (.) 180 105 T 0 10 Q (\245) 54 86.33 T (Added) 72 86.33 T 4 F (InvalidAttributeSetException) 101.16 86.33 T 0 F ( to deal with the case of incorrectly or insuf) 269.16 86.33 T (\336ciently speci\336ed attrib) 443.04 86.33 T (ute) 537.28 86.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 (1/29/98) 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 (sets.) 72 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 (Renamed some class and interf) 72 676.33 T (ace names in) 196.32 676.33 T 4 F (java.naming.spi) 250.47 676.33 T 0 F ( for consistenc) 340.47 676.33 T (y) 398.64 676.33 T 4 F (InitialContextImpl -> InitialContextFactory) 108 664.33 T (InitialContextImplFactory -> InitialContextFactoryBuilder) 108 646.33 T (setInitialContextImplFactory\050\051 -> setInitialContextFactoryBuilder\050\051) 108 628.33 T (hasInitialContextImplFactory\050\051 -> hasInitialContextFactoryBuilder\050\051) 108 610.33 T (InitialContextImplFactory.createInitialContextImpl\050\051 ->) 108 592.33 T (InitialContextFactoryBuilder.createInitialContextFactory\050\051) 182 574.33 T (JNDIManager -> NamingManager) 108 556.33 T (JNDIDSManager -> DirectoryManager) 108 538.33 T 0 F (\245) 54 520.33 T (Renamed) 72 520.33 T 4 F (createObject\050\051) 112.27 520.33 T 0 F ( to) 196.27 520.33 T 4 F (getObjectInstance\050\051) 209.05 520.33 T 0 F ( so that it is consistent with similar usage in other Ja) 323.05 520.33 T (v) 531.46 520.33 T (a) 536.21 520.33 T (packages.) 72 508.33 T 4 F (JNDIManager.createObject\050\051 -> NamingManager.getObjectInstance\050\051) 108 496.33 T (ObjectFactory.createObject\050\051 -> ObjectFactory.getObjectInstance\050\051.) 108 478.33 T 0 F (\245) 54 460.33 T (Renamed property) 72 460.33 T 4 F ( jndi.initialContext) 146.15 460.33 T 0 F ( to) 266.15 460.33 T 4 F (jndi.initialContextFactory) 278.93 460.33 T 0 F ( for consistenc) 434.93 460.33 T (y with method) 493.1 460.33 T (names.) 72 448.33 T (\245) 54 436.33 T (The) 72 436.33 T 4 F (jndi.initialContextFactory) 90.05 436.33 T 0 F ( property no) 246.05 436.33 T (w contains a single class name instead of a colon-separated list) 294.68 436.33 T (because it does not mak) 72 424.33 T (e sense to ha) 167.44 424.33 T (v) 218.06 424.33 T (e more than one class.) 222.91 424.33 T (\245) 54 412.33 T -0.06 (T) 72 412.33 P -0.06 (o pro) 77.31 412.33 P -0.06 (vide more \337e) 97.93 412.33 P -0.06 (xibility and to a) 150.42 412.33 P -0.06 (v) 213.09 412.33 P -0.06 (oid) 217.89 412.33 P 4 F -0.15 (SecurityManager) 233.11 412.33 P 0 F -0.06 (-related problems in some con\336gurations, the system prop-) 322.91 412.33 P -0.05 (erties) 72 400.33 P 4 F -0.13 (jndi.initialContextFactory) 96.11 400.33 P 0 F -0.05 ( and) 252.1 400.33 P 4 F -0.13 (jndi.objectFactories) 271.43 400.33 P 0 F -0.05 ( can be passed as part of the en) 391.43 400.33 P -0.05 (vironment) 514.45 400.33 P (properties passed to the constructors for) 72 388.33 T 4 F (InitialContext) 234.19 388.33 T 0 F ( and) 318.19 388.33 T 4 F (InitialDSContext) 337.63 388.33 T 0 F (, and) 433.63 388.33 T 4 F (ObjectFac-) 455.57 388.33 T (tory.getObjectInstance\050\051) 72 376.33 T 0 F (.) 216 376.33 T (\245) 54 364.33 T (Some protected methods in) 72 364.33 T 4 F (NamingManager) 183.66 364.33 T 0 F ( and) 261.66 364.33 T 4 F (DirectoryManager) 281.1 364.33 T 0 F ( are no) 377.1 364.33 T (w pri) 404.06 364.33 T (v) 424.64 364.33 T (ate. This pro) 429.39 364.33 T (vides more \337e) 479.51 364.33 T (xibil-) 536.02 364.33 T (ity in subsequent changes to these classes without e) 72 352.33 T (xposing details of the implementation) 277.94 352.33 T 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 .