コード例 #1
0
    /**
     * @param nodeId Node ID.
     * @param ctx Kernal context.
     * @return Deserialized object.
     * @throws IgniteCheckedException In case of error.
     */
    <T> T unmarshal(UUID nodeId, GridKernalContext ctx) throws IgniteCheckedException {
      assert ctx != null;

      GridDeployment dep =
          ctx.deploy()
              .getGlobalDeployment(
                  depInfo.deployMode(),
                  clsName,
                  clsName,
                  depInfo.userVersion(),
                  nodeId,
                  depInfo.classLoaderId(),
                  depInfo.participants(),
                  null);

      if (dep == null)
        throw new IgniteDeploymentCheckedException(
            "Failed to obtain deployment for class: " + clsName);

      return ctx.config().getMarshaller().unmarshal(bytes, dep.classLoader());
    }
コード例 #2
0
  /** {@inheritDoc} */
  @SuppressWarnings("unchecked")
  @Override
  public void notifyCallback(
      UUID nodeId, UUID routineId, Collection<?> objs, GridKernalContext ctx) {
    assert nodeId != null;
    assert routineId != null;
    assert objs != null;
    assert ctx != null;

    Collection<CacheContinuousQueryEntry> entries = (Collection<CacheContinuousQueryEntry>) objs;

    final GridCacheContext cctx = cacheContext(ctx);

    for (CacheContinuousQueryEntry e : entries) {
      GridCacheDeploymentManager depMgr = cctx.deploy();

      ClassLoader ldr = depMgr.globalLoader();

      if (ctx.config().isPeerClassLoadingEnabled()) {
        GridDeploymentInfo depInfo = e.deployInfo();

        if (depInfo != null) {
          depMgr.p2pContext(
              nodeId,
              depInfo.classLoaderId(),
              depInfo.userVersion(),
              depInfo.deployMode(),
              depInfo.participants(),
              depInfo.localDeploymentOwner());
        }
      }

      try {
        e.unmarshal(cctx, ldr);
      } catch (IgniteCheckedException ex) {
        U.error(ctx.log(getClass()), "Failed to unmarshal entry.", ex);
      }
    }

    final IgniteCache cache = cctx.kernalContext().cache().jcache(cctx.name());

    Collection<CacheContinuousQueryEntry> entries0 = new ArrayList<>();

    for (CacheContinuousQueryEntry e : entries) entries0.addAll(handleEvent(ctx, e));

    Iterable<CacheEntryEvent<? extends K, ? extends V>> evts =
        F.viewReadOnly(
            entries0,
            new C1<CacheContinuousQueryEntry, CacheEntryEvent<? extends K, ? extends V>>() {
              @Override
              public CacheEntryEvent<? extends K, ? extends V> apply(CacheContinuousQueryEntry e) {
                return new CacheContinuousQueryEvent<>(cache, cctx, e);
              }
            },
            new IgnitePredicate<CacheContinuousQueryEntry>() {
              @Override
              public boolean apply(CacheContinuousQueryEntry entry) {
                return !entry.isFiltered();
              }
            });

    locLsnr.onUpdated(evts);
  }