Package net.jini.core.lookup

Examples of net.jini.core.lookup.ServiceItem


  try {
      obj = service.get();
  } catch (Throwable e) {
      RegistrarProxy.handleException(e);
  }
  return new ServiceItem(serviceID,
             obj,
             EntryRep.toEntry(attributeSets));
    }
View Full Code Here


            boolean discardIt = false;
      Iterator iter = getServiceIdMapEntrySetIterator();
      while(iter.hasNext()) {
    Map.Entry e = (Map.Entry)iter.next();
    ServiceItemReg itemReg = (ServiceItemReg)e.getValue();
    ServiceItem filteredItem;
    synchronized(itemReg) {
        filteredItem = itemReg.filteredItem;
                    if((filteredItem.service).equals(serviceReference))
                    {
                        if( itemReg.isDiscarded() ) return;//already discarded
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;
      boolean itemRegIsDiscarded;
      synchronized(itemReg) {
    itemRegIsDiscarded = itemReg.isDiscarded();
                if(!itemReg.addProxy(proxy, newItem)) { // not tracking
        if(matchMatchEvent || !itemRegIsDiscarded) return;
        itemReg.proxy = proxy; // start tracking instead
    }//endif
                oldItem = itemReg.item;
                oldFilteredItem = itemReg.filteredItem;
    if(itemRegIsDiscarded) {
                    itemReg.item = newItem;//capture changes for discard
                    itemReg.filteredItem = null;//so filter will be retried
                    if(matchMatchEvent) return;
                }//endif
      }//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) ) {
    if(itemRegIsDiscarded) return;
                /* 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, !itemRegIsDiscarded);
            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

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

      for (int j = i + 1; j < eventVector.size(); j++) {
    ServiceEvent oevnt = (ServiceEvent)eventVector.elementAt(j);
    if (evnt.getServiceID().equals(oevnt.getServiceID()))
        continue outer;
      }
      ServiceItem item = evnt.getServiceItem();
      tmpl.serviceID = evnt.getServiceID();
      ServiceRegistrar proxy = (ServiceRegistrar)evnt.getSource();
      proxy = (ServiceRegistrar)
        QAConfig.getConfig().prepare("test.reggiePreparer",
                  proxy);
      ServiceMatches matches;
      matches = proxy.lookup(tmpl, 1);
      if (item == null) {
    if (matches.items.length != 0)
        throw new TestException(
            "verifyEventItems: event item is null, lookup returns non-null");
      } else {
    if (matches.items.length == 0)
        throw new TestException(
            "verifyEventItems: event item is non-null, lookup returns null");
    ServiceItem litem = matches.items[0];
    if (!item.service.equals(litem.service))
        throw new TestException(
            "verifyEventItems: event item service does not equal lookup value");
    if (!attrsEqual(item.attributeSets, litem.attributeSets))
         throw new TestException(
View Full Code Here

*/
public class RegisterNegDuration extends QATestRegistrar {

    public void run() throws Exception {
  try {
      getProxy().register(new ServiceItem(null, new Long(0), null),
        -500);
      throw new TestException("register did not "
          + "throw IllegalArgumentException");
  } catch (IllegalArgumentException e) {
  }
View Full Code Here

  attr3 = new Attr09();
  attr3.setDefaults();

  attrs = new Entry[]{attr0, attr1, attr2, attr3};

  reg = registerItem(new ServiceItem(null, new Long(0), attrs),
         getProxy());
    }
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.