use of org.eclipse.winery.repository.rest.resources._support.ResourceResult in project winery by eclipse.
the class RestUtils method releaseVersion.
public static Response releaseVersion(DefinitionsChildId releasableComponent) {
ResourceResult result = new ResourceResult();
final IRepository repository = RepositoryFactory.getRepository();
WineryVersion version = WineryVersionUtils.getCurrentVersionWithAllFlags(releasableComponent, repository);
if (version.isReleasable()) {
if (repository instanceof GitBasedRepository) {
try {
freezeVersion(releasableComponent);
version.setWorkInProgressVersion(0);
String newId = releasableComponent.getNameWithoutVersion() + WineryVersion.WINERY_NAME_FROM_VERSION_SEPARATOR + version;
DefinitionsChildId newComponent = BackendUtils.getDefinitionsChildId(releasableComponent.getClass(), releasableComponent.getNamespace().getDecoded(), newId, false);
result = duplicate(releasableComponent, newComponent);
BackendUtils.commit(newComponent, "Release", repository);
} catch (GitAPIException e) {
result.setStatus(Status.INTERNAL_SERVER_ERROR);
}
} else {
result.setStatus(Status.INTERNAL_SERVER_ERROR);
}
} else {
result.setStatus(Status.BAD_REQUEST);
}
return result.getResponse();
}
use of org.eclipse.winery.repository.rest.resources._support.ResourceResult in project winery by eclipse.
the class RestUtils method rename.
public static ResourceResult rename(DefinitionsChildId oldId, DefinitionsChildId newId) {
ResourceResult result = new ResourceResult();
IRepository repo = RepositoryFactory.getRepository();
WineryVersion version = oldId.getVersion();
DefinitionsChildId id = newId;
if (version.toString().length() > 0) {
// ensure that the version isn't changed by the user
String componentName = newId.getNameWithoutVersion() + WineryVersion.WINERY_NAME_FROM_VERSION_SEPARATOR + version;
id = BackendUtils.getDefinitionsChildId(oldId.getClass(), newId.getNamespace().getDecoded(), componentName, false);
}
// If a definition was not committed yet, it is renamed, otherwise duplicate the definition.
if (repo.hasChangesInFile(oldId)) {
try {
repo.rename(oldId, id);
} catch (IOException e) {
LOGGER.error(e.getMessage(), e);
result.setStatus(Status.INTERNAL_SERVER_ERROR);
result.setMessage(e.getMessage());
return result;
}
} else {
result = duplicate(oldId, id);
if (result.isSuccess()) {
result = freezeVersion(id);
}
}
URI uri = RestUtils.getAbsoluteURI(id);
result.setUri(uri);
result.setStatus(Status.CREATED);
return result;
}
use of org.eclipse.winery.repository.rest.resources._support.ResourceResult in project winery by eclipse.
the class ServiceTemplateResource method createNewStatefulVersion.
@POST()
@Path("createnewstatefulversion")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response createNewStatefulVersion() {
LOGGER.debug("Creating new stateful version of Service Template {}...", this.getId());
ServiceTemplateId id = (ServiceTemplateId) this.getId();
WineryVersion version = id.getVersion();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd-HHmmss");
WineryVersion newVersion = new WineryVersion("stateful-" + version.toString() + "-" + dateFormat.format(new Date()), 1, 0);
ServiceTemplateId newId = new ServiceTemplateId(id.getNamespace().getDecoded(), id.getNameWithoutVersion() + WineryVersion.WINERY_NAME_FROM_VERSION_SEPARATOR + newVersion.toString(), false);
ResourceResult response = RestUtils.duplicate(id, newId);
if (response.getStatus() == Status.CREATED) {
response.setUri(null);
response.setMessage(new QNameApiData(newId));
}
LOGGER.debug("Created Service Template {}", newId.getQName());
return response.getResponse();
}
use of org.eclipse.winery.repository.rest.resources._support.ResourceResult in project winery by eclipse.
the class ServiceTemplateResource method createNewPlaceholderVersion.
@POST()
@Path("createplaceholderversion")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response createNewPlaceholderVersion() throws IOException {
LOGGER.debug("Creating new placeholder version of Service Template {}...", this.getId());
ServiceTemplateId id = (ServiceTemplateId) this.getId();
WineryVersion version = VersionUtils.getVersion(id.getXmlId().getDecoded());
WineryVersion newVersion = new WineryVersion("gdm-" + version.toString(), 1, 1);
IRepository repository = RepositoryFactory.getRepository();
ServiceTemplateId newId = new ServiceTemplateId(id.getNamespace().getDecoded(), VersionUtils.getNameWithoutVersion(id.getXmlId().getDecoded()) + WineryVersion.WINERY_NAME_FROM_VERSION_SEPARATOR + newVersion.toString(), false);
if (repository.exists(newId)) {
repository.forceDelete(newId);
}
ResourceResult response = RestUtils.duplicate(id, newId);
if (response.getStatus() == Status.CREATED) {
response.setUri(null);
response.setMessage(new QNameApiData(newId));
}
LOGGER.debug("Created Service Template {}", newId.getQName());
return response.getResponse();
}
use of org.eclipse.winery.repository.rest.resources._support.ResourceResult in project winery by eclipse.
the class ServiceTemplateResource method createLiveModelingVersion.
@POST()
@Path("createlivemodelingversion")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response createLiveModelingVersion() {
LOGGER.debug("Creating live modeling version of Service Template {}...", this.getId().getQName());
ServiceTemplateId id = (ServiceTemplateId) this.getId();
WineryVersion version = VersionUtils.getVersion(id.getQName().toString());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd-HHmmss");
WineryVersion newVersion = new WineryVersion(version.toString() + "-live-" + dateFormat.format(new Date()), 1, 0);
String newComponentVersionId = VersionSupport.getNewComponentVersionId(id, "live-" + dateFormat.format(new Date()));
ServiceTemplateId newId = new ServiceTemplateId(id.getNamespace().getDecoded(), newComponentVersionId, false);
ResourceResult response = RestUtils.duplicate(id, newId);
if (response.getStatus() == Status.CREATED) {
response.setUri(null);
response.setMessage(new QNameApiData(newId));
}
LOGGER.debug("Created Service Template {}", newId.getQName());
return response.getResponse();
}
Aggregations