%!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 23 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 /Helvetica-Bold FMFONTDEFINE 6 0 /Helvetica FMFONTDEFINE 7 0 /Courier-Bold 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 application programming interface \050JNDI API\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 108 612 357.98 639 R V 1 24 Q 0 X (JavaSoft) 108 623 T 108 549 558 603 R 7 X V 0 X (JNDI: Java) 109.39 587 T 2 F (\324) 220.68 587 T 1 F ( Naming and Directory Interface) 242.04 587 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 108 612 558 612 2 L 7 X V 0.5 H 0 X N 54 549 558 549 2 L 7 X V 1 H 0 X N 0 0 0 1 0 0 0 K 134.55 698.71 M 133.92 698.65 E 133.29 698.48 E 132.66 698.2 E 132.03 697.84 E 131.42 697.41 E 130.81 696.93 E 129.67 695.8 E 128.62 694.61 E 127.71 693.43 E 126.39 691.55 E 126.36 691.46 E 126.32 691.46 E 126.33 691.59 E 127.19 694.61 E 127.5 695.92 E 127.58 696.53 E 127.61 697.08 E 127.59 697.4 E 127.53 697.72 E 127.42 698.01 E 127.26 698.27 E 127.06 698.49 E 126.79 698.66 E 126.47 698.77 E 126.08 698.81 E 125.62 698.77 E 125.16 698.61 E 124.67 698.38 E 124.18 698.07 E 123.69 697.7 E 123.21 697.28 E 122.29 696.35 E 121.49 695.36 E 120.86 694.41 E 120.43 693.6 E 120.31 693.27 E 120.28 693.02 E 120.33 692.71 E 120.42 692.63 E 120.52 692.6 E 120.68 692.64 E 120.83 692.74 E 121.14 693.1 E 121.91 694.22 E 122.54 694.99 E 123.17 695.71 E 123.47 696.01 E 123.77 696.24 E 124.04 696.4 E 124.27 696.45 E 124.35 696.43 E 124.42 696.38 E 124.46 696.25 E 124.48 696.03 E 124.36 695.2 E 124 693.84 E 122.83 690.13 E 121.44 685.94 E 120.25 682.25 E 120.23 681.98 E 120.3 681.88 E 120.43 681.8 E 120.9 681.73 E 121.7 681.7 E 122.32 681.69 E 122.57 681.69 E 122.77 681.72 E 122.94 681.79 E 123.08 681.89 E 123.19 682.06 E 123.26 682.29 E 123.96 684.39 E 124.84 686.55 E 125.88 688.7 E 127.01 690.75 E 127.62 691.73 E 128.35 692.77 E 129.15 693.79 E 130 694.75 E 130.88 695.6 E 131.71 696.27 E 132.12 696.52 E 132.51 696.71 E 132.87 696.83 E 133.2 696.87 E 133.46 696.82 E 133.57 696.76 E 133.66 696.66 E 133.79 696.4 E 133.83 696.01 E 133.78 695.61 E 133.64 695.07 E 133.13 693.65 E 131.62 689.94 E 130.82 687.91 E 130.13 685.96 E 129.67 684.22 E 129.54 683.47 E 129.52 682.81 E 129.6 682.19 E 129.71 681.92 E 129.85 681.69 E 130.05 681.51 E 130.31 681.37 E 130.62 681.28 E 131.01 681.24 E 131.51 681.28 E 131.99 681.41 E 132.46 681.6 E 132.92 681.85 E 133.37 682.16 E 133.81 682.51 E 134.62 683.33 E 135.37 684.24 E 136.03 685.17 E 136.6 686.08 E 137.05 686.88 E 137.2 687.12 E 137.32 687.37 E 137.37 687.51 E 137.37 687.64 E 137.34 687.77 E 137.26 687.91 E 137.21 688.01 E 137.11 688.08 E 136.88 688.12 E 136.73 688.06 E 136.61 687.91 E 135.92 686.73 E 135.49 686.05 E 135.04 685.37 E 134.56 684.76 E 134.09 684.25 E 133.86 684.05 E 133.63 683.9 E 133.42 683.79 E 133.2 683.75 E 133.07 683.79 E 132.96 683.87 E 132.89 684.13 E 133.06 684.9 E 133.49 686.16 E 134.84 689.61 E 135.55 691.51 E 136.17 693.34 E 136.62 694.95 E 136.74 695.63 E 136.78 696.21 E 136.74 696.84 E 136.68 697.13 E 136.61 697.38 E 136.4 697.81 E 136.12 698.15 E 135.8 698.4 E 135.42 698.57 E 135 698.68 E 134.55 698.71 E O V 102.76 692.64 M 102.79 692.5 E 102.86 692.39 E 102.97 692.31 E 103.12 692.28 E 103.28 692.32 E 103.43 692.45 E 103.77 692.92 E 104.23 693.68 E 104.92 694.68 E 105.41 695.34 E 105.91 695.86 E 106.38 696.22 E 106.59 696.32 E 106.76 696.35 E 106.95 696.31 E 107.05 696.2 E 107.09 696.05 E 107.1 695.9 E 107.07 695.62 E 106.93 695.2 E 106.49 693.94 E 105.12 690.41 E 104.4 688.42 E 103.76 686.47 E 103.32 684.7 E 103.19 683.93 E 103.14 683.26 E 103.16 682.89 E 103.23 682.53 E 103.34 682.2 E 103.52 681.89 E 103.74 681.64 E 104.04 681.45 E 104.41 681.33 E 104.85 681.28 E 105.43 681.33 E 106.01 681.45 E 106.59 681.66 E 107.17 681.94 E 107.75 682.29 E 108.33 682.69 E 108.9 683.15 E 109.46 683.64 E 110.58 684.77 E 111.63 686 E 112.64 687.3 E 113.57 688.61 E 113.69 688.68 E 113.72 688.64 E 113.71 688.54 E 113.33 687.27 E 112.94 685.74 E 112.64 684.16 E 112.53 682.74 E 112.57 682.21 E 112.63 681.96 E 112.74 681.72 E 112.9 681.52 E 113.12 681.36 E 113.4 681.25 E 113.78 681.21 E 114.3 681.27 E 114.82 681.44 E 115.36 681.72 E 115.9 682.07 E 116.42 682.49 E 116.93 682.97 E 117.43 683.49 E 117.9 684.03 E 118.73 685.16 E 119.1 685.71 E 119.4 686.23 E 119.65 686.72 E 119.84 687.14 E 119.95 687.51 E 119.99 687.78 E 119.92 688.06 E 119.83 688.15 E 119.68 688.19 E 119.54 688.16 E 119.41 688.08 E 119.19 687.75 E 118.96 687.29 E 118.68 686.73 E 117.97 685.7 E 117.18 684.71 E 116.8 684.3 E 116.43 683.97 E 116.11 683.76 E 115.96 683.7 E 115.82 683.68 E 115.69 683.73 E 115.61 683.84 E 115.58 684.17 E 115.76 685.25 E 116.25 687 E 116.93 689.18 E 117.71 691.53 E 119.16 695.8 E 119.82 697.84 E 119.81 698.03 E 119.75 698.16 E 119.62 698.26 E 119.37 698.29 E 118.01 698.33 E 117.33 698.3 E 116.96 698.21 E 116.78 698.1 E 116.7 697.95 E 116.22 696.75 E 115.58 694.91 E 115.19 693.84 E 114.74 692.71 E 114.22 691.56 E 113.63 690.41 E 112.76 688.99 E 111.83 687.67 E 110.89 686.48 E 109.97 685.44 E 109.09 684.59 E 108.68 684.24 E 108.29 683.95 E 107.93 683.72 E 107.6 683.55 E 107.3 683.44 E 107.04 683.4 E 106.73 683.47 E 106.5 683.64 E 106.35 683.92 E 106.3 684.27 E 106.35 684.68 E 106.49 685.24 E 106.96 686.72 E 108.41 690.56 E 109.19 692.6 E 109.85 694.49 E 110.33 696.07 E 110.46 696.7 E 110.51 697.18 E 110.45 697.64 E 110.36 697.9 E 110.22 698.16 E 110.02 698.39 E 109.75 698.57 E 109.6 698.65 E 109.41 698.7 E 108.98 698.75 E 108.36 698.69 E 107.75 698.51 E 107.16 698.24 E 106.59 697.88 E 106.05 697.46 E 105.53 696.98 E 105.06 696.46 E 104.61 695.92 E 103.85 694.84 E 103.26 693.85 E 102.9 693.08 E 102.76 692.64 E O V 92.28 699.09 M 92.33 698.13 E 92.5 697.22 E 92.79 696.38 E 93.15 695.56 E 93.59 694.79 E 94.08 694.04 E 95.16 692.61 E 96.24 691.22 E 96.73 690.51 E 97.17 689.79 E 97.54 689.06 E 97.82 688.29 E 97.99 687.48 E 98.03 686.63 E 98.02 686.37 E 97.99 686.07 E 97.93 685.74 E 97.83 685.37 E 97.71 684.99 E 97.55 684.61 E 97.36 684.23 E 97.12 683.85 E 96.85 683.49 E 96.54 683.16 E 96.19 682.85 E 95.78 682.59 E 95.34 682.37 E 94.84 682.21 E 94.28 682.11 E 93.67 682.08 E 93.04 682.15 E 92.73 682.22 E 92.43 682.33 E 92.14 682.47 E 91.87 682.63 E 91.61 682.82 E 91.36 683.05 E 91.14 683.32 E 90.95 683.62 E 90.78 683.96 E 90.63 684.33 E 90.51 684.75 E 90.43 685.19 E 90.38 685.69 E 90.36 686.21 E 90.36 688.3 E 90.32 688.58 E 90.19 688.86 E 89.97 688.97 E 89.84 688.99 E 89.71 688.96 E 89.52 688.8 E 89.38 688.6 E 89.18 688.16 E 88.63 685.41 E 88.62 685.37 E 88.64 685.35 E 88.66 685.35 E 88.63 685.35 E 88.45 684.34 E 88.36 683.33 E 88.36 683.18 E 88.38 683.03 E 88.51 682.77 E 88.7 682.54 E 88.94 682.36 E 89.45 682.11 E 89.97 681.88 E 90.53 681.68 E 91.11 681.5 E 91.71 681.36 E 92.34 681.25 E 93 681.18 E 93.67 681.14 E 94.48 681.18 E 95.28 681.3 E 96.04 681.5 E 96.78 681.77 E 97.48 682.11 E 98.15 682.51 E 98.77 682.97 E 99.34 683.48 E 99.86 684.04 E 100.33 684.63 E 100.74 685.26 E 101.08 685.91 E 101.36 686.58 E 101.57 687.28 E 101.7 687.98 E 101.75 688.68 E 101.74 689.23 E 101.68 689.75 E 101.59 690.26 E 101.47 690.73 E 101.32 691.19 E 101.14 691.63 E 100.93 692.05 E 100.69 692.46 E 100.17 693.27 E 99.56 694.06 E 98.21 695.69 E 97.38 696.66 E 96.92 697.21 E 96.46 697.8 E 96.06 698.45 E 95.74 699.14 E 95.54 699.88 E 95.47 700.66 E 95.49 700.99 E 95.54 701.32 E 95.63 701.64 E 95.74 701.96 E 95.88 702.29 E 96.06 702.58 E 96.27 702.88 E 96.51 703.14 E 96.79 703.4 E 97.08 703.63 E 97.42 703.83 E 97.77 703.99 E 98.16 704.13 E 98.58 704.23 E 99.02 704.29 E 99.49 704.3 E 99.81 704.29 E 100.11 704.25 E 100.63 704.11 E 100.86 704.03 E 101.07 703.91 E 101.43 703.66 E 101.74 703.34 E 101.97 702.99 E 102.15 702.6 E 102.29 702.17 E 102.39 701.73 E 102.46 701.29 E 102.51 700.38 E 102.52 698.81 E 102.54 698.57 E 102.57 698.47 E 102.65 698.39 E 102.9 698.27 E 103.17 698.29 E 103.31 698.43 E 103.38 698.57 E 104.25 701.84 E 104.51 702.73 E 104.62 703.21 E 104.67 703.71 E 104.64 703.85 E 104.57 703.97 E 104.35 704.2 E 103.7 704.53 E 103.1 704.78 E 102.53 704.98 E 101.97 705.12 E 101.44 705.23 E 100.89 705.29 E 99.7 705.34 E 98.92 705.32 E 98.16 705.23 E 97.43 705.08 E 96.74 704.86 E 96.09 704.59 E 95.48 704.27 E 94.91 703.89 E 94.39 703.47 E 93.92 703.01 E 93.5 702.52 E 93.15 702.01 E 92.85 701.46 E 92.61 700.89 E 92.43 700.31 E 92.32 699.7 E 92.28 699.09 E O V 60.67 691.17 60.27 690.85 59.82 690.61 59.36 690.47 58.86 690.42 58.38 690.47 57.9 690.61 57.45 690.85 57.04 691.17 56.72 691.58 56.48 692.03 56.34 692.5 56.29 692.99 56.34 693.48 56.48 693.95 56.72 694.4 57.04 694.8 62.98 700.73 64.57 699.15 58.6 693.17 59.04 692.72 65.02 698.7 66.61 697.11 60.67 691.17 60.67 691.17 25 Y V 65.29 694.86 65.7 695.2 66.15 695.42 66.39 695.51 66.63 695.57 66.88 695.6 67.11 695.61 67.61 695.57 68.07 695.42 68.3 695.33 68.52 695.2 68.92 694.86 69.25 694.46 69.48 694.02 69.62 693.55 69.67 693.05 69.62 692.57 69.48 692.09 69.25 691.65 68.92 691.24 62.98 685.31 61.39 686.9 67.37 692.86 66.92 693.31 60.94 687.34 59.36 688.93 65.29 694.86 65.29 694.86 28 Y V 72.99 682.56 73.32 682.16 73.56 681.71 73.7 681.24 73.75 680.75 73.7 680.26 73.56 679.79 73.32 679.34 72.99 678.93 72.58 678.61 72.14 678.37 71.67 678.23 71.18 678.18 70.69 678.23 70.21 678.37 69.77 678.61 69.36 678.93 63.43 684.87 65.02 686.45 71 680.47 71.44 680.93 65.47 686.91 67.06 688.5 72.99 682.56 72.99 682.56 25 Y V 69.3 687.17 68.98 687.58 68.74 688.03 68.6 688.51 68.55 688.99 68.6 689.49 68.74 689.95 68.98 690.39 69.3 690.79 69.71 691.12 70.16 691.35 70.4 691.44 70.63 691.49 70.88 691.53 71.12 691.54 71.61 691.49 72.08 691.35 72.31 691.26 72.53 691.12 72.93 690.79 78.86 684.87 77.28 683.28 71.29 689.26 70.84 688.81 76.82 682.83 75.23 681.24 69.3 687.17 69.3 687.17 28 Y V 77 691.17 76.6 690.85 76.15 690.61 75.68 690.47 75.18 690.42 74.7 690.47 74.22 690.61 73.78 690.85 73.38 691.17 73.05 691.58 72.81 692.03 72.67 692.5 72.62 692.99 72.67 693.48 72.81 693.95 73.05 694.4 73.38 694.8 79.3 700.73 80.89 699.15 74.92 693.17 75.36 692.72 81.34 698.7 82.93 697.11 77 691.17 77 691.17 25 Y V 81.62 694.86 82.03 695.2 82.47 695.42 82.71 695.51 82.95 695.57 83.2 695.6 83.43 695.61 83.93 695.57 84.4 695.42 84.62 695.33 84.84 695.2 85.24 694.86 85.58 694.46 85.8 694.02 85.95 693.55 86 693.05 85.95 692.57 85.8 692.09 85.58 691.65 85.24 691.24 79.3 685.32 77.72 686.9 83.7 692.86 83.24 693.31 77.27 687.34 75.69 688.93 81.62 694.86 81.62 694.86 28 Y V 72.99 698.87 73.32 698.47 73.56 698.02 73.7 697.56 73.75 697.06 73.7 696.58 73.56 696.1 73.32 695.65 72.99 695.24 72.58 694.92 72.14 694.68 71.67 694.54 71.18 694.49 70.69 694.54 70.21 694.68 69.77 694.92 69.36 695.24 63.43 701.18 65.02 702.77 71 696.79 71.44 697.24 65.47 703.22 67.06 704.81 72.99 698.87 72.99 698.87 25 Y V 69.3 703.49 68.98 703.9 68.74 704.34 68.6 704.82 68.55 705.3 68.6 705.8 68.74 706.26 68.98 706.71 69.3 707.11 69.71 707.44 70.16 707.67 70.4 707.76 70.63 707.82 70.88 707.85 71.12 707.86 71.61 707.82 72.08 707.67 72.31 707.58 72.53 707.44 72.93 707.11 78.86 701.18 77.28 699.59 71.29 705.57 70.84 705.12 76.82 699.15 75.23 697.56 69.3 703.49 69.3 703.49 28 Y V 94.41 674.32 94.41 676.62 94.38 676.95 94.29 677.21 94.11 677.37 93.81 677.43 93.62 677.41 93.43 677.33 93.25 677.22 93.09 677.06 92.97 676.86 92.87 676.62 92.8 676.34 92.77 676.03 92.77 674.32 92.11 674.32 92.11 676.62 92.1 676.93 92 677.19 91.82 677.37 91.51 677.43 91.31 677.4 91.11 677.32 90.93 677.2 90.78 677.04 90.66 676.83 90.56 676.59 90.5 676.32 90.48 676.03 90.48 674.32 89.81 674.32 89.81 677.9 90.46 677.9 90.4 677.15 90.41 677.14 90.62 677.48 90.92 677.74 91.28 677.91 91.69 677.97 92.18 677.88 92.49 677.67 92.66 677.41 92.71 677.16 92.89 677.43 93.14 677.69 93.5 677.89 93.98 677.97 94.45 677.9 94.64 677.82 94.79 677.68 94.91 677.52 95.01 677.32 95.08 676.8 95.08 674.32 94.41 674.32 55 Y V 100.12 674.27 99.79 674.29 99.49 674.35 99.22 674.47 98.98 674.63 98.78 674.87 98.62 675.16 98.54 675.54 98.5 675.99 98.53 676.41 98.61 676.79 98.76 677.12 98.96 677.41 99.22 677.65 99.54 677.82 99.92 677.92 100.35 677.96 100.78 677.93 101.18 677.85 101.11 677.28 100.74 677.38 100.32 677.43 99.83 677.33 99.64 677.22 99.48 677.06 99.27 676.64 99.2 676.08 99.25 675.58 99.42 675.18 99.57 675.04 99.75 674.91 99.99 674.85 100.26 674.82 100.73 674.87 101.14 675.01 101.19 674.45 100.73 674.33 100.44 674.29 100.12 674.27 39 Y V 104.02 677.33 103.75 677.35 103.52 677.3 103.32 677.19 103.15 677.02 103.03 676.79 102.94 676.5 102.87 675.75 102.87 674.32 102.2 674.32 102.2 677.9 102.85 677.9 102.83 677.5 102.76 677.05 102.78 677.05 102.94 677.42 103.2 677.72 103.56 677.93 103.79 677.97 104.05 677.96 104.02 677.33 21 Y V 106.36 674.8 106.36 674.25 106.68 674.29 107.04 674.4 107.35 674.57 107.61 674.8 107.82 675.09 107.97 675.42 108.07 675.78 108.1 676.17 108.07 676.62 107.98 677 107.83 677.3 107.63 677.55 107.38 677.74 107.09 677.86 106.78 677.94 106.44 677.96 106.36 677.95 106.36 677.42 106.38 677.43 106.62 677.41 106.83 677.34 107.01 677.24 107.15 677.09 107.26 676.9 107.33 676.68 107.4 676.13 107.38 675.81 107.32 675.54 107.23 675.32 107.09 675.12 106.95 674.98 106.77 674.88 106.59 674.82 106.38 674.8 106.36 674.8 37 Y V 106.36 677.42 106.36 677.95 106.05 677.92 105.69 677.82 105.38 677.65 105.12 677.42 104.92 677.14 104.76 676.82 104.68 676.47 104.64 676.08 104.67 675.64 104.75 675.26 104.9 674.94 105.1 674.69 105.33 674.5 105.62 674.35 105.94 674.28 106.29 674.25 106.36 674.25 106.36 674.8 106.14 674.82 105.93 674.89 105.75 675 105.6 675.14 105.4 675.57 105.33 676.14 105.42 676.71 105.52 676.93 105.66 677.11 105.81 677.26 105.99 677.35 106.36 677.42 32 Y V 109.83 674.25 109.06 674.32 109.07 674.89 109.46 674.8 109.88 674.77 110.22 674.81 110.48 674.91 110.65 675.09 110.71 675.32 110.69 675.46 110.63 675.56 110.44 675.72 109.85 675.93 109.54 676.06 109.26 676.23 109.07 676.49 109 676.89 109.09 677.32 109.37 677.66 109.58 677.79 109.83 677.88 110.47 677.96 111.18 677.89 111.17 677.35 110.8 677.44 110.42 677.47 110.1 677.43 109.86 677.32 109.73 677.17 109.68 676.95 109.76 676.71 109.95 676.55 110.55 676.33 110.86 676.22 111.14 676.04 111.25 675.92 111.33 675.77 111.39 675.6 111.4 675.39 111.38 675.15 111.3 674.94 111.18 674.75 110.99 674.58 110.77 674.44 110.5 674.33 110.19 674.27 109.83 674.25 47 Y V 113.89 673.95 113.57 673.26 113.41 673 113.23 672.8 113.04 672.66 112.82 672.55 112.58 672.5 112.29 672.47 111.81 672.53 111.87 673.11 112.35 673.04 112.62 673.08 112.74 673.14 112.84 673.22 113.04 673.48 113.23 673.91 113.39 674.32 111.99 677.9 112.75 677.9 113.44 676.04 113.73 675.15 113.74 675.15 114.11 676.26 114.7 677.9 115.43 677.9 113.89 673.95 26 Y V 116.8 674.25 116.02 674.32 116.04 674.89 116.43 674.8 116.86 674.77 117.19 674.81 117.45 674.91 117.62 675.09 117.68 675.32 117.66 675.46 117.6 675.56 117.41 675.72 116.82 675.93 116.51 676.06 116.23 676.23 116.04 676.49 115.96 676.89 116.06 677.32 116.35 677.66 116.55 677.79 116.81 677.88 117.44 677.96 118.14 677.89 118.13 677.35 117.77 677.44 117.39 677.47 117.07 677.43 116.84 677.32 116.71 677.17 116.66 676.95 116.74 676.71 116.93 676.55 117.53 676.33 117.84 676.22 118.11 676.04 118.23 675.92 118.31 675.77 118.36 675.6 118.38 675.39 118.35 675.15 118.28 674.94 118.14 674.75 117.96 674.58 117.73 674.44 117.47 674.33 117.15 674.27 116.8 674.25 47 Y V 120.75 674.26 120.28 674.32 120.1 674.4 119.97 674.51 119.81 674.84 119.76 675.33 119.76 677.4 119 677.4 119 677.9 119.76 677.9 119.76 679.06 120.43 679.24 120.43 677.9 121.46 677.9 121.46 677.4 120.43 677.4 120.43 675.56 120.46 675.19 120.54 674.96 120.61 674.9 120.7 674.85 120.96 674.81 121.22 674.83 121.46 674.88 121.46 674.33 121.12 674.28 120.75 674.26 27 Y V 123.8 674.78 123.8 674.26 123.96 674.25 124.29 674.27 124.61 674.31 124.92 674.38 125.21 674.48 125.14 675 124.63 674.83 124.35 674.79 124.06 674.77 123.8 674.78 12 Y V 123.8 676.61 123.8 676.14 125.31 676.14 125.34 676.46 125.32 676.76 125.25 677.04 125.15 677.29 124.99 677.51 124.79 677.7 124.53 677.84 124.22 677.93 123.85 677.96 123.8 677.95 123.8 677.47 123.82 677.48 124.18 677.43 124.44 677.25 124.54 677.12 124.61 676.97 124.65 676.61 123.8 676.61 21 Y V 123.8 677.47 123.8 677.95 123.48 677.92 123.16 677.82 122.87 677.66 122.64 677.43 122.46 677.16 122.32 676.84 122.24 676.48 122.21 676.09 122.24 675.65 122.32 675.27 122.46 674.95 122.65 674.7 122.9 674.5 123.21 674.36 123.56 674.28 123.8 674.26 123.8 674.78 123.79 674.79 123.55 674.86 123.34 674.95 123.17 675.1 123.04 675.3 122.96 675.52 122.91 675.81 122.9 676.14 123.8 676.14 123.8 676.61 122.93 676.61 123.04 676.97 123.23 677.25 123.49 677.43 123.8 677.47 34 Y V 131 674.32 131 676.62 130.97 676.95 130.88 677.21 130.8 677.3 130.7 677.37 130.4 677.43 130.02 677.33 129.69 677.06 129.45 676.62 129.36 676.03 129.36 674.32 128.71 674.32 128.71 676.62 128.68 676.93 128.59 677.19 128.41 677.37 128.1 677.43 127.71 677.32 127.38 677.04 127.25 676.83 127.16 676.59 127.07 676.03 127.07 674.32 126.39 674.32 126.39 677.9 127.04 677.9 127.03 677.53 126.99 677.15 127 677.14 127.21 677.48 127.5 677.74 127.87 677.91 128.29 677.97 128.55 677.95 128.77 677.88 129.08 677.67 129.25 677.41 129.31 677.16 129.47 677.43 129.73 677.69 130.1 677.89 130.57 677.97 131.04 677.9 131.23 677.82 131.38 677.68 131.51 677.52 131.6 677.32 131.65 677.09 131.67 676.8 131.67 674.32 131 674.32 52 Y V 133.57 674.25 132.79 674.32 132.82 674.89 133.2 674.8 133.63 674.77 133.97 674.81 134.23 674.91 134.4 675.09 134.46 675.32 134.44 675.46 134.38 675.56 134.19 675.72 133.6 675.93 133.28 676.06 133 676.23 132.81 676.49 132.73 676.89 132.83 677.32 133.11 677.66 133.32 677.79 133.58 677.88 134.22 677.96 134.92 677.89 134.9 677.35 134.54 677.44 134.16 677.47 133.85 677.43 133.61 677.32 133.48 677.17 133.43 676.95 133.5 676.71 133.69 676.55 134.29 676.33 134.61 676.22 134.88 676.04 135 675.92 135.07 675.77 135.13 675.6 135.15 675.39 135.12 675.15 135.05 674.94 134.92 674.75 134.73 674.58 134.51 674.44 134.24 674.33 133.92 674.27 133.57 674.25 47 Y V 96.95 678.49 97.12 678.53 97.26 678.62 97.36 678.76 97.4 678.92 97.36 679.09 97.26 679.22 97.12 679.31 96.95 679.34 96.79 679.31 96.64 679.22 96.55 679.08 96.51 678.92 96.55 678.76 96.64 678.62 96.79 678.53 96.95 678.49 17 Y V 96.08 677.91 96.08 677.4 96.62 677.4 96.62 674.32 97.28 674.32 97.28 677.9 96.08 677.91 7 Y V 0 0 0 1 0 0 0 K 54 54 558 720 C 0 0 612 792 C 54 54 558 126 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 54 558 126 R 7 X 0 0 0 1 0 0 0 K V 306 72 552 108 R V 1 12 Q 0 X (1.1Beta1) 509 100 T (December 2, 1997) 463.69 78 T 63 72 216 108 R 7 X V 0 X (Java Naming and Directory) 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 0.1 0.9 0.9 0.9 K 216 261 549.01 315 R 0 X 0 0 0 0.1 0.9 0.9 0.9 K V 0.5 H 2 Z N 225 261 549.01 306 R V 0 0 0 1 0 0 0 K 0 10 Q 0 0 0 1 0 0 0 K (JNDI is being packaged as a Ja) 225 299.33 T (v) 349.21 299.33 T (a 1.1-compatible Standard Extension. The JNDI) 353.96 299.33 T 0 0 0 0.1 0.9 0.9 0.9 K 0 0 0 1 0 0 0 K (packages ha) 225 287.33 T (v) 273.39 287.33 T (e been renamed to use the \322ja) 278.24 287.33 T (v) 395.78 287.33 T (ax\323 pre\336x, follo) 400.53 287.33 T (wing the con) 463.88 287.33 T (v) 515.14 287.33 T (ention) 519.99 287.33 T 0 0 0 0.1 0.9 0.9 0.9 K 0 0 0 1 0 0 0 K (for Ja) 225 275.33 T (v) 247.29 275.33 T (a Standard Extensions.) 252.04 275.33 T 0 0 0 0.1 0.9 0.9 0.9 K 0 0 0 1 0 0 0 K 0 0 0 0.1 0.9 0.9 0.9 K 150.03 324 153.14 309.64 160.32 316.35 160.32 308.67 170.81 316.88 166.96 306.8 186.21 323.47 172.72 304.1 179.28 304.1 177.32 300.71 206.99 300.71 181.59 292.35 196.98 287.61 180.51 284.05 194.29 277.85 177.32 280.15 201.22 264.92 172.72 276.77 172.72 265.98 160.32 272.19 164.66 252 153.14 271.23 149.65 266.77 145.77 271.23 135.18 259.91 135.18 273.02 120.79 257.8 128.94 275.32 117.32 268.88 123.73 278.38 102.32 278.38 116.76 288.27 90 290.77 116.76 292.6 103.47 294.99 116.94 295.78 103.85 303.96 121.6 300.71 105.78 313.19 126.19 304.1 123.86 316.62 138.59 308.67 138.59 318.99 145.77 309.64 44 Y 0 0 0 0.1 0.9 0.9 0.9 K V 0.2 H 0 Z N 0 0 0 1 0 0 0 K 1 F 0 0 0 1 0 0 0 K (Package) 135 293.48 T (names) 135 283.2 T 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 0 0 0 1 0 0 0 K 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 (ii) 303.22 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 F 0 X (Copyright \251 1997 by Sun Microsystems Inc.) 108 581.33 T (901 San Antonio Road, Palo Alto, CA 94303.) 108 564.33 T (All rights reserved.) 108 547.33 T -0.61 (RESTRICTED RIGHTS: Use, duplication or disclosure by the government is subject to the restrictions as set forth) 108 394.33 P 0.23 (in subparagraph \050c\051 \0501\051 \050ii\051 of the Rights in Technical Data and Computer Software Clause as DFARS 252.227-) 108 382.33 P (7013 and FAR 52.227-19.) 108 370.33 T -0.15 (Sun, Sun Microsystems, the Sun logo, Java, and JavaSoft, are trademarks or registered trademarks of Sun Micro-) 108 302.33 P (systems, Inc.) 108 290.33 T -0.3 (THIS PUBLICATION IS PROVIDED \322AS IS\323 WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS) 108 239.33 P -0.4 (OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MECHANTABIL-) 108 227.33 P (ITY, FITNESS FOR A PARTICULAR USE, OR NON-INFRINGEMENT.) 108 215.33 T 2.37 (THIS PUBLICATION COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ER-) 108 198.33 P 0.09 (RORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES) 108 186.33 P 0.38 (WILL BE INCORPORATED IN NEW EDITIONS OF THE PUBLICATION. SUN MICROSYSTEMS, INC.,) 108 174.33 P 1.19 (MAY MAKE NEW IMPROVEMENTS AND/OR CHANGES IN THE PRODUCT\050S\051 AND/OR THE PRO-) 108 162.33 P (GRAM\050S\051 DESCRIBED IN THIS PUBLICATION AT ANY TIME.) 108 150.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "ii" 2 %%Page: "iii" 3 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 32.67 558 42.67 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (JavaSoft) 54 36 T (iii) 301.83 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X V 0 X (Java Naming and Directory Interface) 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 3 14 Q 0 X (Contents) 108 710.67 T 0 12 Q (1 Introduction) 54 683 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 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 129 683 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (1) 480 683 T 0 0 0 1 0 0 0 K (2 Goals and Design Principles) 54 659 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 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 207 659 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (2) 480 659 T 0 0 0 1 0 0 0 K (3 Fundamentals) 54 635 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 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 138 635 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (3) 480 635 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (3.1 Naming \321 The Foundation) 104.4 618 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 618 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (3) 480 618 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (3.2 Directory Objects) 104.4 604 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 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 216 604 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (4) 480 604 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (3.3 URLs and Composite Names) 104.4 590 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 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 270 590 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (6) 480 590 T 0 0 0 1 0 0 0 K (4 Overview of the Architecture) 54 566 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 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 210 566 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (7) 480 566 T 0 0 0 1 0 0 0 K (5 Overview of the Interface) 54 542 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 542 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (8) 480 542 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (5.1 The Naming Interface \321) 104.4 525 T 4 F (javax.naming) 249.36 525 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 (. . . . . . . . .) 345.6 525 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (8) 478.8 525 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 (5.1.1 Contexts and Names) 153 512.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 262.5 512.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (8) 481 512.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 (5.1.2 Bindings) 153 500.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 215 500.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (10) 476 500.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 (5.1.3 References) 153 488.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 222.5 488.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (10) 476 488.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 12 Q (5.2 The Directory Interface \321) 104.4 475 T 4 F (javax.naming.directory) 256.68 475 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 ( . . .) 424.8 475 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (11) 471.6 475 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 (5.2.1 Directory Objects and Attributes) 153 462.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 310 462.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (11) 476 462.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 (5.2.2 Directory Objects as Naming Contexts) 153 450.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . .) 335 450.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (13) 476 450.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 (5.2.3 Searches) 153 438.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 215 438.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (13) 476 438.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 (5.2.4 Schema) 153 426.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 210 426.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (14) 476 426.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 12 Q (5.3 Context Environment) 104.4 413 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 413 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (16) 474 413 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (5.4 Referrals) 104.4 399 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 399 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (17) 474 399 T 0 0 0 1 0 0 0 K (6 Scenarios) 54 375 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 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 117 375 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (19) 474 375 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (6.1 User authentication) 104.4 358 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 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 225 358 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (19) 474 358 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (6.2 Electronic Mail) 104.4 344 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 344 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (19) 474 344 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (6.3 Databases) 104.4 330 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 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 180 330 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (20) 474 330 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (6.4 Browsing) 104.4 316 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 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 177 316 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (20) 474 316 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (6.5 Network Printing) 104.4 302 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 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 213 302 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (21) 474 302 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 (6.5.1 Browsing and searching for printers) 153 289.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 322.5 289.33 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (22) 476 289.33 T 0 0 0 1 0 0 0 K 0 12 Q (7 Security Considerations) 54 266 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 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 186 266 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (23) 474 266 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (7.1 JNDI Classes) 104.4 249 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 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 195 249 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (23) 474 249 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (7.2 Security Model) 104.4 235 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 235 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (23) 474 235 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (7.3 Access To Servers) 104.4 221 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 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 219 221 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (24) 474 221 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (7.4 Sharing Context Handles) 104.4 207 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 207 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (24) 474 207 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (7.5 Context Environment) 104.4 193 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 193 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (24) 474 193 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (7.6 Class Loading) 104.4 179 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 179 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (24) 474 179 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (7.7 Serializable Objects) 104.4 165 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 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 225 165 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (25) 474 165 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (7.8 Responsibilities of Service Providers) 104.4 151 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 ( . . . . . . . . . . . . . . . . . . . . . . . . . . .) 309 151 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (25) 474 151 T 0 0 0 1 0 0 0 K (8 Design Choices) 54 127 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 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 147 127 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (27) 474 127 T 0 0 0 1 0 0 0 K ( Appendix A:) 54 103 T 0 0 0 1 0 0 0 K ( JNDI Context Environment) 119.33 103 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 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 258 103 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (31) 474 103 T 0 0 0 1 0 0 0 K ( Appendix B:) 54 79 T 0 0 0 1 0 0 0 K ( Examples for LDAP Programmers) 118.67 79 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 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 291 79 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (35) 474 79 T 0 0 0 1 0 0 0 K 34 521 36 533 R V 34 471 36 483 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "iii" 3 %%Page: "iv" 4 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 32.67 558 42.67 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (JavaSoft) 54 36 T (iv) 302.39 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X V 0 X (Java Naming and Directory Interface) 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 C:) 54 712 T 0 0 0 1 0 0 0 K ( Legend for Class Diagram) 118.67 712 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 252 712 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (55) 474 712 T 0 0 0 1 0 0 0 K ( Appendix D:) 54 688 T 0 0 0 1 0 0 0 K ( JNDI Change History) 119.33 688 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 231 688 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (57) 474 688 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "iv" 4 %%Page: "1" 5 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T (Introduction) 508 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (1) 303.5 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X (1) 81 708 T (Introduction) 108 708 T 0 12 Q 0.43 (Directory services play a vital role in Intranets and Internets by providing access to a variety) 108 680 P -0.16 (of information about users, machines, networks, services, and applications. By its very nature,) 108 666 P 3.68 (a directory service incorporates a naming facility for providing human understandable) 108 652 P (namespaces that characterize the arrangement and identification of the various entities.) 108 638 T -0.05 (The computing environment of an enterprise typically consists of several naming facilities of-) 108 618 P 0.4 (ten representing different parts of a) 108 604 P 1 F 0.4 (composite) 282.34 604 P 0 F 0.4 ( namespace. For example, the Internet Domain) 331 604 P 0.29 (Name System \050) 108 590 P 0.29 (DNS) 182.57 590 P 0.29 (\051 may be used as the top-level naming facility for different organizations) 206.57 590 P -0.04 (within an enterprise. The organizations themselves may use a directory service such as LDAP) 108 576 P 1 (or) 108 562 P 1 (NDS) 122 562 P 1 ( or NIS. From a user\325s perspective, there is one namespace consisting of composite) 146 562 P 1.15 (names. URLs are examples of composite names because they span namespaces of multiple) 108 548 P -0.77 (naming facilities. Applications which use directory services must support this user perspective.) 108 534 P -0.06 (Many Java application developers can benefit from a directory service API that is not only in-) 108 514 P -0.58 (dependent of the particular directory or naming service implementation, but also enables seam-) 108 500 P -0.02 (less access to directory objects through multiple naming facilities. In fact, any application can) 108 486 P -0.71 (attach its own objects to the namespace. Such a facility enables any Java application to discover) 108 472 P (and retrieve Java objects of any type.) 108 458 T 0.51 (End users can benefit from logical namespaces that allow easier discovery and identification) 108 438 P (of the objects in the network.) 108 424 T 0.22 (Directory service developers can benefit from a service-provider capability that enables them) 108 404 P (to incorporate their respective implementations without requiring changes to the client.) 108 390 T 3 F -0.08 (JNDI) 108 366.8 P 0 F -0.08 (is an) 138.92 366.8 P -0.08 (API) 164.09 366.8 P -0.08 (specified in Java) 186.35 366.8 P 0 9.6 Q -0.06 (TM) 266.17 371.6 P 0 12 Q -0.08 (that provides directory and naming functionality to appli-) 282.91 366.8 P -0.04 (cations written in Java. It is defined to be independent of any specific directory service imple-) 108 352.8 P (mentation. Thus, a variety of directories can be accessed in a common way.) 108 338.8 T -0.44 (Here are two examples to briefly illustrate some of the more commonly used features of) 108 318.8 P 3 F -0.44 (JNDI) 527 318.8 P 0 F -0.44 (.) 555 318.8 P 0.89 (An application that wants to access a printer needs the corresponding printer object. This is) 108 298.8 P (simply done as follows:) 108 284.8 T 4 10 Q (prt = \050Printer\051 building7.lookup\050\322puffin\323\051;) 140.4 266.13 T (prt.print\050document\051;) 140.4 254.13 T 3 12 Q (JNDI) 108 234.8 T 0 F ( does all the work of locating the information needed to construct the printer object.) 136 234.8 T 0.01 (An application that wants to find a person\325s phone numbers, which are stored in the organiza-) 108 214.8 P (tion\325s directory, can simply do:) 108 200.8 T 4 10 Q (String[] attrs = {\322workPhone\323, \322cellPhone\323, \322faxNumber\323};) 140.4 182.13 T -0.48 (bobsPhones = directory.getAttributes\050\322cn=Bob, o=Widget, c=US\323, attrs\051;) 140.4 170.13 P 0 12 Q -0.3 (If there may be several Bobs in the Widget organization, the application can search the organi-) 108 150.8 P (zation\325s directory to find the right Bob as follows:) 108 136.8 T 4 10 Q (bob = directory.search\050\322o=Widget, c=US\323, \322cn=Bob\323, searchctls\051;) 140.4 118.13 T 0 12 Q (This document describes the architecture and interfaces of) 108 98.8 T 3 F (JNDI) 390.59 98.8 T 0 F (.) 418.58 98.8 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 Interface) 54 749.33 T (Goals and Design Principles) 442.17 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (2) 303.5 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X (2) 81 708 T (Goals and Design Principles) 108 708 T 0 12 Q (We followed several principles and maxims in designing the API.) 108 680 T 3 14 Q (2.1) 54 652.67 T ( Keep it Consistent and Intuitive) 75 652.67 T 0 12 Q (Wherever possible, we have used existing components from the rest of the Java system.) 108 632 T 0.15 (Adhering to this principle not only makes JNDI consistent with existing core Java classes but) 108 612 P (also reduces needless proliferation of classes.) 108 598 T -0.04 (The object-oriented nature of Java allows for an intuitive and simple API design, in which the) 108 578 P 1.4 (directory service functionality is expressed as a natural extension to the more fundamental) 108 564 P (naming service functionality.) 108 550 T 3 14 Q (2.2) 54 522.67 T ( Pay for What you Use) 75 522.67 T 0 12 Q -0.37 (The API is structured in a tiered manner so that the application programmer interested in a cer-) 108 502 P 0.09 (tain directory service capability need not necessarily know about a more advanced capability.) 108 488 P -0.29 (We have strived to keep the lower tiers simple and also make them represent the common case) 108 474 P (capability, relegating the more complex ones to the upper tiers) 108 460 T (.) 407.95 460 T 3 14 Q (2.3) 54 432.67 T -0.32 (J) 78.18 432.67 P -0.32 (NDI must be implementable over common Directory and Naming service) 85.18 432.67 P (interface and protocols) 79.2 416.67 T 0 12 Q 0.16 (This goal is important for two reasons. First, it enables Java applications to take advantage of) 108 396 P 1.15 (information in a variety of existing naming and directory services \321 existing ones such as) 108 382 P 0 (DNS) 108 368 P 0 (,) 132 368 P 0 (NDS) 138 368 P 0 (, NIS \050YP\051, and X.500, and emerging ones such as LDAP servers. Second, it helps) 162 368 P (prevent the appearance of any implementation specific artifacts in the API.) 108 354 T -0.23 (Providing a unified interface to multiple naming and directory services does not imply that ac-) 108 334 P -0.08 (cess of unique features of a particular service is precluded. The unified API which is designed) 108 320 P -0.2 (to cover the common case is still beneficial to applications that have explicit knowledge of the) 108 306 P 0.37 (underlying naming or directory service. Such applications still benefit from sharing the com-) 108 292 P -0.36 (mon portions that use the API. This is analogous to applications sharing commonly used class-) 108 278 P (es and yet adding needed specificity via subclassing.) 108 264 T 3 14 Q (2.4) 54 236.67 T ( Enable Directory services to be seamlessly plugged in behind JNDI) 75 236.67 T 0 12 Q -0.06 (This is important not only because of the diversity of directory service and naming services in) 108 216 P -0.13 (the installed base that need to be supported, but also because new Java application and service) 108 202 P (programmers can export their own namespaces and directory objects in a uniform way.) 108 188 T 0.24 (We also wanted to make a variety of implementation choices possible without having the ap-) 108 168 P 0.38 (plication pay for this freedom. For example, a \322thin-client\323 may be better served by a proxy-) 108 154 P 0.65 (style protocol in which the access to specific naming and directory services is relegated to a) 108 140 P -0.68 (server. Whereas, a performance sensitive, resource rich client, may choose to use an implemen-) 108 126 P 0.44 (tation which directly allows it to access the various servers. However, the application should) 108 112 P 0.93 (be insulated from these implementation choices. It should be possible to defer such choices) 108 98 P (even until run-time.) 108 84 T 34 428 36 468 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "2" 6 %%Page: "3" 7 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T (Fundamentals) 500.78 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (3) 303.5 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X (3) 81 708 T (Fundamentals) 108 708 T 0 12 Q 0.19 (A directory service provides access to diverse kinds of information about users and resources) 108 680 P 0.41 (in a network environment. It uses a) 108 666 P 1 F 0.41 (naming system) 282.84 666 P 0 F 0.41 (for purpose of identifying and organizing) 357.65 666 P 1 F 0.26 (directory objects) 108 652 P 0 F 0.26 ( to represent this information. A directory object provides an association be-) 189.24 652 P -0.18 (tween) 108 638 P 1 F -0.18 (attributes) 139.47 638 P 0 F -0.18 ( and) 185.48 638 P 1 F -0.18 (values) 208.44 638 P 0 F -0.18 (. Thus, a directory service enables information to be organized in a) 239.1 638 P -0.5 (hierarchical manner to provide a mapping between human understandable names and directory) 108 624 P (objects.) 108 610 T 3 14 Q (3.1) 54 582.67 T ( Naming \321 The Foundation) 75 582.67 T 0 12 Q 0.38 (A fundamental facility in any computing system is the naming service \320 the means by which) 108 562 P -0.1 (names are associated with objects, and by which objects are found given their names. In tradi-) 108 548 P -0.46 (tional systems, the naming service is seldom a separate service. It is usually integrated with an-) 108 534 P 3.34 (other service, such as a file system, directory service, database, desktop, mail system,) 108 520 P -0.22 (spreadsheet, or calendar. For example, a file system includes a naming service for files and di-) 108 506 P (rectories; a spreadsheet has a naming service for cells and macros.) 108 492 T 1.46 (The computing environment of an enterprise typically consists of several naming services.) 108 472 P 0.34 (There are naming services that provide contexts for naming common entities in an enterprise) 108 458 P -0.4 (such as organizations, physical sites, human users and computers. Naming services are also in-) 108 444 P 0.48 (corporated in applications offering services such as file service, mail service, printer service,) 108 430 P 0.48 (and so on. From a user\325s perspective, there exist several natural and logical relationships be-) 108 416 P -0.29 (tween these naming services. For example, it is natural to think of naming a variety of services) 108 402 P 0.21 (such as files, mail, appointment calendar, and so on, in the context of a user. It is also natural) 108 388 P -0.25 (to think of a user in the context of a department, within a division of an enterprise. Meaningful) 108 374 P 0.79 (names can be composed using useful arrangements of naming services reflecting these rela-) 108 360 P (tionships.) 108 346 T 1.07 (Every) 108 326 P 1 F 1.07 (name) 140.73 326 P 0 F 1.07 ( is generated by a set of syntactic rules called a) 166.72 326 P 1 F 1.07 (naming convention) 406.8 326 P 0 F 1.07 (. An) 499.53 326 P 1 F 1.07 (atomic) 525.34 326 P (name) 108 312 T 0 F ( is an indivisible component of a name, as defined by the naming convention.) 133.99 312 T 0.29 (A) 108 292 P 1 F 0.29 (compound name) 119.96 292 P 0 F 0.29 ( represents a sequence of zero or more atomic names composed according) 199.23 292 P (to the naming convention.) 108 278 T -0.08 (For example, in) 108 258 P -0.08 (UNIX) 186.41 258 P -0.08 ( pathnames, atomic names are ordered from left to right, and are delim-) 216.4 258 P 0.26 (ited by slash \050\324/\325\051 characters. The UNIX pathname) 108 244 P 4 10 Q 0.53 (usr/local/bin) 354.37 244 P 0 12 Q 0.26 ( is a compound name rep-) 432.37 244 P 0.19 (resenting the sequence of atomic names,) 108 230 P 4 10 Q 0.38 (usr, local,) 306.08 230 P 0 12 Q 0.19 (and) 380.11 230 P 4 10 Q 0.38 (bin) 405.09 230 P 0 12 Q 0.19 (. In names from the Internet) 423.09 230 P 0.29 (Domain Name System \050DNS\051, atomic names are ordered from right to left, and are delimited) 108 216 P -0.46 (by dot \050\324.\325\051 characters. Thus, the DNS name) 108 202 P 4 10 Q -0.91 (sales.Wiz.COM) 317.97 202 P 0 12 Q -0.46 ( is a compound name representing) 395.97 202 P (the sequence of atomic names,) 108 188 T 4 10 Q (COM, Wiz, sales) 257.96 188 T 0 12 Q (.) 347.96 188 T (The association of an atomic name with an object is called) 108 168 T 1 F (binding) 391.62 168 T 0 F (.) 428.29 168 T -0.62 (A) 108 148 P 1 F -0.62 (context) 119.04 148 P 0 F -0.62 ( is an object whose state is a set of bindings with distinct atomic names. Every context) 153.7 148 P 0.14 (has an associated naming convention. A context provides a lookup \050resolution\051 operation that) 108 134 P 0.57 (returns the object, and may provide operations such as for binding names, unbinding names,) 108 120 P 0.54 (listing bound names. An atomic name in one context object can be bound to another context) 108 106 P 6.81 (object of the same type, called a) 108 92 P 1 F 6.81 (subcontext) 312.97 92 P 0 F 6.81 (, giving rise to compound names.) 364.29 92 P 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 Interface) 54 749.33 T (Fundamentals) 500.78 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (4) 303.5 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X -0.05 (Resolution of compound names proceeds by looking up each successive atomic component in) 108 712 P 0.14 (each successive context. The reader will find a familiar model in) 108 698 P 0 0 0 1 0 0 0 K 0 10 Q 0.12 (UNIX) 422.8 698 P 0 0 0 1 0 0 0 K 0 12 Q 0.14 ( file naming, where di-) 447.79 698 P (rectories serve as contexts, and pathnames may be compound names.) 108 684 T -0.37 (A) 108 664 P 1 F -0.37 (naming system) 119.3 664 P 0 F -0.37 ( is a connected set of contexts of the same type \050having the same naming con-) 189.92 664 P (vention\051 and providing the same set of operations with identical semantics.) 108 650 T (A) 108 630 T 1 F (namespace) 119.66 630 T 0 F (is the set of all names in a naming system.) 175.98 630 T -0.02 (A) 108 610 P 1 F -0.02 (composite name) 119.64 610 P 0 F -0.02 (is a name that spans multiple naming systems. It consists of an ordered list) 200.26 610 P -0.72 (of zero or more components. Each component is a name from the namespace of a single naming) 108 596 P (system.) 108 582 T 2.05 (For example, the name) 108 562 P 4 10 Q 4.09 (jurassic.eng:/export/home/jdoe/.signature) 229.16 562 P 0 12 Q 2.05 (is a composite) 485.25 562 P 0.14 (name representation made up of a host name) 108 548 P 4 10 Q 0.29 (jurassic.eng) 326.44 548 P 0 12 Q 0.14 (from a host namespace, and the) 405.98 548 P -0.33 (file name) 108 534 P 4 10 Q -0.65 (/export/home/jdoe/.signature) 155.34 534 P 0 12 Q -0.33 ( from a) 323.34 534 P 0 0 0 1 0 0 0 K 0 10 Q -0.27 (UNIX) 360.02 534 P 0 0 0 1 0 0 0 K 0 12 Q -0.33 ( file namespace. Another example is) 385.01 534 P 0.56 (the Internet) 108 520 P 0 0 0 1 0 0 0 K 0 10 Q 0.47 (URL) 167.1 520 P 0 0 0 1 0 0 0 K 4 F 1.12 (http://www.moon.org/public/index.html,) 190.66 520 P 0 12 Q 0.56 (which is a composite name) 425.78 520 P 3.59 (representation made up of the scheme-id) 108 506 P 4 10 Q 7.17 (http) 327.46 506 P 0 12 Q 3.59 ( from the \322) 351.46 506 P 0 0 0 1 0 0 0 K 0 10 Q 2.99 (URL) 414.54 506 P 0 0 0 1 0 0 0 K 0 12 Q 3.59 ( scheme-id\323 namespace,) 434.54 506 P 4 10 Q -0.53 (www.moon.org) 108 492 P 0 12 Q -0.27 ( which is the) 180 492 P 0 0 0 1 0 0 0 K 0 10 Q -0.22 (DNS) 242.93 492 P 0 0 0 1 0 0 0 K 0 12 Q -0.27 ( name of the machine on which the web server is running, and) 262.93 492 P 4 10 Q (public/index.html) 108 478 T 0 12 Q ( which is a file name from a file namespace.) 210 478 T 0.31 (Every name is interpreted relative to some context, and every naming operation is performed) 108 458 P 0.36 (on a context object. A client can obtain an) 108 444 P 1 F 0.36 (initial context) 316.51 444 P 0 F 0.36 ( object that provides a starting point) 383.2 444 P (for resolution of names.) 108 430 T 3 14 Q (3.2) 54 402.67 T ( Directory Objects) 75 402.67 T 0 12 Q -0.46 (The primary function of a naming system is to map names to objects. The objects can be of any) 108 382 P -0.74 (type. A) 108 368 P 1 F -0.74 (directory) 144.85 368 P 0 F -0.74 ( is a particular type of object that is used to represent the variety of information) 188.84 368 P 0.29 (in a computing environment. A directory object can have associated with it) 108 354 P 1 F 0.29 (attributes) 475.09 354 P 0 F 0.29 (. An at-) 521.1 354 P (tribute has an identifier and a set of values.) 108 340 T -0.72 (A directory object provides operations for creating attributes, adding, removing, and modifying) 108 320 P 0.09 (attributes associated with the directory object. If we make a directory object also be a naming) 108 306 P 0.22 (context, we can represent trees of directory information where the interior nodes not only be-) 108 292 P (have like naming contexts but also contain attributes.) 108 278 T (Figure 1 is an example used for illustrating several things.) 108 258 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 Interface) 54 749.33 T (Fundamentals) 500.78 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (5) 303.5 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 F 0 X (Figur) 54 712 T (e 1:) 77.71 712 T 3 12 Q (Example of a Composite Namespace) 95.48 712 T 54 99 558 708 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 X 1 1 0 0 0 0 1 K 90 450 13.5 13.5 288.22 651.18 G 1 H 2 Z 0 X 90 450 13.5 13.5 288.22 651.18 A 1 0 1 0 0 1 0 K 3 X 1 0 1 0 0 1 0 K 90 450 13.5 13.5 245.05 379.68 G 0 X 90 450 13.5 13.5 245.05 379.68 A 3 X 90 450 13.5 13.5 182.05 379.68 G 0 X 90 450 13.5 13.5 182.05 379.68 A 3 X 90 450 13.5 13.5 407.05 460.68 G 5 X 90 450 13.5 13.5 407.05 460.68 A 3 X 90 450 13.5 13.5 245.05 460.68 G 0 X 90 450 13.5 13.5 245.05 460.68 A 3 X 90 450 13.5 13.5 299.05 379.68 G 0 X 90 450 13.5 13.5 299.05 379.68 A 3 X 90 450 13.5 13.5 364.22 409.68 G 90 450 13.5 13.5 364.22 409.68 A 90 450 13.5 13.5 326.05 460.68 G 0 X 90 450 13.5 13.5 326.05 460.68 A 3 X 90 450 13.5 13.5 137.05 316.68 G 0 X 90 450 13.5 13.5 137.05 316.68 A 0 1 1 0 1 0 0 K 122.38 277.85 104.38 250.85 140.38 250.85 3 Y 2 X 0 1 1 0 1 0 0 K V 0 X N 362.38 284.52 344.38 257.52 380.38 257.52 3 Y 2 X V 0 X N 379.88 247.02 361.88 220.02 397.88 220.02 3 Y 9 X V 0 X N 210.38 277.68 192.38 250.68 228.38 250.68 3 Y 10 X V 0 X N 0 0 0 1 0 0 0 K 276.24 638.43 238.72 601.68 2 L 0 0 0 1 0 0 0 K N 292.72 637.68 312.91 547.6 2 L N 240.55 447.18 186.55 393.18 2 L N 245.38 448.02 245.38 394.02 2 L N 252.55 449.85 290.88 389.85 2 L N 174.22 367.35 143.38 329.02 2 L N 240.05 364.85 210.05 275.68 2 L N 137.55 302.35 122.55 277.35 2 L N 396.24 447.6 372.91 420.1 2 L N 415.05 449.85 447.55 392.35 2 L N 437.91 369.27 418.38 319.85 2 L N 452.08 373.43 487.08 345.1 2 L N 412.55 293.18 380.88 248.18 2 L N 300.05 644.85 384.22 595.68 2 L N 242.55 493.18 M 197.82 488.23 162.91 455.39 141.64 421.52 D 130.11 403.15 118.16 386.08 116.31 366.52 D 114.02 342.32 98.05 294.39 135.05 295.32 D 197.76 296.9 264.9 305.37 321.72 351.91 D 335.77 363.43 334.42 410.15 307.7 438.18 D 287.64 459.24 267.36 478.79 244.22 494.02 D N 381.72 483.18 M 340.06 439 337.99 363.94 353.06 304.85 D 359.71 278.8 401.68 278.25 426.72 298.89 D 458.91 325.44 533.09 370.35 490.92 428.18 D 466.65 461.45 422.66 490.83 379.22 482.35 D N 3 X 90 450 10 9.17 271.72 292.35 G 90 450 10 9.17 271.72 292.35 A 90 450 10 9.17 252.22 261.85 G 90 450 10 9.17 252.22 261.85 A 90 450 10 9.17 288.55 259.68 G 90 450 10 9.17 288.55 259.68 A 90 450 10 9.17 287.38 225.02 G 90 450 10 9.17 287.38 225.02 A 90 450 10 9.17 257.05 225.35 G 90 450 10 9.17 257.05 225.35 A 90 450 10 9.17 315.05 225.68 G 90 450 10 9.17 315.05 225.68 A 266.72 284.02 256.72 269.85 2 L 0 X N 275.88 284.02 284.22 265.68 2 L N 283.38 251.52 260.05 234.02 2 L N 288.38 250.68 287.55 232.35 2 L N 296.72 254.02 312.55 231.52 2 L N 262.55 304.85 M 240.48 284.98 226.84 247.52 242.42 218.18 D 255.51 193.52 293.7 189.93 321.72 201.17 D 350.25 212.62 341.63 260.85 323.38 272.88 D 301.64 287.19 285.87 310.56 263.38 307.35 D N 250.05 365.68 268.38 300.68 2 L N 0 1 1 0 1 0 0 K 160.38 277.35 142.38 250.35 178.38 250.35 3 Y 2 X 0 1 1 0 1 0 0 K V 0 X N 0 0 0 1 0 0 0 K 143.38 303.18 160.05 278.18 2 L 0 0 0 1 0 0 0 K N 240.88 201.52 232.55 189.02 246.72 189.02 3 Y 3 X V N 288.05 193.52 279.72 181.02 293.88 181.02 3 Y V N 317.72 198.85 309.38 186.35 323.55 186.35 3 Y V N 337.38 200.02 329.05 187.52 343.22 187.52 3 Y V N 250.05 218.18 240.88 201.52 2 L 0 X N 286.72 214.02 287.55 194.85 2 L N 317.55 214.85 316.72 199.85 2 L N 322.55 219.02 338.38 200.68 2 L N 0 1 1 0 1 0 0 K 454.55 247.35 436.55 220.35 472.55 220.35 3 Y 9 X 0 1 1 0 1 0 0 K V 0 X N 417.55 230.18 399.55 203.18 435.55 203.18 3 Y 9 X V 0 X N 0 0 0 1 0 0 0 K 415.88 293.18 417.55 227.35 2 L 0 0 0 1 0 0 0 K N 425.05 295.68 454.22 245.68 2 L N 5 12 Q (LDAP) 102.07 444.27 T 1 1 0 0 0 0 1 K 1 X 1 1 0 0 0 0 1 K 90 450 13.5 13.5 392.05 584.85 G 0 X 90 450 13.5 13.5 392.05 584.85 A 1 X 90 450 13.5 13.5 237.55 591.85 G 0 X 90 450 13.5 13.5 237.55 591.85 A 1 X 90 450 13.5 13.5 315.55 535.52 G 0 X 90 450 13.5 13.5 315.55 535.52 A 0 0 0 1 0 0 0 K 305.41 525.93 252.07 472.6 2 L 0 0 0 1 0 0 0 K N 325.1 525.97 397.5 470.23 2 L N 315.55 522.02 326.05 474.18 2 L N 293.74 660.1 311.24 678.27 2 L N 309.58 667.6 M 241.53 690.39 155.62 634.11 190.53 557.6 D 202.09 532.27 248.79 549.39 275.01 520.1 D 304.03 487.67 367.89 491.09 400.75 530.93 D 421.89 556.57 441.81 615.24 403.74 634.35 D 374.65 648.95 335.83 643.27 308.74 666.77 D N (DNS) 132.91 591.77 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 3 X 90 450 10 9.17 495.41 338.16 G 90 450 10 9.17 495.41 338.16 A 90 450 10 9.17 485.08 302.66 G 90 450 10 9.17 485.08 302.66 A 90 450 10 9.17 512.24 305.5 G 90 450 10 9.17 512.24 305.5 A 90 450 10 9.17 511.08 270.83 G 90 450 10 9.17 511.08 270.83 A 90 450 10 9.17 480.74 271.16 G 90 450 10 9.17 480.74 271.16 A 90 450 10 9.17 538.74 271.5 G 90 450 10 9.17 538.74 271.5 A 490.41 329.83 485.41 312.6 2 L 0 X N 499.58 329.83 507.91 311.49 2 L N 507.08 297.33 483.74 279.83 2 L N 512.08 296.49 511.24 278.16 2 L N 520.41 299.83 536.24 277.33 2 L N 485.41 238.99 477.08 226.49 491.24 226.49 3 Y 3 X V N 511.74 239.33 503.41 226.83 517.58 226.83 3 Y V N 529.25 247.99 521.41 235.49 534.74 235.49 3 Y V N 480.41 261.77 486.24 236.77 2 L 0 X N 510.41 259.83 511.24 240.66 2 L N 535.41 261.77 531.24 244.27 2 L N 1 0 1 0 0 1 0 K 3 X 1 0 1 0 0 1 0 K 90 450 13.5 13.5 403.05 405.85 G 90 450 13.5 13.5 403.05 405.85 A 90 450 13.5 13.5 396.05 363.68 G 90 450 13.5 13.5 396.05 363.68 A 90 450 13.5 13.5 443.22 384.02 G 90 450 13.5 13.5 443.22 384.02 A 0 0 0 1 0 0 0 K 404.58 447.6 402.91 419.27 2 L 0 X 0 0 0 1 0 0 0 K N 402.08 392.6 397.91 375.93 2 L V N 541.24 263.43 543.74 245.1 2 L N 544.75 243.33 536.91 230.83 550.24 230.83 3 Y 3 X V N 499.58 355.1 M 465.51 341.87 450.4 286.93 474.58 264.34 D 495.57 244.71 541.12 242.1 548.02 271.77 D 556.59 308.65 533.03 344.84 497.08 354.27 D 0 X N 1 0 1 0 0 1 0 K 3 X 1 0 1 0 0 1 0 K 90 450 13.5 13.5 416.55 307.35 G 90 450 13.5 13.5 416.55 307.35 A 0 0 0 1 0 0 0 K 391.24 350.1 362.91 285.93 2 L 0 X 0 0 0 1 0 0 0 K N (\322User\323 objects) 103.74 233.43 T (File System) 282.91 305.1 T (Printer Service) 444.58 283.43 T (NDS) 450.41 472.6 T (File) 223.74 178.43 T (Printer) 505.41 213.43 T 0 1 0 0 1 0 1 K 3 X 0 1 0 0 1 0 1 K 90 450 18.92 18.5 79.3 539.35 G 0 X 90 450 18.92 18.5 79.3 539.35 A 0 0 0 1 0 0 0 K 3 F 0 0 0 1 0 0 0 K (InitialContext) 57.07 504.6 T J 261.53 640.19 260.28 642.52 269.65 644.57 262.79 637.86 4 Y 0 Z N 261.53 640.19 260.28 642.52 269.65 644.57 262.79 637.86 4 Y V J 95.41 550.43 261.09 639.95 2 L J 95.41 550.43 98.49 552.1 2 L 2 Z N [7.253 7.253] 7.253 I 98.49 552.1 258.01 638.29 2 L N J 258.01 638.29 261.09 639.95 2 L N J 180.12 409.79 182.77 409.86 180.36 400.58 177.48 409.73 4 Y 0 Z N 180.12 409.79 182.77 409.86 180.36 400.58 177.48 409.73 4 Y V [6.806 6.806] 3.403 I 97.07 534.6 M 140.71 534.6 178.32 479.98 180.11 410.29 D 2 Z N J 289.55 540.36 289.93 542.96 298.61 539.03 289.17 537.76 4 Y 0 Z N 289.55 540.36 289.93 542.96 298.61 539.03 289.17 537.76 4 Y V [6.77 6.77] 3.385 I 99.57 543.77 M 187.09 543.77 261.76 544.42 289.05 540.43 D 2 Z N J 0 0 612 792 C 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 Interface) 54 749.33 T (Fundamentals) 500.78 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (6) 303.5 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X (\245) 115 712 T 3.01 (\324There can be multiple naming systems that can be represented by a composite) 126 712 P -0.69 (namespace. In this case, DNS is the used as the global naming system; one division uses) 126 698 P (NDS, while a second division uses LDAP.) 126 684 T (\245) 115 664 T 2.07 (Each namespace has interior nodes that represent naming contexts, which may be) 126 664 P (directory objects as well. Leaf nodes can be objects of any type.) 126 650 T (\245) 115 630 T -0.5 (The) 126 630 P 1 F -0.5 (InitialContext) 147.16 630 P 0 F -0.5 ( is configured to have bindings to useful starting contexts in different) 213.84 630 P (naming and directory systems.) 126 616 T (\245) 115 596 T -0.66 (Applications just see a composite namespace. They can access any type of object bound) 126 596 P (in any naming system in this arrangement.) 126 582 T (\245) 115 562 T 0.47 (Services can incorporate their own namespaces which appear as first-class citizens in) 126 562 P (JNDI.) 126 548 T (\245) 115 528 T 3.41 (Arbitrary directory services can be added and accessed without requiring client) 126 528 P (applications to be changed.) 126 514 T 3 14 Q (3.3) 54 486.67 T ( URLs and Composite Names) 75 486.67 T 0 12 Q 0.21 (Universal Resource Locators \050URLs\051 are composite names. Clients of JNDI can use URLs to) 108 466 P 1.01 (refer to arbitrary types of objects. For example, a client can use \322) 108 452 P 4 10 Q 2.01 (nfs://nfs.sun.com/ex-) 432 452 P -0.75 (port/jndi/src/README) 108 438 P 0 12 Q -0.38 (\323 to refer to a file object that is being accessed using the Network File) 228 438 P -0.58 (System \050NFS\051 protocol. Similarly, a Java client can perform directory operations on a directory) 108 424 P 4.42 (object in an LDAP server using the URL \322) 108 410 P 4 10 Q 8.84 (ldap://ldap.widget.com/cn=Jonathan,) 348 410 P (ou=marketing) 108 396 T 0 12 Q (\323.) 180 396 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 Interface) 54 749.33 T (Overview of the Architecture) 442.19 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (7) 303.5 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X (4) 81 708 T (Overview of the Architecture) 108 708 T 0 12 Q -0.14 (The JNDI architecture consists of the JNDI API and the JNDI SPI. The JNDI API allows Java) 108 680 P -0.13 (applications to access a variety of naming and directory services. The JNDI SPI is designed to) 108 666 P -0.3 (be used by arbitrary service providers including directory service providers. This enables a va-) 108 652 P 0.07 (riety of directory and naming services to be plugged in transparently to the Java client \050which) 108 638 P -0.39 (uses only the JNDI API\051. Figure 2 shows the JNDI architecture and includes a few service pro-) 108 624 P (viders of directory and naming contexts as examples.) 108 610 T 3 10 Q (Figur) 54 571.33 T (e 2: JNDI Ar) 77.71 571.33 T (chitectur) 132.79 571.33 T (e) 170.93 571.33 T 54 72 558 720 C 127.5 337 484.5 568 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 133.5 343 478.5 562 R 4 X 0 0 0 1 0 0 0 K V 0.25 H 0 Z 0 X N 1 1 0 0 0 0 1 K 241.48 506 361.5 542 R 7 X 1 1 0 0 0 0 1 K V 1 H 0 X N 0 0 0 1 0 0 0 K 5 10 Q 0 0 0 1 0 0 0 K (Ja) 261.93 520.54 T (v) 272.9 520.54 T (a Application) 278.26 520.54 T 0 0 0 1 0 0 0 K 0 1 1 0 1 0 0 K 145.5 480.51 421.93 480.51 2 L 6 X 0 1 1 0 1 0 0 K V 4 H 2 Z 0 X N 0 0 0 1 0 0 0 K 224.25 443 379.5 464.16 R 7 X 0 0 0 1 0 0 0 K V 3 H 0 Z 0 X N 209.78 362 267.16 394.38 R 7 X V 1 H 0 X N 146.78 362 195.16 394.38 R 7 X V 0 X N (JNDI Implementation Mana) 230.2 450.21 T (g) 357.89 450.21 T (er) 364.11 450.21 T 3 F (JNDI API) 428.83 481.05 T (JNDI SPI) 433.38 418.05 T 6 F (JNDI-RMI) 150.16 372.82 T (JNDI-) 213.16 382.07 T 145.5 418.72 421.93 421.86 R 3 X V 3 H 2 Z 2 X N 0 X 90 450 1.6 1.63 322.76 378.37 G 90 450 1.6 1.63 322.76 378.37 A 90 450 1.6 1.63 304.76 378.37 G 90 450 1.6 1.63 304.76 378.37 A 90 450 1.6 1.63 286.76 378.37 G 90 450 1.6 1.63 286.76 378.37 A 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (COSNaming) 213.16 372.07 T 334.78 363 373.16 395.38 R 7 X V 1 H 0 Z 0 X N 383.78 363 422.16 395.38 R 7 X V 0 X N (LD) 340.16 378.07 T (AP) 352.54 378.07 T (NDS) 391.16 379.07 T 0 0 0 1 0 0 0 K 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 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 Interface) 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 (8) 303.5 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X (5) 81 708 T (Overview of the Interface) 108 708 T 0 12 Q 0.82 (The JNDI API is contained in two packages:) 108 680 P 4 10 Q 1.65 (javax.naming) 331.9 680 P 0 12 Q 0.82 ( f) 403.9 680 P 0.82 (or the naming operations, and) 411.72 680 P 4 10 Q 2.54 (javax.naming.) 108 666 P 2.54 (directory) 186 666 P 0 12 Q 1.27 ( for directory operations. The JNDI service provider interface is) 240 666 P (contained in the package) 108 652 T 4 10 Q (javax.naming.) 229.97 652 T (spi) 307.97 652 T 0 12 Q ( \050see the) 325.97 652 T 3 F (JNDI SPI) 368.95 652 T 0 F ( document for details\051.) 418.62 652 T -0.29 (The following sections provide an overview of the JNDI API. For more details on the API, see) 108 632 P (the corresponding) 108 618 T 3 F (javadoc) 197.32 618 T 0 F (.) 237.31 618 T 3 14 Q (5.1) 54 590.67 T ( The Naming Interface \321) 75 590.67 T 3 12 Q (ja) 231.7 590.67 T (v) 241.4 590.67 T (ax.naming) 247.28 590.67 T 3 11.2 Q (1) 304.45 596.27 T 3 12 Q (5.1.1) 66 310.17 T (Contexts and Names) 108 310.17 T 4 10 Q 0.35 (C) 108 290.17 P 0.35 (ontext) 114 290.17 P 0 12 Q 0.17 ( is the core interface that specifies a naming context. It defines basic operations such) 150 290.17 P 0.57 (as adding a name-to-object binding, looking up the object bound to a specified name, listing) 108 276.17 P 0.58 (the bindings, removing a name-to-object binding, creating and destroyin) 108 262.17 P 0.58 (g s) 459.93 262.17 P 0.58 (ubcontexts of the) 474.18 262.17 P (same type,) 108 248.17 T 1 F (etc.) 162.32 248.17 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 C for le) 84 77.33 T (gend of class diagram.) 173.28 77.33 T 54 72 558 720 C 90 329.17 558 568 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 30.24 563.76 453 761.76 422.76 198 110.95 370 FMBEGINEPSF %%BeginDocument: /home/jndi/scott/ws/jndi/doc/java.naming-0.eps %!PS-Adobe-3.0 EPSF-3.0 %%DocumentFonts: LucidaSans-Typewriter %%DocumentNeededFonts: LucidaSans-Typewriter %%BoundingBox: 30.24 563.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 gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 10.68 inch moveto 3.84 inch 10.68 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 10.68 inch moveto 3.84 inch 9.72 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 10.44 inch moveto 3.84 inch 10.68 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 10.44 inch moveto 3.84 inch 9.72 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 10.2 inch moveto 3.84 inch 10.2 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 9.959999999999999 inch moveto 3.84 inch 9.48 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 9.48 inch moveto 3.84 inch 9.48 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 8.76 inch moveto 3.84 inch 9.72 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 8.76 inch moveto 3.84 inch 9.48 inch lineto stroke grestore /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 false 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 (CompositeName) mtwshow /rounded false def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.24 inch 10.36 inch 1.6 inch 0.16 inch javabox 0.32 inch 10.36 inch moveto (CompoundName) 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 (InitialContext) mtwshow /rounded false def /corner true def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.24 inch 9.879999999999999 inch 1.6 inch 0.16 inch javabox 0.32 inch 9.879999999999999 inch moveto (NameClassPair) mtwshow /rounded false def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.48 inch 9.64 inch 1.6 inch 0.16 inch javabox 0.5599999999999999 inch 9.64 inch moveto (Binding) 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 9.4 inch 1.6 inch 0.16 inch javabox 0.32 inch 9.4 inch moveto (RefAddr) mtwshow /rounded false def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.48 inch 9.16 inch 1.6 inch 0.16 inch javabox 0.5599999999999999 inch 9.16 inch moveto (BinaryRefAddr) mtwshow /rounded false def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.48 inch 8.92 inch 1.6 inch 0.16 inch javabox 0.5599999999999999 inch 8.92 inch moveto (StringRefAddr) mtwshow /rounded false def /corner true def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.24 inch 8.68 inch 1.6 inch 0.16 inch javabox 0.32 inch 8.68 inch moveto (Reference) mtwshow /rounded false def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.48 inch 8.44 inch 1.6 inch 0.16 inch javabox 0.5599999999999999 inch 8.44 inch moveto (LinkRef) 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.44 inch lineto 0.24 inch 10.44 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.12 inch 10.84 inch moveto 0.12 inch 9.959999999999999 inch lineto 0.24 inch 9.959999999999999 inch lineto stroke grestore gsave 0.12 inch 10.84 inch moveto 0.12 inch 9.48 inch lineto 0.24 inch 9.48 inch lineto stroke grestore gsave 0.12 inch 10.84 inch moveto 0.12 inch 8.76 inch lineto 0.24 inch 8.76 inch lineto stroke grestore gsave 0.36 inch 9.879999999999999 inch moveto 0.36 inch 9.72 inch lineto 0.48 inch 9.72 inch lineto stroke grestore gsave 0.36 inch 9.4 inch moveto 0.36 inch 9.24 inch lineto 0.48 inch 9.24 inch lineto stroke grestore gsave 0.36 inch 9.4 inch moveto 0.36 inch 9.0 inch lineto 0.48 inch 9.0 inch lineto stroke grestore gsave 0.36 inch 8.68 inch moveto 0.36 inch 8.52 inch lineto 0.48 inch 8.52 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.6 inch 1.6 inch 0.16 inch javabox 3.92 inch 10.6 inch moveto (Name) 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 (Context) mtwshow /rounded true def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 3.84 inch 9.64 inch 1.6 inch 0.16 inch javabox 3.92 inch 9.64 inch moveto (java.lang.Cloneable) mtwshow /rounded true def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 3.84 inch 9.4 inch 1.6 inch 0.16 inch javabox 3.92 inch 9.4 inch moveto (java.io.Serializable) mtwshow /rounded true def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 3.84 inch 8.92 inch 1.6 inch 0.16 inch javabox 3.92 inch 8.92 inch moveto (NameParser) mtwshow /rounded true def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 3.84 inch 8.68 inch 1.6 inch 0.16 inch javabox 3.92 inch 8.68 inch moveto (NamingEnumeration) mtwshow /rounded true def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 3.84 inch 8.44 inch 1.6 inch 0.16 inch javabox 3.92 inch 8.44 inch moveto (Referenceable) mtwshow grestore showpage pagerestore restore %%Trailer end %%EOF %%EndDocument FMENDEPSF 0 0 0 1 0 0 0 K 0 10 Q 0 X 0 0 0 1 0 0 0 K (\050e) 342.5 352.83 T (xception classes are not sho) 350.12 352.83 T (wn\051) 460.96 352.83 T 54 72 558 720 C 0 0 612 792 C 34 648 36 688 R 0 X 0 0 0 1 0 0 0 K V 34 586 36 600 R V 34 286.17 36 298.17 R V 34 258.17 36 270.17 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "8" 12 %%Page: "9" 13 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 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 (9) 303.5 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X (public interface Context {) 140.4 713.33 T (public Object lookup\050Name name\051 throws NamingException;) 165.6 701.33 T (public void bind\050Name name, Object obj\051 throws NamingException;) 165.6 689.33 T (public void rebind\050Name name, Object obj\051 throws NamingException;) 165.6 677.33 T (public void unbind\050Name name\051 throws NamingException;) 165.6 665.33 T (public void rename\050Name old, Name new\051 throws NamingException;) 165.6 653.33 T (public) 165.6 641.33 T (NamingE) 207.6 641.33 T (numeration listBindings\050\051 throws NamingException;) 249.6 641.33 T (...) 165.6 629.33 T -0.72 (public Context createSubcontext\050Name name\051 throws NamingException;) 165.6 617.33 P (public void destroySubcontext\050Name name\051 throws NamingException;) 165.6 605.33 T (...) 165.6 593.33 T (};) 140.4 581.33 T 0 12 Q 0.05 (Every naming method in) 108 550 P 4 10 Q 0.1 (Context) 230.19 550 P 0 12 Q 0.05 ( takes a name as an argument. The operation defined by the) 272.19 550 P 0.12 (method is performed on the) 108 536 P 4 10 Q 0.24 (Context) 244.25 536 P 0 12 Q 0.12 ( object that is obtained by implicitly resolving the name.) 286.25 536 P -0.27 (If the name is empty \050\322\323\051 the operation is performed directly on the context itself. The name of) 108 522 P -0.06 (an object can be a composite name reflecting the arrangement of the namespaces used to refer) 108 508 P -0.7 (to the object. Of course, the client is not exposed to any naming service implementation. In fact,) 108 494 P 0.12 (a new type of naming service can be introduced without requiring the application to be modi-) 108 480 P (fied or even disrupted if it is running.) 108 466 T -0.31 (In JNDI, every name is relative to a context. There is no notion of \322absolute names.\323 An appli-) 108 446 P (cation can bootstrap by obtaining its first context of class) 108 432 T 4 10 Q (InitialContext) 385.31 432 T 0 12 Q (:) 469.31 432 T 4 10 Q (public class InitialContext implements Context {) 140.4 413.33 T (public InitialContext\050\051...;) 165.6 401.33 T (...) 165.6 389.33 T (}) 140.4 377.33 T 0 12 Q 0.46 (The initial context contains a variety of bindings that hook up the client to useful and shared) 108 358 P -0.72 (contexts from one or more naming systems, such as) 108 344 P -0.72 (the namespace of URLs or) 352.81 344 P -0.72 (the root of DNS.) 480.17 344 P 0.93 (The) 108 324 P 4 10 Q 1.87 (Name) 130.59 324 P 0 12 Q 0.93 ( interface represents a generic name \321 an ordered sequence of components. Each) 154.59 324 P 4 10 Q -0.49 (Context) 108 310 P 0 12 Q -0.25 ( method that takes a) 150 310 P 4 10 Q -0.49 (Name) 247.76 310 P 0 12 Q -0.25 ( argument has a counterpart that takes the name as a) 271.76 310 P 4 10 Q -0.49 (String) 522 310 P 0 12 Q 0.93 (instead. The versions using) 108 296 P 4 10 Q 1.86 (Name) 245.37 296 P 0 12 Q 0.93 ( are useful for applications that need to manipulate names:) 269.37 296 P 0.31 (composing them, comparing components, and so on. The versions using) 108 282 P 4 10 Q 0.62 (String) 460.74 282 P 0 12 Q 0.31 ( are likely to) 496.74 282 P 0.4 (be more useful for simple applications, such as those that simply read in a name and look up) 108 268 P (the corresponding object.) 108 254 T 0.12 (The) 108 234 P 4 10 Q 0.24 (CompositeName) 129.78 234 P 0 12 Q 0.12 ( class represents a sequence of names \050atomic or compound\051 from multi-) 207.78 234 P -0.35 (ple namespaces. The) 108 220 P 4 10 Q -0.7 (Name) 214.88 220 P 0 12 Q -0.35 ( parameter supplied to a method of the) 238.88 220 P 4 10 Q -0.7 (Context) 424.05 220 P 0 12 Q -0.35 ( class will typically) 466.05 220 P (be a composite name.) 108 206 T 0.13 (The) 108 186 P 4 10 Q 0.26 (CompoundName) 129.79 186 P 0 12 Q 0.13 ( class represents hierarchical names from a single namespace. A context\325s) 201.79 186 P -0.51 (name parser can be used to manipulate compound names in the syntax associated with that par-) 108 172 P (ticular context:) 108 158 T 34 626 36 648 R V 34 590 36 600 R V 34 386 36 396 R V 34 340 36 352 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "9" 13 %%Page: "10" 14 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 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 (10) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X (public interface Context {) 140.4 713.33 T (...) 165.6 701.33 T -0.72 (public NameParser getNameParser\050Name name\051 throws NamingException;) 165.6 689.33 P (...) 165.6 677.33 T (}) 140.4 665.33 T 0 12 Q 0.78 (A namespace browser is an example of the kind of application that may need to manipulate) 108 646 P 0.31 (names syntactically at this level. Most other applications will work with strings or composite) 108 632 P (names.) 108 618 T 3 F (5.1.2) 66 575 T (Bindings) 108 575 T 4 10 Q -1.08 (Context.lookup\050\051) 108 555 P 0 12 Q -0.54 ( is the most commonly used operation. The context implementation can re-) 204 555 P -0.01 (turn an object of whatever class is required by the Java client. For example, a client might use) 108 541 P -0.35 (the name of a printer to look up the corresponding) 108 527 P 4 10 Q -0.7 (Printer) 348.46 527 P 0 12 Q -0.35 ( object, and then print to it directly:) 390.46 527 P 4 10 Q (Printer printer = \050Printer\051 ctx.lookup\050\322treekiller\323\051;) 140.4 508.33 T (printer.print\050report\051;) 140.4 496.33 T 0.93 (Context.listBindings\050\051) 108 477 P 0 12 Q 0.47 ( returns an enumeration of name-to-object bindings, each binding) 240 477 P 0.15 (represented by an object of class) 108 463 P 4 F 0.35 (Binding) 268.18 463 P 0 F 0.15 (. A binding is a tuple containing the) 318.58 463 P 0.15 ( n) 497.9 463 P 0.15 (ame) 507.05 463 P 0.15 ( o) 527.04 463 P 0.15 (f the) 536.19 463 P (bound object, the name of the object\325s class, and the object itself.) 108 449 T -0.25 (The) 108 429 P 4 10 Q -0.49 (Context.list\050\051) 129.41 429 P 0 12 Q -0.25 ( method is similar to) 213.41 429 P 4 10 Q -0.49 (listBindings\050\051) 313.85 429 P 0 12 Q -0.25 (, except that it returns an enumer-) 397.85 429 P 1.7 (ation of) 108 415 P 4 10 Q 3.4 (NameClassPair) 151.4 415 P 0 12 Q 1.7 ( objects. Each) 229.4 415 P 4 10 Q 3.4 (NameClassPair) 304.49 415 P 0 12 Q 1.7 ( contains an object\325s) 382.49 415 P 1.7 ( n) 485.91 415 P 1.7 (ame and the) 496.61 415 P -0.55 (name of the object\325s class. The) 108 401 P 4 10 Q -1.09 (list\050\051) 261.27 401 P 0 12 Q -0.55 ( method is useful for applications such as browsers that) 297.27 401 P -0.44 (wish to discover information about the objects bound within a context, but don\325t need all of the) 108 387 P 0.38 (actual objects. Although) 108 373 P 4 10 Q 0.77 (listBindings\050\051) 235.9 373 P 0 12 Q 0.38 ( provides all of the same information, it is poten-) 319.9 373 P (tially a much more expensive operation.) 108 359 T 4 10 Q (public class NameClassPair {) 140.4 328.33 T (public String getName\050\051 ...;) 165.6 316.33 T (public String getClassName\050\051 ...;) 165.6 304.33 T (...) 165.6 292.33 T (}) 140.4 280.33 T (public class Binding extends NameClassPair {) 140.4 256.33 T (public Object getObject\050\051 ...;) 165.6 244.33 T (...) 165.6 232.33 T (}) 140.4 220.33 T 3 12 Q (5.1.3) 66 178 T (References) 108 178 T 0 F -0.1 (Different) 108 158 P 4 10 Q -0.19 (Context) 154.88 158 P 0 12 Q -0.1 ( implementations are able to bind different kinds of objects natively. A par-) 196.88 158 P -0.69 (ticularly useful object that should be supported by any general-purpose context implementation) 108 144 P -0.28 (is the) 108 130 P 4 10 Q -0.56 (Reference) 136.1 130 P 0 12 Q -0.28 ( class. References represent other Java objects, and are used to give JNDI cli-) 190.1 130 P 0.71 (ents the illusion that objects of arbitrary classes are able to be bound in naming or directory) 108 116 P (services \321 such as X.500 \321 that do not have native Java support.) 108 102 T 34 698 36 708 R V 34 674 36 684 R V 34 459 36 471 R V 34 411 36 423 R V 34 289 36 299 R V 34 229 36 239 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 Interface) 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 (11) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X 1 (When the result of an operation such as) 108 712 P 4 10 Q 2.01 (Context.lookup\050\051) 308.66 712 P 0 12 Q 1 ( or) 404.66 712 P 4 10 Q 2.01 (Binding.getObject\050\051) 422.66 712 P 0 12 Q 1 ( is a) 536.66 712 P 4 10 Q -0.13 (Reference) 108 698 P 0 12 Q -0.06 ( object, JNDI attempts to convert the reference into the object that it represents be-) 162 698 P -0.48 (fore returning it to the client. A particularly significant instance of this occurs when a reference) 108 684 P -0.52 (representing a) 108 670 P 4 10 Q -1.03 (Context) 177.61 670 P 0 12 Q -0.52 ( of one naming system is bound to a name in a different naming system.) 219.61 670 P -0.33 (This is how multiple independent naming systems are joined together into the JNDI composite) 108 656 P (namespace. Details of how this mechanism operates are provided in the) 108 642 T 3 F (JNDI SPI) 454.6 642 T 0 F ( document.) 504.26 642 T -0.6 (Objects that are able to be represented by a reference should implement the) 108 622 P 4 F -1.45 (Referenceable) 464.4 622 P 0 F 0.01 (interface. Its single method \321) 108 608 P 4 10 Q 0.02 (getReference\050\051) 256.68 608 P 0 12 Q 0.01 ( \321 returns the object\325s reference. When such) 340.68 608 P -0.68 (an object is bound to a name in any context, the context implementation may store the reference) 108 594 P (in the underlying system if the object itself cannot be stored natively.) 108 580 T -0.11 (Each reference may contain the name of the class of the object that it represents, and may also) 108 560 P -0.2 (contain the location \050typically a URL\051 where the class file for that object can be found. In ad-) 108 546 P -0.24 (dition, a reference contains a sequence of objects of class) 108 532 P 4 10 Q -0.47 (RefAddr) 383.21 532 P 0 12 Q -0.24 (. Each) 425.21 532 P 4 10 Q -0.47 (RefAddr) 457.72 532 P 0 12 Q -0.24 ( in turn con-) 499.72 532 P (tains a \322type\323 string and some addressing data, generally a string or a byte array.) 108 518 T 1.04 (A specialization of) 108 498 P 4 F 2.5 (Reference) 204.77 498 P 0 F 1.04 ( called a) 269.57 498 P 4 10 Q 2.08 (LinkRef) 315.67 498 P 0 12 Q 1.04 ( is used to add \322symbolic\323 links into the) 357.67 498 P 0.41 (JNDI namespace. It contains the name of a JNDI object. By default, these links are followed) 108 484 P (whenever JNDI names are resolved.) 108 470 T 3 14 Q (5.2) 54 422.67 T -0.58 ( The Directory Interface \321 \262\305) 75 422.67 P 3 12 Q -0.5 (ja) 238.87 422.67 P -0.5 (v) 248.56 422.67 P -0.5 (ax.naming) 254.44 422.67 P -0.5 (.) 307.94 422.67 P -0.5 (dir) 310.94 422.67 P -0.5 (ectory) 326.06 422.67 P 3 11.2 Q -0.47 (1) 358.04 428.27 P 3 12 Q (5.2.1) 66 141.5 T (Directory Objects and Attributes) 108 141.5 T 0 F -0.52 (The) 108 121.5 P 4 10 Q -1.04 (D) 132.61 121.5 P -1.04 (irContext) 138.61 121.5 P 0 12 Q -0.52 ( interface enables the directory capability by defining methods for examining) 192.61 121.5 P 0.01 (and updating attributes associated with) 108 107.5 P 0.01 (a d) 297.68 107.5 P 0.01 (irectory object. Each directory object contains a set) 312.02 107.5 P 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 C for le) 84 77.33 T (gend of class diagram.) 173.28 77.33 T 54 72 558 720 C 90 160.5 558 400 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 30.24 580.76 453 761.76 422.76 181 110.12 218.67 FMBEGINEPSF %%BeginDocument: /home/jndi/scott/ws/jndi/doc/java.naming.directory-0.eps %!PS-Adobe-3.0 EPSF-3.0 %%DocumentFonts: LucidaSans-Typewriter %%DocumentNeededFonts: LucidaSans-Typewriter %%BoundingBox: 30.24 580.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 gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 10.68 inch moveto 3.84 inch 10.68 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 10.68 inch moveto 3.84 inch 9.959999999999999 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 10.44 inch moveto 3.84 inch 10.68 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 10.44 inch moveto 3.84 inch 9.959999999999999 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 10.2 inch moveto 3.84 inch 9.959999999999999 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 9.959999999999999 inch moveto 3.84 inch 9.959999999999999 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 9.72 inch moveto 3.84 inch 9.72 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 2.16 inch 9.48 inch moveto 3.84 inch 9.48 inch lineto stroke grestore gsave .5 setlinewidth [0.1 3] 1.6 setdash 1.92 inch 9.24 inch moveto 3.84 inch 9.959999999999999 inch lineto stroke grestore /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 false 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 (Attribute) mtwshow /rounded false def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.24 inch 10.36 inch 1.6 inch 0.16 inch javabox 0.32 inch 10.36 inch moveto (Attributes) 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 (ModificationItem) mtwshow /rounded false def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.24 inch 9.879999999999999 inch 1.6 inch 0.16 inch javabox 0.32 inch 9.879999999999999 inch moveto (SearchControls) mtwshow /rounded false def /corner true def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.24 inch 9.64 inch 1.6 inch 0.16 inch javabox 0.32 inch 9.64 inch moveto (javax.naming.InitialContext) mtwshow /rounded false def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.48 inch 9.4 inch 1.6 inch 0.16 inch javabox 0.5599999999999999 inch 9.4 inch moveto (InitialDirContext) mtwshow /rounded false def /corner true def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.24 inch 9.16 inch 1.6 inch 0.16 inch javabox 0.32 inch 9.16 inch moveto (javax.naming.NameClassPair) mtwshow /rounded false def /corner true def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.48 inch 8.92 inch 1.6 inch 0.16 inch javabox 0.5599999999999999 inch 8.92 inch moveto (javax.naming.Binding) mtwshow /rounded false def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 0.72 inch 8.68 inch 1.6 inch 0.16 inch javabox 0.7999999999999999 inch 8.68 inch moveto (SearchResult) 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.44 inch lineto 0.24 inch 10.44 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.12 inch 10.84 inch moveto 0.12 inch 9.959999999999999 inch lineto 0.24 inch 9.959999999999999 inch lineto stroke grestore gsave 0.12 inch 10.84 inch moveto 0.12 inch 9.72 inch lineto 0.24 inch 9.72 inch lineto stroke grestore gsave 0.12 inch 10.84 inch moveto 0.12 inch 9.24 inch lineto 0.24 inch 9.24 inch lineto stroke grestore gsave 0.36 inch 9.64 inch moveto 0.36 inch 9.48 inch lineto 0.48 inch 9.48 inch lineto stroke grestore gsave 0.36 inch 9.16 inch moveto 0.36 inch 9.0 inch lineto 0.48 inch 9.0 inch lineto stroke grestore gsave 0.6 inch 8.92 inch moveto 0.6 inch 8.76 inch lineto 0.72 inch 8.76 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.6 inch 1.6 inch 0.16 inch javabox 3.92 inch 10.6 inch moveto (java.lang.Cloneable) 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 (java.io.Serializable) mtwshow /rounded true def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 3.84 inch 9.64 inch 1.6 inch 0.16 inch javabox 3.92 inch 9.64 inch moveto (javax.naming.Context) mtwshow /rounded true def /corner false def /dotted false def /maxtextwidth 103.68 def /boxbgcolor {1 1 1} def 3.84 inch 9.4 inch 1.6 inch 0.16 inch javabox 3.92 inch 9.4 inch moveto (DirContext) mtwshow grestore showpage pagerestore restore %%Trailer end %%EOF %%EndDocument FMENDEPSF 0 0 0 1 0 0 0 K 0 10 Q 0 X 0 0 0 1 0 0 0 K (\050e) 348.66 178.34 T (xception classes are not sho) 356.28 178.34 T (wn\051) 467.12 178.34 T 54 72 558 720 C 0 0 612 792 C 34 418 36 432 R 0 X 0 0 0 1 0 0 0 K V 34 103.5 36 129.5 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 Interface) 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 (12) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X -0.22 (of zero or more objects of class) 108 712 P 4 10 Q -0.45 (Attribute) 260.05 712 P 0 12 Q -0.22 (. Each attribute is denoted by a string identifier and) 314.05 712 P (can have zero or more values of any type.) 108 698 T 4 10 Q (public interface D) 140.4 667.33 T (irC) 248.4 667.33 T (ontext extends Context {) 266.4 667.33 T (public Attribute) 165.6 655.33 T (s g) 261.6 655.33 T (etAttributes\050Name name\051) 279.6 655.33 T (throws NamingException;) 216 643.33 T (public Attribute) 165.6 619.33 T (s g) 261.6 619.33 T (etAttributes\050Name name,) 279.6 619.33 T ( S) 342 607.33 T (tring[] attrIds\051) 366 607.33 T (throws NamingException;) 216 595.33 T (...) 165.6 583.33 T (public void modifyAttributes\050Name name,) 165.6 571.33 T (int modOp,) 342 559.33 T (Attribute) 342 547.33 T (s a) 396 547.33 T (ttrs\051) 414 547.33 T (throws NamingException;) 216 535.33 T (public void modifyAttributes\050Name name,) 165.6 511.33 T (Modification) 342 499.33 T (Item[] m) 414 499.33 T (ods\051) 462 499.33 T (throws NamingException;) 216 487.33 T (...) 165.6 475.33 T (}) 140.4 463.33 T (public class Attribute ... {) 140.4 439.33 T (...) 165.6 427.33 T (public String get) 165.6 415.33 T (ID\050) 267.6 415.33 T (\051) 285.6 415.33 T (;) 291.6 415.33 T (public Object get\050\051 throws NamingException;) 165.6 403.33 T (public) 165.6 391.33 T (NamingEnumeration) 207.6 391.33 T (Enumeration get) 309.6 391.33 T (All\050) 399.6 391.33 T (\051) 423.6 391.33 T (throws NamingException;) 216 379.33 T (...) 165.6 367.33 T (}) 140.4 355.33 T 0 12 Q -0.38 (The) 108 336 P 4 10 Q -0.76 (getAttributes\050\051) 132.95 336 P 0 12 Q -0.38 ( operations on a directory return some or all of its attributes. Attributes) 222.95 336 P -0.19 (are modified using two forms of) 108 322 P 4 10 Q -0.38 (modifyAttributes\050\051) 264.83 322 P 0 12 Q -0.19 (. Both forms make use a \322modification) 372.83 322 P (operation\323, one of:) 108 308 T 4 10 Q (ADD_ATTRIBUTE) 165.6 289.33 T (REPLACE_ATTRIBUTE) 165.6 277.33 T (REMOVE_) 165.6 265.33 T (ATTRIBUTE) 207.6 265.33 T 0 12 Q -0.15 (The) 108 246 P 4 10 Q -0.3 (ADD_ATTRIBUTE) 129.51 246 P 0 12 Q -0.15 ( operation adds values to an attribute if that attribute already exists, while) 207.51 246 P 0.15 (the) 108 232 P 4 10 Q 0.3 (REPLACE_ATTRIBUTE) 125.81 232 P 0 12 Q 0.15 ( operation discards any pre-existing values. The first form of) 227.81 232 P 4 10 Q 0.3 (modi-) 528 232 P 0.53 (fyAttributes\050\051) 108 218 P 0 12 Q 0.26 ( performs the specified operation on each element of a set of attributes. The) 192 218 P (second form of takes an) 108 204 T (array o) 225.64 204 T (f objects of class) 259.28 204 T 4 10 Q (ModificationItem) 342.6 204 T 0 12 Q (:) 438.6 204 T 4 10 Q (public class ModificationItem {) 140.4 185.33 T (public ModificationItem\050int modOp, Attribute attr\051 ...;) 165.6 173.33 T (...) 165.6 161.33 T (}) 140.4 149.33 T 0 12 Q -0.1 (Each operation is performed on its corresponding attribute in the order specified. When possi-) 108 130 P -0.08 (ble, a context implementation should perform each call to) 108 116 P 4 10 Q -0.16 (modifyAttributes\050\051) 387.25 116 P 0 12 Q -0.08 ( as an atomic) 495.25 116 P (operation.) 108 102 T 34 652 36 674 R V 34 604 36 626 R V 34 580 36 590 R V 34 544 36 554 R V 34 496 36 506 R V 34 472 36 482 R V 34 364 36 434 R V 34 262 36 272 R V 34 200 36 212 R V 34 158 36 168 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 Interface) 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 (13) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 12 Q 0 X (5.2.2) 66 712 T (Directory Objects as Naming Contexts) 108 712 T 0 F 0.29 (The) 108 692 P 4 10 Q 0.58 (DirContext) 129.95 692 P 0 12 Q 0.29 ( interface also behaves as a naming context by extending the) 189.95 692 P 4 10 Q 0.58 (Context) 486.72 692 P 0 12 Q 0.29 ( inter-) 528.72 692 P 0.17 (face. This means that any directory object can also provide a naming context. In addition to a) 108 678 P -0.7 (directory object keeping a variety of information about a person, for example, it is also a natural) 108 664 P 0.03 (naming context for resources associated with that person: a person\325s printers, file system, cal-) 108 650 P -0.51 (endar,) 108 636 P 1 F -0.51 (etc.) 140.14 636 P 0 F -0.51 (An application that is performing directory operations can use) 159.63 636 P 4 10 Q -1.02 (InitialDirContext) 456 636 P 0 12 Q (i) 108 622 T (nstead of) 111.34 622 T 4 10 Q (javax.naming.) 162.19 622 T (InitialContext) 240.19 622 T 0 12 Q ( to create its initial context:) 324.19 622 T 4 10 Q (public class Initial) 140.4 603.33 T (DirContext) 260.4 603.33 T (extends InitialContext implements) 241.2 591.33 T (DirContext {) 445.2 591.33 T (public Initial) 165.6 579.33 T (DirContext\050) 249.6 579.33 T (\051 ...;) 315.6 579.33 T (...) 165.6 567.33 T (}) 140.4 555.33 T 0 12 Q 0.45 (Hybrid operations perform certain naming and directory operations in a single atomic opera-) 108 536 P (tion:) 108 522 T 4 10 Q (public interface) 140.4 503.33 T (DirContext e) 242.4 503.33 T (xtends Context {) 314.4 503.33 T (...) 165.6 491.33 T (public void bind\050Name name, Object obj, Attribute) 165.6 479.33 T (s a) 459.6 479.33 T (ttrs\051) 477.6 479.33 T (throws NamingException;) 216 467.33 T (...) 165.6 455.33 T (}) 140.4 443.33 T 0 12 Q -0.63 (Other hybrid operations that are provided are) 108 424 P 4 10 Q -1.26 (rebind\050\051) 323.21 424 P 0 12 Q -0.63 ( and) 371.21 424 P 4 10 Q -1.26 (createSubcontext\050\051) 393.29 424 P 0 12 Q -0.63 (that accept) 506.98 424 P (an additional) 108 410 T 4 10 Q (Attributes) 173.33 410 T 0 12 Q ( a) 233.33 410 T (rgument) 241.66 410 T 4 F (.) 281.65 410 T 3 F (5.2.3) 66 367 T (Searches) 108 367 T 0 F -0.23 (The) 108 347 P 4 10 Q -0.47 (DirContext) 129.43 347 P 0 12 Q -0.23 ( i) 189.43 347 P -0.23 (nterface supports content-based searching of directories. In the simplest and) 195.53 347 P -0.04 (most common form of usage, the application specifies a set of attributes \321 possibly with spe-) 108 333 P 0.08 (cific values \321 to match. It then invokes the) 108 319 P 4 10 Q 0.16 (DirContext.search\050\051) 325.69 319 P 0 12 Q 0.08 ( method on the directory) 439.69 319 P (object, which returns the matching directory objects along with the requested attributes.) 108 305 T 4 10 Q (public interface) 140.4 286.33 T (DirContext e) 242.4 286.33 T (xtends Context {) 314.4 286.33 T (...) 165.6 274.33 T (public) 165.6 262.33 T (NamingE) 207.6 262.33 T (numeration search\050Name name,) 249.6 262.33 T (Attribute) 360 250.33 T (s m) 414 250.33 T (atchingAttributes\051) 432 250.33 T (throws NamingException;) 216 238.33 T (public) 165.6 214.33 T (NamingE) 207.6 214.33 T (numeration search\050Name name,) 249.6 214.33 T (Attribute) 342 202.33 T (s m) 396 202.33 T (atchingAttributes,) 414 202.33 T (String[] attributesToReturn\051) 342 190.33 T (throws NamingException;) 216 178.33 T (...) 165.6 166.33 T (}) 140.4 154.33 T 0 12 Q 0.14 (The results of the search are returned as a) 108 135 P 4 10 Q 0.27 (NamingEnumeration) 311.48 135 P 0 12 Q 0.14 ( containing a) 413.48 135 P 0.14 (n enumeration of) 475.74 135 P (objects of class) 108 121 T 4 10 Q (SearchResult) 184.32 121 T 4 12 Q (:) 256.32 121 T 34 564 36 630 R V 34 476 36 510 R V 34 452 36 462 R V 34 406 36 418 R V 34 343 36 355 R V 34 247 36 293 R V 34 199 36 221 R V 34 163 36 173 R V 34 131 36 143 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "13" 17 %%Page: "14" 18 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 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 (14) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X (public class SearchResult extends Binding {) 140.4 713.33 T (...) 165.6 701.33 T (public Attribute) 165.6 689.33 T (s g) 261.6 689.33 T (etAttributes\050\051 ...;) 279.6 689.33 T (}) 140.4 677.33 T 0 12 Q -0.43 (In the more sophisticated case, it is possible to specify a search filter and to provide controlling) 108 658 P 0.53 (information such as the scope of the search and the maximum size of the results. The search) 108 644 P 0.27 (filter specifies a) 108 630 P 0.27 ( s) 185.18 630 P 0.27 (yntax) 193.11 630 P 0.27 (that follows I) 223.04 630 P 0.27 (nternet RFC 1960) 287.57 630 P 0.27 ( f) 374.1 630 P 0.27 (or LDAP. The) 381.36 630 P 4 10 Q 0.53 (SearchControls) 454.15 630 P 0 12 Q 0.27 ( ar-) 538.15 630 P -0.6 (gument s) 108 616 P -0.6 (pecify such things as the scope of the search: this can include a single directory object,) 151.07 616 P (all of its children, or all of its descendants in the directory hierarchy.) 108 602 T 4 10 Q (public interface) 140.4 583.33 T (DirContext e) 242.4 583.33 T (xtends Context {) 314.4 583.33 T (...) 165.6 571.33 T (public) 165.6 559.33 T (NamingE) 207.6 559.33 T (numeration search\050Name name,) 249.6 559.33 T (String filter,) 354 547.33 T (SearchCon) 354 535.33 T (trols ctls\051) 408 535.33 T (throws NamingException;) 216 523.33 T (public) 165.6 499.33 T (NamingE) 207.6 499.33 T (numeration search\050Name name,) 249.6 499.33 T (String filter) 354 487.33 T (,) 432 487.33 T (Object[] filterArgs,) 354 475.33 T (SearchCon) 354 463.33 T (trols ctls\051) 408 463.33 T (throws NamingException;) 216 451.33 T (...) 165.6 439.33 T (}) 140.4 427.33 T 3 12 Q (5.2.4) 66 405 T 0 10 Q (S) 108 405 T 3 12 Q (chema) 113.56 405 T 0 F -0.06 (A schema describes the rules that define the structure of a namespace and the attributes stored) 108 385 P -0.2 (within it. The granularity in the use of the schema can range from a single schema that is asso-) 108 371 P (ciated with the entire namespace, to a per-attribute, fine-grained schema description.) 108 357 T 0.28 (Because schemas can be expressed as an information tree, it is natural to use for this purpose) 108 337 P -0.73 (the naming and directory interfaces already defined in JNDI. This is powerful because the sche-) 108 323 P -0.47 (ma part of a namespace is accessible to applications in a uniform way. A browser, for example,) 108 309 P 0.07 (can access information in the schema tree just as though it were accessing any other directory) 108 295 P (objects.) 108 281 T 0.62 (Applications can retrieve the schema associated with a directory object when the underlying) 108 261 P (context implementation provides the appropriate support.) 108 247 T 4 10 Q -0.28 (DirContext.getSchema\050\051) 108 227 P 0 12 Q -0.14 ( is used to retrieve the root of the schema tree associated with a di-) 240 227 P 0.08 (rectory object. The root has children such as \322ClassDefinition\323,) 108 213 P 0.08 (\322AttributeDefinition\323, \322Syn-) 420.61 213 P 1.11 (taxDefinition\323, and \322MatchingRules\323, each denoting the kind of definition being described.) 108 199 P 4.2 (The schema root and its descendents are objects of type) 108 185 P 4 10 Q 8.4 (DirContext) 419.94 185 P 0 12 Q 4.2 (.) 479.94 185 P 4.2 ( The) 482.94 185 P 4 10 Q 8.4 (DirCon-) 516 185 P 3.91 (text.getSchemaClassDefinition\050\051) 108 171 P 0 12 Q 1.96 ( method returns a node under \322ClassDefinition\323 that) 294 171 P (contains information about a particular directory object.) 108 157 T 34 686 36 708 R V 34 612 36 638 R V 34 532 36 590 R V 34 460 36 506 R V 34 436 36 446 R V 34 181 36 193 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "14" 18 %%Page: "15" 19 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 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 (15) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X (public interface) 140.4 713.33 T (DirContext e) 242.4 713.33 T (xtends Context {) 314.4 713.33 T (...) 165.6 701.33 T (public) 165.6 689.33 T (DirContext g) 207.6 689.33 T (etSchema\050Name name\051) 279.6 689.33 T (throws NamingException;) 216 677.33 T (public) 165.6 653.33 T (DirContext g) 207.6 653.33 T (etSchemaClassDefinition\050Name name\051) 279.6 653.33 T (throws NamingException;) 216 641.33 T (...) 165.6 629.33 T (}) 140.4 617.33 T 0 12 Q 3.95 (In addition, the schema associated with any attribute can be accessed using the) 108 578 P 4 10 Q 7.91 (At-) 540 578 P (tribute.getAttributeDefinition\050\051) 108 564 T 0 12 Q ( and) 300 564 T 4 10 Q (getAttributeSyntaxDefinition\050\051) 323.33 564 T 0 12 Q (methods.) 503.33 564 T 4 10 Q (public class Attribute ... {) 140.4 525.33 T (...) 165.6 513.33 T -0.9 (public) 165.6 501.33 P -0.9 (DirContext g) 206.7 501.33 P -0.9 (etAttributeDefinition\050\051) 277.8 501.33 P -0.9 (throws NamingException;) 420.9 501.33 P (public) 165.6 489.33 T (DirContext g) 207.6 489.33 T (etAttributeSyntaxDefinition\050\051) 279.6 489.33 T (throws NamingException;) 190.8 477.33 T (...) 165.6 465.33 T (}) 140.4 453.33 T 0 12 Q (Figure 3 is an example showing the different associations for accessing schema information.) 108 410 T 34 686 36 720 R V 34 650 36 660 R V 34 626 36 636 R V 34 462 36 520 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "15" 19 %%Page: "16" 20 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 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 (16) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 F 0 X (Figur) 54 713.33 T (e 3: Example mapping Dir) 77.71 713.33 T (ectory to Schema) 190.31 713.33 T 3 14 Q (5.3) 54 269 T (Context) 78.5 269 T (Environment) 129.43 269 T 0 12 Q -0.38 (JNDI applications need a way to communicate various preferences) 108 248.33 P -0.38 ( and information t) 425.54 248.33 P -0.38 (hat define) 510.73 248.33 P 0.19 (the environment in which naming and directory services are accessed. For example, an appli-) 108 234.33 P (cation that wants to specify the level of security for accessing a directory service can do so by) 108 220.33 T (setting the) 108 206.33 T 4 10 Q ( java.naming.security.*) 157.67 206.33 T 0 12 Q (environment) 302.87 206.33 T (properties.) 366.53 206.33 T 0.34 (As another example, when directory and naming services are distributed, the source of infor-) 108 186.33 P (mation is in more than one place \321 replicas, master, caches,) 108 172.33 T 1 F (etc.) 401.94 172.33 T 0 F ( An application may need to) 418.93 172.33 T 0.11 (access information from the authoritative source. It can do so by using the) 108 158.33 P 4 10 Q 0.21 (java.naming.au-) 468 158.33 P (thoritative) 108 144.33 T 0 12 Q ( environment) 174 144.33 T (property.) 240.66 144.33 T -0.71 (Environment properties a) 108 124.33 P -0.71 (re defined in relatively generic terms. For example, an application can) 228.55 124.33 P 0.75 (state a preference for the strength of authentication by setting the environment) 108 110.33 P 0.75 ( property) 491.84 110.33 P 4 10 Q 1.5 (ja-) 540 110.33 P 4.01 (va.naming.security.authentication) 108 96.33 P 0 12 Q 2 ( to) 306 96.33 P 4 10 Q 4.01 (none) 325.34 96.33 P 0 12 Q 2 (,) 349.34 96.33 P 4 10 Q 4.01 (simple) 357.34 96.33 P 0 12 Q 2 (, or) 393.34 96.33 P 4 10 Q 4.01 (strong) 416.34 96.33 P 0 12 Q 2 (. Individual directory) 452.34 96.33 P 0 0 0 1 0 0 0 K 54 292.33 558 710 C 0 0 0 1 0 0 0 K 123 488.5 110.83 456.5 2 L 3 H 2 Z 0 X 0 0 0 1 0 0 0 K N 444.17 547.33 435 517 2 L N 200 566.17 246.67 515.33 2 L N 190.71 526.83 302.22 543.5 R 7 X V 7 9 Q 0 X (AttributeDefinition) 195.11 532.53 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 446.17 647 425 620.33 2 L N 465.83 651.17 498.33 632.83 2 L N 414.17 596.17 413.33 572 2 L N 405.83 601.17 381.67 573.67 2 L N 428.33 603.67 445 575.33 2 L N 373.33 547 370.83 518.67 2 L N 454.17 547 461.67 517 2 L N 461.67 554.5 497.5 516.17 2 L N 502.5 614.83 493.33 602.33 2 L N 517.69 617.25 531.67 599 2 L N 413.33 547 406.67 517 2 L N 365 553.67 336.67 518.67 2 L N 361.67 492.83 350 467 2 L N 373.33 492.83 381.67 468.67 2 L N 190 560.33 190.83 516.5 2 L N 196.67 496.17 210.83 459.5 2 L N 133.33 488.67 144.17 455.33 2 L N 0 1 1 0 1 0 0 K 306 611 405 611 2 L 0 1 1 0 1 0 0 K N 90 450 1.5 1.5 222.64 212.84 597.67 GG 211.74 596.65 214.31 593.86 202 587.69 209.17 599.44 4 Y 0 Z N 211.74 596.65 214.31 593.86 202 587.69 209.17 599.44 4 Y V 212.84 597.67 M 227.84 611.48 266.31 611 306 611 D 2 Z N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 12 Q 0 0 0 1 0 0 0 K (getSchema\050\051) 297 620 T 5 F (Schema Tree) 90 611 T [7.476 6.479] 3.738 I 198.83 701 M 263.45 701 315.83 543.84 315.83 350 D 0.5 H N J 7 9 Q (SyntaxDefinition) 210.6 558.28 T 1 1 0 0 0 0 1 K 1 X 1 1 0 0 0 0 1 K 90 450 13.5 13.5 382.5 390.5 G 0 X 90 450 13.5 13.5 382.5 390.5 A 0 0 0 1 0 0 0 K 6 12 Q 0 0 0 1 0 0 0 K (DirContext) 405 386 T 1 1 0 0 0 0 1 K 132.17 439.88 126.77 431.78 137.57 431.78 3 Y 1 X 1 1 0 0 0 0 1 K V 0 X N 263.37 443.65 257.97 435.55 268.77 435.55 3 Y 1 X V 0 X N 398.12 444.32 391.47 433.72 404.77 433.72 3 Y 1 X V 0 X N 457.6 491.67 452.2 483.57 463 483.57 3 Y 1 X V 0 X N 275.7 441.32 270.3 433.22 281.1 433.22 3 Y 1 X V 0 X N 474.1 491.67 468.7 483.57 479.5 483.57 3 Y 1 X V 0 X N 497.53 487.82 492.13 479.72 502.93 479.72 3 Y 1 X V 0 X N 325.53 491.48 320.13 483.38 330.93 483.38 3 Y 1 X V 0 X N 256.03 451.82 250.63 443.72 261.43 443.72 3 Y 1 X V 0 X N 381.83 359.55 376.43 351.45 387.23 351.45 3 Y 1 X V 0 X N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (Atttribute) 403.83 350.93 T 356.67 326.5 520 410.67 R N 0 1 1 0 1 0 0 K 0 1 1 0 1 0 0 K 90 450 1.5 1.5 166.79 237.98 432.72 GG 236.52 433.06 235.66 429.37 223.63 436.09 237.39 436.76 4 Y 3 H 0 Z N 236.52 433.06 235.66 429.37 223.63 436.09 237.39 436.76 4 Y V 335.98 429 M 295.09 429 258.62 427.88 237.98 432.72 D 2 Z N 0 0 0 1 0 0 0 K 4 F 0 0 0 1 0 0 0 K (getAttributeDefinition\050\051) 71.67 397.33 T 0 1 1 0 1 0 0 K 0 1 1 0 1 0 0 K 90 450 1.5 1.5 145.8 296.69 437.66 GG 295.45 438.5 293.31 435.36 284.5 445.94 297.58 441.64 4 Y 0 Z N 295.45 438.5 293.31 435.36 284.5 445.94 297.58 441.64 4 Y V 321.67 434.83 M 312.3 434.83 302.63 433.62 296.69 437.66 D 2 Z N 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K (getAttributeSyntaxDefinition\050\051) 80.83 369.83 T 210 403.17 237.5 433.17 2 L 0.5 H N 303.33 436.5 245.83 380.67 2 L N 5 F (Directory Tree) 338.83 638.83 T 79.1 551.5 176.67 568.17 R 7 X V 7 9 Q 0 X (ClassDefinition) 82.95 557.2 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 1 1 0 1 0 0 K 0 1 1 0 1 0 0 K 90 450 1.5 1.5 129.46 171.66 419.59 GG 170.71 420.75 167.77 418.33 162.29 430.96 173.63 423.16 4 Y 3 H 0 Z N 170.71 420.75 167.77 418.33 162.29 430.96 173.63 423.16 4 Y V 263.82 402.67 M 224.07 402.67 184.67 403.78 171.66 419.59 D 2 Z N 0 0 0 1 0 0 0 K 265.5 493.17 275.83 465.67 2 L 0 0 0 1 0 0 0 K N 4 12 Q (getSchemaClassDefinition\050\051) 106.33 337.67 T 1 1 0 0 0 0 1 K 210.6 432.6 205.2 424.5 216 424.5 3 Y 1 X 1 1 0 0 0 0 1 K V 0.5 H 0 X N 0 0 0 1 0 0 0 K 307.5 408.17 292.5 349 2 L 0 0 0 1 0 0 0 K N 119.17 490.67 98 458.17 2 L 3 H N 180 565.33 134.17 515.33 2 L N 183.33 496.5 173.33 466.5 2 L N 247.5 492.33 242.17 469.33 2 L N 127.67 486.33 123.33 457.33 2 L N 190.42 493.17 190.42 461.75 2 L N 258 489.67 258 469 2 L N 0 1 1 0 1 0 0 K 0 1 1 0 1 0 0 K 270 360 120.28 49.45 265 452.62 A 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 331 445.8 324.35 435.2 337.65 435.2 3 Y 1 X 1 1 0 0 0 0 1 K V 0.5 H 0 X N 344.33 439.13 337.68 428.53 350.98 428.53 3 Y 1 X V 0 X N 199.43 437.1 194.03 429 204.83 429 3 Y 1 X V 0 X N 139.93 432.43 134.53 424.33 145.33 424.33 3 Y 1 X V 0 X N 152.93 430.27 147.53 422.17 158.33 422.17 3 Y 1 X V 0 X N 5 X 90 450 12.5 12.5 538.17 588 G 0 X 90 450 12.5 12.5 538.17 588 A 5 X 90 450 10.75 12.25 510.08 625.92 G 0 X 90 450 10.75 12.25 510.08 625.92 A 5 X 90 450 13.5 13.5 489.67 588.17 G 0 X 90 450 13.5 13.5 489.67 588.17 A 3 X 90 450 13.5 13.5 454 658.83 G 0 X 90 450 13.5 13.5 454 658.83 A 1 X 90 450 13.5 13.5 415.33 560.17 G 0 X 90 450 13.5 13.5 415.33 560.17 A 1 X 90 450 13.5 13.5 366.33 505 G 0 X 90 450 13.5 13.5 366.33 505 A 1 X 90 450 13.5 13.5 406 504.5 G 0 X 90 450 13.5 13.5 406 504.5 A 1 X 90 450 13.5 13.5 465.67 504 G 0 X 90 450 13.5 13.5 465.67 504 A 1 X 90 450 13.5 13.5 449.33 561.17 G 0 X 90 450 13.5 13.5 449.33 561.17 A 1 X 90 450 13.5 13.5 375.67 562.33 G 0 X 90 450 13.5 13.5 375.67 562.33 A 1 X 90 450 13.5 13.5 497.17 504.17 G 0 X 90 450 13.5 13.5 497.17 504.17 A 1 X 90 450 13.5 13.5 435.83 504.67 G 0 X 90 450 13.5 13.5 435.83 504.67 A 1 X 90 450 13.5 13.5 333.5 506.17 G 0 X 90 450 13.5 13.5 333.5 506.17 A 1 X 90 450 13.5 13.5 130.17 501.83 G 0 X 90 450 13.5 13.5 130.17 501.83 A 1 X 90 450 13.5 13.5 189.83 575.5 G 0 X 90 450 13.5 13.5 189.83 575.5 A 1 X 90 450 13.5 13.5 258 503.17 G 0 X 90 450 13.5 13.5 258 503.17 A 1 X 90 450 13.5 13.5 213 446.5 G 0 X 90 450 13.5 13.5 213 446.5 A 1 X 90 450 13.5 13.5 148.83 444.83 G 0 X 90 450 13.5 13.5 148.83 444.83 A 1 X 90 450 13.5 13.5 417 611.33 G 0 X 90 450 13.5 13.5 417 611.33 A 1 X 90 450 13.5 13.5 344.33 453.5 G 0 X 90 450 13.5 13.5 344.33 453.5 A 1 X 90 450 13.5 13.5 274.33 454.33 G 0 X 90 450 13.5 13.5 274.33 454.33 A 1 X 90 450 13.5 13.5 190.83 502.83 G 0 X 90 450 13.5 13.5 190.83 502.83 A 1 X 90 450 13.5 13.5 386.5 456.33 G 0 X 90 450 13.5 13.5 386.5 456.33 A 0 0 0 1 0 0 0 K 0 0 612 792 C 0 0 0 1 0 0 0 K 34 244.33 36 278.33 R 0 X 0 0 0 1 0 0 0 K V 34 202.33 36 214.33 R V 34 106.33 36 152.33 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "16" 20 %%Page: "17" 21 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 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 (17) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X 0.95 (service providers implement the mapping) 108 712 P 0.95 (of the environment properties) 315.04 712 P 0.95 (appropriate to their) 464.13 712 P (service.) 108 698 T 0 (A context\325s environment is represented as a) 108 678 P 4 10 Q 0.01 (Hashtable) 320.99 678 P 0 12 Q 0 ( or any of its subclasses \050e.g.) 374.99 678 P 4 10 Q 0.01 (Proper-) 516 678 P 0.59 (ties) 108 664 P 0 9.6 Q 0.24 (1) 132 668.8 P 0 12 Q 0.3 (\051. It is t) 136.8 664 P 0.3 (ypically specified using an argument to the) 172.36 664 P 4 10 Q 0.59 (InitialContext) 384.08 664 P 0 12 Q 0.3 ( and) 468.08 664 P 4 10 Q 0.59 (InitialDir-) 492 664 P 0.18 (Context) 108 650 P 0 12 Q 0.09 ( c) 150 650 P 0.09 (onstructors. They are inherited from the parent context as context methods proceed) 158.42 650 P -0.19 (from one context to the next.) 108 636 P -0.19 (For example, the following code creates an environment consist-) 248.54 636 P (ing of two security-related properties and creates an initial context using that environment.) 108 622 T 4 10 Q (Hashtable env = new Hashtable\0505, 0.75\051;) 140.4 603.33 T (env.put\050\322java.naming.security.principal\323, \322jsmith\323\051;) 140.4 591.33 T (env.put\050\322java.naming.security.credentials\323, \322xxxxxxx\323\051;) 140.4 579.33 T (Context ctx = new InitialContext\050env\051;) 140.4 567.33 T 0 12 Q (You can also do the same thing using) 108 548 T 4 10 Q (Properties) 290.65 548 T 0 12 Q (.) 350.65 548 T 4 10 Q (Properties env = new Properties\050\051;) 140.4 529.33 T (env.put\050\322java.naming.security.principal\323, \322jsmith\323\051;) 140.4 517.33 T (env.put\050\322java.naming.security.credentials\323, \322xxxxxxx\323\051;) 140.4 505.33 T (Context ctx = new InitialContext\050env\051;) 140.4 493.33 T 0 12 Q (There are th) 108 474 T (ree) 165.97 474 T (environment-related) 183.62 474 T (methods in the) 283.93 474 T 4 10 Q (Context) 357.6 474 T 0 12 Q ( interface) 399.6 474 T (.) 444.58 474 T 4 10 Q (Object a) 140.4 455.33 T (ddToEnvironment\050) 188.4 455.33 T (String propName, Object propValue\051) 284.4 455.33 T (throws NamingException;) 165.6 443.33 T (Object r) 140.4 431.33 T (emoveFromEnvironment\050) 188.4 431.33 T (String propName\051) 314.4 431.33 T (throws NamingException;) 165.6 419.33 T (Hashtable getEnvironment\050\051 throws NamingException;) 140.4 407.33 T 0 12 Q -0.05 (The first two methods u) 108 388 P -0.05 (pdate the environment) 222.48 388 P -0.05 ( o) 329.7 388 P -0.05 (f this context by adding or deleting) 338.66 388 P -0.05 (individual) 509.33 388 P (entries. The last method returns the context\325s environment.) 108 374 T (Appendix A) 108 354 T ( specifies) 166.99 354 T (a preliminary list of environment properties.) 214.98 354 T (See Section 7.5 for security-related considerations when using environment properties.) 108 334 T 3 14 Q (5.4) 54 306.67 T ( Referrals) 75 306.67 T 0 12 Q -0.04 (Some directory services support the notion of) 108 286 P 1 F -0.04 (referrals) 329.35 286 P 0 F -0.04 ( for redirecting a client\325s request to an-) 371.35 286 P -0.33 (other server. If the) 108 272 P 4 10 Q -0.66 (java.naming.referral) 200.99 272 P 0 12 Q -0.33 ( e) 320.99 272 P -0.33 (nvironment) 328.99 272 P -0.33 (property i) 386.99 272 P -0.33 (s set to \322) 433.65 272 P 4 10 Q -0.66 (follow) 474.33 272 P 1 12 Q -0.33 (\323) 510.33 272 P 0 F -0.33 (, the ser-) 517.01 272 P 3.49 (vice provider implementation will automatically attempt to follow each referral that it) 108 258 P 0.09 (encounters.) 108 244 P 0.09 (It the value is \322) 169.16 244 P 4 10 Q 0.18 (ignore) 242.84 244 P 0 12 Q 0.09 (\323, referrals are ignored. If the value is \322) 278.84 244 P 4 10 Q 0.18 (throw) 468.16 244 P 0 12 Q 0.09 (\323, t) 498.16 244 P 0.09 (he option) 512.91 244 P 0.01 (of whether or not to follow a referral\321and thereby complete the context operation\321is left up) 108 230 P (to the application through the use of a) 108 216 T 1 F (referral exception.) 292.64 216 T 0 F (The abstract class) 108 196 T 4 10 Q (ReferralException) 196.31 196 T 0 12 Q ( is used to represent a referral:) 298.31 196 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 (Note that if you use) 84 101.33 T 4 9 Q (Properties) 165.38 101.33 T 0 10 Q (, only the top-le) 219.38 101.33 T (v) 282.46 101.33 T (el properties are consulted\321its def) 287.31 101.33 T (aults are not consulted\321) 427.18 101.33 T (because) 84 89.33 T 4 9 Q (Hashtable.get\050\051) 118.15 89.33 T 0 10 Q ( is used when retrie) 199.15 89.33 T (ving entries from the en) 276.66 89.33 T (vironment. See) 371.8 89.33 T 4 9 Q (java.util.Proper-) 434.85 89.33 T (ties) 84 77.33 T 0 10 Q ( for details.) 105.6 77.33 T 34 212 36 720 R V 34 74 36 108 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "17" 21 %%Page: "18" 22 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 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 (18) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X (public abstract class ReferralException extends NamingException {) 140.4 713.33 T (public abstract Context getReferralContext\050\051) 165.6 701.33 T (throws NamingException;) 190.8 689.33 T (public abstract Object getReferralInfo\050\051;) 165.6 665.33 T (public abstract boolean skipReferral\050\051;) 165.6 653.33 T (}) 140.4 641.33 T 0 12 Q -0.07 (When a referral is encountered and the client has requested that referrals not be) 108 622 P -0.07 (ignored or) 490.17 622 P -0.07 (au-) 542.68 622 P -0.63 (tomatically followed, a) 108 608 P 4 10 Q -1.25 (ReferralException) 220.11 608 P 0 12 Q -0.63 ( is thrown. The) 322.11 608 P 4 10 Q -1.25 (getReferralInfo\050\051) 395.26 608 P 0 12 Q -0.63 ( method pro-) 497.26 608 P 0.47 (vides information\321in a format appropriate to the service provider\321about where the referral) 108 594 P 0.38 (leads. The application is not required to examine this information; however, it might choose) 108 580 P 1.57 (to present it to a human user to help him determine whether to follow the referral or not.) 108 566 P 4 10 Q 0.68 (skipReferral\050\051) 108 552 P 0 12 Q 0.34 ( allows the application to discard a referral and continue to the next referral) 192 552 P (\050if any\051.) 108 538 T 0.06 (To continue the operation, the application re-invokes the method on the referral context using) 108 518 P -0.12 (the same arguments it supplied to the original method. The following code sample shows how) 108 504 P 4 10 Q (ReferralException) 108 490 T 0 12 Q ( may be used:) 210 490 T 4 10 Q (while \050true\051 {) 140.4 471.33 T (try {) 165.6 459.33 T (bindings = ctx.listBindings\050name\051;) 190.8 447.33 T (while \050bindings.hasMore\050\051\051 {) 190.8 435.33 T (b =) 216 423.33 T (\050Binding\051b) 240 423.33 T (indings.next\050\051;) 300 423.33 T (...) 216 411.33 T (}) 190.8 399.33 T (break;) 190.8 387.33 T (} catch \050ReferralException e\051 {) 165.6 375.33 T (ctx = e.getReferralContext\050\051;) 190.8 363.33 T (}) 165.6 351.33 T (}) 140.4 339.33 T 34 650 36 660 R V 34 618 36 630 R V 34 534 36 560 R V 34 408 36 430 R 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 Interface) 54 749.33 T (Scenarios) 518.56 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (19) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X (6) 81 708 T (Scenarios) 108 708 T 0 12 Q 0.44 (This section outlines a few application scenarios to help illustrate the capabilities enabled by) 108 680 P (JNDI.) 108 666 T 1 F (\245) 108 646 T -0.54 (The examples below are not meant to be prescriptive. There are often several ways to solve) 125 646 P (a problem, and JNDI is designed with flexibility in mind.) 126 632 T 3 14 Q (6.1) 54 604.67 T ( User authentication) 75 604.67 T 0 12 Q 0.51 (In secure systems, a user must authenticate himself to the computer, network, or service that) 108 584 P 0.67 (he wishes to access. For example, logging into Unix requires the user to supply a password.) 108 570 P 0.52 (Similarly, use of SSL requires that the user supply his X.509 certificate. Such authentication) 108 556 P 0.31 (information can be stored as attributes associated with each user in the directory. The system) 108 542 P 1.09 (performing the authentication would look up the attribute \050for example,) 108 528 P 1.09 (\322pa) 465.18 528 P 1.09 (ssword\323\051 of the) 481.84 528 P (user and verify the authenticity using the information supplied by the user.) 108 514 T 4 10 Q (DirContext c) 140.4 495.33 T (tx = new Initial) 212.4 495.33 T (DirContext\050) 308.4 495.33 T (\051;) 374.4 495.33 T (Attribute attr = ctx.getAttributes\050userName\051.get\050\322) 140.4 483.33 T (pa) 440.4 483.33 T (ssword\323\051;) 452.4 483.33 T (String password = \050String\051attr.get) 140.4 471.33 T (\050) 344.4 471.33 T (\051) 350.4 471.33 T (;) 356.4 471.33 T 3 14 Q (6.2) 54 432.67 T ( Electronic Mail) 75 432.67 T 0 12 Q -0.33 (A useful feature of an electronic mail system is a directory service that provides a mapping be-) 108 412 P 0.65 (tween users and email addresses. This allows mail users to search for the email address of a) 108 398 P 1.44 (particular user. This is analogous to searching for an individual\325s telephone number in the) 108 384 P -0.04 (phone book in order to dial his phone number. For example, when I want to send mail to John) 108 370 P -0.06 (Smith in my department, I search for \322John Smith\323 in the directory using a \322search\323 widget in) 108 356 P 0.13 (the mail application. The widget returns to me five entries of John Smith, from which I select) 108 342 P 0 (the one that is in a building on my site and use the email address attribute associated with that) 108 328 P (entry.) 108 314 T 4 10 Q (NamingEnume) 140.4 295.33 T (ration matches =) 206.4 295.33 T (deptCtx.search\050\322user\323, new Attributes\050\322name\323, \322John Smith\323\051\051;) 165.6 283.33 T (// use matches to construct a selectable list for end-user) 140.4 271.33 T (while \050matches.hasMore\050\051\051 {) 140.4 259.33 T (SearchResult item = \050SearchResult\051 matches.) 165.6 247.33 T (next\050\051;) 423.6 247.33 T (Attributes info = item.getAttributes\050\051;) 165.6 235.33 T (/* display attributes */) 165.6 223.33 T (...) 165.6 211.33 T (}) 140.4 199.33 T 0 12 Q 0.25 (The directory could also be used by users to set up personalized address books. For example,) 108 156 P 0.32 (once I have located John Smith\325s email address, I may not want to search the directory again) 108 142 P 0.34 (each time I send him mail. Instead, I can create a personal subtree in the directory in which I) 108 128 P (maintain entries that I frequently use, possibly by creating links to the existing entries.) 108 114 T 34 524 36 536 R V 34 468 36 502 R V 34 292 36 302 R V 34 244 36 254 R V 34 208 36 218 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "19" 23 %%Page: "20" 24 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T (Scenarios) 518.56 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (20) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 14 Q 0 X (6.3) 54 710.67 T ( Databases) 75 710.67 T 0 12 Q -0.43 (Database applications can use the directory to locate database servers. For example, a financial) 108 690 P 0.05 (application needs to get the stock quotes from a stock quote server using JDBC. This applica-) 108 676 P 1.21 (tion can enable the user to select the stock quote server based on specification of some at-) 108 662 P 0.06 (tributes \050such as coverage of which markets and frequency of quote updates\051. The application) 108 648 P -0.16 (searches the directory for quote servers that meet these attributes, and then retrieves the \322loca-) 108 634 P (tion\323 attribute \050a JDBC URL\051 of the selected quote server and connects to it.) 108 620 T 4 10 Q (NamingEnume) 140.4 601.33 T (ration matches =) 206.4 601.33 T (ctx.search\050\322service/stockQuotes\323,) 165.6 589.33 T (\322\050&\050market=NASDAQ\051\050updateFreqency<=300\051\051\323,) 190.8 577.33 T (searchctls\051) 190.8 565.33 T (;) 256.8 565.33 T (while \050matches.hasMore\050\051\051 {) 140.4 553.33 T (SearchResult item = \050SearchResult\051matches.) 165.6 541.33 T (next\050\051;) 417.6 541.33 T (Attribute location = item.getAttributes\050\051.get\050\322location\323\051;) 165.6 529.33 T (...) 165.6 517.33 T (}) 140.4 505.33 T 3 14 Q (6.4) 54 466.67 T ( Browsing) 75 466.67 T 0 12 Q 0.11 (When using almost any kind of interactive application that asks a user to input names, the us-) 108 446 P 0.28 (er\325s job is made easier if a namespace browser is available to him. The browser can either be) 108 432 P -0.62 (built into the application and tailored to suit that application in particular, or it can be more gen-) 108 418 P (eral-purpose such as a typical web browser.) 108 404 T -0.39 (A very simple example of a JNDI browser allows a user to \322walk\323 through a namespace, view-) 108 384 P -0.64 (ing the atomic names at each step along the way. The browser prints a \322*\323 to highlight the name) 108 370 P (of each) 108 356 T 4 10 Q (Context) 145.98 356 T 0 12 Q (, thus telling the user where he can go next.) 187.98 356 T 34 598 36 608 R V 34 562 36 572 R V 34 538 36 548 R V 34 514 36 524 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "20" 24 %%Page: "21" 25 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T (Scenarios) 518.56 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (21) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X (// Start at the top -- the initial context.) 140.4 713.33 T (Context ctx = new InitialContext\050\051;) 140.4 701.33 T (while \050ctx != null\051 {) 140.4 689.33 T (// display one level) 272.4 689.33 T (NamingEnume) 165.6 677.33 T (ration) 231.6 677.33 T (items = ctx.list\050\051;) 273.6 677.33 T (while \050items.hasMoreElements\050\051\051 {) 165.6 665.33 T (NameClassPair item = \050NameClassPair\051items.) 190.8 653.33 T (next\050\051;) 442.8 653.33 T (if \050isContext\050item.getClassName\050\051\051\051 {) 190.8 641.33 T (System.out.print\050\322*\323\051;) 216 629.33 T (}) 190.8 617.33 T (else {) 190.8 605.33 T (System.out.print\050\322 \322\051;) 216 593.33 T (}) 190.8 581.33 T (System.out.println\050\322 \322 + item.getName\050\051\051;) 190.8 569.33 T (}) 165.6 557.33 T (// Take the next step down into the namespace.) 165.6 545.33 T (String target = input.readLine\050\051;) 165.6 533.33 T (try {) 165.6 521.33 T (ctx = \050Context\051ctx.lookup\050target\051;) 190.8 509.33 T (} catch \050NamingException e\051 {) 165.6 497.33 T (...) 190.8 485.33 T (} catch \050ClassCastException e\051 {) 165.6 473.33 T (// not a context; cannot traverse) 190.8 461.33 T (...) 190.8 449.33 T (}) 165.6 437.33 T (}) 140.4 425.33 T 3 14 Q (6.5) 54 386.67 T ( Network Printing) 75 386.67 T 0 12 Q 0.02 (An important function of a printing service is to provide a means for its human users to easily) 108 366 P 0.2 (discover and select printers in the network. An application that needs to print, or the machine) 108 352 P -0.07 (on which it runs, should not have to be configured each time a new printer is added to the net-) 108 338 P 1.05 (work. The scope of network access to printers may range from a workgroup to global. The) 108 324 P (printing service can use the directory to provide this capability.) 108 310 T -0.31 (Assume that printers are represented by a) 108 290 P 4 10 Q -0.61 (Printer) 307.46 290 P 0 12 Q -0.31 ( interface. One of the methods in it could be) 349.46 290 P 4 10 Q 0.58 (print\050\051) 108 276 P 0 12 Q 0.29 (which, when given an) 157.9 276 P 4 10 Q 0.58 (InputStream) 267.37 276 P 0 12 Q 0.29 (, will read data from) 333.37 276 P 4 10 Q 0.58 (InputStream) 435.46 276 P 0 12 Q 0.29 ( and print it) 501.46 276 P (on the printer represented by this instance of) 108 262 T 4 F (Printer) 324.62 262 T 0 F (.) 375.02 262 T 4 10 Q (interface Printer {) 165.6 243.33 T (void print\050InputStream data\051 throws PrinterException;) 190.8 231.33 T (...) 190.8 219.33 T (}) 165.6 207.33 T 0 12 Q -0.73 (A user selects a printer using a logical printer name, either explicitly or through default settings.) 108 188 P -0.37 (For example, the user may have specified a default printer to use for all his applications, which) 108 174 P 0.55 (is overridden only when he explicitly specifies another printer to use. The application that is) 108 160 P 0.11 (accepting the print request takes the printer name and looks it up in the directory service. The) 108 146 P (application expects to receive as the result an object that implements the) 108 132 T 4 10 Q (Printer) 457.94 132 T 0 12 Q ( interface.) 499.94 132 T 34 674 36 684 R V 34 650 36 660 R V 34 482 36 492 R V 34 446 36 456 R V 34 216 36 226 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "21" 25 %%Page: "22" 26 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T (Scenarios) 518.56 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (22) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X (void myAppPrint\050String printerName, String fileName\051) 140.4 713.33 T (throws IOException {) 165.6 701.33 T (try {) 165.6 689.33 T (DirContext c) 190.8 677.33 T (tx = new Initial) 262.8 677.33 T (DirContext\050) 358.8 677.33 T (\051;) 424.8 677.33 T (Printer prt = \050Printer\051 ctx.lookup\050printerName\051;) 190.8 665.33 T (prt.print\050new FileInputStream\050fileName\051\051;) 190.8 653.33 T (} catch \050NamingException e\051{) 165.6 641.33 T (System.err.println\050\322Could not locate printer: \322 + e\051;) 190.8 629.33 T (} catch \050ClassCastException e\051 {) 165.6 617.33 T (System.err.println\050printerName) 190.8 605.33 T (+ \322) 376.8 605.33 T (does) 394.8 605.33 T (n) 424.8 605.33 T (ot) 430.8 605.33 T ( name a printer\323\051;) 442.8 605.33 T (}) 165.6 593.33 T (}) 140.4 581.33 T 3 12 Q (6.5.1) 66 559 T (Browsing and searching for printers) 108 559 T 0 F -0.62 (Selecting a printer by explicitly giving its name is but one way of identifying a printer. The user) 108 539 P 0.99 (can also use the directory to see the different printers available \050browsing\051, or to search for) 108 525 P -0.6 (printers with particular attributes. For example the user can ask the directory to list all the print-) 108 511 P -0.42 (ers on the second floor of building 5 in the Mountain View campus, or search for all color laser) 108 497 P -0.09 (printers with 600dpi resolution. From the application\325s perspective, just as) 108 483 P 4 10 Q -0.17 (lookup\050\051) 467.1 483 P 0 12 Q -0.09 ( returned) 515.1 483 P 0.31 (a) 108 469 P 4 10 Q 0.63 (Printer) 116.64 469 P 0 12 Q 0.31 ( object, the list and search operations also provide the same capability of returning) 158.64 469 P 4 10 Q (Printer) 108 455 T 0 12 Q ( objects that the application could use to submit print requests.) 150 455 T 34 674 36 684 R V 34 602 36 612 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "22" 26 %%Page: "23" 27 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T (Security Considerations) 461.61 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (23) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X (7) 81 708 T (Security Considerations) 108 708 T 0 12 Q (There are two main settings in which JNDI is used: in Java applications and in Java applets.) 108 680 T -0.01 (In the case of Java applications, the code is trusted and the application can access service pro-) 108 660 P -0.09 (viders from the local classpath. Furthermore, there is no restriction if the service providers ac-) 108 646 P 0.17 (cess local files, or make network connections to naming or directory servers anywhere on the) 108 632 P (network.) 108 618 T -0.39 (In the case of Java applets, there can be trusted applets and untrusted applets. Within an applet,) 108 598 P 0.94 (there can be portions that are trusted and portions that are not trusted. The) 108 584 P 1 F 0.94 (Sharing Context) 478.73 584 P -0.2 (Handles) 108 570 P 0 F -0.2 ( and) 148 570 P 1 F -0.2 (Context Environment) 170.91 570 P 0 F -0.2 ( sections below are especially applicable to applets contain-) 273.03 570 P (ing both trusted and untrusted code.) 108 556 T -0.01 (An applet\325s access to service providers, especially service providers that require the use of re-) 108 536 P (stricted resources \050like the file system or network connections\051 may be severely limited.) 108 522 T 3 14 Q (7.1) 54 494.67 T (JNDI Classes) 78.5 494.67 T 0 12 Q 0.38 (The classes in the) 108 474 P 4 10 Q 0.76 (javax.naming) 197.5 474 P 0 12 Q 0.38 (,) 269.5 474 P 4 10 Q 0.76 (javax.naming.) 275.88 474 P 0.76 (directory) 353.88 474 P 0 12 Q 0.38 ( and) 407.88 474 P 4 10 Q 0.76 (javax.naming.) 431.97 474 P 0.76 (spi) 509.97 474 P 0 12 Q 0.38 ( pack-) 527.97 474 P -0.18 (ages contain no native methods. They do not require any special installation in order to run in-) 108 460 P (side an applet or an application.) 108 446 T -0.35 (JNDI uses several system properties \050see Appendix A\051. This allows applets and applications to) 108 426 P 0.06 (be configured easily without much programming. However, an applet may have restricted ac-) 108 412 P 0.34 (cess to some or all system properties as a result of the security manager installed on the plat-) 108 398 P -0.09 (form on which the applet is running. Consequently, JNDI also allows these same properties to) 108 384 P (be specified as environment properties of a context.) 108 370 T -0.57 (In JDK1.2, the JNDI classes will only use) 108 350 P 4 10 Q -1.14 (begin privileged) 307.42 350 P 0 12 Q -0.57 (/) 402.28 350 P 4 10 Q -1.14 (end privileged) 405.62 350 P 0 12 Q -0.57 ( sections when) 488.48 350 P -0.39 (accessing the system properties listed in the) 108 336 P 1 F -0.39 (Program Configuration) 318.23 336 P 0 F -0.39 ( and) 432.18 336 P 1 F -0.39 (Access Configuration) 454.73 336 P 0 F (sections in Appendix A.) 108 322 T 3 14 Q (7.2) 54 294.67 T (Security Model) 78.5 294.67 T 0 12 Q 0.58 (JNDI does not define a security model or a common security interface for accessing naming) 108 274 P 0.04 (and directory servers. Security-related operations, such as those required for authentication or) 108 260 P -0.66 (access control to the directory service, are dealt with by individual service providers. JNDI pro-) 108 246 P 0.34 (vides the means by which an application or applet can pass such security-related information) 108 232 P -0.02 (to service providers in order to establish a connection with the service, but does not itself take) 108 218 P (part in such security-related activities.) 108 204 T -0.52 (JNDI also provides the means by which security-related problems can be indicated to the client) 108 184 P (in the form of security-related exceptions.) 108 170 T 0.38 (JNDI service providers are controlled by the security manager in place when they try to gain) 108 150 P 0.17 (access to protected resources such as the file system or network. Some service providers may) 108 136 P 0.09 (control directory access by making use of the new JDK1.2 security architecture \050for example,) 108 122 P (allowing access to special ports for administration-related applets\051.) 108 108 T 34 104 36 720 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "23" 27 %%Page: "24" 28 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T (Security Considerations) 461.61 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (24) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 14 Q 0 X (7.3) 54 710.67 T (Access To Servers) 78.5 710.67 T 0 12 Q 0.05 (Naming and directory services typically have their own security system in place to protect in-) 108 690 P -0.42 (formation stored therein. For example, one directory might require that its users first \322login\323 to) 108 676 P 0.06 (the directory before reading or updating information in the directory. Some services might al-) 108 662 P (low anonymous access to part of its namespace/directory.) 108 648 T -0.01 (Once a user has logged to a service, it is imperative for security reasons not to share that priv-) 108 628 P (ilege with untrusted code.) 108 614 T 3 14 Q (7.4) 54 586.67 T (Sharing Context Handles) 78.5 586.67 T 0 12 Q 0.01 (In the following discussion, we refer to a) 108 566 P 1 F 0.01 (context handle) 307.69 566 P 0 F 0.01 ( as a reference to a) 378.01 566 P 4 10 Q 0.01 (Context) 470.67 566 P 0 12 Q 0.01 ( instance.) 512.67 566 P 1.4 (This is analogous to how a reference to a) 108 552 P 4 10 Q 2.81 (Reader) 320.26 552 P 0 12 Q 1.4 (/) 356.26 552 P 4 10 Q 2.81 (Writer) 359.59 552 P 0 12 Q 1.4 (/) 395.59 552 P 4 10 Q 2.81 (InputStream) 398.93 552 P 0 12 Q 1.4 (/) 464.93 552 P 4 10 Q 2.81 (OutputStream) 468.26 552 P 0 12 Q 1.4 ( in-) 540.26 552 P (stance is often referred to as a) 108 538 T 1 F (file handle) 254.28 538 T 0 F (.) 305.28 538 T -0.14 (A context handle should be treated like any other protected resource. If a piece of trusted code) 108 518 P 1.18 (obtains a context handle \050possibly by authenticating its access with the directory server\051, it) 108 504 P -0.45 (should protect the use of that context against unauthorized or untrusted code. This is analogous) 108 490 P 0.65 (to how application and/or applet code should protect file handles. For example, if a piece of) 108 476 P 0.59 (trusted code opens a file for writing \050and it was granted such privilege because of its trusted) 108 462 P 0.21 (nature\051, it should be careful about passing that file handle to any other pieces of code, trusted) 108 448 P (or otherwise.) 108 434 T -0.31 (Similarly, giving access of a context handle to untrusted code may lead to its misuse in access-) 108 414 P -0.36 (ing or updating information in the directory, or accessing security-sensitive environment prop-) 108 400 P (erties associated with the context.) 108 386 T 3 14 Q (7.5) 54 358.67 T (Context Environment) 78.5 358.67 T 0 12 Q -0.47 (JNDI allows the application/applet to pass preferences and information to a context in the form) 108 338 P -0.43 (of an environment. The application/applet can also get the current environment from a context.) 108 324 P (See Section 5.3 and Appendix A for more information on a context\325s environment.) 108 310 T -0.66 (The nature of the information contained in a context\325s environment might be sensitive and need) 108 290 P 0.26 (protection from untrusted access. Specifically, the environment properties) 108 276 P 4 10 Q 0.52 (java.naming.se-) 468 276 P 7.87 (curity.principal) 108 262 P 0 12 Q 3.94 ( and) 204 262 P 4 10 Q 7.87 (java.naming.security.credentials) 235.2 262 P 0 12 Q 3.94 (contain information that) 434.14 262 P 0.36 (should not be given out to untrusted code. Service providers might take precaution to protect) 108 248 P -0.36 (against accessing these properties \050see) 108 234 P 1 F -0.36 ( Responsibilities of Service Providers) 290.52 234 P 0 F -0.36 ( below\051. Client ap-) 469.08 234 P -0.38 (plications and applets should take care not to pass context handles with such sensitive environ-) 108 220 P (ment properties to untrusted code.) 108 206 T 3 14 Q (7.6) 54 178.67 T (Class Loading) 78.5 178.67 T 0 12 Q -0.59 (JNDI allows the class files of object factories to be loaded dynamically. The current implemen-) 108 158 P 0.01 (tation uses the RMI class loader. The classes can only be loaded if there is a security manager) 108 144 P 0.74 (installed, and if that security manager permits the class to be loaded. When such classes are) 108 130 P (loaded, they run in the security context dictated by the security manager.) 108 116 T 34 112 36 720 R 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 (Security Considerations) 461.61 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (25) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 14 Q 0 X (7.7) 54 710.67 T (Serializable Objects) 78.5 710.67 T 0 12 Q -0.1 (Several of the JNDI classes are serializable. This allows the objects to be accessed in the form) 108 690 P -0.16 (of a byte stream, possibly outside of the environment in which they were created. See the doc-) 108 676 P (ument at the following URL regarding security issues related to serialized objects.) 108 662 T (http://java.sun.com/products/jdk/1.1/docs/guide/serialization/spec/security.doc.html) 108 642 T 3 14 Q (7.8) 54 614.67 T (Responsibilities of Service Providers) 78.5 614.67 T 3 12 Q (7.8.1) 66 591 T (Context Environment) 108 591 T 0 F -0.11 (When a context handle is created \050either by getting the initial context or by looking it up or by) 108 571 P -0.69 (creating it from the directory\051, some environment properties may be specified for it. Sometimes) 108 557 P 0.15 (security-related properties are required for the creation of the context handle \050such as user in-) 108 543 P 0.27 (formation that \322logs\323 the user in with the directory\051. The service provider should take care to) 108 529 P (protect this security-sensitive information from untrusted code.) 108 515 T 0.34 (The service provider needs to protect the context\325s environment from being tampered or oth-) 108 495 P -0.41 (erwise modified by untrusted code. The service provider needs to protect the security-sensitive) 108 481 P -0.26 (environment properties from being read by untrusted code. It might do this by disallowing any) 108 467 P 0.58 (thread whose execution context and/or trust level is different than that originally held by the) 108 453 P 0.63 (thread that created the context handle to use the context handle. Or it might disallow certain) 108 439 P 0.84 (operations \050such as accessing security-sensitive environment properties\051. Or it might simply) 108 425 P (not return security-sensitive environment properties, or only return them to trusted code.) 108 411 T 3 F (7.8.2) 66 388 T (Network Security) 108 388 T 0 F 0.22 (Untrusted code \050such as those found in untrusted applets\051 have limited access to the network.) 108 368 P 0.39 (Untrusted applets, for example, can only create a network connection to the host from which) 108 354 P -0.52 (they were downloaded. With finer-grain security models, it will be possible for the service pro-) 108 340 P -0.22 (vider itself be trusted code, and hence be allowed to connect to hosts not allowed for untrusted) 108 326 P -0.15 (applets. In such a scenario, the service provider should be careful not to compromise the secu-) 108 312 P -0.43 (rity intended by the security manager. If the service provider is sure that access by an untrusted) 108 298 P -0.27 (applet to the directory will cause no security problems, then it may proceed to offer such a ser-) 108 284 P 1.11 (vice to untrusted code. For example, allowing untrusted code to access a directory \322anony-) 108 270 P -0.55 (mously\323 would post no security problems because the directory already allows any anonymous) 108 256 P (client \050Java or otherwise\051 to access the same data.) 108 242 T -0.2 (Most naming and directory services are accessed over the network. Although the data request-) 108 222 P 0.26 (ed is protected by the server\325s authentication and access control mechanisms, some protocols) 108 208 P -0.29 (do not protect \050encrypt\051 the data being sent as replies. Again, this is not a problem particular to) 108 194 P 0.14 (a client using JNDI but a problem for any client accessing the directory. The service provider) 108 180 P 0.04 (should document the security implications associated with using the associated directory over) 108 166 P (a network.) 108 152 T 3 F (7.8.3) 66 129 T (Accessing Local Files) 108 129 T 0 F -0.25 (Similar to network access, untrusted code has limited access to the local file system. If the ser-) 108 109 P 0.4 (vice provider has special privileges for accessing local files, it should do so with utmost pre-) 108 95 P (caution so as not to compromise the security policies intended by the runtime/platform.) 108 81 T 34 77 36 720 R V 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 (Security Considerations) 461.61 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (26) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 12 Q 0 X (7.8.4) 66 712 T (Privileged Code, Native Methods) 108 712 T 0 F 0.24 (A service provider that is written completely in Java with no privileged sections is controlled) 108 692 P -0.11 (by the same security policies afforded other Java code. All protected resources that it attempts) 108 678 P (to access go through the same security manager and access controller.) 108 664 T -0.02 (If a service provider contains privileged code sections, or if it contains native methods, then it) 108 644 P 0.85 (needs to be especially careful to preserve the security policies intended by the runtime/plat-) 108 630 P (form.) 108 616 T 34 552 36 720 R V 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 (Design Choices) 494.95 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (27) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X (8) 81 708 T (Design Choices) 108 708 T 3 14 Q (8.1) 54 650.67 T ( Separation of Interfaces into Context and) 75 650.67 T (DirContext) 329.7 650.67 T 0 12 Q -0.55 (There are) 108 630 P -0.55 (two c) 155.54 630 P -0.55 (ore interfaces in JNDI:) 181.32 630 P 4 10 Q -1.1 (Context) 291.75 630 P 0 12 Q -0.55 (, and) 333.75 630 P 4 10 Q -1.1 (DirContext) 358.98 630 P 0 12 Q -0.55 (,) 418.98 630 P -0.55 ( with) 421.98 630 P 4 10 Q -1.1 (DirContext) 448.22 630 P 0 12 Q -0.55 ( e) 508.22 630 P -0.55 (xtending) 516 630 P -0.3 (the base naming operations in) 108 616 P 4 10 Q -0.6 (Context) 252.81 616 P 0 12 Q -0.3 ( with directory service operations. They have been sep-) 294.81 616 P 0.21 (arated into separate interfaces both for modularity and also in keeping with the \322pay for what) 108 602 P (you use\323 goal of JNDI.) 108 588 T -0.02 (Naming is a basic component found in many computing services such as file systems, spread-) 108 568 P 0.14 (sheets, calendar services, and directory services. By having a base) 108 554 P 4 10 Q 0.28 (Context) 435.94 554 P 0 12 Q 0.14 ( interface for the) 477.94 554 P -0.39 (naming operations, we enable its use by all these other services, not just for directory services.) 108 540 P 4 10 Q -1.08 (DirContext) 108 520 P 0 12 Q -0.54 ( e) 168 520 P -0.54 (xtends) 175.79 520 P 4 10 Q -1.08 (Context) 209.58 520 P 0 12 Q -0.54 ( to provide basic directory service operations, which include ma-) 251.58 520 P 0.47 (nipulation of attributes associated with named objects, attribute-based searches, and schema-) 108 506 P (related operations of those attributes and named objects.) 108 492 T 3 14 Q (8.2) 54 464.67 T ( Separation of JNDI into Different Functional Packages) 75 464.67 T 0 12 Q 0.45 (JNDI is separated into two client packages \050) 108 444 P 4 10 Q 0.9 (javax.naming) 322.77 444 P 0 12 Q 0.45 (,) 394.77 444 P 4 10 Q 0.9 (javax.naming.) 401.23 444 P 0.9 (directory) 479.23 444 P 0 12 Q 0.45 (\051 and) 533.22 444 P 0.59 (a service provider package \050) 108 430 P 4 10 Q 1.19 (javax.naming.) 245.65 430 P 1.19 (spi) 323.65 430 P 0 12 Q 0.59 (\051. The idea is that each package contains the) 341.65 430 P 0.11 (interfaces and classes required for a particular category of applications, again in keeping with) 108 416 P -0.12 (the \322pay for what you use\323 goal. For example, an application that just wants to perform name-) 108 402 P 0.21 (lookups only needs to use the) 108 388 P 4 10 Q 0.42 (javax.naming) 253.91 388 P 0 12 Q 0.21 ( p) 325.91 388 P 0.21 (ackage. An application that wants to examine/) 335.12 388 P 0.87 (modify attributes associated with an object uses the) 108 374 P 4 10 Q 1.74 (javax.naming) 364.93 374 P 0 12 Q 0.87 ( a) 436.93 374 P 0.87 (nd) 446.13 374 P 4 10 Q 1.74 (javax.naming.) 462 374 P 1.74 (di-) 540 374 P -0.7 (rectory) 108 360 P 0 12 Q -0.35 ( packages. There is a step-by-step progression of what classes and interfaces each cat-) 150 360 P (egory of application writer needs to learn and use.) 108 346 T 3 14 Q (8.3) 54 318.67 T ( Separation of Client APIs and Service Provider Interfaces) 75 318.67 T 0 12 Q 0.03 (JNDI separates interfaces and classes that a client application needs to use from those that are) 108 298 P 0.53 (only of interest to service providers into different packages. For example, a client would use) 108 284 P -0.11 (interfaces and classes from) 108 270 P 4 10 Q -0.23 (javax.naming) 240.17 270 P 0 12 Q -0.11 (,) 312.17 270 P -0.11 ( while a service provider that is hooking up a nam-) 315.17 270 P -0.19 (ing service would use both) 108 256 P 4 10 Q -0.38 (javax.naming) 238.7 256 P 0 12 Q -0.19 ( a) 310.7 256 P -0.19 (nd) 318.84 256 P 4 10 Q -0.38 (javax.naming.) 333.65 256 P -0.38 (spi) 411.65 256 P 0 12 Q -0.19 (. The package delineation) 429.65 256 P 0.34 (minimizes confusion for the application developer and makes clear which packages he needs) 108 242 P (to examine when writing his program.) 108 228 T 3 14 Q (8.4) 54 200.67 T ( Multiple methods for listing Context) 75 200.67 T 0 12 Q -0.13 (There are two common types of applications that list contexts: browser-style applications, and) 108 180 P 0.88 (applications that need to perform operations on the objects in a context en-masse. Browser-) 108 166 P 0.14 (style applications typically want to display the names of the contents of a context. In addition) 108 152 P -0.33 (to the names, many browsers often require type information of the objects bound to the names,) 108 138 P -0.54 (so that it can display appropriate pictorial representations of the objects. The browser is usually) 108 124 P -0.09 (interactive. Once a user has used a browser to display the contents of a context, he would then) 108 110 P (select one or a few of the entries displayed and request more information on it.) 108 96 T 34 626 36 660 R V 34 516 36 528 R V 34 426 36 452 R V 34 370 36 396 R V 34 252 36 278 R V 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 (Design Choices) 494.95 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (28) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X -0.51 (Some applications need to perform operations on objects within a context en-masse. For exam-) 108 712 P 0 (ple, a backup program might want to perform \322file stats\323 operations on all the objects in a file) 108 698 P -0.05 (directory. A printer administration program might want to restart all the printers in a building.) 108 684 P (To perform such operations, these programs need to obtain all the objects bound in a context.) 108 670 T 0.56 (With these two common styles of usage in mind, the) 108 650 P 4 10 Q 1.13 (Context) 368.64 650 P 0 12 Q 0.56 ( interface has two types of list) 410.64 650 P -0.59 (methods:) 108 636 P 4 10 Q -1.18 (list\050\051) 154.41 636 P 0 12 Q -0.59 ( and) 190.41 636 P 4 10 Q -1.18 (listBindings\050\051) 212.55 636 P 0 12 Q -0.59 (.) 296.55 636 P 4 10 Q -1.18 ( list\050\051) 304.37 636 P 0 12 Q -0.59 ( returns a list of name/class-name pairs while) 345.19 636 P 4 10 Q 5.01 (listBindings\050\051) 108 622 P 0 12 Q 2.5 ( returns a list of name/class-name/object tuples.) 192 622 P 4 10 Q 5.01 (list\050\051) 440.83 622 P 0 12 Q 2.5 ( is designed for) 476.83 622 P -0.51 (browser-style applications that want mostly just the names and types of objects bound in a con-) 108 608 P -0.18 (text.) 108 594 P 4 10 Q -0.35 (listBindings\050\051) 131.82 594 P 0 12 Q -0.18 ( is for applications that want to potentially get all the objects in the con-) 215.82 594 P 0.08 (text, as well as its name and type.) 108 580 P 4 10 Q 0.15 (listBindings\050\051) 272.58 580 P 0 12 Q 0.08 ( returns an enumeration of) 356.58 580 P 4 10 Q 0.15 (Binding) 486.58 580 P 0 12 Q 0.08 (. Both) 528.59 580 P -0.33 (the) 108 566 P 4 10 Q -0.66 (listBindings\050\051) 125.33 566 P 0 12 Q -0.33 ( operation itself and invocation of methods in the) 209.33 566 P 4 10 Q -0.66 (Binding) 445.34 566 P 0 12 Q -0.33 ( class \050e.g.) 487.34 566 P 4 10 Q -0.66 (ge-) 540 566 P -0.84 (tObject\050\051) 108 552 P 0 12 Q -0.42 (\051 could be implemented lazily or eagerly. Using) 162 552 P 4 10 Q -0.84 (listBindings\050\051) 390.93 552 P 0 12 Q -0.42 (simply indicates) 480.08 552 P 0.37 (the potential that the caller might be wanting all or many of the objects in the context so that) 108 538 P -0.04 (implementations that are able can optimize for it. Using) 108 524 P 4 10 Q -0.08 (list\050\051) 378.27 524 P 0 12 Q -0.04 ( indicates that the caller is un-) 414.27 524 P -0.37 (likely to want all, if any, objects in the context so implementations can optimize for that if pos-) 108 510 P (sible.) 108 496 T 0.3 (An alternative is to have a single list operation and have the lazy or eager behavior as part of) 108 476 P 0.06 (the implementation of) 108 462 P 4 10 Q 0.13 (Binding) 217.19 462 P 0 12 Q 0.06 (. The advantage of this is that there is a single list operation to) 259.19 462 P 0.14 (learn. The disadvantage is that the caller has no way of indicating which piece of information) 108 448 P 0.39 (he wants back from list, and subsequently, implementations cannot optimize for the eventual) 108 434 P (behavior of the program.) 108 420 T 3 14 Q (8.5) 54 392.67 T ( Support for Federation) 75 392.67 T 0 12 Q -0.21 (Federation is a first-class concept in JNDI. In the client interfaces, it is supported by of the use) 108 372 P 0.36 (of the) 108 358 P 4 10 Q 0.73 (Name) 139.39 358 P 0 12 Q 0.36 ( interface for specifying names that can span one or more namespaces. The caller) 163.39 358 P -0.06 (of the methods in the client interface need not know anything else regarding federation. Reso-) 108 344 P 0.09 (lution of names across multiple systems is handled by the SPI and does not involve any inter-) 108 330 P (vention on the part of the caller.) 108 316 T -0.22 (Although federation is a first-class concept, that does not mean that all callers and service pro-) 108 296 P -0.16 (viders must make use of it. If an application or service does not want to take advantage of fed-) 108 282 P 1.31 (eration, there is no requirement that) 108 268 P 4 10 Q 2.62 (Name) 290.18 268 P 0 12 Q 1.31 ( always span multiple namespaces.) 314.18 268 P 4 10 Q 2.62 (Name) 491.38 268 P 0 12 Q 1.31 ( can just) 515.38 268 P -0.09 (name objects within a single namespace, and the SPI can handle name resolution within a sin-) 108 254 P (gle namespace as well \050as a degenerate case of multiple namespace support\051.) 108 240 T 3 14 Q (8.6) 54 212.67 T (DirContext v) 78.5 212.67 T (ersus) 156.65 212.67 T (DirObject) 191.26 212.67 T 0 12 Q -0.41 (Instead of having) 108 192 P 4 10 Q -0.81 (DirContext) 193.1 192 P 0 12 Q -0.41 ( e) 253.1 192 P -0.41 (xtend) 261.02 192 P 4 10 Q -0.81 (Context) 290.28 192 P 0 12 Q -0.41 (, an alternative would be to not extend) 332.28 192 P 4 10 Q -0.81 (Context) 516 192 P 0 12 Q 0.34 (at all but to have a separate interface called) 108 178 P 4 10 Q 0.68 (DirObject) 321.34 178 P 0 12 Q 0.34 ( t) 375.34 178 P 0.34 (hat encapsulates all the directory-re-) 382.02 178 P 0.56 (lated methods. In that case, an object can implement both) 108 164 P 4 10 Q 1.12 (Context) 392.21 164 P 0 12 Q 0.56 ( and) 434.21 164 P 4 10 Q 1.12 (DirObject) 458.66 164 P 0 12 Q 0.56 ( i) 512.66 164 P 0.56 (f it sup-) 519.55 164 P 4.09 (ports both the naming and directory operations; another object might implement just) 108 150 P 4 10 Q (DirObject) 108 136 T 0 12 Q (.) 162 136 T 0.82 (The problem with eliminating) 108 116 P 4 10 Q 1.64 (DirContext) 257.95 116 P 0 12 Q 0.82 ( i) 317.95 116 P 0.82 (s that) 325.1 116 P 4 10 Q 1.64 (DirContext) 355.41 116 P 0 12 Q 0.82 ( c) 415.41 116 P 0.82 (ontains some hybrid opera-) 424.56 116 P 0.43 (tions that involve both naming and directories \050) 108 102 P 4 10 Q 0.85 (bind\050\051) 338.63 102 P 0 12 Q 0.43 (,) 374.63 102 P 4 10 Q 0.85 (createSubcontext\050\051) 381.05 102 P 0 12 Q 0.43 (methods that) 495.91 102 P -0.64 (accept attributes as arguments\051. To keep these operations) 108 88 P 1 F -0.64 (and) 379.84 88 P 0 F -0.64 ( have) 397.84 88 P 4 10 Q -1.27 (DirObject) 425.22 88 P 0 12 Q -0.64 ( a) 479.22 88 P -0.64 (t the same time) 486.91 88 P 34 160 36 222 R V 34 112 36 144 R V 34 84 36 96 R V 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 (Design Choices) 494.95 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (29) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X -0.18 (would produce the need for a third interface \050perhaps called) 108 712 P 4 10 Q -0.37 (DirContext) 396.07 712 P 0 12 Q -0.18 (\051) 456.07 712 P -0.18 ( to contain just these) 460.07 712 P (hybrids.) 108 698 T 0.19 (Furthermore, having) 108 678 P 4 10 Q 0.37 (DirContext) 210.02 678 P 0 12 Q 0.19 ( i) 270.02 678 P 0.19 (nstead of) 276.54 678 P 4 10 Q 0.37 (DirObject) 323.57 678 P 0 12 Q 0.19 ( i) 377.57 678 P 0.19 (s somewhat more convenient in that) 384.09 678 P -0.61 (you can perform some operations in one step instead of two. For example) 108 664 P 4 10 Q -1.22 (DirContext.getAt-) 456 664 P 0.53 (tributes\050\051) 108 650 P 0 12 Q 0.27 ( could be used to get the attributes associated with a named object, whereas with) 168 650 P 4 10 Q 1.34 (DirObject) 108 636 P 0 12 Q 0.67 (,) 162 636 P 0.67 ( you would need first to resolve to the object \050) 165 636 P 4 10 Q 1.34 (Context.lookup\050\051) 393.01 636 P 0 12 Q 0.67 (\051 and then use) 489.01 636 P 4 10 Q (DirObject.getAttributes\050\051) 108 622 T 0 12 Q ( to get the attributes from it.) 258 622 T 3 14 Q (8.7) 54 594.67 T ( Support for Schemas) 75 594.67 T 0 12 Q -0.44 (The) 108 574 P 4 10 Q -0.88 (DirContext) 129.22 574 P 0 12 Q -0.44 ( i) 189.22 574 P -0.44 (nterface contains support for schemas. For example, from a) 195.12 574 P 4 10 Q -0.88 (DirContext) 479.44 574 P 0 12 Q -0.44 ( o) 539.44 574 P -0.44 (b-) 548 574 P -0.39 (ject you can obtain its schema object, which points to the directory space where the schema for) 108 560 P -0.48 (this particular) 108 546 P 4 10 Q -0.97 (DirContext) 176.36 546 P 0 12 Q -0.48 ( i) 236.36 546 P -0.48 (nstance is defined. From a) 242.21 546 P 4 10 Q -0.97 (DirContext) 369.1 546 P 0 12 Q -0.48 ( o) 429.1 546 P -0.48 (bject, you can also obtain) 437.62 546 P -0.06 (its schema class definition \050i.e. information about what type of object this represents in the di-) 108 532 P -0.28 (rectory\051. There is further support for schemas in the) 108 518 P 4 10 Q -0.55 (Attribute) 356.78 518 P 0 12 Q -0.28 ( class, which contains methods) 410.78 518 P -0.55 (for obtaining an attribute\325s syntax information \050i.e. what is the type of the attribute\325s value\051 and) 108 504 P 0.35 (the attribute\325s definition \050e.g. is it multivalue, syntax, constraints on its syntax\051. There is no) 108 490 P 0.23 (requirement that any of this schema information be dynamically accessible \050i.e. points to live) 108 476 P 0.92 (directory spaces\051. Support for such schema information could be generated statically by the) 108 462 P -0.44 (service provider. For example, a particular directory service might only support string attribute) 108 448 P -0.13 (values, so it can hard-wire the syntax of the attributes that it returns. Another directory might) 108 434 P -0.35 (support only static schemas \050where information in the schema are not modifiable\051. Yet another) 108 420 P -0.08 (directory might support fully dynamic schemas. The interfaces and classes in) 108 406 P 4 10 Q -0.15 (DirContext) 480.42 406 P 0 12 Q -0.08 ( a) 540.42 406 P -0.08 (re) 548.68 406 P (flexible enough that these different levels of support for schemas can be accommodated.) 108 392 T 3 14 Q (8.8) 54 364.67 T ( Overloaded Methods in Context and) 75 364.67 T (DirContext) 299.78 364.67 T 0 12 Q 1.18 (For each method in the) 108 344 P 4 10 Q 2.37 (Context) 227.58 344 P 0 12 Q 1.18 ( and) 269.58 344 P 4 10 Q 2.37 (DirContext) 295.28 344 P 0 12 Q 1.18 ( i) 355.28 344 P 1.18 (nterfaces that accepts a) 362.8 344 P 4 10 Q 2.37 (Name) 481.49 344 P 0 12 Q 1.18 ( argument,) 505.49 344 P 1.47 (there is a corresponding overloaded form that accepts a) 108 330 P 4 10 Q 2.94 (String) 389.49 330 P 0 12 Q 1.47 ( argument for specifying a) 425.49 330 P (name.) 108 316 T 0.29 (The motivation for having the) 108 296 P 4 10 Q 0.57 (String) 256.42 296 P 0 12 Q 0.29 (-based methods is that there are many applications that) 292.42 296 P 1 (simply accepts a string name from the end-user and perform context methods on the object) 108 282 P -0.04 (named by that string name. For those applications, it is useful to have the context methods ac-) 108 268 P 0.98 (cepts a string for the name directly, instead of requiring the applications to first construct a) 108 254 P 4 10 Q (Name) 108 240 T 0 12 Q ( object using the string name.) 132 240 T -0.47 (The motivation for having the) 108 220 P 4 10 Q -0.94 (Name) 252.63 220 P 0 12 Q -0.47 (-based methods is that there are also many applications that) 276.63 220 P -0.02 (manipulate names and do not want to worry about syntactic details of the names\325 string forms) 108 206 P -0.51 (when composing and modifying names. These applications deal with the parsed form of names) 108 192 P 0.18 (and hence would prefer to deal with) 108 178 P 4 10 Q 0.37 (Name) 284.91 178 P 0 12 Q 0.18 ( objects rather than string names. For these applica-) 308.91 178 P -0.23 (tions, we provide the) 108 164 P 4 10 Q -0.45 (Name) 210.75 164 P 0 12 Q -0.23 (-based methods in the context interfaces. Not providing these meth-) 234.75 164 P -0.39 (ods would probably cause proliferation of) 108 150 P 4 10 Q -0.79 (Name) 309.6 150 P 0 12 Q -0.39 (-like interfaces/classes to support manipulation) 333.6 150 P (of names in their structural form in applications developed on top of JNDI.) 108 136 T 34 708 36 720 R V 34 674 36 686 R V 34 632 36 644 R V 34 570 36 582 R V 34 542 36 554 R V 34 402 36 414 R V 34 340 36 374 R V 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 (Design Choices) 494.95 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (30) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 14 Q 0 X (8.9) 54 710.67 T ( Reference and Referenceable) 75 710.67 T 0 12 Q -0.06 (There are different ways in which applications and services can use the directory to locate ob-) 108 690 P 0.19 (jects. JNDI is general enough that it accommodates several different models. For some appli-) 108 676 P 0.88 (cations, the object bound in the directory is the object itself. An application may build up a) 108 662 P -0.46 (dynamic directory while the application is active, and delete the directory when the application) 108 648 P -0.38 (exits. Another application might store URLs as attributes for locating objects in its namespace.) 108 634 P -0.52 (Other systems might bind some reference information in the directory, which can subsequently) 108 620 P -0.64 (be used to locate or access the actual object. This last case is quite common, especially for mak-) 108 606 P 0.23 (ing Java applications take advantage of services in the installed base. The reference in the di-) 108 592 P (rectory acts as a \322pointer\323 to the real object.) 108 578 T 0.14 (JNDI defines a) 108 558 P 4 10 Q 0.28 (Reference) 183.39 558 P 0 12 Q 0.14 ( class to provide a uniform way of representing reference informa-) 237.39 558 P 0.06 (tion. A) 108 544 P 4 10 Q 0.12 (Reference) 144.46 544 P 0 12 Q 0.06 ( contains information on how to access an object. It consists of a list of ad-) 198.46 544 P 0.27 (dresses and class information about the object to which this reference refers. When binding a) 108 530 P 0.17 (name to an object that is to be represented in the directory as a reference, the desired effect is) 108 516 P -0.55 (that the object\325s reference be extracted and bound. To allow for this behavior, the object\325s class) 108 502 P (must implement the) 108 488 T 4 10 Q (Referenceable) 206.34 488 T 0 12 Q ( interface, which contains the method) 284.34 488 T 4 10 Q (getReference\050\051) 467.3 488 T 0 12 Q (.) 551.3 488 T -0.27 (There is some similarity between the interfaces) 108 468 P 4 10 Q -0.54 (Serializable) 335.72 468 P 0 12 Q -0.27 ( and) 407.72 468 P 4 10 Q -0.54 (Referenceable) 430.5 468 P 0 12 Q -0.27 ( and a nat-) 508.5 468 P 0.03 (ural question is \322why not just use) 108 454 P 4 10 Q 0.05 (Serializable) 271.18 454 P 0 12 Q 0.03 ( instead?\323 The answer is that a serialized ob-) 343.18 454 P -0.21 (ject is really a frozen version of the object, whereas the reference contains just the information) 108 440 P 0.12 (needed to construct it. The serialized version may have a lot more state which may not be ap-) 108 426 P (propriate for storage in the directory.) 108 412 T 3 14 Q (8.10) 54 384.67 T ( Automatically Turning References into Objects) 82 384.67 T 0 12 Q -0.62 (For an object that is bound as a) 108 364 P 4 10 Q -1.24 (Reference) 255.71 364 P 0 12 Q -0.62 ( in the directory, JNDI SPI framework automatically) 309.7 364 P -0.5 (creates and instantiates the object identified by the reference. In this way, the program can sim-) 108 350 P -0.22 (ply narrow the result of) 108 336 P 4 10 Q -0.43 (lookup\050\051) 222.56 336 P 0 12 Q -0.22 ( to the expected class, instead of calling a separate operation) 270.56 336 P (to transform the result of) 108 322 T 4 10 Q (lookup\050\051) 230.32 322 T 0 12 Q ( into an object of the expected class.) 278.32 322 T 0.06 (For example, if you are looking up a printer object, a successful lookup would return to you a) 108 302 P (printer object that you can directly use.) 108 288 T 4 10 Q (Printer prt = \050Printer\051 ctx.lookup\050somePrinterName\051;) 140.4 269.33 T (prt.print\050someFileName\051;) 140.4 257.33 T 0 12 Q 0.29 (JNDI does this automatically, instead of requiring an explicit conversion step, because this is) 108 238 P 1.29 (expected to be the common usage pattern. By having the) 108 224 P 4 10 Q 2.58 (Reference) 395.86 224 P 0 12 Q 1.29 ( class, and a common) 449.86 224 P -0.15 (mechanism for converting a) 108 210 P 4 10 Q -0.3 (Reference) 244.71 210 P 0 12 Q -0.15 ( into the object identified by the) 298.71 210 P 4 10 Q -0.3 (Reference) 453.98 210 P 0 12 Q -0.15 (, JNDI en-) 507.98 210 P -0.02 (courages different applications and system providers to utilize this mechanism, rather than in-) 108 196 P (venting separate mechanisms on their own.) 108 182 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "30" 34 %%Page: "31" 35 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (31) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X ( Appendix A:) 145.25 415 T (JNDI Context) 252.76 415 T (Environment) 364.74 415 T 34 409 36 427 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "31" 35 %%Page: "32" 36 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (32) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 F 0 X (T) 223.24 713.33 T (able 1: JNDI En) 228.99 713.33 T (vir) 297.76 713.33 T (onment) 309.8 713.33 T (Pr) 344.52 713.33 T (operties) 354.89 713.33 T (Pr) 60 691.33 T (ogram Con\336guration) 70.37 691.33 T 4 F (java.naming.factory.initial) 60 671.33 T 0 F (Class name of initial conte) 285 671.33 T (xt f) 391.51 671.33 T (actory to use.) 405.02 671.33 T (When unspeci\336ed, determined by the) 285 659.33 T 4 F (java.naming.factory.initial) 285 647.33 T 0 F ( s) 447 647.33 T (ystem property) 453.39 647.33 T (.) 513.01 647.33 T (See) 285 635.33 T 4 F (InitialContext) 301.94 635.33 T 0 F (.) 385.94 635.33 T 4 F (java.naming.factory.object) 60 615.33 T 0 F -0.15 (Colon-separated list of class names of object f) 285 615.33 P -0.15 (actory classes to use.) 468.57 615.33 P (When unspeci\336ed, determined by) 285 603.33 T ( the) 419.42 603.33 T 4 F (java.naming.factory.object) 285 591.33 T 0 F ( s) 441 591.33 T (ystem property) 447.39 591.33 T (.) 507.01 591.33 T (See) 285 579.33 T 4 F (NamingManager.getObjectInstance\050\051) 301.94 579.33 T 0 F (.) 499.94 579.33 T 4 F (java.naming.factory.url.) 60 559.33 T (pkgs) 204 559.33 T 0 F (Colon-separated list of package pre\336x) 285 559.33 T (es to use when loading in) 437.04 559.33 T (URL conte) 285 547.33 T (xt f) 329.01 547.33 T (actories.) 342.52 547.33 T (When unspeci\336ed, determined by) 285 535.33 T ( the) 419.42 535.33 T 4 F (java.naming.factory.url.pkgs) 285 523.33 T 0 F ( system property) 453 523.33 T (.) 519.01 523.33 T (See) 285 511.33 T 4 F (NamingManager.getURLContext\050\051) 301.94 511.33 T 0 F (.) 475.94 511.33 T 3 F (Access Con\336guration) 60 491.33 T 4 F (java.naming.provider.) 60 471.33 T (url) 186 471.33 T 0 F (Speci\336es con\336guration information for pro) 285 471.33 T (vider to use.) 456.5 471.33 T (When unspeci\336ed, determined by the) 285 459.33 T 4 F (java.naming.provider.url) 285 447.33 T 0 F ( system property) 429 447.33 T (.) 495.01 447.33 T (When unspeci\336ed as system property or in en) 285 435.33 T (vironment,) 467.07 435.33 T (deter-) 513.18 435.33 T (mined by pro) 285 423.33 T (vider using its o) 338.18 423.33 T (wn con\336guration or disco) 402.1 423.33 T (v) 504.44 423.33 T (ery proto-) 509.29 423.33 T (cols.) 285 411.33 T 4 F (java.naming.) 60 391.33 T (dns.url) 132 391.33 T 0 F (Speci\336es the DNS host and domain names to use for the JNDI) 285 391.33 T (URL conte) 285 379.33 T (xt.) 329.01 379.33 T (When unspeci\336ed, determined by) 285 367.33 T ( the) 419.42 367.33 T 4 F (java.naming.dns.url) 285 355.33 T 0 F ( system property) 399 355.33 T (.) 465.01 355.33 T 3 F (Ser) 60 335.33 T (vice-Related) 74.34 335.33 T 4 F (java.naming.) 60 315.33 T (authoritative) 132 315.33 T 0 F (Speci\336es the authoritati) 285 315.33 T (v) 379.19 315.33 T (eness of the service requested. If \322true\323,) 384.04 315.33 T (speci\336es most authoritati) 285 303.33 T (v) 384.75 303.33 T (e source is to be used \050e.g. bypass an) 389.6 303.33 T (y) 536.64 303.33 T (caches, or bypass replicas in some systems\051. Otherwise, source) 285 291.33 T (need not be \050b) 285 279.33 T (ut can be\051 authoritati) 341.73 279.33 T (v) 427.02 279.33 T (e.) 431.87 279.33 T (When unspeci\336ed, def) 285 267.33 T (aults to f) 374.6 267.33 T (alse.) 409.5 267.33 T 4 F (java.naming.) 60 247.33 T (batchsize) 132 247.33 T 0 F (Speci\336es the preferred batch size to use when returning data via) 285 247.33 T (the service\325) 285 235.33 T (s protocol. This is a hint to the pro) 330.82 235.33 T (vider to return the) 468.17 235.33 T (results of operations in batches of the speci\336ed size, so that the) 285 223.33 T (pro) 285 211.33 T (vider can optimize its performance and usage of resources.) 298.18 211.33 T (When unspeci\336ed, determined by pro) 285 199.33 T (vider) 435.1 199.33 T (.) 455.1 199.33 T 4 F (java.naming.referral) 60 179.33 T 0 F (Speci\336es that referrals encountered by the service pro) 285 179.33 T (vider are to) 499.51 179.33 T (be follo) 285 167.33 T (wed automatically) 315.58 167.33 T (. If \322) 388.53 167.33 T (follo) 407.13 167.33 T (w\323) 425.77 167.33 T (, follo) 437.43 167.33 T (w referrals automati-) 461.07 167.33 T (cally) 285 155.33 T (.) 303.79 155.33 T ( If \322ignore\323, ignore referrals encountered. If \322thro) 306.29 155.33 T (w\323, thro) 504.57 155.33 T (w) 537.09 155.33 T 4 F (ReferralException) 285 143.33 T 0 F ( when a referral is encountered.) 387 143.33 T (When unspeci\336ed, determined by pro) 285 131.33 T (vider) 435.1 131.33 T (.) 455.1 131.33 T 3 F (Security) 60 111.33 T 4 F (java.naming.) 60 91.33 T (security.protocol) 132 91.33 T 0 F (Security protocol to use for service.) 285 91.33 T (When unspeci\336ed, determined by pro) 285 79.33 T (vider) 435.1 79.33 T (.) 455.1 79.33 T 54 703.75 54 72.25 2 L V 0.5 H 0 Z N 279 684.25 279 503.75 2 L V N 279 484.25 279 347.75 2 L V N 279 328.25 279 123.75 2 L V N 279 104.25 279 71.75 2 L V N 558 703.75 558 72.25 2 L V N 53.75 704 558.25 704 2 L V N 53.75 684 558.25 684 2 L V N 53.75 628 558.25 628 2 L V N 53.75 572 558.25 572 2 L V N 53.75 504 558.25 504 2 L V N 53.75 484 558.25 484 2 L V N 53.75 404 558.25 404 2 L V N 53.75 348 558.25 348 2 L V N 53.75 328 558.25 328 2 L V N 53.75 260 558.25 260 2 L V N 53.75 192 558.25 192 2 L V N 53.75 124 558.25 124 2 L V N 53.75 104 558.25 104 2 L V N 53.75 72 558.25 72 2 L V N 34 710 36 720 R V 34 644 36 678 R V 34 588 36 622 R V 34 556 36 566 R V 34 532 36 542 R V 34 432 36 478 R V 34 388 36 398 R V 34 364 36 374 R V 34 312 36 322 R V 34 244 36 254 R V 34 140 36 186 R V 34 88 36 98 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "32" 36 %%Page: "33" 37 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (33) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X (java.naming.) 60 691.33 T (security.authentication) 132 691.33 T 0 F (T) 285 691.33 T (ak) 290.31 691.33 T (es v) 299.65 691.33 T (alues) 315.23 691.33 T 4 F (none) 338.28 691.33 T 0 F (,) 362.28 691.33 T 4 F (simple) 367.28 691.33 T 0 F (,) 403.28 691.33 T 4 F (strong) 408.28 691.33 T 0 F (.) 444.28 691.33 T (When unspeci\336ed, determined by pro) 285 679.33 T (vider) 435.1 679.33 T (.) 455.1 679.33 T 4 F (java.naming.) 60 659.33 T (security.principal) 132 659.33 T 0 F (Identity of principal \050e.g. user\051 for the authentication scheme.) 285 659.33 T (When unspeci\336ed, def) 285 647.33 T (aults to the identity) 374.6 647.33 T (\050) 454.05 647.33 T (speci\336c to the authenti-) 457.38 647.33 T (cation scheme selected\051 of user running the application.) 285 635.33 T 4 F (java.naming.) 60 615.33 T (security.credentials) 132 615.33 T 0 F (Principal\325) 285 615.33 T (s credentials for the authentication scheme.) 323.89 615.33 T (When unspeci\336ed, obtained by the pro) 285 603.33 T (vider on behalf of the user) 439.27 603.33 T (,) 544.12 603.33 T (using the security infrastructure a) 285 591.33 T (v) 418.66 591.33 T (ailable to the pro) 423.41 591.33 T (vider) 490.75 591.33 T (.) 510.75 591.33 T -0.4 (Examples of dif) 285 579.33 P -0.4 (ferent types of credentials are passw) 347.83 579.33 P -0.4 (ords, k) 490.96 579.33 P -0.4 (e) 517.68 579.33 P -0.4 (ys, and) 521.97 579.33 P -0.27 (certi\336cates. The particular type of credentials is determined by the) 285 567.33 P (authentication scheme chosen.) 285 555.33 T 3 F (Inter) 60 535.33 T (nationalization) 81.51 535.33 T 4 F (java.naming.) 60 515.33 T (language) 132 515.33 T 0 F (Speci\336es a colon-separated list of preferred language to use with) 285 515.33 T -0.17 (this service \050e.g. \322) 285 503.33 P 4 F -0.4 (en-US) 359.32 503.33 P 0 F -0.17 (\323,) 389.32 503.33 P -0.17 (\322) 401.86 503.33 P 4 F -0.4 (fr) 406.3 503.33 P 0 F -0.17 (\323, \322) 418.3 503.33 P 4 F -0.4 (fr-CH) 432.02 503.33 P 0 F -0.17 (\323, \322) 462.02 503.33 P 4 F -0.4 (ja-JP-kanji) 475.73 503.33 P 0 F -0.17 (\323\051.) 541.73 503.33 P (Languages are speci\336ed using tags de\336ned in RFC 1766.) 285 491.33 T (When unspeci\336ed, the language preference \321 if an) 285 479.33 T (y \321 is deter-) 490.34 479.33 T (mined by the pro) 285 467.33 T (vider) 352.9 467.33 T (.) 372.9 467.33 T 3 F (T) 223.24 713.33 T (able 1: JNDI En) 228.99 713.33 T (vir) 297.76 713.33 T (onment) 309.8 713.33 T (Pr) 344.52 713.33 T (operties) 354.89 713.33 T 54 703.75 54 460.25 2 L V 0.5 H 0 Z N 279 704.25 279 547.75 2 L V N 279 528.25 279 459.75 2 L V N 558 703.75 558 460.25 2 L V N 53.75 704 558.25 704 2 L V N 53.75 672 558.25 672 2 L V N 53.75 628 558.25 628 2 L V N 53.75 548 558.25 548 2 L V N 53.75 528 558.25 528 2 L V N 53.75 460 558.25 460 2 L V N 34 688 36 698 R V 34 644 36 666 R V 34 612 36 622 R V 34 512 36 522 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "33" 37 %%Page: "34" 38 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (34) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "34" 38 %%Page: "35" 39 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (35) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X ( Appendix B: Examples for LDAP Programmers) 119.02 415 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "35" 39 %%Page: "36" 40 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (36) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 12 Q 0 X 0.19 (This appendix contains sample JNDI programs intended to help a developer familiar with the) 108 712 P -0.3 (LDAP C API. Starting with sample programs from the Netscape Directory SDK for accessing) 108 698 P 0.4 (and updating the directory using the LDAP C API, we show the equivalent way of doing the) 108 684 P (same thing for Java applications using JNDI.) 108 670 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "36" 40 %%Page: "37" 41 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (37) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 14 Q 0 X (B.1) 54 710.67 T ( Search the Directory) 77.34 710.67 T 3 12 Q (B.1.1) 64 687 T (Search Using LDAP C API) 108 687 T 4 9 Q (/*) 140.4 669 T ( * Copyright \050c\051 1996. Netscape Communications Corporation. All) 140.4 658 T ( * rights reserved.) 140.4 647 T ( *) 140.4 636 T ( * Search the directory for all people whose surname \050last name\051 is) 140.4 625 T ( * \322Jensen\323. Since the \322sn\323 attribute is a caseignorestring \050cis\051, case) 140.4 614 T ( * is not significant when searching.) 140.4 603 T ( *) 140.4 592 T ( */) 140.4 581 T (#include \322examples.h\323) 140.4 559 T (int) 140.4 537 T (main\050 int argc, char **argv \051) 140.4 526 T ({) 140.4 515 T ( LDAP *ld;) 140.4 504 T ( LDAPMessage *result, *e;) 140.4 493 T ( BerElement *ber;) 140.4 482 T ( char *a, *dn;) 140.4 471 T ( char **vals;) 140.4 460 T ( int i;) 140.4 449 T ( /* get a handle to an LDAP connection */) 140.4 427 T ( if \050 \050ld = ldap_init\050 MY_HOST, MY_PORT \051\051 == NULL \051 {) 140.4 416 T ( perror\050 \322ldap_init\323 \051;) 140.4 405 T ( return\050 1 \051;) 140.4 394 T ( }) 140.4 383 T ( /* authenticate to the directory as nobody */) 140.4 372 T ( if \050 ldap_simple_bind_s\050 ld, NULL, NULL \051 != LDAP_SUCCESS \051 {) 140.4 361 T ( ldap_perror\050 ld, \322ldap_simple_bind_s\323 \051;) 140.4 350 T ( return\050 1 \051;) 140.4 339 T ( }) 140.4 328 T ( /* search for all entries with surname of Jensen */) 140.4 317 T ( if \050 ldap_search_s\050 ld, MY_SEARCHBASE, LDAP_SCOPE_SUBTREE,) 140.4 306 T ( MY_FILTER, NULL, 0, &result \051 != LDAP_SUCCESS \051 {) 140.4 295 T ( ldap_perror\050 ld, \322ldap_search_s\323 \051;) 140.4 284 T ( return\050 1 \051;) 140.4 273 T ( }) 140.4 262 T ( /* for each entry print out name + all attrs and values */) 140.4 251 T ( for \050 e = ldap_first_entry\050 ld, result \051; e != NULL;) 140.4 240 T ( e = ldap_next_entry\050 ld, e \051 \051 {) 140.4 229 T ( if \050 \050dn = ldap_get_dn\050 ld, e \051\051 != NULL \051 {) 140.4 218 T ( printf\050 \322dn: %s\134n\323, dn \051;) 140.4 207 T ( ldap_memfree\050 dn \051;) 140.4 196 T ( }) 140.4 185 T ( for \050 a = ldap_first_attribute\050 ld, e, &ber \051;) 140.4 174 T ( a != NULL; a = ldap_next_attribute\050 ld, e, ber \051 \051 {) 140.4 163 T ( if \050\050vals = ldap_get_values\050 ld, e, a\051\051 != NULL \051 {) 140.4 152 T ( for \050 i = 0; vals[i] != NULL; i++ \051 {) 140.4 141 T ( printf\050 \322%s: %s\134n\323, a, vals[i] \051;) 140.4 130 T ( }) 140.4 119 T ( ldap_value_free\050 vals \051;) 140.4 108 T ( }) 140.4 97 T ( ldap_memfree\050 a \051;) 140.4 86 T ( }) 140.4 75 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "37" 41 %%Page: "38" 42 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (38) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X ( if \050 ber != NULL \051 {) 140.4 714 T ( ber_free\050 ber, 0 \051;) 140.4 703 T ( }) 140.4 692 T ( printf\050 \322\134n\323 \051;) 140.4 681 T ( }) 140.4 670 T ( ldap_msgfree\050 result \051;) 140.4 659 T ( ldap_unbind\050 ld \051;) 140.4 648 T ( return\050 0 \051;) 140.4 637 T (}) 140.4 626 T 3 12 Q (B.1.2) 64 593 T (Search Using JNDI) 108 593 T 4 9 Q (/*) 140.4 575 T ( * Copyright \050c\051 1997. Sun Microsystems. All rights reserved.) 140.4 564 T ( *) 140.4 553 T ( * Search the directory for all people whose surname \050last name\051 is) 140.4 542 T ( * \322Jensen\323. Since the \322sn\323 attribute is a caseignorestring \050cis\051, case) 140.4 531 T ( * is not significant when searching.) 140.4 520 T ( *) 140.4 509 T ( * [equivalent to search.c in Netscape\325s SDK.]) 140.4 498 T ( *) 140.4 487 T ( */) 140.4 476 T (import java.util.Properties;) 140.4 454 T (import java.util.Enumeration;) 140.4 443 T (import javax.naming.*;) 140.4 421 T (import javax.naming.directory.*;) 140.4 410 T (class Search {) 140.4 388 T (public static void main\050String[] args\051 {) 140.4 366 T ( Properties env = new Properties\050\051;) 140.4 344 T ( /*) 140.4 333 T ( * Specify the initial context implementation to use.) 140.4 322 T ( * This could also be set by using the -D option to the java program.) 140.4 311 T ( * For example,) 140.4 300 T ( * This could also be set by using the -D option to the java program.) 140.4 289 T 0.8 ( * java -Djava.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory) 140.4 278 P (Compare) 140.4 267 T ( */) 140.4 256 T ( env.put\050\322java.naming.factory.initial\323, Env.INITCTX\051;) 140.4 245 T ( /* Specify host and port to use for directory service */) 140.4 223 T ( env.put\050\322java.naming.provider.url\323, Env.MY_SERVICE\051;) 140.4 212 T ( try {) 140.4 190 T ( /* get a handle to an Initial DSContext */) 140.4 179 T ( DirContext ctx = new InitialDirContext\050env\051;) 140.4 168 T ( /* specify search constraints to search subtree */) 140.4 146 T ( SearchControls constraints = new SearchControls\050\051;) 140.4 135 T ( constraints.setSearchScope\050SearchControls.SUBTREE_SCOPE\051;) 140.4 124 T ( /* search for all entries with surname of Jensen */) 140.4 102 T ( NamingEnumeration results) 140.4 91 T ( = ctx.search\050Env.MY_SEARCHBASE, Env.MY_FILTER, constraints\051;) 140.4 80 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 (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X ( /* for each entry print out name + all attrs and values */) 140.4 703 T ( while \050results != null && results.hasMore\050\051\051 {) 140.4 692 T ( SearchResult si = \050SearchResult\051results.next\050\051;) 140.4 681 T ( /* print its name */) 140.4 659 T ( System.out.println\050\322name: \322 + si.getName\050\051\051;) 140.4 648 T ( Attributes attrs = si.getAttributes\050\051;) 140.4 626 T ( if \050attrs == null\051 {) 140.4 615 T ( System.out.println\050\322No attributes\323\051;) 140.4 604 T ( } else {) 140.4 593 T ( /* print each attribute */) 140.4 582 T ( for \050NamingEnumeration ae = attrs.getAll\050\051;) 140.4 571 T ( ae.hasMoreElements\050\051;\051 {) 140.4 560 T ( Attribute attr = \050Attribute\051ae.next\050\051;) 140.4 549 T ( String attrId = attr.getID\050\051;) 140.4 538 T ( /* print each value */) 140.4 516 T ( for \050Enumeration vals = attr.getAll\050\051;) 140.4 505 T ( vals.hasMoreElements\050\051;) 140.4 494 T -0.48 ( System.out.println\050attrId + \322: \322 + vals.nextElement\050\051\051\051) 140.4 483 P ( ;) 140.4 472 T ( }) 140.4 461 T ( }) 140.4 450 T ( System.out.println\050\051;) 165.6 439 T ( }) 140.4 428 T ( } catch \050NamingException e\051 {) 140.4 417 T ( System.err.println\050\322Search example failed\323\051;) 140.4 406 T ( e.printStackTrace\050\051;) 140.4 395 T ( }) 140.4 384 T (}) 140.4 373 T (}) 140.4 362 T 3 14 Q (B.2) 54 324.67 T ( Read An Entry) 77.34 324.67 T 3 12 Q (B.2.1) 64 301 T (Read Using LDAP C-API) 108 301 T 4 9 Q (/*) 140.4 283 T ( * Copyright \050c\051 1996. Netscape Communications Corporation. All) 140.4 272 T ( * rights reserved.) 140.4 261 T ( *) 140.4 250 T ( * Search the directory for the specific entry) 140.4 239 T ( * \322cn=Barbara Jensen, ou=Product Development, o=Ace Industry, c=US\323.) 140.4 228 T ( * Retrieve all attributes from the entry.) 140.4 217 T ( *) 140.4 206 T ( */) 140.4 195 T (#include \322examples.h\323) 140.4 173 T (int) 140.4 151 T (main\050 int argc, char **argv \051) 140.4 140 T ({) 140.4 129 T ( LDAP *ld;) 140.4 118 T ( LDAPMessage *result, *e;) 140.4 107 T ( BerElement *ber;) 140.4 96 T ( char *a, *dn;) 140.4 85 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 (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X ( char **vals;) 140.4 714 T ( int i;) 140.4 703 T ( /* get a handle to an LDAP connection */) 140.4 681 T ( if \050 \050ld = ldap_init\050 MY_HOST, MY_PORT \051\051 == NULL \051 {) 140.4 670 T ( perror\050 \322ldap_init\323 \051;) 140.4 659 T ( return\050 1 \051;) 140.4 648 T ( }) 140.4 637 T ( /* authenticate to the directory as nobody */) 140.4 626 T ( if \050 ldap_simple_bind_s\050 ld, NULL, NULL \051 != LDAP_SUCCESS \051 {) 140.4 615 T ( ldap_perror\050 ld, \322ldap_simple_bind_s\323 \051;) 140.4 604 T ( return\050 1 \051;) 140.4 593 T ( }) 140.4 582 T ( /* search for Babs\325 entry */) 140.4 571 T ( if \050 ldap_search_s\050 ld, ENTRYDN, LDAP_SCOPE_SUBTREE,) 140.4 560 T ( \322\050objectclass=*\051\323, NULL, 0, &result \051 != LDAP_SUCCESS \051 {) 140.4 549 T ( ldap_perror\050 ld, \322ldap_search_s\323 \051;) 140.4 538 T ( return\050 1 \051;) 140.4 527 T ( }) 140.4 516 T ( /* for each entry print out name + all attrs and values */) 140.4 505 T ( for \050 e = ldap_first_entry\050 ld, result \051; e != NULL;) 140.4 494 T ( e = ldap_next_entry\050 ld, e \051 \051 {) 140.4 483 T ( if \050 \050dn = ldap_get_dn\050 ld, e \051\051 != NULL \051 {) 140.4 472 T ( printf\050 \322dn: %s\134n\323, dn \051;) 140.4 461 T ( ldap_memfree\050 dn \051;) 140.4 450 T ( }) 140.4 439 T ( for \050 a = ldap_first_attribute\050 ld, e, &ber \051;) 140.4 428 T ( a != NULL; a = ldap_next_attribute\050 ld, e, ber \051 \051 {) 140.4 417 T ( if \050\050vals = ldap_get_values\050 ld, e, a\051\051 != NULL \051 {) 140.4 406 T ( for \050 i = 0; vals[i] != NULL; i++ \051 {) 140.4 395 T ( printf\050 \322%s: %s\134n\323, a, vals[i] \051;) 140.4 384 T ( }) 140.4 373 T ( ldap_value_free\050 vals \051;) 140.4 362 T ( }) 140.4 351 T ( ldap_memfree\050 a \051;) 140.4 340 T ( }) 140.4 329 T ( if \050 ber != NULL \051 {) 140.4 318 T ( ber_free\050 ber, 0 \051;) 140.4 307 T ( }) 140.4 296 T ( printf\050 \322\134n\323 \051;) 140.4 285 T ( }) 140.4 274 T ( ldap_msgfree\050 result \051;) 140.4 263 T ( ldap_unbind\050 ld \051;) 140.4 252 T ( return\050 0 \051;) 140.4 241 T (}) 140.4 230 T 3 12 Q (B.2.2) 64 197 T (Read Using JNDI) 108 197 T 4 9 Q (/*) 140.4 179 T ( * Copyright \050c\051 1997. Sun Microsystems. All rights reserved.) 140.4 168 T ( *) 140.4 157 T ( * Search the directory for the specific entry) 140.4 146 T ( * \322cn=Barbara Jensen, ou=Product Development, o=Ace Industry, c=US\323.) 140.4 135 T ( * Retrieve all attributes from the entry.) 140.4 124 T ( *) 140.4 113 T ( * [Equivalent to rdentry.c in Netscape SDK]) 140.4 102 T ( */) 140.4 91 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "40" 44 %%Page: "41" 45 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (41) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X (import java.util.Hashtable;) 140.4 714 T (import javax.naming.*;) 140.4 692 T (import javax.naming.directory.*;) 140.4 681 T (class Rdentry {) 140.4 648 T (public static void main\050String[] args\051 {) 140.4 637 T ( Hashtable env = new Hashtable\0505, 0.75f\051;) 140.4 615 T ( /*) 140.4 604 T ( * Specify the initial context implementation to use.) 140.4 593 T ( * This could also be set by using the -D option to the java program.) 140.4 582 T ( * For example,) 140.4 571 T ( * This could also be set by using the -D option to the java program.) 140.4 560 T 0.8 ( * java -Djava.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory) 140.4 549 P (Compare) 140.4 538 T ( */) 140.4 527 T ( env.put\050\322java.naming.factory.initial\323, Env.INITCTX\051;) 140.4 516 T ( /* Specify host and port to use for directory service */) 140.4 494 T ( env.put\050\322java.naming.provider.url\323, Env.MY_SERVICE\051;) 140.4 483 T ( try {) 140.4 461 T ( /* get a handle to an Initial DSContext */) 140.4 450 T ( DirContext ctx = new InitialDirContext\050env\051;) 140.4 439 T ( /* Read Babs\325 entry */) 140.4 417 T ( Attributes attrs = ctx.getAttributes\050Env.ENTRYDN\051;) 140.4 406 T ( if \050attrs == null\051 {) 140.4 384 T ( System.out.println\050Env.ENTRYDN + \322has no attributes\323\051;) 140.4 373 T ( } else {) 140.4 362 T ( /* print each attribute */) 140.4 351 T ( for \050NamingEnumeration ae = attrs.getAll\050\051;) 140.4 340 T ( ae.hasMoreElements\050\051;\051 {) 140.4 329 T ( Attribute attr = \050Attribute\051ae.next\050\051;) 140.4 318 T ( String attrId = attr.getID\050\051;) 140.4 307 T ( /* print each value */) 140.4 285 T ( for \050NamingEnumeration vals = attr.getAll\050\051;) 140.4 274 T ( vals.hasMoreElements\050\051;) 140.4 263 T ( System.out.println\050attrId + \322: \322 + vals.nextElement\050\051\051\051) 140.4 252 T ( ;) 140.4 241 T ( }) 140.4 230 T ( }) 140.4 219 T ( } catch \050NamingException e\051 {) 140.4 208 T ( System.err.println\050\322Rdentry example failed\323\051;) 140.4 197 T ( e.printStackTrace\050\051;) 140.4 186 T ( }) 140.4 175 T (}) 140.4 164 T (}) 140.4 153 T 3 14 Q (B.3) 54 115.67 T ( Get Attributes) 77.34 115.67 T 3 12 Q (B.3.1) 64 92 T (Get Attributes Using LDAP C API) 108 92 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "41" 45 %%Page: "42" 46 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (42) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X (/*) 140.4 714 T ( * Copyright \050c\051 1996. Netscape Communications Corporation. All) 140.4 703 T ( * rights reserved.) 140.4 692 T ( *) 140.4 681 T ( * Retrieve several attributes of a particular entry.) 140.4 670 T ( */) 140.4 659 T (#include \322examples.h\323) 140.4 637 T (int) 140.4 604 T (main\050 int argc, char **argv \051) 140.4 593 T ({) 140.4 582 T ( LDAP *ld;) 140.4 571 T ( LDAPMessage *result, *e;) 140.4 560 T ( char **vals, *attrs[ 5 ];) 140.4 549 T ( int i;) 140.4 538 T ( /* get a handle to an LDAP connection */) 140.4 516 T ( if \050 \050ld = ldap_init\050 MY_HOST, MY_PORT \051\051 == NULL \051 {) 140.4 505 T ( perror\050 \322ldap_init\323 \051;) 140.4 494 T ( return\050 1 \051;) 140.4 483 T ( }) 140.4 472 T ( attrs[ 0 ] = \322cn\323; /* Get canonical name\050s\051 \050full name\051 */) 140.4 450 T ( attrs[ 1 ] = \322sn\323; /* Get surname\050s\051 \050last name\051 */) 140.4 439 T ( attrs[ 2 ] = \322mail\323; /* Get email address\050es\051 */) 140.4 428 T ( attrs[ 3 ] = \322telephonenumber\323; /* Get telephone number\050s\051 */) 140.4 417 T ( attrs[ 4 ] = NULL;) 140.4 406 T ( if \050 ldap_search_s\050 ld, ENTRYDN, LDAP_SCOPE_BASE,) 140.4 384 T ( \322\050objectclass=*\051\323, attrs, 0, &result \051 != LDAP_SUCCESS \051 {) 140.4 373 T ( ldap_perror\050 ld, \322ldap_search_s\323 \051;) 140.4 362 T ( return\050 1 \051;) 140.4 351 T ( }) 140.4 340 T ( /* print it out */) 140.4 318 T ( if \050\050 e = ldap_first_entry\050 ld, result \051\051 != NULL \051 {) 140.4 307 T ( if \050\050 vals = ldap_get_values\050 ld, e, \322cn\323 \051\051 != NULL \051 {) 140.4 296 T ( printf\050 \322Full name:\134n\323 \051;) 140.4 285 T ( for \050 i = 0; vals[i] != NULL; i++ \051 {) 140.4 274 T ( printf\050 \322\134t%s\134n\323, vals[i] \051;) 140.4 263 T ( }) 140.4 252 T ( ldap_value_free\050 vals \051;) 140.4 241 T ( }) 140.4 230 T ( if \050\050 vals = ldap_get_values\050 ld, e, \322sn\323 \051\051 != NULL \051 {) 140.4 219 T ( printf\050 \322Last name \050surname\051:\134n\323 \051;) 140.4 208 T ( for \050 i = 0; vals[i] != NULL; i++ \051 {) 140.4 197 T ( printf\050 \322\134t%s\134n\323, vals[i] \051;) 140.4 186 T ( }) 140.4 175 T ( ldap_value_free\050 vals \051;) 140.4 164 T ( }) 140.4 153 T ( if \050\050 vals = ldap_get_values\050 ld, e, \322mail\323 \051\051 != NULL \051 {) 140.4 142 T ( printf\050 \322Email address:\134n\323 \051;) 140.4 131 T ( for \050 i = 0; vals[i] != NULL; i++ \051 {) 140.4 120 T ( printf\050 \322\134t%s\134n\323, vals[i] \051;) 140.4 109 T ( }) 140.4 98 T ( ldap_value_free\050 vals \051;) 140.4 87 T ( }) 140.4 76 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "42" 46 %%Page: "43" 47 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] [ 0 0 0 1 0 0 0] [ 0 0 0 0.1 0.9 0.9 0.9] 9 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 54 746 558 756 R 7 X 0 0 0 1 0 0 0 K V 1 10 Q 0 X (Java Naming and Directory Interface) 54 749.33 T 54 32.67 558 42.67 R 7 X V 0 X (JavaSoft) 54 36 T (43) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X ( if \050\050 vals = ldap_get_values\050 ld, e, \322telephonenumber\323 \051\051 != NULL \051 {) 140.4 714 T ( printf\050 \322Telephone number:\134n\323 \051;) 140.4 703 T ( for \050 i = 0; vals[i] != NULL; i++ \051 {) 140.4 692 T ( printf\050 \322\134t%s\134n\323, vals[i] \051;) 140.4 681 T ( }) 140.4 670 T ( ldap_value_free\050 vals \051;) 140.4 659 T ( }) 140.4 648 T ( }) 140.4 637 T ( ldap_msgfree\050 result \051;) 140.4 626 T ( ldap_unbind\050 ld \051;) 140.4 615 T ( return\050 0 \051;) 140.4 604 T (}) 140.4 593 T 3 12 Q (B.3.2) 64 560 T (Get Attributes Using JNDI) 108 560 T 4 9 Q (/*) 140.4 542 T ( * Copyright \050c\051 1997. Sun Microsystems. All rights reserved.) 140.4 531 T ( *) 140.4 520 T ( * Retrieve several attributes of a particular entry.) 140.4 509 T ( *) 140.4 498 T ( * [equivalent to getattrs.c in Netscape SDK]) 140.4 487 T ( */) 140.4 476 T (import java.util.Hashtable;) 140.4 454 T (import java.util.Enumeration;) 140.4 443 T (import javax.naming.*;) 140.4 421 T (import javax.naming.directory.*;) 140.4 410 T (class Getattrs {) 140.4 388 T (public static void main\050String[] args\051 {) 140.4 366 T ( Hashtable env = new Hashtable\0505, 0.75f\051;) 140.4 344 T ( /*) 140.4 333 T ( * Specify the initial context implementation to use.) 140.4 322 T ( * For example,) 140.4 311 T ( * This could also be set by using the -D option to the java program.) 140.4 300 T 0.8 ( * java -Djava.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory) 140.4 289 P (Compare) 140.4 278 T ( */) 140.4 267 T ( env.put\050\322java.naming.factory.initial\323, Env.INITCTX\051;) 140.4 256 T ( /* Specify host and port to use for directory service */) 140.4 234 T ( env.put\050\322java.naming.provider.url\323, Env.MY_SERVICE\051;) 140.4 223 T ( try {) 140.4 201 T ( /* get a handle to an Initial DSContext */) 140.4 190 T ( DirContext ctx = new InitialDirContext\050env\051;) 140.4 179 T ( String[] attrs = new String[4];) 140.4 157 T -0.28 ( attrs[ 0 ] = \322cn\323; /* Get canonical name\050s\051 \050full name\051 */) 140.4 146 P ( attrs[ 1 ] = \322sn\323; /* Get surname\050s\051 \050last name\051 */) 140.4 135 T ( attrs[ 2 ] = \322mail\323; /* Get email address\050es\051 */) 140.4 124 T ( attrs[ 3 ] = \322telephonenumber\323; /* Get telephone number\050s\051 */) 140.4 113 T ( Attributes result = ctx.getAttributes\050Env.ENTRYDN, attrs\051;) 140.4 91 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "43" 47 %%Page: "44" 48 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 (44) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X ( if \050result == null\051 {) 140.4 714 T 0.66 ( System.out.println\050Env.ENTRYDN + \322has none of the specified at-) 140.4 703 P (tributes\323\051;) 140.4 692 T ( } else {) 140.4 681 T ( /* print it out */) 140.4 670 T ( Attribute attr = result.get\050\322cn\323\051;) 140.4 659 T ( if \050attr != null\051 {) 140.4 648 T ( System.out.println\050\322Full name:\323 \051;) 140.4 637 T ( for \050NamingEnumeration vals = attr.getAll\050\051;) 140.4 626 T ( vals.hasMoreElements\050\051;) 140.4 615 T ( System.out.println\050\322\134t\323 + vals.nextElement\050\051\051\051) 140.4 604 T ( ;) 140.4 593 T ( }) 140.4 582 T ( attr = result.get\050\322sn\323\051;) 140.4 560 T ( if \050attr != null\051 {) 140.4 549 T ( System.out.println\050\322Last name \050surname\051:\323 \051;) 140.4 538 T ( for \050NamingEnumeration vals = attr.getAll\050\051;) 140.4 527 T ( vals.hasMoreElements\050\051;) 140.4 516 T ( System.out.println\050\322\134t\323 + vals.nextElement\050\051\051\051) 140.4 505 T ( ;) 140.4 494 T ( }) 140.4 483 T ( attr = result.get\050\322mail\323\051;) 140.4 461 T ( if \050attr != null\051 {) 140.4 450 T ( System.out.println\050\322Email address:\323 \051;) 140.4 439 T ( for \050NamingEnumeration vals = attr.getAll\050\051;) 140.4 428 T ( vals.hasMoreElements\050\051;) 140.4 417 T ( System.out.println\050\322\134t\323 + vals.nextElement\050\051\051\051) 140.4 406 T ( ;) 140.4 395 T ( }) 140.4 384 T ( attr = result.get\050\322telephonenumber\323\051;) 140.4 373 T ( if \050attr != null\051 {) 140.4 362 T ( System.out.println\050\322Telephone number:\323 \051;) 140.4 351 T ( for \050NamingEnumeration vals = attr.getAll\050\051;) 140.4 340 T ( vals.hasMoreElements\050\051;) 140.4 329 T ( System.out.println\050\322\134t\323 + vals.nextElement\050\051\051\051) 140.4 318 T ( ;) 140.4 307 T ( }) 140.4 296 T ( }) 140.4 285 T ( } catch \050NamingException e\051 {) 140.4 274 T ( System.err.println\050\322Rdentry example failed\323\051;) 140.4 263 T ( e.printStackTrace\050\051;) 140.4 252 T ( }) 140.4 241 T (}) 140.4 230 T (}) 140.4 219 T 3 14 Q (B.4) 54 170.67 T ( Compare An Attribute) 77.34 170.67 T 3 12 Q (B.4.1) 64 147 T (Compare Using LDAP C API) 108 147 T 4 9 Q (/*) 140.4 129 T ( * Copyright \050c\051 1996. Netscape Communications Corporation. All) 140.4 118 T ( * rights reserved.) 140.4 107 T ( *) 140.4 96 T ( * Use ldap_compare\050\051 to compare values agains values contained in entry) 140.4 85 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "44" 48 %%Page: "45" 49 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 (45) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X ( * \322cn=Barbara Jensen, ou=Product Development, o=Ace Industry, c=US\323.) 140.4 714 T ( * We test to see if \0501\051 the value \322person\323 is one of the values in the) 140.4 703 T ( * objectclass attribute \050it is\051, and if \0502\051 the value \322xyzzy\323 is in the) 140.4 692 T ( * objectlass attribute \050it isn\325t, or at least, it shouldn\325t be\051.) 140.4 681 T ( *) 140.4 670 T ( */) 140.4 659 T (#include \322examples.h\323) 140.4 637 T (int) 140.4 615 T (main\050 int main, char **argv \051) 140.4 604 T ({) 140.4 593 T ( LDAP *ld;) 140.4 582 T ( int rc;) 140.4 571 T ( /* get a handle to an LDAP connection */) 140.4 549 T ( if \050 \050ld = ldap_init\050 MY_HOST, MY_PORT \051\051 == NULL \051 {) 140.4 538 T ( perror\050 \322ldap_init\323 \051;) 140.4 527 T ( return\050 1 \051;) 140.4 516 T ( }) 140.4 505 T ( /* authenticate to the directory as nobody */) 140.4 483 T ( if \050 ldap_simple_bind_s\050 ld, NULL, NULL \051 != LDAP_SUCCESS \051 {) 140.4 472 T ( ldap_perror\050 ld, \322ldap_simple_bind_s\323 \051;) 140.4 461 T ( return\050 1 \051;) 140.4 450 T ( }) 140.4 439 T ( /* compare the value \322person\323 against the objectclass attribute */) 140.4 417 T ( rc = ldap_compare_s\050 ld, ENTRYDN, \322objectclass\323, \322person\323 \051;) 140.4 406 T ( switch \050 rc \051 {) 140.4 395 T ( case LDAP_COMPARE_TRUE:) 140.4 384 T ( printf\050 \322The value \134\323person\134\323 is contained in the objectclass \322) 140.4 373 T ( \322attribute.\134n\323 \051;) 140.4 362 T ( break;) 140.4 351 T ( case LDAP_COMPARE_FALSE:) 140.4 340 T ( printf\050 \322The value \134\323person\134\323 is not contained in the objectclass \322) 140.4 329 T ( \322attribute.\134n\323 \051;) 140.4 318 T ( break;) 140.4 307 T ( default:) 140.4 296 T ( ldap_perror\050 ld, \322ldap_compare_s\323 \051;) 140.4 285 T ( }) 140.4 274 T ( /* compare the value \322xyzzy\323 against the objectclass attribute */) 140.4 252 T ( rc = ldap_compare_s\050 ld, ENTRYDN, \322objectclass\323, \322xyzzy\323 \051;) 140.4 241 T ( switch \050 rc \051 {) 140.4 230 T ( case LDAP_COMPARE_TRUE:) 140.4 219 T ( printf\050 \322The value \134\323xyzzy\134\323 is contained in the objectclass \322) 140.4 208 T ( \322attribute.\134n\323 \051;) 140.4 197 T ( break;) 140.4 186 T ( case LDAP_COMPARE_FALSE:) 140.4 175 T ( printf\050 \322The value \134\323xyzzy\134\323 is not contained in the objectclass \322) 140.4 164 T ( \322attribute.\134n\323 \051;) 140.4 153 T ( break;) 140.4 142 T ( default:) 140.4 131 T ( ldap_perror\050 ld, \322ldap_compare_s\323 \051;) 140.4 120 T ( }) 140.4 109 T ( ldap_unbind\050 ld \051;) 140.4 87 T ( return\050 0 \051;) 140.4 76 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "45" 49 %%Page: "46" 50 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 (46) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X (}) 140.4 714 T 3 12 Q (B.4.2) 64 681 T (Compare Using JNDI) 108 681 T 4 9 Q (/*) 140.4 663 T ( * Copyright \050c\051 1997. Sun Microsystems. All rights reserved.) 140.4 652 T ( *) 140.4 641 T ( * Use search\050\051 to compare values against values contained in entry) 140.4 630 T ( * \322cn=Barbara Jensen, ou=Product Development, o=Ace Industry, c=US\323.) 140.4 619 T ( * We test to see if \0501\051 the value \322person\323 is one of the values in the) 140.4 608 T ( * objectclass attribute \050it is\051, and if \0502\051 the value \322xyzzy\323 is in the) 140.4 597 T ( * objectlass attribute \050it isn\325t, or at least, it shouldn\325t be\051.) 140.4 586 T ( *) 140.4 575 T ( * [equivalent to compare.c in Netscape SDK]) 140.4 564 T ( *) 140.4 553 T ( */) 140.4 542 T (import java.util.Hashtable;) 140.4 520 T (import javax.naming.*;) 140.4 498 T (import javax.naming.directory.*;) 140.4 487 T (class Compare {) 140.4 465 T (public static void main\050String[] args\051 {) 140.4 443 T ( Hashtable env = new Hashtable\0505, 0.75f\051;) 140.4 421 T ( /*) 140.4 410 T ( * Specify the initial context implementation to use.) 140.4 399 T ( * This could also be set by using the -D option to the java program.) 140.4 388 T ( * For example,) 140.4 377 T 0.8 ( * java -Djava.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory) 140.4 366 P (Compare) 140.4 355 T ( */) 140.4 344 T ( env.put\050\322java.naming.factory.initial\323, Env.INITCTX\051;) 140.4 333 T ( /* Specify host and port to use for directory service */) 140.4 311 T ( env.put\050\322java.naming.provider.url\323, Env.MY_SERVICE\051;) 140.4 300 T ( /* get a handle to an Initial DSContext */) 140.4 278 T ( DirContext ctx = new InitialDirContext\050env\051;) 140.4 267 T ( SearchControls constraints = new SearchControls\050\051;) 140.4 245 T ( constraints.setSearchScope\050SearchControls.OBJECT_SCOPE\051;) 140.4 234 T 0.65 ( constraints.setReturningAttributes\050new String[0]\051; // do not return any) 140.4 223 P (attrs) 140.4 212 T ( try {) 140.4 190 T ( NamingEnumeration results =) 140.4 179 T ( ctx.search\050Env.ENTRYDN, \322objectclass=person\323, constraints\051;) 140.4 168 T ( if \050results != null && results.hasMoreElements\050\051\051 {) 140.4 146 T ( System.out.println\050) 140.4 135 T (\322The value \134\323person\134\323 is contained in the objectclass attribute.\323\051;) 190.8 124 T ( } else {) 140.4 113 T ( System.out.println\050) 140.4 102 T -0.6 (\322The value \134\323person\134\323 is not contained in the objectclass attribute.\323) 190.8 91 P (\051;) 140.4 80 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "46" 50 %%Page: "47" 51 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 (47) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X ( }) 140.4 714 T ( } catch \050NamingException e\051 {) 140.4 703 T ( System.err.println\050\322Comparison of value person failed\323\051;) 140.4 692 T ( }) 140.4 681 T ( try {) 140.4 659 T ( NamingEnumeration results =) 140.4 648 T ( ctx.search\050Env.ENTRYDN, \322objectclass=xyzzy\323, constraints\051;) 140.4 637 T ( if \050results != null && results.hasMoreElements\050\051\051 {) 140.4 615 T ( System.out.println\050) 140.4 604 T (\322The value \134\323xyzzy\134\323 is contained in the objectclass attribute.\323\051;) 190.8 593 T ( } else {) 140.4 582 T ( System.out.println\050) 140.4 571 T (\322The value \134\323xyzzy\134\323 is not contained in the objectclass attribute.\323) 190.8 560 T (\051;) 140.4 549 T ( }) 140.4 538 T ( } catch \050NamingException e\051 {) 140.4 527 T ( System.err.println\050\322Comparison of value xyzzy failed\323\051;) 140.4 516 T ( }) 140.4 505 T (}) 140.4 494 T (}) 140.4 483 T 3 14 Q (B.5) 54 445.67 T ( Modify Attributes) 77.34 445.67 T 3 12 Q (B.5.1) 64 422 T (Modify Attributes Using LDAP C API) 108 422 T 4 9 Q (/*) 140.4 404 T ( * Copyright \050c\051 1996. Netscape Communications Corporation. All) 140.4 393 T ( * rights reserved.) 140.4 382 T ( *) 140.4 371 T ( * Modify an entry:) 140.4 360 T ( * - replace any existing values in the \322mail\323 attribute with \322babs@ace.com\323) 140.4 349 T ( * - add a new value to the \322description\323 attribute) 140.4 338 T ( */) 140.4 327 T (#include \322examples.h\323) 140.4 305 T (int) 140.4 283 T (main\050 int argc, char **argv \051) 140.4 272 T ({) 140.4 261 T ( LDAP *ld;) 140.4 250 T ( LDAPMod mod0;) 140.4 239 T ( LDAPMod mod1;) 140.4 228 T ( LDAPMod *mods[ 3 ];) 140.4 217 T ( char *vals0[ 2 ];) 140.4 206 T ( char *vals1[ 2 ];) 140.4 195 T ( time_t now;) 140.4 184 T ( char buf[ 128 ];) 140.4 173 T ( /* get a handle to an LDAP connection */) 140.4 151 T ( if \050 \050ld = ldap_init\050 MY_HOST, MY_PORT \051\051 == NULL \051 {) 140.4 140 T ( perror\050 \322ldap_init\323 \051;) 140.4 129 T ( return\050 1 \051;) 140.4 118 T ( }) 140.4 107 T ( /* authenticate */) 140.4 96 T ( if \050 ldap_simple_bind_s\050 ld, ENTRYDN, ENTRYPW \051 != LDAP_SUCCESS \051 {) 140.4 85 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "47" 51 %%Page: "48" 52 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 (48) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X ( ldap_perror\050 ld, \322ldap_simple_bind_s\323 \051;) 140.4 714 T ( return\050 1 \051;) 140.4 703 T ( }) 140.4 692 T ( /* construct the list of modifications to make */) 140.4 681 T ( mod0.mod_op = LDAP_MOD_REPLACE;) 140.4 670 T ( mod0.mod_type = \322mail\323;) 140.4 659 T ( vals0[0] = \322babs@ace.com\323;) 140.4 648 T ( vals0[1] = NULL;) 140.4 637 T ( mod0.mod_values = vals0;) 140.4 626 T ( mod1.mod_op = LDAP_MOD_ADD;) 140.4 604 T ( mod1.mod_type = \322description\323;) 140.4 593 T ( time\050 &now \051;) 140.4 582 T ( sprintf\050 buf, \322This entry was modified with the modattrs program on %s\323,) 140.4 571 T ( ctime\050 &now \051\051;) 140.4 560 T ( /* Get rid of \134n which ctime put on the end of the time string */) 140.4 549 T ( if \050 buf[ strlen\050 buf \051 - 1 ] == \324\134n\325 \051 {) 140.4 538 T ( buf[ strlen\050 buf \051 - 1 ] = \324\1340\325;) 140.4 527 T ( }) 140.4 516 T ( vals1[ 0 ] = buf;) 140.4 505 T ( vals1[ 1 ] = NULL;) 140.4 494 T ( mod1.mod_values = vals1;) 140.4 483 T ( mods[ 0 ] = &mod0;) 140.4 461 T ( mods[ 1 ] = &mod1;) 140.4 450 T ( mods[ 2 ] = NULL;) 140.4 439 T ( /* make the change */) 140.4 417 T ( if \050 ldap_modify_s\050 ld, ENTRYDN, mods \051) 140.4 406 T ( != LDAP_SUCCESS \051 {) 140.4 395 T ( ldap_perror\050 ld, \322ldap_modify_s\323 \051;) 140.4 384 T ( return\050 1 \051;) 140.4 373 T ( }) 140.4 362 T ( ldap_unbind\050 ld \051;) 140.4 351 T ( printf\050 \322modification was successful\134n\323 \051;) 140.4 340 T ( return\050 0 \051;) 140.4 329 T (}) 140.4 318 T 3 12 Q (B.5.2) 64 285 T (Modify Attributes Using JNDI) 108 285 T 4 9 Q (/*) 140.4 267 T ( * Copyright \050c\051 1997. Sun Microsystems. All rights reserved.) 140.4 256 T ( *) 140.4 245 T ( * Modify an entry:) 140.4 234 T ( * - replace any existing values in the \322mail\323 attribute with \322babs@ace.com\323) 140.4 223 T ( * - add a new value to the \322description\323 attribute) 140.4 212 T ( *) 140.4 201 T ( * [equivalent to modattrs.c in Netscape SDK]) 140.4 190 T ( */) 140.4 179 T (import java.util.Hashtable;) 140.4 157 T (import java.util.Date;) 140.4 146 T (import javax.naming.*;) 140.4 124 T (import javax.naming.directory.*;) 140.4 113 T (class Modattrs {) 140.4 91 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "48" 52 %%Page: "49" 53 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 (49) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X (public static void main\050String[] args\051 {) 140.4 714 T ( Hashtable env = new Hashtable\050\051;) 140.4 692 T ( /*) 140.4 681 T ( * Specify the initial context implementation to use.) 140.4 670 T ( * This could also be set by using the -D option to the java program.) 140.4 659 T ( * For example,) 140.4 648 T ( * This could also be set by using the -D option to the java program.) 140.4 637 T 0.8 ( * java -Djava.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory) 140.4 626 P (Compare) 140.4 615 T ( */) 140.4 604 T ( env.put\050\322java.naming.factory.initial\323, Env.INITCTX\051;) 140.4 593 T ( /* Specify host and port to use for directory service */) 140.4 571 T ( env.put\050\322java.naming.provider.url\323, Env.MY_SERVICE\051;) 140.4 560 T ( /* specify authentication information */) 140.4 538 T ( env.put\050\322java.naming.security.principal\323, Env.MGR_DN\051;) 140.4 527 T ( env.put\050\322java.naming.security.credentials\323, Env.MGR_PW\051;) 140.4 516 T ( try {) 140.4 494 T ( /* get a handle to an Initial DSContext */) 140.4 483 T ( DirContext ctx = new InitialDirContext\050env\051;) 140.4 472 T ( /* construct the list of modifications to make */) 140.4 450 T ( ModificationItem[] mods = new ModificationItem[3];) 140.4 439 T ( Attribute mod0 = new Attribute\050\322mail\323, \322babs@eng\323\051;) 140.4 417 T (// Update mail attribute) 165.6 406 T ( mods[0] = new ModificationItem\050DirContext.REPLACE_ATTRIBUTE, mod0\051;) 140.4 395 T (// Add another value to description attribute) 165.6 373 T ( Attribute mod1 =) 140.4 362 T ( new Attribute\050\322description\323,) 140.4 351 T -0.85 ( \322This entry was modified with the Modattrs program on \322 +) 140.4 340 P ( \050new Date\050\051\051.toString\050\051\051;) 140.4 329 T ( mods[1] = new ModificationItem\050DirContext.ADD_ATTRIBUTE, mod1\051;) 140.4 318 T ( /* Delete the description attribute altogether */) 165.6 296 T (/*) 165.6 285 T ( Attribute mod1 = new Attribute\050\322description\323\051;) 140.4 274 T ( mods[2] = new ModificationItem\050DSContext.DELETE_ATTRIBUTE, mod1\051;) 140.4 263 T (*/) 165.6 252 T ( /* make the change */) 140.4 230 T ( ctx.modifyAttributes\050Env.ENTRYDN, mods\051;) 140.4 219 T ( System.out.println\050 \322modification was successful\323 \051;) 140.4 208 T ( } catch \050NamingException e\051 {) 140.4 186 T ( System.err.println\050\322modification failed\323 + e\051;) 140.4 175 T ( }) 140.4 164 T (}) 140.4 153 T (}) 140.4 142 T 3 14 Q (B.6) 54 93.67 T ( Rename An Entry) 77.34 93.67 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "49" 53 %%Page: "50" 54 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 (50) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 12 Q 0 X (B.6.1) 64 712 T (Rename Using LDAP C API) 108 712 T 4 9 Q (/*) 140.4 694 T ( * Copyright \050c\051 1996. Netscape Communications Corporation. All) 140.4 683 T ( * rights reserved.) 140.4 672 T ( *) 140.4 661 T ( * Modify the RDN \050relative distinguished name\051 of an entry. In this) 140.4 650 T ( * example, we change the dn \322cn=Jacques Smith, o=Ace Industry, c=US\323) 140.4 639 T ( * to \322cn=Jacques M Smith, o=Ace Industry, c=US\323.) 140.4 628 T ( *) 140.4 617 T ( * Since it is an error to either \0501\051 attempt to modrdn an entry which) 140.4 606 T ( * does not exist, or \0502\051 modrdn an entry where the destination name) 140.4 595 T ( * already exists, we take some steps, for this example, to make sure) 140.4 584 T ( * we\325ll succeed. We \0501\051 add \322cn=Jacques Smith\323 \050if the entry exists,) 140.4 573 T ( * we just ignore the error, and \0502\051 delete \322cn=Jacques M Smith\323 \050if the) 140.4 562 T ( * entry doesn\325t exist, we ignore the error\051.) 140.4 551 T ( *) 140.4 540 T ( * We pass 0 for the \322deleteoldrdn\323 argument to ldap_modrdn2_s\050\051. This) 140.4 529 T ( * means that after we change the RDN, the server will put the value) 140.4 518 T ( * \322Jacques Smith\323 into the cn attribute of the new entry, in addition to) 140.4 507 T ( * \322Jacques M Smith\323.) 140.4 496 T ( */) 140.4 485 T (#include \322examples.h\323) 140.4 463 T (#define NMODS 4) 140.4 441 T (unsigned long global_counter = 0;) 140.4 419 T (static void free_mods\050 LDAPMod **mods \051;) 140.4 397 T (int) 140.4 375 T (main\050 int argc, char **argv \051) 140.4 364 T ({) 140.4 353 T ( LDAP *ld;) 140.4 342 T ( char *dn, *ndn, *nrdn;) 140.4 331 T ( int i;) 140.4 320 T ( int rc;) 140.4 309 T ( LDAPMod **mods;) 140.4 298 T ( /* Values we\325ll use in creating the entry */) 140.4 276 T ( char *objectclass_values[] = { \322top\323, \322person\323, \322organizationalPerson\323,) 140.4 265 T ( \322inetOrgPerson\323, NULL };) 140.4 254 T ( char *cn_values[] = { \322Jacques Smith\323, NULL };) 140.4 243 T ( char *sn_values[] = { \322Smith\323, NULL };) 140.4 232 T ( char *givenname_values[] = { \322Jacques\323, NULL };) 140.4 221 T ( /* Specify the DN we\325re adding */) 140.4 199 T ( dn = \322cn=Jacques Smith, o=Ace Industry, c=US\323;) 140.4 188 T ( /* the destination DN */) 140.4 177 T ( ndn = \322cn=Jacques M Smith, o=Ace Industry, c=US\323;) 140.4 166 T ( /* the new RDN */) 140.4 155 T ( nrdn = \322cn=Jacques M Smith\323;) 140.4 144 T ( /* get a handle to an LDAP connection */) 140.4 122 T ( if \050 \050ld = ldap_init\050 MY_HOST, MY_PORT \051\051 == NULL \051 {) 140.4 111 T ( perror\050 \322ldap_init\323 \051;) 140.4 100 T ( return\050 1 \051;) 140.4 89 T ( }) 140.4 78 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "50" 54 %%Page: "51" 55 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 (51) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X ( /* authenticate to the directory as the Directory Manager */) 140.4 714 T ( if \050 ldap_simple_bind_s\050 ld, MGR_DN, MGR_PW \051 != LDAP_SUCCESS \051 {) 140.4 703 T ( ldap_perror\050 ld, \322ldap_simple_bind_s\323 \051;) 140.4 692 T ( return\050 1 \051;) 140.4 681 T ( }) 140.4 670 T ( if \050\050 mods = \050 LDAPMod ** \051 malloc\050\050 NMODS + 1 \051 * sizeof\050 LDAPMod *\051\051\051) 140.4 648 T ( == NULL \051 {) 140.4 637 T ( fprintf\050 stderr, \322Cannot allocate memory for mods array\134n\323 \051;) 140.4 626 T ( return\050 1 \051;) 140.4 615 T ( }) 140.4 604 T ( /* Construct the array of values to add */) 140.4 593 T ( for \050 i = 0; i < NMODS; i++ \051 {) 140.4 582 T -0.36 ( if \050\050 mods[ i ] = \050 LDAPMod * \051 malloc\050 sizeof\050 LDAPMod \051\051\051 == NULL \051 {) 140.4 571 P ( fprintf\050 stderr, \322Cannot allocate memory for mods element\134n\323 \051;) 140.4 560 T ( return\050 1 \051;) 140.4 549 T ( }) 140.4 538 T ( }) 140.4 527 T ( mods[ 0 ]->mod_op = 0;) 140.4 516 T ( mods[ 0 ]->mod_type = \322objectclass\323;) 140.4 505 T ( mods[ 0 ]->mod_values = objectclass_values;) 140.4 494 T ( mods[ 1 ]->mod_op = 0;) 140.4 483 T ( mods[ 1 ]->mod_type = \322cn\323;) 140.4 472 T ( mods[ 1 ]->mod_values = cn_values;) 140.4 461 T ( mods[ 2 ]->mod_op = 0;) 140.4 450 T ( mods[ 2 ]->mod_type = \322sn\323;) 140.4 439 T ( mods[ 2 ]->mod_values = sn_values;) 140.4 428 T ( mods[ 3 ]->mod_op = 0;) 140.4 417 T ( mods[ 3 ]->mod_type = \322givenname\323;) 140.4 406 T ( mods[ 3 ]->mod_values = givenname_values;) 140.4 395 T ( mods[ 4 ] = NULL;) 140.4 384 T ( /* Add the entry */) 140.4 351 T ( if \050\050 rc = ldap_add_s\050 ld, dn, mods \051\051 != LDAP_SUCCESS \051 {) 140.4 340 T ( /* If entry exists already, fine. Ignore this error. */) 140.4 329 T ( if \050 rc == LDAP_ALREADY_EXISTS \051 {) 140.4 318 T ( printf\050 \322Entry \134\323%s is already in the directory.\134n\323, dn \051;) 140.4 307 T ( } else {) 140.4 296 T ( ldap_perror\050 ld, \322ldap_add_s\323 \051;) 140.4 285 T ( free_mods\050 mods \051;) 140.4 274 T ( return\050 1 \051;) 140.4 263 T ( }) 140.4 252 T ( } else {) 140.4 241 T ( printf\050 \322Added entry \134\323%s\134\323.\134n\323, dn \051;) 140.4 230 T ( }) 140.4 219 T ( free_mods\050 mods \051;) 140.4 208 T ( /* Delete the destination entry, for this example */) 140.4 186 T ( if \050\050 rc = ldap_delete_s\050 ld, ndn \051\051 != LDAP_SUCCESS \051 {) 140.4 175 T ( /* If entry does not exist, fine. Ignore this error. */) 140.4 164 T ( if \050 rc == LDAP_NO_SUCH_OBJECT \051 {) 140.4 153 T ( printf\050 \322Entry \134\323%s\134\323 is not in the directory. \322) 140.4 142 T ( \322No need to delete.\134n\323, ndn \051;) 140.4 131 T ( } else {) 140.4 120 T ( ldap_perror\050 ld, \322ldap_delete_s\323 \051;) 140.4 109 T ( return\050 1 \051;) 140.4 98 T ( }) 140.4 87 T ( } else {) 140.4 76 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "51" 55 %%Page: "52" 56 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 (52) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X ( printf\050 \322Deleted entry \134\323%s\134\323.\134n\323, ndn \051;) 140.4 714 T ( }) 140.4 703 T ( /* Do the modrdn operation */) 140.4 681 T ( if \050 ldap_modrdn2_s\050 ld, dn, nrdn, 0 \051 != LDAP_SUCCESS \051 {) 140.4 670 T ( ldap_perror\050 ld, \322ldap_modrdn2_s\323 \051;) 140.4 659 T ( return\050 1 \051;) 140.4 648 T ( }) 140.4 637 T ( printf\050 \322The modrdn operation was successful. Entry\134n\323) 140.4 615 T ( \322\134\323%s\134\323 has been changed to\134n\323) 140.4 604 T ( \322\134\323%s\134\323.\134n\323, dn, ndn \051;) 140.4 593 T ( ldap_unbind\050 ld \051;) 140.4 571 T ( return 0;) 140.4 560 T (}) 140.4 549 T (/*) 140.4 505 T ( * Free a mods array.) 140.4 494 T ( */) 140.4 483 T (static void) 140.4 472 T (free_mods\050 LDAPMod **mods \051) 140.4 461 T ({) 140.4 450 T ( int i;) 140.4 439 T ( for \050 i = 0; i < NMODS; i++ \051 {) 140.4 417 T ( free\050 mods[ i ] \051;) 140.4 406 T ( }) 140.4 395 T ( free\050 mods \051;) 140.4 384 T (}) 140.4 373 T 3 12 Q (B.6.2) 64 340 T (Rename Using JNDI) 108 340 T 4 9 Q (/*) 140.4 322 T ( * Copyright \050c\051 1997. Sun Microsystems. All rights reserved.) 140.4 311 T ( *) 140.4 300 T ( * Modify the RDN \050relative distinguished name\051 of an entry. In this) 140.4 289 T ( * example, we change the dn \322cn=Jacques Smith, o=Ace Industry, c=US\323) 140.4 278 T ( * to \322cn=Jacques M Smith, o=Ace Industry, c=US\323.) 140.4 267 T ( *) 140.4 256 T ( * Since it is an error to either \0501\051 attempt to modrdn an entry which) 140.4 245 T ( * does not exist, or \0502\051 modrdn an entry where the destination name) 140.4 234 T ( * already exists, we take some steps, for this example, to make sure) 140.4 223 T ( * we\325ll succeed. We \0501\051 add \322cn=Jacques Smith\323 \050if the entry exists,) 140.4 212 T ( * we just ignore the error, and \0502\051 delete \322cn=Jacques M Smith\323 \050if the) 140.4 201 T ( * entry doesn\325t exist, we ignore the error\051.) 140.4 190 T ( *) 140.4 179 T ( * After renaming, we add back the attribute \322Jacques Smith\323 into the cn) 140.4 168 T ( * attribute.) 140.4 157 T ( *) 140.4 146 T ( * [based on modrdn.c of Netscape SDK]) 140.4 135 T ( */) 140.4 124 T (import java.util.Hashtable;) 140.4 102 T (import java.util.Date;) 140.4 91 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "52" 56 %%Page: "53" 57 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 (53) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X (import javax.naming.*;) 140.4 714 T (import javax.naming.directory.*;) 140.4 703 T (class Modrdn {) 140.4 681 T (public static void main\050String[] args\051 {) 140.4 659 T ( /* Values we\325ll use in creating the entry */) 140.4 637 T ( Attribute objClasses = new Attribute\050\322objectclass\323\051;) 140.4 626 T ( objClasses.add\050\322top\323\051;) 140.4 615 T ( objClasses.add\050\322person\323\051;) 140.4 604 T ( objClasses.add\050\322organizationalPerson\323\051;) 140.4 593 T ( objClasses.add\050\322inetOrgPerson\323\051;) 140.4 582 T ( Attribute cn = new Attribute\050\322cn\323, \322Jacques Smith\323\051;) 140.4 560 T ( Attribute sn = new Attribute\050\322sn\323, \322Smith\323\051;) 140.4 549 T ( Attribute givenNames = new Attribute\050\322givenname\323, \322Jacques\323\051;) 140.4 538 T ( /* Specify the DN we\325re adding */) 140.4 516 T ( String dn = \322cn=Jacques Smith, \322 + Env.MY_MODBASE;) 140.4 505 T ( /* the destination DN */) 140.4 494 T ( String ndn = \322cn=Jacques M Smith, \322 + Env.MY_MODBASE;) 140.4 483 T ( /* the new RDN */) 140.4 472 T ( String nrdn = \322cn=Jacques M Smith\323;) 140.4 461 T ( Hashtable env = new Hashtable\050\051;) 140.4 439 T ( /*) 140.4 428 T ( * Specify the initial context implementation to use.) 140.4 417 T ( * This could also be set by using the -D option to the java program.) 140.4 406 T ( * For example,) 140.4 395 T ( * This could also be set by using the -D option to the java program.) 140.4 384 T 0.8 ( * java -Djava.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory) 140.4 373 P (Compare) 140.4 362 T ( */) 140.4 351 T ( env.put\050\322java.naming.factory.initial\323, Env.INITCTX\051;) 140.4 340 T ( /* Specify host and port to use for directory service */) 140.4 318 T ( env.put\050\322java.naming.provider.url\323, Env.MY_SERVICE\051;) 140.4 307 T ( /* specify authentication information */) 140.4 285 T ( env.put\050\322java.naming.security.principal\323, Env.MGR_DN\051;) 140.4 274 T ( env.put\050\322java.naming.security.credentials\323, Env.MGR_PW\051;) 140.4 263 T ( /* obtain context handle */) 140.4 241 T ( DirContext ctx = new InitialDirContext\050env\051;) 140.4 230 T ( try {) 140.4 208 T ( Attributes orig = new Attributes\050\051;) 140.4 197 T ( orig.put\050objClasses\051;) 140.4 186 T ( orig.put\050cn\051;) 140.4 175 T ( orig.put\050sn\051;) 140.4 164 T ( orig.put\050givenNames\051;) 140.4 153 T ( /* Add the entry */) 140.4 131 T ( ctx.createSubcontext\050dn, orig\051;) 140.4 120 T ( System.out.println\050 \322Added entry \322 + dn + \322.\323\051;) 140.4 109 T ( } catch \050NameAlreadyBoundException e\051 {) 140.4 87 T ( /* If entry exists already, fine. Ignore this error. */) 140.4 76 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "53" 57 %%Page: "54" 58 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 (54) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 9 Q 0 X -0.19 ( System.out.println\050\322Entry \322 + dn + \322 already exists, no need to add\323\051;) 140.4 714 P ( } catch \050NamingException e\051 {) 140.4 703 T ( System.err.println\050\322Modrdn: problem adding entry\323 + e\051;) 140.4 692 T ( System.exit\0501\051;) 140.4 681 T ( }) 140.4 670 T ( try {) 140.4 648 T ( /* Delete the destination entry, for this example */) 140.4 637 T ( ctx.destroySubcontext\050ndn\051;) 140.4 626 T ( System.out.println\050 \322Deleted entry \322 + ndn + \322.\323 \051;) 140.4 615 T ( } catch \050NameNotFoundException e\051 {) 140.4 593 T ( /* If entry does not exist, fine. Ignore this error. */) 140.4 582 T ( System.out.println\050 \322Entry \322 + ndn + \322 is not in the directory. \322 +) 140.4 571 T ( \322No need to delete.\323\051;) 140.4 560 T ( } catch \050NamingException e\051 {) 140.4 549 T ( System.err.println\050\322Modrdn: problem deleting entry\323 + e\051;) 140.4 538 T ( System.exit\0501\051;) 140.4 527 T ( }) 140.4 516 T ( /* Do the modrdn operation */) 140.4 483 T ( try {) 140.4 472 T ( ctx.rename\050dn, ndn\051;) 140.4 461 T ( System.out.println\050\322The modrdn operation was successful. Entry \322 +) 140.4 450 T ( dn + \322 has been changed to \322 + ndn + \322.\323\051;) 140.4 439 T ( } catch \050NamingException e\051 {) 140.4 428 T ( System.err.println\050\322Modify operation failed\323 + e\051;) 140.4 417 T ( }) 140.4 406 T (}) 140.4 395 T (}) 140.4 384 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "54" 58 %%Page: "55" 59 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 (55) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X ( Appendix C: Legend for Class Diagram) 151 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: "55" 59 %%Page: "56" 60 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 (56) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "56" 60 %%Page: "57" 61 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 (57) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 18 Q 0 X ( Appendix D: JNDI Change History) 168.25 708 T 54 665.99 558 676 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 665.99 558 676 R 7 X 0 0 0 1 0 0 0 K V 56 674.02 176 674.02 2 L V 1 H 2 Z 0 X N 0 0 612 792 C 3 12 Q 0 X 0 0 0 1 0 0 0 K (1.1Beta1: JNDI Changes Since 1.0Licensee Release) 54 680 T 3 10 Q (P) 54 646.33 T (ackage Name Change) 60.01 646.33 T 0 F (JNDI is being packaged as a Ja) 54 631.33 T (v) 178.21 631.33 T (a 1.1-compatible Standard Extension. The JNDI packages ha) 182.96 631.33 T (v) 426.32 631.33 T (e been renamed to use the) 431.17 631.33 T (\322ja) 54 619.33 T (v) 65.46 619.33 T (ax\323 pre\336x, follo) 70.21 619.33 T (wing the con) 133.56 619.33 T (v) 184.82 619.33 T (ention for Ja) 189.67 619.33 T (v) 239.46 619.33 T (a Standard Extensions. The ne) 244.21 619.33 T (w package names are:) 365.33 619.33 T 4 F (javax.naming) 455.85 619.33 T 0 F (,) 527.85 619.33 T 4 F (javax.naming.directory) 54 607.33 T 0 F (, and) 185.35 607.33 T 4 F (j) 207.29 607.33 T (avax.naming.spi) 213.29 607.33 T 0 F (.) 303.29 607.33 T 3 F (General Changes) 54 585.33 T 0 F (\245) 54 570.33 T (Property names ha) 72 570.33 T (v) 146.23 570.33 T (e been renamed follo) 151.08 570.33 T (wing the con) 234.97 570.33 T (v) 286.23 570.33 T (ention used by the JDK. The) 291.08 570.33 T (y ha) 405.36 570.33 T (v) 422.1 570.33 T (e a \322ja) 426.95 570.33 T (v) 452.29 570.33 T (a.naming\323 pre\336x. See) 457.04 570.33 T (Appendix A of) 72 558.33 T 3 F (JNDI API) 134.49 558.33 T 0 F ( document for details on the ne) 177.54 558.33 T (w names.) 301.16 558.33 T (\245) 54 546.33 T (Mak) 72 546.33 T (e) 90.23 546.33 T 4 F (java.naming.provider.url) 97.17 546.33 T 0 F ( a system property in addition to being a) 241.17 546.33 T (v) 402.07 546.33 T (ailable as an en) 406.82 546.33 T (vironment property) 467.79 546.33 T (.) 544.63 546.33 T (\245) 54 534.33 T -0.34 (Replaced use of) 72 534.33 P 4 F -0.83 (Properties) 137.33 534.33 P 0 F -0.34 ( with) 197.33 534.33 P 4 F -0.83 (Hashtable) 219.42 534.33 P 0 F -0.34 ( \050) 273.42 534.33 P 4 F -0.83 (Properties) 278.91 534.33 P 0 F -0.34 (\325 superclass\051 for the en) 338.91 534.33 P -0.34 (vironment properties/settings so) 428.21 534.33 P (that service pro) 72 522.33 T (viders and applications can completely enumerate its contents.) 133.5 522.33 T 4 F (Properties) 385.96 522.33 T 0 F ( can still be passed as ar) 445.96 522.33 T (gu-) 541.87 522.33 T -0.23 (ments and returned as v) 72 510.33 P -0.23 (alues when) 165.81 510.33 P 4 F -0.55 (Hashtable) 212.56 510.33 P 0 F -0.23 ( is called for) 266.56 510.33 P -0.23 (. But declaring the methods to use) 315.04 510.33 P 4 F -0.55 (Hashtable) 452.31 510.33 P 0 F -0.23 ( mak) 506.31 510.33 P -0.23 (es clear) 525.7 510.33 P (the f) 72 498.33 T (act that nested) 89.95 498.33 T 4 F (Properties) 149.66 498.33 T 0 F ( are not e) 209.66 498.33 T (xamined for the operation at hand.) 246.44 498.33 T 3 F (API-r) 54 476.33 T (elated Changes) 78.81 476.33 T 0 F (As most of these changes are renames, the 1.1Beta1 release of the code includes a Ja) 54 461.33 T (v) 392.32 461.33 T (a ClassRenamer) 397.07 461.33 T 0 8 Q (1) 461.78 465.33 T 0 10 Q ( program that assists) 465.78 461.33 T (you with the renames. See the instructions for the release for details.) 54 449.33 T (\245) 54 437.33 T (Added) 72 437.33 T 4 F (Context.close\050\051) 101.16 437.33 T 0 F ( to allo) 191.16 437.33 T (w applications to release resources immediately) 218.69 437.33 T (.) 409.39 437.33 T (\245) 54 425.33 T (Added) 72 425.33 T 4 F (InterruptedNamingException) 101.16 425.33 T 0 F ( to indicate a naming operation has been interrupted.) 257.16 425.33 T (\245) 54 413.33 T (Class renames:) 72 413.33 T 4 F (DSContext) 134.77 413.33 T 0 F (->) 188.77 413.33 T 4 F (DirContext) 197.74 413.33 T 0 F (,) 257.74 413.33 T 4 F (InitialDSContext) 262.74 413.33 T 0 F (->) 358.74 413.33 T 4 F (InitialDirContext) 367.71 413.33 T 0 F (,) 469.71 413.33 T 4 F (AttributeSet) 72 401.33 T 0 F (->) 144 401.33 T 4 F (Attributes) 152.97 401.33 T 0 F (,) 212.97 401.33 T 4 F (InvalidAttributeSetException) 217.97 401.33 T 0 F (->) 385.97 401.33 T 4 F (InvalidAttributesException) 394.94 401.33 T 0 F (,) 550.94 401.33 T 4 F (SearchConstraints) 72 389.33 T 0 F (->) 174 389.33 T 4 F (SearchControls, InvalidSearchConstraintsException->Invalid-) 182.97 389.33 T (SearchControlsException.) 72 377.33 T 0 F (\245) 54 365.33 T -0.19 (Mak) 72 365.33 P -0.19 (e) 90.23 365.33 P 4 F -0.44 (Attributes) 96.99 365.33 P 0 F -0.19 (\325 methods look lik) 156.99 365.33 P -0.19 (e) 229.39 365.33 P 4 F -0.44 (Map) 236.15 365.33 P 0 F -0.19 (\325) 254.15 365.33 P -0.19 (s) 256.92 365.33 P 0 8 Q -0.15 (2) 260.82 369.33 P 0 10 Q -0.19 (,) 264.82 365.33 P 4 F -0.44 (Attribute) 269.63 365.33 P 0 F -0.19 (\325) 323.63 365.33 P -0.19 (s methods look lik) 326.41 365.33 P -0.19 (e) 399.38 365.33 P 4 F -0.44 (Set) 406.13 365.33 P 0 F -0.19 (\325) 424.13 365.33 P -0.19 (s, and) 426.91 365.33 P 4 F -0.44 (Name) 452.37 365.33 P 0 F -0.19 (,) 476.37 365.33 P 4 F -0.44 (CompoundName) 481.18 365.33 P 0 F -0.19 (,) 553.18 365.33 P 4 F (CompositeName) 72 353.33 T 0 F (, and) 150 353.33 T 4 F (Reference) 171.94 353.33 T 0 F (\325) 225.94 353.33 T (s methods look lik) 228.72 353.33 T (e) 302.24 353.33 T 4 F (List) 309.18 353.33 T 0 F (\325) 333.18 353.33 T (s.) 335.96 353.33 T (\245) 54 341.33 T (Added protected) 72 341.33 T 4 F (Attribute.Attribute\050\051) 140.87 341.33 T 0 F ( constructor so that subclasses can a) 266.87 341.33 T (v) 410.53 341.33 T (oid allocating) 415.33 341.33 T 4 F (Vector) 472.55 341.33 T 0 F (.) 508 341.33 T (\245) 54 329.33 T (Added constructors to) 72 329.33 T 4 F (Attributes) 162.82 329.33 T 0 F ( that accept an attrib) 222.82 329.33 T (ute.) 303.71 329.33 T (\245) 54 317.33 T (Added) 72 317.33 T 4 F (throws NamingException) 101.16 317.33 T 0 F ( clause to) 233.16 317.33 T 4 F (Attribute) 273.43 317.33 T 0 F (\325) 327.43 317.33 T (s schema methods.) 330.21 317.33 T (\245) 54 305.33 T (Renamed) 72 305.33 T 4 F (DirContext.DELETE_ATTRIBUTE) 112.27 305.33 T 0 F (->) 274.27 305.33 T 4 F (DirContext.REMOVE_ATTRIBUTE) 283.24 305.33 T 0 F (.) 445.24 305.33 T (\245) 54 293.33 T (Replaced) 72 293.33 T 4 F (ModificationEnumeration) 111.71 293.33 T 0 F ( with) 249.71 293.33 T 4 F (ModificationItem[]) 272.49 293.33 T 0 F (.) 380.49 293.33 T (\245) 54 281.33 T (Replaced) 72 281.33 T 4 F (RefAddrEnumeration) 111.71 281.33 T 0 F ( and) 219.71 281.33 T 4 F (StringEnumeration) 239.15 281.33 T 0 F ( with) 341.15 281.33 T 4 F (Enumeration) 363.93 281.33 T 0 F (.) 429.93 281.33 T (\245) 54 269.33 T (Replaced) 72 269.33 T 4 F (AttributeEnumeration) 111.71 269.33 T 0 F (,) 231.71 269.33 T 4 F (NameClassEnumeration) 236.71 269.33 T 0 F (,) 356.71 269.33 T 4 F (BindingEnumeration) 361.71 269.33 T 0 F (, aand) 469.71 269.33 T 4 F (SearchEnu-) 496.09 269.33 T (meration) 72 257.33 T 0 F ( with) 120 257.33 T 4 F (NamingEnumeration) 142.78 257.33 T 0 F ( to allo) 244.78 257.33 T (w generic means of doing JNDI enumerations.) 272.31 257.33 T (\245) 54 245.33 T 4 F (Attribute.getAll\050\051) 72 245.33 T 0 F ( returns) 180 245.33 T 4 F (NamingEnumeration) 212.77 245.33 T 0 F ( instead of) 314.77 245.33 T 4 F (Enumeration) 358.93 245.33 T 0 F (.) 424.93 245.33 T (\245) 54 233.33 T 4 F (Link.getLinkName\050\051) 72 233.33 T 0 F ( returns) 180 233.33 T 4 F (String) 212.77 233.33 T 0 F ( instead of) 248.77 233.33 T 4 F (Name) 292.93 233.33 T 0 F (.) 316.93 233.33 T (\245) 54 221.33 T 4 F (BinaryRefAddr.buf) 72 221.33 T 0 F ( and) 174 221.33 T 4 F (StringRefAddr.contents) 193.44 221.33 T 0 F ( made pri) 325.44 221.33 T (v) 362.96 221.33 T (ate. Deleted) 367.71 221.33 T 4 F (Binary.getAddressBy-) 417.97 221.33 T (tes\050\051) 72 209.33 T 0 F (,) 102 209.33 T 4 F (StringRefAddr.getAddressString\050\051) 107 209.33 T 0 F (,) 299 209.33 T 4 F (BinaryRefAddr.size\050\051) 304 209.33 T 0 F (.) 424 209.33 T (\245) 54 197.33 T (Renamed) 72 197.33 T 4 F (RefAddr.getAddressContents\050\051) 112.27 197.33 T 0 F (->) 280.27 197.33 T 4 F (getContent\050\051) 289.24 197.33 T 0 F (.) 361.24 197.33 T (\245) 54 185.33 T (Remo) 72 185.33 T (v) 95.74 185.33 T (ed) 100.59 185.33 T 4 F (DSException) 112.53 185.33 T 0 F (, re-parented e) 178.53 185.33 T (xceptions to be subclass of) 235.85 185.33 T 4 F (NamingException) 345.56 185.33 T 0 F (\245) 54 173.33 T -0.38 (Remo) 72 173.33 P -0.38 (v) 95.74 173.33 P -0.38 (ed most constructors from) 100.59 173.33 P 4 F -0.91 (NamingException) 206.29 173.33 P 0 F -0.38 ( and its subclasses. Each has tw) 296.29 173.33 P -0.38 (o constructors: one that accepts an) 420.3 173.33 P (e) 72 161.33 T (xplanation and a public constructor that tak) 76.29 161.33 T (es no parameters.) 249.5 161.33 T (\245) 54 149.33 T (Remo) 72 149.33 T (v) 95.74 149.33 T (ed) 100.59 149.33 T 4 F (Name.toString\050\051) 112.53 149.33 T 0 F (,) 202.53 149.33 T 4 F (equals\050\051) 207.53 149.33 T 0 F (,) 255.53 149.33 T 4 F (hashCode\050\051) 260.53 149.33 T 0 F ( as these are already de\336ned by) 320.53 149.33 T 4 F (Object) 447.99 149.33 T 0 F (.) 483.99 149.33 T (\245) 54 137.33 T (Constructors for abstract classes) 72 137.33 T 4 F (RefAddr) 203.64 137.33 T 0 F ( and) 245.64 137.33 T 4 F (ReferralException) 265.08 137.33 T 0 F ( are no) 367.08 137.33 T (w protected.) 394.04 137.33 T 54 96 558 110.98 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 96 558 110.98 R 7 X 0 0 0 1 0 0 0 K V 63 108.96 207 108.96 2 L V 0.5 H 2 Z 0 X N 0 0 612 792 C 0 10 Q 0 X 0 0 0 1 0 0 0 K (1.) 72 89.33 T (Thanks to the Swing team for use and distrib) 84 89.33 T (ution of this program.) 263.23 89.33 T (2.) 72 77.33 T (See http://ja) 84 77.33 T (v) 131.86 77.33 T (a.sun.com/products/jdk/pre) 136.61 77.33 T (vie) 245.24 77.33 T (w/docs/guide/collections/ for information on) 257.21 77.33 T 4 F (Map) 438.31 77.33 T 0 F (,) 456.31 77.33 T 4 F (Set) 461.31 77.33 T 0 F ( and) 479.31 77.33 T 4 F (List) 498.75 77.33 T 0 F (.) 522.75 77.33 T 34 74 36 688 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "57" 61 %%Page: "58" 62 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 (58) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 F 0 X (SPI-r) 54 713.33 T (elated Changes) 77.15 713.33 T 0 F (\245) 54 698.33 T 4 F (NamingManager.getObjectInstance\050\051) 72 698.33 T 0 F ( and) 270 698.33 T 4 F (ObjectFactory.getObjectInstance\050\051) 289.44 698.33 T 0 F ( allo) 487.44 698.33 T (w the caller) 504.69 698.33 T (to supply tw) 72 686.33 T (o optional parameters: a name and a conte) 121.35 686.33 T (xt. The name is the name of the object resolv) 289.77 686.33 T (ed relati) 469.59 686.33 T (v) 501.83 686.33 T (e to the con-) 506.68 686.33 T (te) 72 674.33 T (xt supplied. An object f) 79.07 674.33 T (actory can mak) 173.13 674.33 T (e use of this information to g) 234.12 674.33 T (ather further information about the object to create.) 349.62 674.33 T (See the corresponding ja) 72 662.33 T (v) 170.39 662.33 T (adoc for these methods for details. Corresponding \336elds and accessor methods were added to) 175.14 662.33 T 4 F (CannotProceedException) 72 650.33 T 0 F ( so that this information, if supplied, can be propag) 204 650.33 T (ated.) 408.1 650.33 T (\245) 54 638.33 T (Constants used in) 72 638.33 T 4 F (NamingManager) 145.06 638.33 T 0 F ( for property names remo) 223.06 638.33 T (v) 324.55 638.33 T (ed:) 329.4 638.33 T 4 F (O) 344.12 638.33 T (bjectFactoryProperty) 350.12 638.33 T (,) 470.12 638.33 T (I) 478.9 638.33 T (nitialCon-) 484.9 638.33 T (textFactoryProperty) 72 626.33 T 0 F (,) 185.35 626.33 T 4 F (P) 190.35 626.33 T (kgPathProperty) 196.35 626.33 T 0 F (. These were used for internal de) 279.7 626.33 T (v) 410.24 626.33 T (elopment. Programs should use the) 415.09 626.33 T (appropriate strings instead.) 72 614.33 T (\245) 54 602.33 T 4 F -0.12 (NamingManager.getObjectInstance\050\051) 72 602.33 P 0 F -0.05 ( returns original input if it cannot create a f) 270 602.33 P -0.05 (actory using the reference of) 441.35 602.33 P (the object \050it used to return) 72 590.33 T 4 F (null) 182.54 590.33 T 0 F (\051.) 206.54 590.33 T (\245) 54 578.33 T 4 F (InitialContext) 72 578.33 T 0 F ( constructor that tak) 156 578.33 T (es no parameters calls) 235.61 578.33 T 4 F (NamingManager.getInitialContext\050\051) 326.14 578.33 T 0 F ( with a) 524.14 578.33 T 4 F (null) 72 566.33 T 0 F ( en) 96 566.33 T (vironment instead of empty en) 107.54 566.33 T (vironment.) 229.35 566.33 T 54 526.99 558 537 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 526.99 558 537 R 7 X 0 0 0 1 0 0 0 K V 56 535.02 176 535.02 2 L V 1 H 2 Z 0 X N 0 0 612 792 C 3 12 Q 0 X 0 0 0 1 0 0 0 K (1.0Licensee Release: J) 54 541 T (NDI Changes Since) 167.64 541 T (1.0) 269.98 541 T (Beta) 284.98 541 T (1) 308.3 541 T 3 10 Q (P) 54 507.33 T (ackage Name Change) 60.01 507.33 T 0 F (T) 54 492.33 T (o allo) 59.31 492.33 T (w this release to w) 81.56 492.33 T (ork in all Ja) 155.89 492.33 T (v) 202.63 492.33 T (a 1.1 systems, the JNDI classes ha) 207.38 492.33 T (v) 344.38 492.33 T (e been temporarily renamed from the) 349.23 492.33 T 4 F (java.nam-) 497.8 492.33 T (ing) 54 480.33 T 0 F ( hierarch) 72 480.33 T (y to) 107.21 480.33 T 4 F (com.sun.java.naming) 124.99 480.33 T 0 F (.) 238.99 480.33 T 3 F (API-r) 54 458.33 T (elated Changes) 78.81 458.33 T 0 F (\245) 54 443.33 T 4 F (SearchConstraints) 72 443.33 T 0 F ( no) 174 443.33 T (w implements) 186.25 443.33 T 4 F (java.io.Serializable) 245.14 443.33 T 0 F (.) 365.14 443.33 T (\245) 54 431.33 T (Added) 72 431.33 T 4 F (ReferralException.skipReferrals\050\051) 101.16 431.33 T 0 F ( to allo) 299.16 431.33 T (w application to skip indi) 326.69 431.33 T (vidual referrals.) 428.11 431.33 T (\245) 54 419.33 T (Added constructor to) 72 419.33 T 4 F (NoInitialContextException) 158.93 419.33 T 0 F ( that accepts an e) 308.93 419.33 T (xplanation string.) 377.09 419.33 T (\245) 54 407.33 T (Added) 72 407.33 T 4 F (SchemaViolationException) 101.16 407.33 T 0 F ( for reporting schema-related problems.) 245.16 407.33 T (\245) 54 395.33 T (Renamed) 72 395.33 T 4 F (java.naming.directory.SearchTimeLimitExceededException) 112.27 395.33 T 0 F ( to) 436.27 395.33 T 4 F (java.naming.Time-) 449.05 395.33 T -0.49 (LimitExceededException) 72 383.33 P 0 F -0.2 (so that it can be used by the) 209.51 383.33 P 4 F -0.49 (java.naming) 321.19 383.33 P 0 F -0.2 ( package. Added) 387.19 383.33 P 4 F -0.49 (java.naming.Limi-) 456 383.33 P (tExceededException) 72 371.33 T 0 F (, which is the super class of) 180 371.33 T 4 F (TimeLimitExceededException) 292.76 371.33 T 0 F ( and) 448.76 371.33 T 4 F (SizeLimitExceededException) 72 359.33 T 0 F ( \050ne) 228 359.33 T (w as well\051.) 243.02 359.33 T (\245) 54 347.33 T (T) 72 347.33 T (o assist in deb) 77.31 347.33 T (ugging and displaying classes, added) 133.5 347.33 T 4 F (AttributeSet.toString\050\051) 284.04 347.33 T 0 F (,) 422.04 347.33 T 4 F (Binding.toString\050\051) 427.04 347.33 T 0 F (,) 535.04 347.33 T 4 F (SearchResult.toString\050\051) 72 335.33 T 0 F (.) 210 335.33 T (\245) 54 323.33 T -0.1 (Clari\336ed semantics of the o) 72 323.33 P -0.1 (v) 181.43 323.33 P -0.1 (erloaded form of) 186.28 323.33 P 4 F -0.25 (search\050\051) 255.66 323.33 P 0 F -0.1 ( that accepts a matching attrib) 303.67 323.33 P -0.1 (ute set \050) 422.65 323.33 P 4 F -0.25 (AttributeSet) 454.1 323.33 P 0 F -0.1 (\051. If the) 526.1 323.33 P (matching attrib) 72 311.33 T (ute set is) 132.63 311.33 T 4 F (null) 170.13 311.33 T 0 F ( or empty) 194.13 311.33 T (, return all the objects in the tar) 231.81 311.33 T (get conte) 356.61 311.33 T (xt.) 392.84 311.33 T (\245) 54 299.33 T 4 F (AttributeSet) 72 299.33 T 0 F ( no) 144 299.33 T (w implements) 156.25 299.33 T 4 F (Cloneable) 215.14 299.33 T 0 F (, and has a) 269.14 299.33 T 4 F (clone\050\051) 313.85 299.33 T 0 F ( method.) 355.85 299.33 T 3 F (SPI-r) 54 277.33 T (elated Changes) 77.15 277.33 T 0 F (\245) 54 262.33 T (Added \322set\323 methods to) 72 262.33 T 4 F (NameClassPair) 170.32 262.33 T 0 F (,) 247.92 262.33 T 4 F (Binding) 252.92 262.33 T 0 F (, and) 294.92 262.33 T 4 F (SearchResult) 316.86 262.33 T 0 F ( classes and made the protected \336elds pri-) 388.86 262.33 T (v) 72 250.33 T (ate. This enables service pro) 76.75 250.33 T (viders to update the \336elds in these classes without subclassing.) 190.18 250.33 T (\245) 54 238.33 T (Added a constructor to) 72 238.33 T 4 F (NameClassPair) 165.87 238.33 T 0 F (,) 243.47 238.33 T 4 F ( Binding) 245.97 238.33 T 0 F (,) 293.97 238.33 T (and) 302.47 238.33 T 4 F ( SearchResult) 316.91 238.33 T 0 F ( that accepts a \322relati) 394.91 238.33 T (v) 478.52 238.33 T (e\323 parameter) 483.37 238.33 T (, and) 534.33 238.33 T 4 F (isRelative\050\051) 72 226.33 T 0 F ( and) 144 226.33 T 4 F (setRelative\050\051) 163.44 226.33 T 0 F ( methods. This allo) 241.44 226.33 T (ws service pro) 317.86 226.33 T (viders to return names that are not relati) 375.47 226.33 T (v) 534.91 226.33 T (e to) 539.76 226.33 T (the tar) 72 214.33 T (get conte) 97.09 214.33 T (xt of the search. Non-relati) 133.32 214.33 T (v) 240.54 214.33 T (e names are named using URL strings.) 245.39 214.33 T (\245) 54 202.33 T -0.4 (Contract between) 72 202.33 P 4 F -0.96 (NamingManager.getObjectInstance\050\051) 143.96 202.33 P 0 F -0.4 ( and) 341.96 202.33 P 4 F -0.96 (ObjectFactory) 360.59 202.33 P 0 F -0.4 ( is clari\336ed. An object f) 438.59 202.33 P -0.4 (actory) 530.91 202.33 P -0 (returns) 72 190.33 P 4 F -0 (null) 102.27 190.33 P 0 F -0 ( if it cannot create the object; it only thro) 126.27 190.33 P -0 (ws an e) 289.6 190.33 P -0 (xception \050which is passed up to the caller of) 319.43 190.33 P 4 F -0 (NamingMan-) 498 190.33 P (ager.getObjectInstance\050\051) 72 178.33 T 0 F (\051 if no other object f) 216 178.33 T (actories should be tried.) 296.16 178.33 T (\245) 54 166.33 T (Replaced) 72 166.33 T 4 F (Resolver.resolvePenultimate\050\051) 111.71 166.33 T 0 F ( with) 285.71 166.33 T 4 F (Resolver.resolveToClass\050\051) 308.49 166.33 T 0 F (. This allo) 458.49 166.33 T (ws more ef) 498.52 166.33 T (\336-) 542.7 166.33 T (cient implementation of service pro) 72 154.33 T (viders by allo) 214.05 154.33 T (wing the resolution to stop at the \336rst conte) 268.24 154.33 T (xt that e) 441.42 154.33 T (xports a tar) 473.49 154.33 T (get class,) 518.3 154.33 T (rather than requiring resolution to proceed to the penultimate conte) 72 142.33 T (xt. The \336nal service pro) 339.86 142.33 T (vider in a chain of federated) 434.97 142.33 T (naming systems no longer needs to implement) 72 130.33 T 4 F (Resolver) 260.05 130.33 T 0 F (; only the intermediate pro) 308.05 130.33 T (viders.must do so.) 414 130.33 T (\245) 54 118.33 T -0.15 (Remo) 72 118.33 P -0.15 (v) 95.74 118.33 P -0.15 (ed) 100.59 118.33 P 4 F -0.36 (NotDSContextException) 112.38 118.33 P 0 F -0.15 (. Service pro) 238.38 118.33 P -0.15 (viders should use) 288.74 118.33 P 4 F -0.36 (NotContextException) 360.23 118.33 P 0 F -0.15 ( with the tar) 474.23 118.33 P -0.15 (get class) 521.64 118.33 P (name in the e) 72 106.33 T (xplanation to indicate that a particular subclass of) 125.45 106.33 T 4 F (Context) 326.53 106.33 T 0 F ( is required b) 368.53 106.33 T (ut not found.) 420.82 106.33 T (\245) 54 94.33 T (The def) 72 94.33 T (ault package pre\336x for loading URL conte) 102.72 94.33 T (xt f) 271.98 94.33 T (actories has changed from \322sun.jndi.url\323 to \322com.sun.jndi.url\323) 285.49 94.33 T (because of package renaming.) 72 82.33 T 34 537 36 720 R V 34 476.99 36 486.99 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "58" 62 %%Page: "59" 63 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 (59) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 3 F 0 X (Document V) 54 713.33 T (ersion Numbers Reset) 106.6 713.33 T 0 F -0.16 (The earlier) 54 698.33 P -0.16 (v) 99.76 698.33 P -0.16 (ersions of the JNDI documents were labeled as v) 104.61 698.33 P -0.16 (ersions 1.0, 1.1. and 1.2. The) 298.68 698.33 P -0.16 (y should ha) 413.53 698.33 P -0.16 (v) 459.12 698.33 P -0.16 (e been) 463.97 698.33 P -0.16 (\322Early Access\323,) 491.96 698.33 P (\322) 54 686.33 T (Beta) 58.44 686.33 T (1\323) 76.77 686.33 T (a) 88.71 686.33 T (nd so on,) 93.15 686.33 T (to match the code releases.) 132.04 686.33 T 54 646.99 558 657 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 646.99 558 657 R 7 X 0 0 0 1 0 0 0 K V 56 655.02 176 655.02 2 L V 1 H 2 Z 0 X N 0 0 612 792 C 3 12 Q 0 X 0 0 0 1 0 0 0 K (1.0Beta1: J) 54 661 T (NDI Changes Since) 111.32 661 T (1.0Early Access) 213.66 661 T 3 10 Q (API-r) 54 627.33 T (elated Changes) 78.81 627.33 T 0 F (\245) 54 612.33 T -0.01 (Added) 72 612.33 P 4 F -0.03 (java.naming.ReferralException) 101.15 612.33 P 0 F -0.01 ( to support client-side referrals. This abstract class is used to represent) 275.15 612.33 P -0.17 (a referral e) 72 600.33 P -0.17 (xception, such as that a) 114.81 600.33 P -0.17 (v) 206.96 600.33 P -0.17 (ailable in LD) 211.71 600.33 P -0.17 (AP v3. A service pro) 263.74 600.33 P -0.17 (vider de\336nes a subclass of) 347.05 600.33 P 4 F -0.41 (ReferralException) 453.67 600.33 P 0 F (to handle its o) 72 588.33 T (wn style of referrals.) 128.14 588.33 T (\245) 54 564.33 T (Added) 72 564.33 T 4 F (compareTo\050\051) 101.16 564.33 T 0 F ( to) 167.16 564.33 T 4 F (Name) 179.94 564.33 T 0 F ( \050and related classes) 203.94 564.33 T 4 F (CompositeName) 286.69 564.33 T 0 F (,) 364.69 564.33 T 4 F (CompoundName) 369.69 564.33 T 0 F (\051.) 441.69 564.33 T (public int compareTo\050Object obj\051;) 108 542.33 T (This method compares this) 72 524.33 T 4 F (Name) 182.55 524.33 T 0 F ( with the speci\336ed) 206.55 524.33 T 4 F (Object) 282.1 524.33 T 0 F ( for order) 318.1 524.33 T (. It returns a ne) 355.31 524.33 T (g) 417.92 524.33 T (ati) 422.87 524.33 T (v) 432.62 524.33 T (e inte) 437.47 524.33 T (ger) 459.26 524.33 T (, zero, or a positi) 471.63 524.33 T (v) 538.59 524.33 T (e) 543.44 524.33 T (inte) 72 512.33 T (ger as this) 86.85 512.33 T 4 F (Name) 129.9 512.33 T 0 F ( is less than, equal to, or greater than the gi) 153.9 512.33 T (v) 325.29 512.33 T (en) 330.14 512.33 T 4 F (Object) 342.08 512.33 T 0 F (. This method is useful for sorting a list of) 378.08 512.33 T (names.) 72 500.33 T (\245) 54 476.33 T (Added \324) 72 476.33 T 4 F (throws NamingException) 104.49 476.33 T 0 F (\325 to) 236.49 476.33 T 4 F (Referenceable.getReference\050\051) 252.6 476.33 T 0 F ( so that the implementor of) 420.6 476.33 T 4 F (getReference\050\051) 72 464.33 T 0 F ( can thro) 156 464.33 T (w an e) 190.74 464.33 T (xception if it encounters one.) 216.69 464.33 T (public Reference getReference\050\051 throws NamingException;) 108 442.33 T (\245) 54 424.33 T 4 F -0.15 (AttributeSet) 72 424.33 P 0 F -0.06 ( w) 144 424.33 P -0.06 (as originally case-sensiti) 153.56 424.33 P -0.06 (v) 251.51 424.33 P -0.06 (e. That is, the case of an attrib) 256.36 424.33 P -0.06 (ute identi\336er w) 375.98 424.33 P -0.06 (as considered when retrie) 436.3 424.33 P -0.06 (ving) 537.78 424.33 P (or adding an attrib) 72 412.33 T (ute to the set. T) 145.4 412.33 T (o better support service pro) 206.54 412.33 T (viders that support case-insensiti) 315.81 412.33 T (v) 446.38 412.33 T (e attrib) 451.23 412.33 T (ute identi\336ers, an) 479.08 412.33 T 4 F (AttributeSet) 72 400.33 T 0 F ( may no) 144 400.33 T (w be made case-insensiti) 175.97 400.33 T (v) 275.42 400.33 T (e. This change in) 280.27 400.33 T (v) 348.19 400.33 T (olv) 352.99 400.33 T (ed adding a ne) 365.62 400.33 T (w constructor to) 423.41 400.33 T 4 F (Attribute-) 490.9 400.33 T (Set) 72 388.33 T 0 F ( and a ne) 90 388.33 T (w method for interrog) 125.57 388.33 T (ating an attrib) 213.56 388.33 T (ute set about its handling of case.) 268.91 388.33 T (public AttributeSet\050boolean caseIgnore\051;) 108 366.33 T 4 F (public boolean isCaseIgnored\050\051;) 108 348.33 T 0 F (\245) 54 330.33 T 4 F (Context.setEnvironment\050\051) 72 330.33 T 0 F ( w) 216 330.33 T (as insuf) 225.62 330.33 T (\336cient to allo) 256.2 330.33 T (w both addition and remo) 308.73 330.33 T (v) 411.35 330.33 T (al of en) 416.1 330.33 T (vironment properties. The) 445.69 330.33 T (change is to replace) 72 318.33 T 4 F (setEnvironment\050\051) 153.64 318.33 T 0 F ( with) 249.64 318.33 T 4 F (addToEnvironment\050\051) 272.42 318.33 T 0 F ( and) 380.42 318.33 T 4 F (removeFromEnvironment\050\051) 399.86 318.33 T 0 F (.) 537.86 318.33 T (public Properties addToEnvironment\050Properties additions\051 throws NamingException;) 108 296.33 T 4 F (public Properties removeFromEnvironment\050Properties deletions\051 throws) 108 278.33 T (NamingException;) 108 266.33 T 0 F (\245) 54 248.33 T -0.27 (Added) 72 248.33 P 4 F -0.65 (hasMore\050\051) 100.89 248.33 P 0 F -0.27 ( to) 154.89 248.33 P 4 F -0.65 (BindingEnumeration) 167.13 248.33 P 0 F -0.27 (,) 275.13 248.33 P 4 F -0.65 (NameClassEnumeration) 279.86 248.33 P 0 F -0.27 ( and) 399.86 248.33 P 4 F -0.65 (SearchEnumeration) 418.75 248.33 P 0 F -0.27 ( so that a) 520.75 248.33 P (service pro) 72 236.33 T (vider can thro) 116 236.33 T (w an e) 171.29 236.33 T (xception when this query f) 197.24 236.33 T (ails for some une) 303.79 236.33 T (xpected reason.) 372.24 236.33 T 4 F (Enumeration.has-) 436.94 236.33 T (MoreElements\050\051) 72 224.33 T 0 F ( cannot thro) 156 224.33 T (w e) 203.52 224.33 T (xceptions. The w) 217.53 224.33 T (orkaround is for) 286.03 224.33 T 4 F (hasMoreElements\050\051) 352.96 224.33 T 0 F ( to return) 454.96 224.33 T 4 F (true) 494.12 224.33 T 0 F ( and sa) 518.12 224.33 T (v) 545.69 224.33 T (e) 550.54 224.33 T -0.1 (the e) 72 212.33 P -0.1 (xception until the program calls) 90.91 212.33 P 4 F -0.24 (next\050\051) 220.12 212.33 P 0 F -0.1 (.) 256.12 212.33 P 4 F -0.24 (hasMore\050\051) 263.42 212.33 P 0 F -0.1 ( allo) 317.42 212.33 P -0.1 (ws a pro) 334.57 212.33 P -0.1 (vider to indicate to the caller that it has encoun-) 368.1 212.33 P (tered an e) 72 200.33 T (xception while determining whether there are more elements. The caller that w) 110.72 200.33 T (ants to be noti\336ed of e) 426.1 200.33 T (xceptions) 515.11 200.33 T (can use) 72 188.33 T 4 F (hasMore\050\051) 104.21 188.33 T 0 F ( instead of) 158.21 188.33 T 4 F (hasMoreElements\050\051) 202.37 188.33 T 0 F (.) 304.37 188.33 T (public boolean hasMore\050\051 throws NamingException;) 108 166.33 T (\245) 54 148.33 T (Added a ne) 72 148.33 T (w constructor to) 117.29 148.33 T 4 F (OperationNotSupportedException) 184.78 148.33 T 0 F ( that accepts an e) 364.78 148.33 T (xplanation message as ar) 432.94 148.33 T (gu-) 532.46 148.33 T (ment. This a) 72 136.33 T (v) 121.52 136.33 T (oids the pro) 126.32 136.33 T (vider ha) 173.39 136.33 T (ving to use the tw) 205.68 136.33 T (o steps of creating an empty) 276.69 136.33 T 4 F (OperationNotSupportedExcep-) 391.67 136.33 T (tion) 72 124.33 T 0 F ( and then setting the e) 96 124.33 T (xplanation.) 183.34 124.33 T (\245) 54 100.33 T (Added) 72 100.33 T 4 F (composeName\050\051) 101.16 100.33 T 0 F ( methods to) 179.16 100.33 T 4 F (Context) 228.33 100.33 T 0 F ( class. These may be used to k) 270.33 100.33 T (eep track of the full name of an object as) 391.32 100.33 T (name resolution proceeds from conte) 72 88.33 T (xt to conte) 220.15 88.33 T (xt.) 262.22 88.33 T 34 657 36 705 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "59" 63 %%Page: "60" 64 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 (60) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 F 0 X (\245) 54 713.33 T (Remo) 72 713.33 T (v) 95.74 713.33 T (ed e) 100.59 713.33 T (xtraneous parameter in) 116.82 713.33 T 4 F (NamingException.getRootCause\050\051) 210.96 713.33 T 0 F (.) 390.96 713.33 T 3 F (SPI-r) 54 691.33 T (elated Changes) 77.15 691.33 T 0 F (\245) 54 676.33 T -0.33 (Clari\336ed ho) 72 676.33 P -0.33 (w URL conte) 118.92 676.33 P -0.33 (xt f) 171.99 676.33 P -0.33 (actories and conte) 185.17 676.33 P -0.33 (xts are located and created. Eliminated the \324) 256.56 676.33 P 4 F -0.79 (String url) 431.92 676.33 P 0 F -0.33 (\325 ar) 491.13 676.33 P -0.33 (gument from) 504.22 676.33 P 4 F (NamingManager.getURLContext\050\051) 72 664.33 T 0 F ( and clari\336ed its semantics.) 246 664.33 T 4 F -0.28 (getURLContext\050String scheme, Properties env\051) 72 652.33 P 0 F -0.12 ( no) 335.16 652.33 P -0.12 (w returns a conte) 347.29 652.33 P -0.12 (xt for resolving URLs with scheme) 415.38 652.33 P (id) 72 640.33 T 4 F (scheme) 82.28 640.33 T 0 F (. It is not tied to an) 118.28 640.33 T (y speci\336c URLs, only the scheme id. See) 193.41 640.33 T 3 F (JNDI SPI) 360.06 640.33 T 0 F ( document and) 401.45 640.33 T 4 F (NamingMan-) 462.83 640.33 T (ager.getURLContext\050\051) 72 628.33 T 0 F ( for details.) 192 628.33 T (\245) 54 604.33 T -0.31 (Clari\336ed ho) 72 604.33 P -0.31 (w) 118.94 604.33 P 4 F -0.75 (NamingManager.getObjectInstance\050\051) 128.35 604.33 P 0 F -0.31 ( treats URLs. F) 326.35 604.33 P -0.31 (ormerly) 386.37 604.33 P -0.31 (, it only treated) 417.38 604.33 P 4 F -0.75 (References) 479.18 604.33 P 0 F -0.31 ( and) 539.18 604.33 P 4 F -0.79 (Referenceables) 72 592.33 P 0 F -0.33 ( specially) 156 592.33 P -0.33 (. It no) 193.07 592.33 P -0.33 (w treats URLs specially as well. Y) 215.77 592.33 P -0.33 (ou can no) 351.29 592.33 P -0.33 (w call) 389.26 592.33 P 4 F -0.79 (getObjectInstance\050\051) 415.27 592.33 P 0 F -0.33 ( with a) 529.27 592.33 P (URL string or an array of URL strings and get back an object identi\336ed by the URL. See) 72 580.33 T 3 F (JNDI SPI) 429.45 580.33 T 0 F ( document and) 470.84 580.33 T 4 F (NamingManager.getObjectInstance\050\051) 72 568.33 T 0 F ( for details.) 270 568.33 T (\245) 54 544.33 T (Placed additional requirements on URL conte) 72 544.33 T (xt f) 254.88 544.33 T (actories on ho) 268.39 544.33 T (w to treat its ar) 324.24 544.33 T (guments so that all URL conte) 384.05 544.33 T (xt f) 505.84 544.33 T (actories) 519.35 544.33 T (beha) 72 532.33 T (v) 90.68 532.33 T (e consistently) 95.53 532.33 T (. See) 149.6 532.33 T 3 F (JNDI SPI) 171.54 532.33 T 0 F ( document and) 212.93 532.33 T 4 F (ObjectFactory.getObjectInstance\050\051) 274.31 532.33 T 0 F ( for details.) 472.31 532.33 T (\245) 54 508.33 T 4 F (NamingManager.getContinuationContext\050\051) 72 508.33 T 0 F ( and) 300 508.33 T 4 F (DirectoryManager.getContinuationDSCon-) 319.44 508.33 T (text\050\051) 72 496.33 T 0 F ( accept as an ar) 108 496.33 T (gument) 168.9 496.33 T 4 F (CannotProceedException) 201.4 496.33 T 0 F ( instead of a resolv) 333.4 496.33 T (ed object. This allo) 408.79 496.33 T (ws information) 485.2 496.33 T (required to create a continuation conte) 72 484.33 T (xt to be passed using one ar) 225.42 484.33 T (gument and accommodates a common programming) 335.78 484.33 T (scenario of service pro) 72 472.33 T (viders using) 162.65 472.33 T 4 F (CannotProceedException) 213.76 472.33 T 0 F ( to indicate the state of the operation.) 345.76 472.33 T (\245) 54 448.33 T (Added a \324remaining ne) 72 448.33 T (wname\325 part to) 163.67 448.33 T 4 F (CannotProceedException) 226.71 448.33 T 0 F ( so that information required to continue a) 358.71 448.33 T 4 F -0.82 (rename\050\051) 72 436.33 P 0 F -0.34 ( can be represented, and an en) 120 436.33 P -0.34 (vironment part for storing and retrie) 237.78 436.33 P -0.34 (ving the en) 379.97 436.33 P -0.34 (vironment to use when resolution) 423.33 436.33 P (continues..) 72 424.33 T 3 F (System Pr) 54 402.33 T (operties) 97.42 402.33 T 0 F (\245) 54 387.33 T (T) 72 387.33 T (w) 77.31 387.33 T (o ne) 84.43 387.33 T (w system properties are introduced.) 101.12 387.33 T 0 12 Q (\245) 115 368 T 4 10 Q -1.1 (jndi.urlfactory.pkgs) 126 368 P 0 12 Q -0.55 (: Specifies package prefixes to use when loading URL context) 246 368 P (factories. See) 126 354 T 4 10 Q (NamingManager.getURLContext\050\051) 193.64 354 T 0 12 Q (.) 367.64 354 T (\245) 115 334 T 4 10 Q 4.54 (jndi.dns.url) 126 334 P 0 12 Q 2.27 (: Specifies DNS service location when using DNS names in \322jndi\323) 198 334 P (URLs \050e.g \322) 126 320 T 4 10 Q (jndi://dnsname/...) 184.32 320 T 0 12 Q (\323\051.) 292.32 320 T 0 10 Q (These can also be passed as en) 72 301.33 T (vironment properties to the) 194.34 301.33 T 4 F (InitialContext) 305.44 301.33 T 0 F ( constructor) 389.44 301.33 T (.) 436.38 301.33 T 3 F (En) 54 279.33 T (vir) 65.83 279.33 T (onment Pr) 77.87 279.33 T (operties) 122.96 279.33 T 0 F (\245) 54 264.33 T 4 F -0.42 (jndi.service.host) 72 264.33 P 0 F -0.17 ( and) 174 264.33 P 4 F -0.42 (jndi.service.port) 193.09 264.33 P 0 F -0.17 ( ha) 295.09 264.33 P -0.17 (v) 306.66 264.33 P -0.17 (e been replaced by the more general) 311.51 264.33 P 4 F -0.42 (jndi.service.url) 457.17 264.33 P 0 F -0.17 (.) 553.17 264.33 P 4 F (jndi.service.url) 72 252.33 T 0 F ( speci\336es the location information for con\336guring a conte) 168 252.33 T (xt.) 397.82 252.33 T (Conte) 72 240.33 T (xt service pro) 95.74 240.33 T (vider are encouraged to use this ne) 150.02 240.33 T (w en) 288.62 240.33 T (vironment property) 307.38 240.33 T (. The) 384.22 240.33 T (y are still free to use additional en) 404.62 240.33 T (vi-) 540.03 240.33 T (ronment properties as needed for their pro) 72 228.33 T (vider) 240.14 228.33 T (.) 260.14 228.33 T (\245) 54 216.33 T (Added) 72 216.33 T 4 F (jndi.service.followReferrals) 101.16 216.33 T 0 F (: Speci\336es that referrals encountered by the service pro) 269.16 216.33 T (vider are to be) 488.95 216.33 T (follo) 72 204.33 T (wed automatically) 90.64 204.33 T (.) 163.59 204.33 T 54 164.99 558 175 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 164.99 558 175 R 7 X 0 0 0 1 0 0 0 K V 56 173.03 176 173.03 2 L V 1 H 2 Z 0 X N 0 0 612 792 C 3 12 Q 0 X 0 0 0 1 0 0 0 K (1.0Early Access:) 54 179 T (JNDI Changes Since) 141.65 179 T (Initial Documentation Release) 249.98 179 T 3 10 Q (General Changes) 54 145.33 T 0 F (\245) 54 130.33 T (Renamed packages) 72 130.33 T 4 F (jndi.ns -> java.naming) 108 118.33 T (jndi.ds -> java.naming.directory) 108 100.33 T (jndi.spi -> java.naming.spi) 108 82.33 T 34 175 36 187 R V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "60" 64 %%Page: "61" 65 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 (61) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 F 0 X (\245) 54 713.33 T (Added implements) 72 713.33 T 4 F (java.io.Serializable) 150.33 713.33 T 0 F ( to the follo) 270.33 713.33 T (wing classes and interf) 316.47 713.33 T (aces:) 407.74 713.33 T 4 F (Name) 140.4 701.33 T (NameClassPair) 140.4 689.33 T (RefAddr) 140.4 677.33 T (Reference) 140.4 665.33 T (Attribute) 140.4 653.33 T (AttributeSet) 140.4 641.33 T (ModificationItem) 140.4 629.33 T (ModificationEnumeration) 140.4 617.33 T (SearchConstraints) 140.4 605.33 T 0 F (\245) 54 593.33 T (Renamed the \322count\323 methods to be more descripti) 72 593.33 T (v) 276.44 593.33 T (e.) 281.29 593.33 T 4 F (Reference.count\050\051 -> Reference.getAddressCount\050\051) 140.4 581.33 T (Name.count\050\051 -> Name.getComponentCount\050\051) 140.4 569.33 T ([same for CompoundName and CompositeName]) 165.6 557.33 T (Attribute.count\050\051 -> Attribute.getValueCount\050\051) 140.4 545.33 T (AttributeSet.count\050\051 -> AttributeSet.getAttributeCount\050\051) 140.4 533.33 T (ModificationEnumeration.count\050\051 ->) 140.4 521.33 T (ModificationEnumeration.getModificationItemCount\050\051) 165.6 509.33 T 0 F (\245) 54 497.33 T -0.14 (Renamed methods with \324) 72 497.33 P 4 F -0.35 (SubContext) 171.84 497.33 P 0 F -0.14 (\325 to \324) 231.84 497.33 P 4 F -0.35 (Subcontext) 250.99 497.33 P 0 F -0.14 (\325. The ne) 310.99 497.33 P -0.14 (w method names are no) 346.27 497.33 P -0.14 (w) 440.42 497.33 P 4 F -0.35 (Context.createSub-) 450 497.33 P (context\050\051) 72 485.33 T 0 F (,) 126 485.33 T 4 F (Context.destroySubcontext\050\051) 131 485.33 T 0 F (, and) 293 485.33 T 4 F (DSContext.createSubcontext\050\051) 314.94 485.33 T 0 F (.) 482.94 485.33 T 3 F (Name-r) 54 463.33 T (elated Changes) 86.58 463.33 T 0 F (\245) 54 448.33 T 4 F -0.38 (NameParser) 72 448.33 P 0 F -0.16 ( is no) 132 448.33 P -0.16 (w an interf) 153.1 448.33 P -0.16 (ace instead of abstract class. None of its methods contain an) 196.01 448.33 P -0.16 (y implementation so it is more) 434.5 448.33 P (\337e) 72 436.33 T (xible for it to be an interf) 81.85 436.33 T (ace. Remo) 182.29 436.33 T (v) 224.35 436.33 T (ed the) 229.2 436.33 T 4 F (getNamingConvention\050\051) 255.86 436.33 T 0 F ( method from) 381.86 436.33 T 4 F (NameParser) 438.8 436.33 T 0 F (.) 498.25 436.33 T (\245) 54 424.33 T (Added class hierarch) 72 424.33 T (y to) 155.81 424.33 T 4 F (NamingException) 173.59 424.33 T 0 F ( for security-related e) 263.59 424.33 T (xceptions.) 349.24 424.33 T 4 F (NamingException) 108 412.33 T (NamingSecurityException) 145 394.33 T (NoPermissionException) 182 376.33 T (AuthenticationException) 182 358.33 T (AuthenticationNotSupportedException) 182 340.33 T 0 F (\245) 54 322.33 T (Added) 72 322.33 T 4 F (throws IllegalNameException) 101.16 322.33 T 0 F ( to name-manipulation methods so that the) 263.16 322.33 T (y ha) 433.56 322.33 T (v) 450.3 322.33 T (e a w) 455.15 322.33 T (ay of indicating) 476.15 322.33 T (error) 72 310.33 T (. This applies to the) 90.88 310.33 T 4 F (Name) 171.99 310.33 T 0 F ( interf) 195.99 310.33 T (ace, the) 220.05 310.33 T 4 F (CompositeName) 253.09 310.33 T 0 F ( and) 331.09 310.33 T 4 F (CompoundName) 350.53 310.33 T 0 F ( classes.) 422.53 310.33 T 4 F (prependName\050\051) 140.4 298.33 T (appendName\050\051) 140.4 286.33 T (insertName\050\051) 140.4 274.33 T (prependComponent\050\051) 140.4 262.33 T (appendComponent\050\051) 140.4 250.33 T (insertComponent\050\051) 140.4 238.33 T (deleteComponent\050\051) 140.4 226.33 T 0 F (\245) 54 202.33 T (The follo) 72 202.33 T (wing constructors thro) 108.69 202.33 T (w) 198.43 202.33 T 4 F (IllegalNameException) 208.15 202.33 T 0 F ( instead of) 328.15 202.33 T 4 F (NamingException) 372.31 202.33 T (CompositeName\050\051) 140.4 190.33 T (CompoundName\050\051) 140.4 178.33 T 3 F (DSContext-r) 54 156.33 T (elated Changes:) 108.25 156.33 T 0 F (\245) 54 141.33 T (Dropped \324) 72 141.33 T 4 F (WithAttributes) 112.82 141.33 T 0 F (\325 suf) 196.82 141.33 T (\336x from) 214.62 141.33 T 4 F (bindWithAttributes\050\051, rebindWithAttributes\050\051,) 249.62 141.33 T 0 F (and) 525.62 141.33 T 4 F (createSubContextWithAttributes\050\051) 72 129.33 T 0 F (. The) 264 129.33 T (y are no) 284.4 129.33 T (w simply) 316.36 129.33 T 4 F (DSContext.bind\050\051, DSCon-) 355.81 129.33 T (text.rebind\050\051,) 72 117.33 T 0 F (and) 162 117.33 T 4 F (DSContext.createSubcontext\050\051,) 178.94 117.33 T 0 F (respecti) 358.94 117.33 T (v) 389.79 117.33 T (ely) 394.64 117.33 T (.) 406.21 117.33 T (\245) 54 105.33 T (Remo) 72 105.33 T (v) 95.74 105.33 T (ed) 100.59 105.33 T 4 F (DSContext.SearchFilter) 112.53 105.33 T 0 F ( class and replaced tw) 244.53 105.33 T (o e) 332.18 105.33 T (xisting) 343.97 105.33 T 4 F (DSContext.Search\050\051) 373.7 105.33 T 0 F ( methods:) 481.7 105.33 T 4 F (public SearchEnumeration search\050String name, String filterExpr,) 108 93.33 T (Object[] filterArgs, SearchConstraints constraints\051;) 145 75.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "61" 65 %%Page: "62" 66 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 (62) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 4 F 0 X (public SearchEnumeration search\050Name name, String filterExpr,) 108 713.33 T (Object[] filterArgs, SearchConstraints constraints\051;) 145 695.33 T 0 12 Q -0.31 (where) 108 658 P 4 10 Q -0.61 (filterExpr) 140.01 658 P 0 12 Q -0.31 ( contains \324) 200.01 658 P 4 10 Q -0.61 ({n}) 249.39 658 P 0 12 Q -0.31 (\325,) 267.39 658 P 4 10 Q -0.61 (n) 277.08 658 P 0 12 Q -0.31 ( is an integer and denotes the n\325th element in) 283.08 658 P 4 10 Q -0.61 (filterArgs) 498 658 P 0 12 Q 0.69 (to substitute in the expression. The reason for this change is that) 108 644 P 4 10 Q 1.38 (SearchFilter) 427.28 644 P 0 12 Q 0.69 ( had limited) 499.28 644 P 0.15 (capabilities and a full class for it was not justified. These changes make the syntax for substi-) 108 630 P -0.19 (tution of variables within an expression consistent with the formatting methods in) 108 616 P 4 10 Q -0.39 (java.text) 501 616 P 0 12 Q -0.19 (.) 555 616 P 0 10 Q (\245) 54 597.33 T (Renamed) 72 597.33 T 4 F (AttributeSet.modify\050\051) 112.27 597.33 T 0 F ( to) 238.27 597.33 T 4 F (AttributeSet.replace\050\051) 251.05 597.33 T 0 F ( for consistent usage of \324replace\325 with) 383.05 597.33 T 4 F (Attribute.replaceValue\050\051) 72 585.33 T 0 F ( and) 216 585.33 T 4 F (DSContext.REPLACE_ATTRIBUTE) 235.44 585.33 T 0 F (.) 397.44 585.33 T (\245) 54 573.33 T (Changes to) 72 573.33 T 4 F (Attribute) 119.22 573.33 T 0 F ( class:) 173.22 573.33 T 0 12 Q (\245) 115 554 T 1.15 (Added) 126 554 P 4 10 Q 2.31 (Attribute.contains\050\051) 162.15 554 P 0 12 Q 1.15 ( for testing whether an attribute contains a specified) 282.15 554 P (value.) 126 540 T (\245) 115 520 T 4 10 Q 3.91 (Attribute.add\050\051) 126 520 P 0 12 Q 1.96 ( throws) 216 520 P 4 10 Q 3.91 (AttributeInUseException) 258.58 520 P 0 12 Q 1.96 ( instead of the more general) 396.58 520 P 4 10 Q (NamingException) 126 506 T 0 12 Q (.) 216 506 T (\245) 115 486 T 1.71 (Schema methods return) 126 486 P 4 10 Q 3.41 (null) 247.43 486 P 0 12 Q 1.71 ( by default. Removed protected variables) 271.43 486 P 4 10 Q 3.41 (syntax) 481.96 486 P 0 12 Q 1.71 ( and) 517.97 486 P 4 10 Q (attr_defn) 126 472 T 0 12 Q (.) 180 472 T 0 10 Q (\245) 54 453.33 T (Added) 72 453.33 T 4 F (InvalidAttributeSetException) 101.16 453.33 T 0 F ( to deal with the case of incorrectly or insuf) 269.16 453.33 T (\336ciently speci\336ed attrib) 443.04 453.33 T (ute) 537.28 453.33 T (sets.) 72 441.33 T 3 F (SPI-r) 54 419.33 T (elated Changes) 77.15 419.33 T 0 F (\245) 54 404.33 T (Renamed some class and interf) 72 404.33 T (ace names in) 196.32 404.33 T 4 F (java.naming.spi) 250.47 404.33 T 0 F ( for consistenc) 340.47 404.33 T (y) 398.64 404.33 T 4 F (InitialContextImpl -> InitialContextFactory) 108 392.33 T (InitialContextImplFactory -> InitialContextFactoryBuilder) 108 374.33 T (setInitialContextImplFactory\050\051 -> setInitialContextFactoryBuilder\050\051) 108 356.33 T (hasInitialContextImplFactory\050\051 -> hasInitialContextFactoryBuilder\050\051) 108 338.33 T (InitialContextImplFactory.createInitialContextImpl\050\051 ->) 108 320.33 T (InitialContextFactoryBuilder.createInitialContextFactory\050\051) 182 302.33 T (JNDIManager -> NamingManager) 108 284.33 T (JNDIDSManager -> DirectoryManager) 108 266.33 T 0 F (\245) 54 248.33 T (Renamed) 72 248.33 T 4 F (createObject\050\051) 112.27 248.33 T 0 F ( to) 196.27 248.33 T 4 F (getObjectInstance\050\051) 209.05 248.33 T 0 F ( so that it is consistent with similar usage in other Ja) 323.05 248.33 T (v) 531.46 248.33 T (a) 536.21 248.33 T (packages.) 72 236.33 T 4 F (JNDIManager.createObject\050\051 -> NamingManager.getObjectInstance\050\051) 108 224.33 T (ObjectFactory.createObject\050\051 -> ObjectFactory.getObjectInstance\050\051.) 108 206.33 T 0 F (\245) 54 188.33 T (Renamed property) 72 188.33 T 4 F ( jndi.initialContext) 146.15 188.33 T 0 F ( to) 266.15 188.33 T 4 F (jndi.initialContextFactory) 278.93 188.33 T 0 F ( for consistenc) 434.93 188.33 T (y with method) 493.1 188.33 T (names.) 72 176.33 T (\245) 54 164.33 T (The) 72 164.33 T 4 F (jndi.initialContextFactory) 90.05 164.33 T 0 F ( property no) 246.05 164.33 T (w contains a single class name instead of a colon-separated list) 294.68 164.33 T (because it does not mak) 72 152.33 T (e sense to ha) 167.44 152.33 T (v) 218.06 152.33 T (e more than one class.) 222.91 152.33 T (\245) 54 140.33 T -0.06 (T) 72 140.33 P -0.06 (o pro) 77.31 140.33 P -0.06 (vide more \337e) 97.93 140.33 P -0.06 (xibility and to a) 150.42 140.33 P -0.06 (v) 213.09 140.33 P -0.06 (oid) 217.89 140.33 P 4 F -0.15 (SecurityManager) 233.11 140.33 P 0 F -0.06 (-related problems in some con\336gurations, the system prop-) 322.91 140.33 P -0.05 (erties) 72 128.33 P 4 F -0.13 (jndi.initialContextFactory) 96.11 128.33 P 0 F -0.05 ( and) 252.1 128.33 P 4 F -0.13 (jndi.objectFactories) 271.43 128.33 P 0 F -0.05 ( can be passed as part of the en) 391.43 128.33 P -0.05 (vironment) 514.45 128.33 P (properties passed to the constructors for) 72 116.33 T 4 F (InitialContext) 234.19 116.33 T 0 F ( and) 318.19 116.33 T 4 F (InitialDSContext) 337.63 116.33 T 0 F (, and) 433.63 116.33 T 4 F (ObjectFac-) 455.57 116.33 T (tory.getObjectInstance\050\051) 72 104.33 T 0 F (.) 216 104.33 T (\245) 54 92.33 T (Some protected methods in) 72 92.33 T 4 F (NamingManager) 183.66 92.33 T 0 F ( and) 261.66 92.33 T 4 F (DirectoryManager) 281.1 92.33 T 0 F ( are no) 377.1 92.33 T (w pri) 404.06 92.33 T (v) 424.64 92.33 T (ate. This pro) 429.39 92.33 T (vides more \337e) 479.51 92.33 T (xibil-) 536.02 92.33 T (ity in subsequent changes to these classes without e) 72 80.33 T (xposing details of the implementation) 277.94 80.33 T 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "62" 66 %%Page: "63" 67 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 (63) 301 36 T (12/2/97) 527.44 36 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 72 558 720 R 7 X V 0 0 0 1 0 0 0 K FMENDPAGE %%EndPage: "63" 67 %%Trailer %%BoundingBox: 0 0 612 792 %%PageOrder: Ascend %%Pages: 67 %%DocumentFonts: Times-Roman %%+ Times-Italic %%+ Symbol %%+ Times-Bold %%+ Courier %%+ Helvetica-Bold %%+ Helvetica %%+ Courier-Bold %%EOF .