Package net.jini.core.lookup

Examples of net.jini.core.lookup.ServiceItem


  myLocator = (proxy instanceof RemoteMethodControl) ?
      new ConstrainableLookupLocator(
    unicastDiscoveryHost, unicaster.port, null) :
      new LookupLocator(unicastDiscoveryHost, unicaster.port);
  /* register myself */
  Item item = new Item(new ServiceItem(myServiceID,
               proxy,
               lookupAttrs));
  SvcReg reg = new SvcReg(item, myLeaseID, Long.MAX_VALUE);
  addService(reg);
  if (log != null) {
View Full Code Here


  if(! isAdmin){
      if (!match)
          return;
      buf.append("\n\n");
      for (int i = 0; i < matches.items.length; i++) {
          ServiceItem item = matches.items[i];
    buf.append("Service ID: ");
    buf.append(item.serviceID);
    buf.append("\n");
    buf.append("Service instance: ");
    buf.append(item.service);
View Full Code Here

      ArrayList items = new ArrayList(1);
      Iterator iter = getServiceIdMapEntrySetIterator();
      while(iter.hasNext()) {
    Map.Entry e = (Map.Entry)iter.next();
    ServiceItemReg itemReg = (ServiceItemReg)e.getValue();
    ServiceItem itemToFilter;
    ServiceItem itemToDiscard;
    synchronized(itemReg) {
                    if(    (itemReg.isDiscarded())
                        || (itemReg.filteredItem == null) ) continue;
                    /* Make a copy because the filter may change it to null */
        itemToFilter = new ServiceItem
                                      ( (itemReg.filteredItem).serviceID,
                                        (itemReg.filteredItem).service,
                                        (itemReg.filteredItem).attributeSets );
                }//end sync(itemReg)
                Object serviceToDiscard = itemToFilter.service;
View Full Code Here

                                          boolean matchMatchEvent )
        {
            /* Save the pre-event state. Update the post-event state after
             * applying the filter.
             */
      ServiceItem oldItem;
      ServiceItem oldFilteredItem;
      synchronized(itemReg) {
                oldItem = itemReg.item;
                oldFilteredItem = itemReg.filteredItem;
    if(itemReg.isDiscarded()) {
                    itemReg.item = newItem;//capture changes for discard
                    itemReg.filteredItem = null;//so filter will be retried
                    return;
                }//endif
                itemReg.addProxy(proxy);
      }//end sync(itemReg)
            /* For an explanation of the logic of the following if-else-block,
             * refer to the method description above.
             */
            boolean attrsChanged = false;
            boolean versionChanged = false;
      if( matchMatchEvent || sameVersion(newItem,oldItem) ) {
                /* Same version, determine if the attributes have changed.
                 * But first, replace the new service proxy with the old
                 * service proxy so the client always uses the old proxy
                 * (at least, until the version is changed).
                 */
                newItem.service = oldItem.service;
                /* Now compare attributes */
                attrsChanged = !LookupAttributes.equal(newItem.attributeSets,
                                                       oldItem.attributeSets);
                if(!attrsChanged) return;//no change, no need to filter
            } else {//(!matchMatchEvent && !same version) ==> re-registration
                versionChanged = true;
            }//endif
            /* Now apply the filter, and send events if appropriate */
            ServiceItem newFilteredItem = filterMaybeDiscard
                                                       (newItem, proxy, true);
            if(newFilteredItem != null) {
                /* Passed the filter, okay to send event(s). */
                if(attrsChanged) changeServiceNotify(newFilteredItem,
                                                     oldFilteredItem);
View Full Code Here

            if(filter == null) {
                addFilteredItemToMap(item,item);
                return item;
            }//endif
            /* Make a copy to filter because the filter may modify it. */
            ServiceItem filteredItem = new ServiceItem(item.serviceID,
                                                       item.service,
                                                       item.attributeSets);
            boolean pass = filter.check(filteredItem);
            /* Handle filter fail */
            if(!pass) {
                ServiceID srvcID = item.serviceID;
                ServiceItemReg itemReg = null;
                synchronized(serviceIdMap) {
                    itemReg = (ServiceItemReg)serviceIdMap.get(srvcID);
                }//end sync(serviceIdMap)
                if(itemReg != null) {
                    if(sendEvent) {
                        ServiceItem oldFilteredItem;
                        synchronized(itemReg) {
                            oldFilteredItem = itemReg.filteredItem;
                        }//end sync(itemReg)
                        removeServiceIdMap(srvcID, oldFilteredItem);
                    } else {
View Full Code Here

            ServiceItemReg itemReg = null;
            synchronized(serviceIdMap) {
                itemReg = (ServiceItemReg)serviceIdMap.get(item.serviceID);
            }//end sync(serviceIdMap)
            if(itemReg == null) return;
            ServiceItem oldFilteredItem;
            synchronized(itemReg) {
                oldFilteredItem = itemReg.filteredItem;
                /* If there's been any change in what is being discarded for
                 * filter retry, then update the item field in the map to
                 * capture that change; and set the filteredItem field to
View Full Code Here

                itemReg = (ServiceItemReg)serviceIdMap.get(srvcID);
            }//end sync(serviceIdMap)
            if(itemReg != null) {
                boolean itemRegHasNoProxys;
                boolean itemRegIsDiscarded;
                ServiceItem filteredItem;
                synchronized(itemReg) {
                    itemReg.removeProxy(proxy);
                    itemRegHasNoProxys = itemReg.hasNoProxys();
                    itemRegIsDiscarded = itemReg.isDiscarded();
                    filteredItem = itemReg.filteredItem;
View Full Code Here

        new Thread(finder).start();
        while (finder.getNumberOfServices() == 0)
      Thread.sleep(500);
    }
    for (int i = 0; i < searchServiceItems.size(); i++) {
        ServiceItem item = (ServiceItem)searchServiceItems.elementAt(i);
        for (int j = 0; j < item.attributeSets.length; j++)
      if (item.attributeSets[j] instanceof SearchEngineEntry) {
          System.out.println("SearchEngineEntry found");
          SearchEngineEntry sc = (SearchEngineEntry)item.attributeSets[j];
          _engines.addElement(sc.getServer());
      }
    }
      }
      list = config.getElementsByTagName("XmlDocumentService");
      Vector documentServiceItems = new Vector();
      if (list.getLength() > 0) {
    for (int i = 0; i < list.getLength(); i++) {
        Element clientConfig = (Element)list.item(i);
        System.out.println(clientConfig);
        ServiceFinder finder = new ServiceFinder(documentServiceItems,
                   "XmlDocumentService");
        new Thread(finder).start();
        while (finder.getNumberOfServices() == 0)
      Thread.sleep(500);
    }
      }
      else {
    list = config.getElementsByTagName("XmlDocumentServer");
    if (list.getLength() > 0) {
        Element serverConfig = (Element)list.item(0);
        _documentServer = new DocumentFragmentServerImpl(new String[] {
      serverConfig.getAttribute("Dir"),
      serverConfig.getAttribute("Http")});
    }
      }
     
      if (_documentServer == null && documentServiceItems.size() > 0) {
    ServiceItem item = (ServiceItem)documentServiceItems.elementAt(0);
    _documentServer = (DocumentFragmentServer)item.service;
      }
      /* !!! needs normal configuration
         else
         _documentServer = new DocumentFragmentServerImpl(); // local
View Full Code Here

  if(! isAdmin){
      if (!match)
          return;
      buf.append("\n\n");
      for (int i = 0; i < matches.items.length; i++) {
          ServiceItem item = matches.items[i];
    buf.append("Service ID: ");
    buf.append(item.serviceID);
    buf.append("\n");
    buf.append("Service instance: ");
    buf.append(item.service);
View Full Code Here

         *  send to that listener a notification containing the service's ID.
         */
        public void register(Entry[] srvcAttrs) throws Exception {
            if(proxy == null) throw new RuntimeException("proxy is null");
            /* The lookup service proxy was already prepared at discovery */
            ServiceItem tmpSrvcItem = null;
            synchronized(joinSet) {
                srvcRegistration = null;
                synchronized(serviceItem) {//accessing serviceItem.serviceID
                    tmpSrvcItem = new ServiceItem(serviceItem.serviceID,
                                                  serviceItem.service,
                                                  srvcAttrs);
                }//end sync(serviceItem)
            }//end sync(joinSet)
            /* Retrieve and prepare the proxy to the service registration */
 
View Full Code Here

TOP

Related Classes of net.jini.core.lookup.ServiceItem

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.