/** {@inheritDoc} */ @Override public void p2pUnmarshal(UUID nodeId, GridKernalContext ctx) throws GridException { assert nodeId != null; assert ctx != null; assert ctx.config().isPeerClassLoadingEnabled(); GridDeployment dep = ctx.deploy() .getGlobalDeployment( depInfo.deployMode(), clsName, clsName, depInfo.userVersion(), nodeId, depInfo.classLoaderId(), depInfo.participants(), null); if (dep == null) throw new GridDeploymentException("Failed to obtain deployment for class: " + clsName); ClassLoader ldr = dep.classLoader(); if (topicBytes != null) topic = ctx.config().getMarshaller().unmarshal(topicBytes, ldr); pred = ctx.config().getMarshaller().unmarshal(predBytes, ldr); }
/** {@inheritDoc} */ @Override public boolean register(UUID nodeId, UUID routineId, final GridKernalContext ctx) throws GridException { ctx.io().addUserMessageListener(topic, pred); return true; }
/** {@inheritDoc} */ @Override public void p2pMarshal(GridKernalContext ctx) throws GridException { assert ctx != null; assert ctx.config().isPeerClassLoadingEnabled(); if (topic != null) topicBytes = ctx.config().getMarshaller().marshal(topic); predBytes = ctx.config().getMarshaller().marshal(pred); GridPeerDeployAware pda = U.peerDeployAware0(topic, pred); clsName = pda.deployClass().getName(); GridDeployment dep = ctx.deploy().deploy(pda.deployClass(), pda.classLoader()); if (dep == null) throw new GridDeploymentException("Failed to deploy message listener."); depInfo = new GridDeploymentInfoBean(dep); depEnabled = true; }
/** {@inheritDoc} */ @Override public void unregister(UUID routineId, GridKernalContext ctx) { ctx.io().removeUserMessageListener(topic, pred); }