* Read the workspace.
*
* @return
*/
private Workspace readWorkspace() {
Workspace workspace;
File file = new File(workspaceFile);
if (file.exists()) {
try {
FileInputStream is = new FileInputStream(file);
XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
reader.nextTag();
workspace = (Workspace)staxProcessor.read(reader);
} catch (Exception e) {
throw new ServiceRuntimeException(e);
}
} else {
workspace = workspaceFactory.createWorkspace();
}
// Make sure that the workspace contains the cloud contribution
// The cloud contribution contains the composites describing the
// SCA nodes declared in the cloud
Contribution cloudContribution = null;
for (Contribution contribution: workspace.getContributions()) {
if (contribution.getURI().equals(DEPLOYMENT_CONTRIBUTION_URI)) {
cloudContribution = contribution;
}
}
if (cloudContribution == null) {
Contribution contribution = contributionFactory.createContribution();
contribution.setURI(DEPLOYMENT_CONTRIBUTION_URI);
File cloudDirectory = new File(deploymentContributionDirectory);
contribution.setLocation(cloudDirectory.toURI().toString());
workspace.getContributions().add(contribution);
}
return workspace;
}