protected D basicDeploy(String name, Map<String, String> properties) {
		Assert.hasText(name, "name cannot be blank or null");
		logger.trace("Deploying {}", name);

		final D definition = getDefinitionRepository().findOne(name);
		if (definition == null) {
			throwNoSuchDefinitionException(name);
		}
		validateDeploymentProperties(definition, properties);
		try {
			String deploymentPath = getDeploymentPath(definition);
			String statusPath = Paths.build(deploymentPath, Paths.STATUS);
			byte[] propertyBytes = DeploymentPropertiesFormat.formatDeploymentProperties(properties).getBytes("UTF-8");
			byte[] statusBytes = ZooKeeperUtils.mapToBytes(
					new DeploymentUnitStatus(DeploymentUnitStatus.State.deploying).toMap());

			zkConnection.getClient().inTransaction()
					.create().forPath(deploymentPath, propertyBytes).and()
					.create().withMode(CreateMode.EPHEMERAL).forPath(statusPath, statusBytes).and()
					.commit();
		}
		catch (KeeperException.NodeExistsException e) {
			throwAlreadyDeployedException(name);
		}
		catch (Exception e) {
			throw ZooKeeperUtils.wrapThrowable(e);
		}
		return definition;
	}
Provides basic deployment behavior, whereby running state of deployed definitions is not persisted.

@return the definition object for the given name
@throws NoSuchDefinitionException if there is no definition by the given name
spring-xd-dirt/src/main/java/org/springframework/xd/dirt/stream/AbstractDeployer.java