private String id;
@NotNull(message = "Parameter name may not be null")
- @Pattern(regexp = "[A-Za-z0-9_]*", message = "The field must contain only letters, digits and underscores")
+ @Pattern(regexp = "[A-Za-z0-9_ ]*", message = "Parameter name must contain only letters, digits and underscores")
private String name;
@NotNull
private ParameterType type;
private String id;
@NotNull(message = "Workflow name may not be null")
@Size(max = 80, message = "Workflow name must be less than 80 characters")
- @Pattern(regexp = "[A-Za-z0-9_]*", message = "Workflow name must contain only letters, digits and underscores")
+ @Pattern(regexp = "[A-Za-z0-9_ ]*", message = "Workflow name must contain only letters, digits and underscores")
private String name;
private String description;
private Set<WorkflowVersionState> versionStates;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
+import javax.validation.Valid;
import lombok.Data;
private String baseId;
private WorkflowVersionState state;
private boolean hasArtifact;
+ @Valid
private Collection<ParameterEntity> inputs = Collections.emptyList();
+ @Valid
private Collection<ParameterEntity> outputs = Collections.emptyList();
private Date creationTime;
private Date modificationTime;
import static org.onap.sdc.workflow.persistence.types.WorkflowVersionState.CERTIFIED;
-import com.amdocs.zusammen.datatypes.response.ErrorCode;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import org.onap.sdc.workflow.services.exceptions.VersionStateModificationException;
import org.onap.sdc.workflow.services.impl.mappers.VersionMapper;
import org.onap.sdc.workflow.services.impl.mappers.VersionStateMapper;
-import org.openecomp.sdc.common.errors.SdcRuntimeException;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.versioning.VersioningManager;
ArtifactEntity artifactEntity =
new ArtifactEntity(StringUtils.cleanPath(artifact.getOriginalFilename()), artifactData);
artifactRepository.update(workflowId, versionId, artifactEntity);
- versioningManager.publish(workflowId, new Version(versionId), "Update Artifact");
+ Version updatedVersion = versioningManager.get(workflowId, new Version(versionId));
+ if(updatedVersion.getState().isDirty()) {
+ versioningManager.publish(workflowId, updatedVersion, "Update artifact");
+ }
} catch (IOException e) {
LOGGER.error(String.format("Upload Artifact failed for workflow id %s and version id %s",
public void shouldUploadArtifact() {
Version version = new Version(VERSION1_ID);
version.setStatus(VersionStatus.Draft);
+ VersionState versionState = new VersionState();
+ versionState.setDirty(false);
+ version.setState(versionState);
doReturn(version).when(versioningManagerMock).get(eq(ITEM1_ID), eqVersion(VERSION1_ID));
doReturn(DRAFT).when(versionStateMapperMock).versionStatusToWorkflowVersionState(version.getStatus());