/**
* Create an AriesApplication from a .eba file: a zip file with a '.eba' extension
* as per http://incubator.apache.org/aries/applications.html
*/
public AriesApplication createApplication(IDirectory ebaFile) throws ManagementException {
ApplicationMetadata applicationMetadata = null;
DeploymentMetadata deploymentMetadata = null;
Map<String, InputStream> modifiedBundles = new HashMap<String, InputStream>();
AriesApplicationImpl application = null;
try {
Manifest applicationManifest = parseApplicationManifest (ebaFile);
ManifestDefaultsInjector.updateManifest(applicationManifest, ebaFile.getName(), ebaFile);
applicationMetadata = _applicationMetadataFactory.createApplicationMetadata(applicationManifest);
IFile deploymentManifest = ebaFile.getFile(AppConstants.DEPLOYMENT_MF);
if (deploymentManifest != null) {
deploymentMetadata = _deploymentMetadataFactory.createDeploymentMetadata(deploymentManifest);
// Validate: symbolic names must match
String appSymbolicName = applicationMetadata.getApplicationSymbolicName();
String depSymbolicName = applicationMetadata.getApplicationSymbolicName();
if (!appSymbolicName.equals(depSymbolicName)) {
throw new ManagementException (MessageUtil.getMessage("APPMANAGEMENT0002E", ebaFile.getName(), appSymbolicName, depSymbolicName));
}
}