* @throws PackageManagerException
*/
private PersistentPackage createPackage(PersistentPackageManager pkgMgrEntity, PackageContext pkgCtx)
throws PackageManagerException
{
PersistentPackage newPackage = new PersistentPackage(pkgMgrEntity, pkgCtx.getPackageName(), pkgCtx
.getPackageVersion());
List<InstallFileType> files = pkgCtx.getInstallationFiles();
if (files != null)
{
for (InstallFileType file : files)
{
PersistentFile installationFile = new PersistentFile(file.getName(), file.getDestPath());
if (file.getType() != null)
{
installationFile.setFileType(file.getType().toString());
}
newPackage.addInstallationFile(installationFile);
installationFile.setPkg(newPackage);
}
}
String relativePathToScriptStore = this.packageManagerCtx.getScriptStoreLocation(pkgCtx);
List<ScriptType> preUnInstallScripts = pkgCtx.getPreUnInstallScripts();
if (preUnInstallScripts != null)
{
for (ScriptType script : preUnInstallScripts)
{
String scriptName = script.getName();
PersistentPreUnInstallScript preUnInstallScript = new PersistentPreUnInstallScript(newPackage, scriptName,
relativePathToScriptStore);
newPackage.addPreUnInstallScript(preUnInstallScript);
}
}
List<ScriptType> postUnInstallScripts = pkgCtx.getPostUnInstallScripts();
if (postUnInstallScripts != null)
{
for (ScriptType script : postUnInstallScripts)
{
String scriptName = script.getName();
org.jboss.ejb3.packagemanager.entity.PersistentPostUnInstallScript postUnInstallScript = new org.jboss.ejb3.packagemanager.entity.PersistentPostUnInstallScript(
newPackage, scriptName, relativePathToScriptStore);
newPackage.addPostUnInstallScript(postUnInstallScript);
}
}
Set<PackageContext> dependencyPackages = pkgCtx.getDependencyPackages();
if (dependencyPackages != null)
{
Set<PersistentDependency> dependencyPackagesForNewPackage = new HashSet<PersistentDependency>(
dependencyPackages.size());
newPackage.setDependencies(dependencyPackagesForNewPackage);
for (PackageContext dependencyPkgCtx : dependencyPackages)
{
PersistentDependency dependency = new PersistentDependency();
dependency.setDependentPackage(newPackage);
PersistentPackage dependencyPackage = this.getInstalledPackage(dependencyPkgCtx.getPackageName());
dependency.setDependeePackage(dependencyPackage);
dependencyPackagesForNewPackage.add(dependency);
}
}