public void run()

in taverna-interaction-activity/src/main/java/org/apache/taverna/activities/interaction/InteractionActivityRunnable.java [96:186]


	public void run() {
		/*
		 * InvocationContext context = callback.getContext();
		 */
		final String runId = InteractionUtils.getUsedRunId(this.requestor
				.getRunId());

		final String id = Sanitizer.sanitize(UUID.randomUUID().toString(), "",
				true, Normalizer.Form.D);

		final Map<String, Object> inputData = this.requestor.getInputData();

		if (interactionPreference.getUseJetty()) {
			interactionJetty.startJettyIfNecessary(credentialManager);
		}
		interactionJetty.startListenersIfNecessary();
		try {
			interactionUtils.copyFixedFile("pmrpc.js");
			interactionUtils.copyFixedFile("interaction.css");
		} catch (final IOException e1) {
			logger.error(e1);
			this.requestor.fail("Unable to copy necessary fixed file");
			return;
		}
		synchronized (ABDERA) {
			final Entry interactionNotificationMessage = this
					.createBasicInteractionMessage(id, runId);

			for (final String key : inputData.keySet()) {
				final Object value = inputData.get(key);
				if (value instanceof byte[]) {
					final String replacementUrl = interactionPreference
							.getPublicationUrlString(id, key);
					final ByteArrayInputStream bais = new ByteArrayInputStream(
							(byte[]) value);
					try {
						interactionUtils.publishFile(replacementUrl, bais,
								runId, id);
						bais.close();
						inputData.put(key, replacementUrl);
					} catch (final IOException e) {
						logger.error(e);
						this.requestor.fail("Unable to publish to " + replacementUrl);
						return;
					}
				}
			}

			final String inputDataString = this.createInputDataJson(inputData);
			if (inputDataString == null) {
				return;
			}
			final String inputDataUrl = interactionPreference
					.getInputDataUrlString(id);
			try {
				interactionUtils.publishFile(inputDataUrl, inputDataString,
						runId, id);
			} catch (final IOException e) {
				logger.error(e);
				this.requestor.fail("Unable to publish to " + inputDataUrl);
				return;
			}

			String outputDataUrl = null;

			if (!this.requestor.getInteractionType().equals(
					InteractionType.Notification)) {
				outputDataUrl = interactionPreference
						.getOutputDataUrlString(id);
			}
			final String interactionUrlString = this.generateHtml(inputDataUrl,
					outputDataUrl, inputData, runId, id);

			try {
				this.postInteractionMessage(id, interactionNotificationMessage,
						interactionUrlString, runId);
			} catch (IOException e) {
				logger.error(e);
				this.requestor.fail("Unable to post message");
				return;
			}
			if (!this.requestor.getInteractionType().equals(
					InteractionType.Notification)) {
				responseFeedListener.registerInteraction(
						interactionNotificationMessage, this.requestor);
			} else {
				this.requestor.carryOn();

			}
		}
	}