Agreed.
On Tue, Nov 13, 2012 at 6:57 PM, Gregg Wonderly <ge...@cox.net> wrote: > Of course, the practical matter, is that in this day and age, server port > numbers indicate specific types of services for the things in > /etc/services. But, really, we should move the whole discovery business > away from "socket creation parameters" and into a "mechanism" using an > interface or abstract class so that through Configuration, it would be > pluggable at deployment. > > Gregg > > On Nov 13, 2012, at 6:05 PM, Peter <j...@zeus.net.au> wrote: > > > Hi Greg, > > > > LookupLocatorDiscovery uses LookupLocator to find a Registrar, however > it only uses the host name and port, it doesn't use LookupLocator to > perform discovery. > > > > LookupLocator requires a defined static port, otherwise 4160 is used if > no port is defined. > > > > Recently a SocketFactory was added to LookupLocator, however this is > only used by the obsolete version 1 discovery in LookupLocator and not by > LookupLocatorDiscovery. > > > > LookupLocator is also Serializable, but it's constructed with multicast > discovery where the SocketFactory cannot be transferred. > > > > It seems we'd be better off using URI, in fact when LookupLocator is > constructed, it uses URI to assist parsing the host name and port. > > > > Instead of mandating Socket we could consider using a jeri Endpoint. > > > > A URI scheme provider could be used for plugging in different schemes to > obtain the Endpoint. > > > > This might allow the use of maven provisioning or similar to obtain an > unknown scheme or Endpoint. > > > > This would allow plugging in dns-srv URI's and other unknown future > protocols for obtaining a registrar proxy. > > > > A default jini://host:port provider can be supplied for backward > compatibility. > > > > Thoughts? > > > > Peter. > > > > > > ----- Original message ----- > >> > >> On Tue, 2012-11-13 at 08:31, Peter Firmstone wrote: > >>> Presently LookupLocator is practically a URI of the form > >>> "jini://hostname:port" > >>> > >>> LookupLocator is constructed during multicast discovery at the client. > >>> > >>> ConstrainableLookupLocator is a subclass that implements constraints. > >>> > >>> LookupLocatorDiscovery also accepts LookupLocator to perform unicast > >>> discovery using constraints. > >>> > >>> We modified LookupLocator to accept a SocketFactory via a constructor > >>> (approx 2 years ago). > >>> > >>> LookupLocator is built around tcp, but there are obviously many > protocols. > >>> > >>> Any ideas? > >> > >> I'm not sure I understand the question. Is there a problem with > >> LookupLocator? > >> > >> Cheers, > >> > >> Greg. > >> > >>> > >>> Oh I found a bug in LookupLocator on ARM btw: > >>> > >>> Seems to be something wrong with the parser, dropping the port number, > >>> getting closer to fixing it at least now I know why port 4160 is always > >>> in use ;). > >>> > >>> BaseQATest.startInitLookups FINE: initial lookups started != initial > lookups > >>> wanted BaseQATest.startInitLookups FINE: initial lookups started -- > >>> BaseQATest.displayLookupStartInfo FINE: # of lookups = 3 > >>> BaseQATest.displayLookupStartInfo FINE: locator lookup[0] = > >>> ConstrainableLookupLocator[[jini://je-cal-12.apache.org:37955/], > [null]] > >>> GroupsUtil.displayGroupSet FINE: group[0] = > >>> LLDGroup0_A_je-cal-12_1352811309324 GroupsUtil.displayGroupSet FINE: > >>> group[1] = LLDGroup0_B_je-cal-12_1352811309324 > GroupsUtil.displayGroupSet > >>> FINE: group[2] = LLDGroup0_C_je-cal-12_1352811309324 > >>> BaseQATest.displayLookupStartInfo FINE: locator lookup[1] = > >>> ConstrainableLookupLocator[[jini://je-cal-12.apache.org:49744/], > [null]] > >>> GroupsUtil.displayGroupSet FINE: group[0] = > >>> LLDGroup1_A_je-cal-12_1352811309324 GroupsUtil.displayGroupSet FINE: > >>> group[1] = LLDGroup1_B_je-cal-12_1352811309324 > GroupsUtil.displayGroupSet > >>> FINE: group[2] = LLDGroup1_C_je-cal-12_1352811309324 > >>> GroupsUtil.displayGroupSet FINE: group[3] = > >>> LLDGroup1_D_je-cal-12_1352811309324 BaseQATest.displayLookupStartInfo > FINE: > >>> locator lookup[2] = > >>> ConstrainableLookupLocator[[jini://je-cal-12.apache.org:57373/], > [null]] > >>> GroupsUtil.displayGroupSet FINE: group[0] = > >>> LLDGroup2_A_je-cal-12_1352811309324 GroupsUtil.displayGroupSet FINE: > >>> group[1] = LLDGroup2_B_je-cal-12_1352811309324 > GroupsUtil.displayGroupSet > >>> FINE: group[2] = LLDGroup2_C_je-cal-12_1352811309324 > >>> BaseQATest.startInitLookups FINE: initial lookups wanted -- > >>> BaseQATest.displayLookupStartInfo FINE: # of lookups = 3 > >>> BaseQATest.displayLookupStartInfo FINE: locator lookup[0] = > >>> ConstrainableLookupLocator[[jini://je-cal-12.apache.org:4160/], > [null]] > >>> GroupsUtil.displayGroupSet FINE: group[0] = > >>> LLDGroup0_A_je-cal-12_1352811309324 GroupsUtil.displayGroupSet FINE: > >>> group[1] = LLDGroup0_B_je-cal-12_1352811309324 > GroupsUtil.displayGroupSet > >>> FINE: group[2] = LLDGroup0_C_je-cal-12_1352811309324 > >>> BaseQATest.displayLookupStartInfo FINE: locator lookup[1] = > >>> ConstrainableLookupLocator[[jini://je-cal-12.apache.org:4160/], > [null]] > >>> GroupsUtil.displayGroupSet FINE: group[0] = > >>> LLDGroup1_A_je-cal-12_1352811309324 GroupsUtil.displayGroupSet FINE: > >>> group[1] = LLDGroup1_B_je-cal-12_1352811309324 > GroupsUtil.displayGroupSet > >>> FINE: group[2] = LLDGroup1_C_je-cal-12_1352811309324 > >>> GroupsUtil.displayGroupSet FINE: group[3] = > >>> LLDGroup1_D_je-cal-12_1352811309324 BaseQATest.displayLookupStartInfo > FINE: > >>> locator lookup[2] = > >>> ConstrainableLookupLocator[[jini://je-cal-12.apache.org:4160/], > [null]] > >>> GroupsUtil.displayGroupSet FINE: group[0] = > >>> LLDGroup2_A_je-cal-12_1352811309324 GroupsUtil.displayGroupSet FINE: > >>> group[1] = LLDGroup2_B_je-cal-12_1352811309324 > GroupsUtil.displayGroupSet > >>> FINE: group[2] = LLDGroup2_C_je-cal-12_1352811309324 > >>> BaseQATest.tearDown FINE: tearDown - terminating lookup service(s) > >>> > >>> > >>> > >>> > >>> > >> > > > >