[jboss-cvs] JBossAS SVN: r96557 - in projects/ejb3/trunk/package-manager: src/main/java/org/jboss/ejb3/packagemanager and 16 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Nov 19 06:49:10 EST 2009
Author: jaikiran
Date: 2009-11-19 06:49:09 -0500 (Thu, 19 Nov 2009)
New Revision: 96557
Added:
projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageVersionComparator.java
projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/
projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/
projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/build-version1.xml
projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/build-version2.xml
projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/package-version1.xml
projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/package-version2.xml
Modified:
projects/ejb3/trunk/package-manager/pom.xml
projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageContext.java
projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageManager.java
projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageManagerContext.java
projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/db/DefaultDatabaseManager.java
projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/db/PackageDatabaseManager.java
projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/impl/DefaultPackageContext.java
projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/impl/DefaultPackageManagerContext.java
projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/impl/DefaultPackageManagerImpl.java
projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/main/Main.java
projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/util/DBUtil.java
projects/ejb3/trunk/package-manager/src/main/resources/log4j.xml
projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/commandline/unit/CommandLineTestCase.java
projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/common/PackageManagerTestCase.java
projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/dependency/unit/DependencyInstallTestCase.java
projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/install/unit/BasicInstallTestCase.java
projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/uninstall/unit/UnInstallTestCase.java
projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/upgrade/unit/UpgradeUnitTestCase.java
projects/ejb3/trunk/package-manager/src/test/resources/log4j.xml
projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-just-install-file.xml
projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-packaged-dependency.xml
projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-post-install-script.xml
projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-post-uninstall-script.xml
projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-pre-install-script.xml
projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-pre-uninstall-script.xml
Log:
EJBTHREE-1942 Upgrade of packages now supported
Modified: projects/ejb3/trunk/package-manager/pom.xml
===================================================================
--- projects/ejb3/trunk/package-manager/pom.xml 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/pom.xml 2009-11-19 11:49:09 UTC (rev 96557)
@@ -225,7 +225,15 @@
<artifactId>jbossts-common</artifactId>
<version>4.4.0.GA</version>
</dependency>
-
+
+ <!-- Transactional file i/o -->
+ <!-- Note: This library might get a new home https://jira.jboss.org/jira/browse/JBTM-651
+ <dependency>
+ <groupId>org.jboss.jbossts</groupId>
+ <artifactId>jbossts-transactional-fileio</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </dependency>
+ -->
<!-- Tests -->
<dependency>
<groupId>junit</groupId>
Modified: projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageContext.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageContext.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageContext.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -36,7 +36,7 @@
* @author Jaikiran Pai
* @version $Revision: $
*/
-public interface PackageContext
+public interface PackageContext extends Comparable<PackageContext>
{
/**
Modified: projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageManager.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageManager.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageManager.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -22,9 +22,11 @@
package org.jboss.ejb3.packagemanager;
import java.net.URL;
+import java.util.Set;
import javax.transaction.TransactionManager;
+import org.jboss.ejb3.packagemanager.db.PackageDatabaseManager;
import org.jboss.ejb3.packagemanager.exception.PackageManagerException;
import org.jboss.ejb3.packagemanager.exception.PackageNotInstalledException;
@@ -33,7 +35,7 @@
*
* Package Manager can be used to install/update/remove packages against
* JBoss Application Server.
- * TODO: More javadocs (once we have something usable)
+ *
* @author Jaikiran Pai
* @version $Revision: $
*/
@@ -82,7 +84,15 @@
*/
void removePackage(String packageName) throws PackageNotInstalledException, PackageManagerException;
+ /**
+ * Returns the names of all installed packages. Returns an empty set if there
+ * are no packages installed
+ *
+ * @return
+ */
+ Set<String> getAllInstalledPackages();
+
/**
* A package manager works against a JBoss AS server. This method returns the
* absolute path of the JBoss AS Home.
@@ -91,7 +101,19 @@
*/
String getServerHome();
+ /**
+ * @return Returns the transaction manager associated with this package manager. The
+ * transaction manager is responsible for managing transactions during the
+ * package manager operations
+ */
TransactionManager getTransactionManager();
+ /**
+ * @return Returns the database manager associated with the package manager.
+ * The database manager is responsible for maintaining the package installation
+ * details
+ */
+ PackageDatabaseManager getDatabaseManager();
+
}
Modified: projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageManagerContext.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageManagerContext.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageManagerContext.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -22,9 +22,11 @@
package org.jboss.ejb3.packagemanager;
-import org.jboss.ejb3.packagemanager.metadata.ScriptType;
+import javax.transaction.TransactionManager;
+import org.jboss.ejb3.packagemanager.db.PackageDatabaseManager;
+
/**
* Author: Jaikiran Pai
*/
@@ -54,4 +56,8 @@
*/
String getScriptStoreLocation(PackageContext pkgContext);
+ TransactionManager getTransactionManager();
+
+ PackageDatabaseManager getDatabaseManager();
+
}
Added: projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageVersionComparator.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageVersionComparator.java (rev 0)
+++ projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/PackageVersionComparator.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -0,0 +1,96 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.ejb3.packagemanager;
+
+import java.util.Comparator;
+
+/**
+ * PackageVersionComparator
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+public class PackageVersionComparator implements Comparator<String>
+{
+
+ /**
+ * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public int compare(String version1, String version2)
+ {
+ if (version1.equals(version2))
+ {
+ return 0;
+ }
+ // TODO: This is a copy of php version_compare algo.
+ // Change this and implement it on the lines of OSGi version numbering.
+ // Instead of writing the version compare logic all over again, see if there's
+ // a reusable util
+ String rev1 = version1.replaceAll("([a-zA-Z])(\\d)", "$1.$2");
+ rev1 = rev1.replaceAll("(\\d)([a-zA-Z])", "$1.$2");
+ String rev2 = version2.replaceAll("([a-zA-Z])(\\d)", "$1.$2");
+ rev2 = rev2.replaceAll("(\\d)([a-zA-Z])", "$1.$2");
+
+ String[] parts1 = rev1.split("[\\._\\-\\+]");
+ String[] parts2 = rev2.split("[\\._\\-\\+]");
+
+ int i = 0;
+ for (; i < parts1.length && i < parts2.length; i++)
+ {
+ if (parts1[i].equals(parts2[i]))
+ {
+ continue;
+ }
+ boolean is1Number = isNumber(parts1[i]);
+ boolean is2Number = isNumber(parts2[i]);
+ if (is1Number && !is2Number)
+ {
+ return 1;
+ }
+ if (is2Number && !is1Number)
+ {
+ return -1;
+ }
+ if (is1Number && is2Number)
+ {
+ return Long.valueOf(parts1[i]).compareTo(Long.valueOf(parts2[i]));
+ }
+ // both are strings, we compare them
+ return parts1[i].compareTo(parts2[i]);
+ }
+ if (i < parts1.length)
+ {
+ return isNumber(parts1[i]) ? 1 : -1;
+ }
+ if (i < parts2.length)
+ {
+ return isNumber(parts2[i]) ? -1 : 1;
+ }
+ return 0;
+ }
+
+ private boolean isNumber(String str)
+ {
+ return str.matches("\\d+");
+ }
+}
Modified: projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/db/DefaultDatabaseManager.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/db/DefaultDatabaseManager.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/db/DefaultDatabaseManager.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -36,8 +36,8 @@
import org.jboss.ejb3.packagemanager.PackageContext;
import org.jboss.ejb3.packagemanager.PackageManagerContext;
import org.jboss.ejb3.packagemanager.PackageManagerEnvironment;
+import org.jboss.ejb3.packagemanager.entity.PersistentDependency;
import org.jboss.ejb3.packagemanager.entity.PersistentFile;
-import org.jboss.ejb3.packagemanager.entity.PersistentDependency;
import org.jboss.ejb3.packagemanager.entity.PersistentPackage;
import org.jboss.ejb3.packagemanager.entity.PersistentPackageManager;
import org.jboss.ejb3.packagemanager.entity.PersistentPreUnInstallScript;
@@ -252,8 +252,8 @@
Set<PackageContext> dependencyPackages = pkgCtx.getDependencyPackages();
if (dependencyPackages != null)
{
- Set<PersistentDependency> dependencyPackagesForNewPackage = new HashSet<PersistentDependency>(dependencyPackages
- .size());
+ Set<PersistentDependency> dependencyPackagesForNewPackage = new HashSet<PersistentDependency>(
+ dependencyPackages.size());
newPackage.setDependencies(dependencyPackagesForNewPackage);
for (PackageContext dependencyPkgCtx : dependencyPackages)
@@ -335,4 +335,24 @@
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Set<String> getAllInstalledPackages()
+ {
+ Set<String> installedPackageNames = new HashSet<String>();
+ EntityManager em = this.getEntityManager();
+ PersistentPackageManager packageManager = this.getOrCreatePackageManagerEntity(this.packageManagerCtx);
+ Query query = em.createQuery("select pkg.name from " + PersistentPackage.class.getSimpleName()
+ + " pkg where pkg.packageManager.id=" + packageManager.getId());
+ List<String> result = query.getResultList();
+ if (result != null)
+ {
+ installedPackageNames.addAll(result);
+ }
+ return installedPackageNames;
+
+ }
+
}
Modified: projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/db/PackageDatabaseManager.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/db/PackageDatabaseManager.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/db/PackageDatabaseManager.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -101,5 +101,12 @@
*/
void removePackage(PersistentPackage installedPackage);
+ /**
+ * Returns the names of all installed packages. Returns an empty set if there
+ * are no packages installed
+ *
+ * @return
+ */
+ Set<String> getAllInstalledPackages();
}
Modified: projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/impl/DefaultPackageContext.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/impl/DefaultPackageContext.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/impl/DefaultPackageContext.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -31,6 +31,10 @@
import java.util.Set;
import java.util.jar.JarFile;
+import org.apache.ivy.Ivy;
+import org.apache.ivy.core.module.id.ModuleRevisionId;
+import org.apache.ivy.plugins.latest.ArtifactInfo;
+import org.apache.ivy.plugins.version.VersionMatcher;
import org.jboss.ejb3.packagemanager.PackageContext;
import org.jboss.ejb3.packagemanager.PackageManagerContext;
import org.jboss.ejb3.packagemanager.dependency.DependencyManager;
@@ -346,8 +350,19 @@
{
this.packageRoot.mkdirs();
}
- JarFile jar = new JarFile(pkg);
- IOUtil.extractJarFile(this.packageRoot, jar);
+ JarFile jar = null;
+ try
+ {
+ jar = new JarFile(pkg);
+ IOUtil.extractJarFile(this.packageRoot, jar);
+ }
+ finally
+ {
+ if (jar != null)
+ {
+ jar.close();
+ }
+ }
// validate that it contains a package.xml
File packageXml = new File(this.packageRoot, "package.xml");
if (!packageXml.exists())
@@ -443,5 +458,55 @@
}
+ /**
+ * @see java.lang.Comparable#compareTo(java.lang.Object)
+ * @throws NullPointerException If the passed <code>anotherPackage</code> is null
+ * @throws IllegalArgumentException If the package name of the passed <code>anotherPackage</code>
+ * is not the same as the package name {@link DefaultPackageContext#getPackageName()} of this package.
+ */
+ @Override
+ public int compareTo(PackageContext anotherPackage)
+ {
+ if (!this.getPackageName().equals(anotherPackage.getPackageName()))
+ {
+ throw new IllegalArgumentException("Cannot compare packages with two different names. This package name is "
+ + this.getPackageName() + " ,another package name is " + anotherPackage.getPackageName());
+ }
+
+
+ return 0;
+ }
+
+ private class MockIvyArtifactInfo implements ArtifactInfo
+ {
+
+ private String version;
+
+ public MockIvyArtifactInfo(String version)
+ {
+ this.version = version;
+ }
+
+ /**
+ * @see org.apache.ivy.plugins.latest.ArtifactInfo#getLastModified()
+ */
+ @Override
+ public long getLastModified()
+ {
+ // we don't have any idea about last modified value, so just
+ // return 0
+ return 0;
+ }
+
+ /**
+ * @see org.apache.ivy.plugins.latest.ArtifactInfo#getRevision()
+ */
+ @Override
+ public String getRevision()
+ {
+ return this.version;
+ }
+
+ }
}
Modified: projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/impl/DefaultPackageManagerContext.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/impl/DefaultPackageManagerContext.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/impl/DefaultPackageManagerContext.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -23,10 +23,13 @@
import java.io.File;
+import javax.transaction.TransactionManager;
+
import org.jboss.ejb3.packagemanager.PackageContext;
import org.jboss.ejb3.packagemanager.PackageManager;
import org.jboss.ejb3.packagemanager.PackageManagerContext;
import org.jboss.ejb3.packagemanager.PackageManagerEnvironment;
+import org.jboss.ejb3.packagemanager.db.PackageDatabaseManager;
import org.jboss.ejb3.packagemanager.metadata.ScriptType;
/**
@@ -81,6 +84,24 @@
return "data/scripts/" + packageName;
}
+ /**
+ * @see org.jboss.ejb3.packagemanager.PackageManagerContext#getDatabaseManager()
+ */
+ @Override
+ public PackageDatabaseManager getDatabaseManager()
+ {
+ return this.pkgMgr.getDatabaseManager();
+ }
+
+ /**
+ * @see org.jboss.ejb3.packagemanager.PackageManagerContext#getTransactionManager()
+ */
+ @Override
+ public TransactionManager getTransactionManager()
+ {
+ return this.pkgMgr.getTransactionManager();
+ }
+
}
Modified: projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/impl/DefaultPackageManagerImpl.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/impl/DefaultPackageManagerImpl.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/impl/DefaultPackageManagerImpl.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -35,6 +35,7 @@
import org.jboss.ejb3.packagemanager.PackageManager;
import org.jboss.ejb3.packagemanager.PackageManagerContext;
import org.jboss.ejb3.packagemanager.PackageManagerEnvironment;
+import org.jboss.ejb3.packagemanager.PackageVersionComparator;
import org.jboss.ejb3.packagemanager.annotation.TransactionAttribute;
import org.jboss.ejb3.packagemanager.annotation.TransactionAttributeType;
import org.jboss.ejb3.packagemanager.db.DefaultDatabaseManager;
@@ -129,6 +130,15 @@
}
/**
+ * @see org.jboss.ejb3.packagemanager.PackageManager#getDatabaseManager()
+ */
+ @Override
+ public PackageDatabaseManager getDatabaseManager()
+ {
+ return this.pkgDatabaseManager;
+ }
+
+ /**
* Installs a package
*
* @param pkgPath The URL to the package that is to be installed
@@ -321,8 +331,26 @@
if (isPackageInstalled)
{
PersistentPackage installedPackage = this.pkgDatabaseManager.getInstalledPackage(packageName);
- logger.info("Removing existing package " + packageName + " version " + installedPackage.getPackageVersion()
- + " for upgrading to " + pkgContext);
+ // if the installed package version and the version of the package being upgraded are the same
+ // then skip the upgrade
+ PackageVersionComparator comparator = new PackageVersionComparator();
+ int versionComparison = comparator.compare(installedPackage.getPackageVersion(), pkgContext.getPackageVersion());
+ if (versionComparison == 0)
+ {
+ logger.info("Skipping package upgrade, since package with name " + packageName + " and version "
+ + installedPackage.getPackageVersion() + " is already installed");
+ return;
+ }
+ else if (versionComparison > 0)
+ {
+ logger.info("Skipping package upgrade, since a higher version " + installedPackage.getPackageVersion()
+ + " compared to " + pkgContext.getPackageVersion() + " for package " + packageName
+ + " is already installed");
+ return;
+ }
+ // this is a newer version, so continue with upgrade
+ logger.info("Upgrading package " + packageName + " from installed version " + installedPackage.getPackageVersion()
+ + " to new version " + pkgContext.getPackageVersion());
removePackage(installedPackage, true);
}
// now install new version
@@ -651,4 +679,13 @@
}
+ /**
+ * @see org.jboss.ejb3.packagemanager.PackageManager#getAllInstalledPackages()
+ */
+ @Override
+ public Set<String> getAllInstalledPackages()
+ {
+ return this.pkgDatabaseManager.getAllInstalledPackages();
+ }
+
}
Modified: projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/main/Main.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/main/Main.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/main/Main.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -28,12 +28,12 @@
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
+import java.util.Set;
import org.jboss.ejb3.packagemanager.PackageManager;
import org.jboss.ejb3.packagemanager.PackageManagerEnvironment;
import org.jboss.ejb3.packagemanager.PackageManagerFactory;
import org.jboss.ejb3.packagemanager.exception.PackageManagerException;
-import org.jboss.ejb3.packagemanager.impl.DefaultPackageManagerImpl;
import org.jboss.ejb3.packagemanager.util.DBUtil;
import org.jboss.logging.Logger;
@@ -70,6 +70,7 @@
CmdLineParser.Option installCmdOption = cmdLineParser.addStringOption('i', "install");
CmdLineParser.Option upgradeCmdOption = cmdLineParser.addStringOption('u', "upgrade");
CmdLineParser.Option removeCmdOption = cmdLineParser.addStringOption('r', "remove");
+ CmdLineParser.Option queryCmdOption = cmdLineParser.addBooleanOption('q', "query");
CmdLineParser.Option packageManagerHomeCmdOption = cmdLineParser.addStringOption('p', "pmhome");
CmdLineParser.Option jbossHomeCmdOption = cmdLineParser.addStringOption('s', "jbossHome");
@@ -154,9 +155,29 @@
}
+ Boolean query = (Boolean) cmdLineParser.getOptionValue(queryCmdOption, Boolean.FALSE);
String packageToInstall = (String) cmdLineParser.getOptionValue(installCmdOption);
String packageToUpgrade = (String) cmdLineParser.getOptionValue(upgradeCmdOption);
String packageToRemove = (String) cmdLineParser.getOptionValue(removeCmdOption);
+
+ if (query)
+ {
+ Set<String> installedPackages = pm.getAllInstalledPackages();
+ if (installedPackages.isEmpty())
+ {
+ logger.info("There are no packages installed in the system");
+ }
+ else
+ {
+ logger.info("Following packages have been installed in the system: ");
+ logger.info("----------------------------------------------------");
+ for (String packageName : installedPackages)
+ {
+ logger.info(packageName);
+ }
+ logger.info("----------------------------------------------------");
+ }
+ }
if (packageToInstall != null)
{
@@ -183,7 +204,7 @@
private static void printUsage()
{
System.out
- .println("Usage: packagemanager [-i path_to_package] [-r package_name] [-u path_to_package] [-p path_to_package_manager_home]\n"
+ .println("Usage: packagemanager [-i path_to_package] [-r package_name] [-u path_to_package] [-q] [-p path_to_package_manager_home]\n"
+ " [-s path_to_jboss_home]");
}
Modified: projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/util/DBUtil.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/util/DBUtil.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/main/java/org/jboss/ejb3/packagemanager/util/DBUtil.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -47,7 +47,7 @@
public static void runSql(Connection conn, File sqlFile) throws IOException, SQLException
{
- logger.info("SQL being run from file " + sqlFile);
+ logger.debug("SQL being run from file " + sqlFile);
InputStream sql = new FileInputStream(sqlFile);
runSql(conn, sql);
@@ -83,7 +83,7 @@
if (trimmedSql.toString().endsWith(";"))
{
String sqlToRun = trimmedSql.substring(0, trimmedSql.length() - 1);
- logger.info(sqlToRun);
+ logger.debug(sqlToRun);
statement.execute(sqlToRun);
trimmedSql = new StringBuffer();
}
Modified: projects/ejb3/trunk/package-manager/src/main/resources/log4j.xml
===================================================================
--- projects/ejb3/trunk/package-manager/src/main/resources/log4j.xml 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/main/resources/log4j.xml 2009-11-19 11:49:09 UTC (rev 96557)
@@ -65,9 +65,17 @@
<!-- Setup the Root category -->
<!-- ======================= -->
<category name="org.hibernate">
- <priority value="ALL"/>
+ <priority value="WARN"/>
</category>
+ <category name="org.jboss">
+ <priority value="WARN"/>
+ </category>
+ <category name="org.jboss.ejb3.packagemanager">
+ <priority value="INFO"/>
+ </category>
+
<root>
+ <priority value="WARN"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
Modified: projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/commandline/unit/CommandLineTestCase.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/commandline/unit/CommandLineTestCase.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/commandline/unit/CommandLineTestCase.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -23,9 +23,6 @@
import java.io.File;
-import org.jboss.ejb3.packagemanager.PackageManager;
-import org.jboss.ejb3.packagemanager.PackageManagerEnvironment;
-import org.jboss.ejb3.packagemanager.PackageManagerFactory;
import org.jboss.ejb3.packagemanager.exception.PackageNotInstalledException;
import org.jboss.ejb3.packagemanager.main.Main;
import org.jboss.ejb3.packagemanager.test.common.PackageManagerTestCase;
@@ -45,7 +42,6 @@
private static Logger logger = Logger.getLogger(CommandLineTestCase.class);
-
/**
* The JBoss Home used in each test
*/
@@ -65,8 +61,7 @@
{
pkgMgrHome = setupPackageManagerHome(CommandLineTestCase.class);
jbossHome = setupDummyJBoss(CommandLineTestCase.class);
-
-
+
}
/**
@@ -80,7 +75,7 @@
@Test
public void testInstall() throws Exception
{
- File commandLineTestPackage = this.createSimplePackage("command-line-test-package.jar");
+ File commandLineTestPackage = this.createSimplePackage("command-line-test-package");
String commandLineArgs[] = new String[]
{"-i", commandLineTestPackage.getAbsolutePath(), "-p", this.pkgMgrHome.getAbsolutePath(), "-s",
@@ -109,7 +104,6 @@
String commandLineArgs[] = new String[]
{"-r", "blahblahblah", "-p", this.pkgMgrHome.getAbsolutePath(), "-s", this.jbossHome.getAbsolutePath()};
- File commandLineTestPackage = this.createSimplePackage("command-line-test-package.jar");
// run the package manager
try
@@ -137,7 +131,7 @@
public void testUnInstall() throws Exception
{
// first install and then uninstall
- File packageWithScripts = this.createPackageWithPreInstallScript("commandline-uninstall-test-package.jar");
+ File packageWithScripts = this.createPackageWithPreInstallScript("commandline-uninstall-test-package");
// test that non-existent package uninstallation is not allowed
String commandLineArgs[] = new String[]
@@ -152,7 +146,7 @@
// now uninstall
commandLineArgs = new String[]
- {"-r", "common-package-with-pre-install", "-p", this.pkgMgrHome.getAbsolutePath(), "-s",
+ {"-r", "commandline-uninstall-test-package", "-p", this.pkgMgrHome.getAbsolutePath(), "-s",
this.jbossHome.getAbsolutePath()};
// run the package manager
@@ -169,4 +163,19 @@
this.assertFileExistenceUnderJBossHome(jbossHome, "bin/test.txt");
}
+
+ /**
+ * Tests the "query" (-q option) feature of the package manager, which returns the names
+ * of all installed packages
+ * @throws Exception
+ */
+ @Test
+ public void testQueryPackages() throws Exception
+ {
+ String commandLineArgs[] = new String[]
+ {"-q", "-p", this.pkgMgrHome.getAbsolutePath(), "-s", this.jbossHome.getAbsolutePath()};
+
+ // run the package manager
+ Main.main(commandLineArgs);
+ }
}
Modified: projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/common/PackageManagerTestCase.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/common/PackageManagerTestCase.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/common/PackageManagerTestCase.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -23,8 +23,12 @@
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
@@ -72,6 +76,10 @@
* The project's target dir
*/
protected static File targetDir = new File(baseDir, "target");
+
+ protected static final String DEFAULT_PACKAGE_VERSION = "1.0.0";
+
+ protected static final String JAR_SUFFIX = ".jar";
/**
* Sets up an dummy JBoss instance and returns the File corresponding
@@ -294,6 +302,29 @@
}
/**
+ * Creates a simple package with the default version {@link #DEFAULT_PACKAGE_VERSION}
+ * with the following contents:
+ *
+ * <package-name>
+ * |
+ * |--- dummy.jar
+ * |
+ * |--- package.xml
+ *
+ * The package.xml is configured to install the dummy.jar to JBOSS_HOME/common/lib. Nothing
+ * else is configured in the package.xml
+ *
+ * @param packageName The name of the package to be created. Ex: "simple-package"
+ *
+ * @return Returns the {@link File} corresponding the to the created package
+ * @throws IOException If any IO exceptions occur during the package creation
+ */
+ protected File createSimplePackage(String packageName) throws IOException
+ {
+ return this.createSimplePackage(packageName, DEFAULT_PACKAGE_VERSION);
+ }
+
+ /**
* Creates a simple package with the following contents:
*
* <package-name>
@@ -305,22 +336,23 @@
* The package.xml is configured to install the dummy.jar to JBOSS_HOME/common/lib. Nothing
* else is configured in the package.xml
*
- * @param packageFileName The name of the package to be created. Ex: simple-package.jar
- * Note: It is mandatory to specify the extension (.jar) which passing the packageFileName
+ * @param packageName The name of the package to be created. Ex: "simple-package"
+ * @param packageVersion Version of the package
* @return Returns the {@link File} corresponding the to the created package
* @throws IOException If any IO exceptions occur during the package creation
*/
- protected File createSimplePackage(String packageFileName) throws IOException
+ protected File createSimplePackage(String packageName, String packageVersion) throws IOException
{
File dummyJar = this.createDummyJar();
-
+ String packageFileName = packageName + JAR_SUFFIX;
// Now let's package the dummy.jar, package.xml into a package
File simplePackage = new File(getPerTestTargetDir(this.getClass()), packageFileName);
JavaArchive pkg = JavaArchiveFactory.create(simplePackage.getName());
pkg.addResource("dummy.jar", dummyJar);
URL packageXmlURL = this.getResource(PackageManagerTestCase.class, "package-with-just-install-file.xml");
File file = new File(packageXmlURL.getFile());
- pkg.addResource("package.xml", file);
+ File processedPackageXml = this.processPackageXml(file, packageName, packageVersion);
+ pkg.addResource("package.xml", processedPackageXml);
// now write out the package to disk
logger.debug("Writing out the created package " + pkg.toString(true));
this.exportZip(pkg, simplePackage);
@@ -329,6 +361,33 @@
}
/**
+ * Creates a package with the default version {@link #DEFAULT_PACKAGE_VERSION} and
+ * containing a file to install and a pre-install script. The package
+ * will look as follows:
+ *
+ * <package-name>
+ * |
+ * |--- dummy.jar
+ * |
+ * |--- package.xml
+ * |
+ * |--- build.xml
+ *
+ * The package.xml is configured to install the dummy.jar to JBOSS_HOME/server/default/deploy.
+ * Additionally, the package.xml is also configured for the pre-install script named build.xml,
+ * which is available at the root of the package. The build.xml script is implemented
+ * to place a file named "test.txt" under JBOSS_HOME/bin folder, when the script is run.
+ *
+ * @param packageNam The name of the package to be created. Ex: simple-package
+ * @return Returns the {@link File} corresponding the to the created package
+ * @throws IOException If any IO exceptions occur during the package creation
+ */
+ protected File createPackageWithPreInstallScript(String packageName) throws IOException
+ {
+ return this.createPackageWithPreInstallScript(packageName, DEFAULT_PACKAGE_VERSION);
+ }
+
+ /**
* Creates a package containing a file to install and a pre-install script. The package
* will look as follows:
*
@@ -345,24 +404,54 @@
* which is available at the root of the package. The build.xml script is implemented
* to place a file named "test.txt" under JBOSS_HOME/bin folder, when the script is run.
*
- * @param packageFileName The name of the package to be created. Ex: simple-package.jar
- * Note: It is mandatory to specify the extension (.jar) which passing the packageFileName
+ * @param packageNam The name of the package to be created. Ex: "simple-package"
+ * @param packageVersion Version of the package
* @return Returns the {@link File} corresponding the to the created package
* @throws IOException If any IO exceptions occur during the package creation
*/
- protected File createPackageWithPreInstallScript(String packageFileName) throws IOException
+ protected File createPackageWithPreInstallScript(String packageName, String packageVersion) throws IOException
{
URL packageXmlURL = this.getResource(PackageManagerTestCase.class, "package-with-pre-install-script.xml");
File packageXmlFile = new File(packageXmlURL.getFile());
+ File processedPackageXmlFile = this.processPackageXml(packageXmlFile, packageName, packageVersion);
URL buildXmlURL = this.getResource(PackageManagerTestCase.class, "build.xml");
File buildFile = new File(buildXmlURL.getFile());
- return this.createPackageWithScript(packageFileName, buildFile, packageXmlFile);
+ return this.createPackageWithScript(packageName, packageVersion, buildFile, processedPackageXmlFile);
}
/**
+ * Creates a package with the {@link #DEFAULT_PACKAGE_VERSION} and
+ * containing a file to install and a pre-install script. The package
+ * will look as follows:
+ *
+ * <package-name>
+ * |
+ * |--- dummy.jar
+ * |
+ * |--- package.xml
+ * |
+ * |--- build.xml
+ *
+ * The package.xml is configured to install the dummy.jar to JBOSS_HOME/server/default/deploy.
+ * Additionally, the package.xml is also configured for the pre-install script named build.xml,
+ * which is available at the root of the package. The build.xml script is implemented
+ * to place a file named "pre-uninstall.txt" under JBOSS_HOME/bin folder, when the script is run.
+ *
+ * @param packageName The name of the package to be created. Ex: simple-package
+ * @return Returns the {@link File} corresponding the to the created package
+ * @throws IOException If any IO exceptions occur during the package creation
+ */
+ protected File createPackageWithPreUnInstallScript(String packageName) throws IOException
+ {
+
+ return this.createPackageWithPreUnInstallScript(packageName, DEFAULT_PACKAGE_VERSION);
+ }
+
+
+ /**
* Creates a package containing a file to install and a pre-install script. The package
* will look as follows:
*
@@ -379,22 +468,51 @@
* which is available at the root of the package. The build.xml script is implemented
* to place a file named "pre-uninstall.txt" under JBOSS_HOME/bin folder, when the script is run.
*
- * @param packageFileName The name of the package to be created. Ex: simple-package.jar
- * Note: It is mandatory to specify the extension (.jar) which passing the packageFileName
+ * @param packageName The name of the package to be created. Ex: simple-package
+ * @param packageVersion Version of the package
* @return Returns the {@link File} corresponding the to the created package
* @throws IOException If any IO exceptions occur during the package creation
*/
- protected File createPackageWithPreUnInstallScript(String packageFileName) throws IOException
+ protected File createPackageWithPreUnInstallScript(String packageName, String packageVersion) throws IOException
{
URL packageXmlURL = this.getResource(PackageManagerTestCase.class, "package-with-pre-uninstall-script.xml");
File packageXmlFile = new File(packageXmlURL.getFile());
+ File processedPackageXmlFile = this.processPackageXml(packageXmlFile, packageName, packageVersion);
URL buildXmlURL = this.getResource(PackageManagerTestCase.class, "build.xml");
File buildFile = new File(buildXmlURL.getFile());
- return this.createPackageWithScript(packageFileName, buildFile, packageXmlFile);
+ return this.createPackageWithScript(packageName, packageVersion, buildFile, processedPackageXmlFile);
}
/**
+ * Creates a package with the {@link #DEFAULT_PACKAGE_VERSION} and
+ * containing a file to install and a pre-install script. The package
+ * will look as follows:
+ *
+ * <package-name>
+ * |
+ * |--- dummy.jar
+ * |
+ * |--- package.xml
+ * |
+ * |--- build.xml
+ *
+ * The package.xml is configured to install the dummy.jar to JBOSS_HOME/server/default/deploy.
+ * Additionally, the package.xml is also configured for the pre-install script named build.xml,
+ * which is available at the root of the package. The build.xml script is implemented
+ * to place a file named "post-install.txt" under JBOSS_HOME/bin folder, when the script is run.
+ *
+ * @param packageName The name of the package to be created. Ex: simple-package
+ * @return Returns the {@link File} corresponding the to the created package
+ * @throws IOException If any IO exceptions occur during the package creation
+ */
+ protected File createPackageWithPostInstallScript(String packageName) throws IOException
+ {
+
+ return this.createPackageWithPostInstallScript(packageName, DEFAULT_PACKAGE_VERSION);
+ }
+
+ /**
* Creates a package containing a file to install and a pre-install script. The package
* will look as follows:
*
@@ -411,22 +529,51 @@
* which is available at the root of the package. The build.xml script is implemented
* to place a file named "post-install.txt" under JBOSS_HOME/bin folder, when the script is run.
*
- * @param packageFileName The name of the package to be created. Ex: simple-package.jar
- * Note: It is mandatory to specify the extension (.jar) which passing the packageFileName
+ * @param packageName The name of the package to be created. Ex: simple-package
+ * @param packageVersion Version of the package
* @return Returns the {@link File} corresponding the to the created package
* @throws IOException If any IO exceptions occur during the package creation
*/
- protected File createPackageWithPostInstallScript(String packageFileName) throws IOException
+ protected File createPackageWithPostInstallScript(String packageName, String packageVersion) throws IOException
{
URL packageXmlURL = this.getResource(PackageManagerTestCase.class, "package-with-post-install-script.xml");
File packageXmlFile = new File(packageXmlURL.getFile());
+ File processedPackageXmlFile = this.processPackageXml(packageXmlFile, packageName, packageVersion);
URL buildXmlURL = this.getResource(PackageManagerTestCase.class, "build.xml");
File buildFile = new File(buildXmlURL.getFile());
- return this.createPackageWithScript(packageFileName, buildFile, packageXmlFile);
+ return this.createPackageWithScript(packageName, packageVersion, buildFile, processedPackageXmlFile);
}
/**
+ * Creates a package with the {@link #DEFAULT_PACKAGE_VERSION} and
+ * containing a file to install and a pre-install script. The package
+ * will look as follows:
+ *
+ * <package-name>
+ * |
+ * |--- dummy.jar
+ * |
+ * |--- package.xml
+ * |
+ * |--- build.xml
+ *
+ * The package.xml is configured to install the dummy.jar to JBOSS_HOME/server/default/deploy.
+ * Additionally, the package.xml is also configured for the post-uninstall script named build.xml,
+ * which is available at the root of the package. The build.xml script is implemented
+ * to place a file named "post-uninstall.txt" from JBOSS_HOME/bin folder
+ *
+ * @param packageName The name of the package to be created. Ex: simple-package
+ * @return Returns the {@link File} corresponding the to the created package
+ * @throws IOException If any IO exceptions occur during the package creation
+ */
+ protected File createPackageWithPostUnInstallScript(String packageName) throws IOException
+ {
+
+ return this.createPackageWithPostUnInstallScript(packageName, DEFAULT_PACKAGE_VERSION);
+ }
+
+ /**
* Creates a package containing a file to install and a pre-install script. The package
* will look as follows:
*
@@ -443,23 +590,22 @@
* which is available at the root of the package. The build.xml script is implemented
* to place a file named "post-uninstall.txt" from JBOSS_HOME/bin folder
*
- * @param packageFileName The name of the package to be created. Ex: simple-package.jar
- * Note: It is mandatory to specify the extension (.jar) which passing the packageFileName
+ * @param packageName The name of the package to be created. Ex: simple-package
+ * @param packageVersion Version of the package
* @return Returns the {@link File} corresponding the to the created package
* @throws IOException If any IO exceptions occur during the package creation
*/
- protected File createPackageWithPostUnInstallScript(String packageFileName) throws IOException
+ protected File createPackageWithPostUnInstallScript(String packageName, String packageVersion) throws IOException
{
URL packageXmlURL = this.getResource(PackageManagerTestCase.class, "package-with-post-uninstall-script.xml");
File packageXmlFile = new File(packageXmlURL.getFile());
+ File processedPackageXmlFile = this.processPackageXml(packageXmlFile, packageName, packageVersion);
URL buildXmlURL = this.getResource(PackageManagerTestCase.class, "build.xml");
File buildFile = new File(buildXmlURL.getFile());
- return this.createPackageWithScript(packageFileName, buildFile, packageXmlFile);
+ return this.createPackageWithScript(packageName, packageVersion, buildFile, processedPackageXmlFile);
}
-
-
/**
* Utility method to create a package with a script file.
*
@@ -474,15 +620,16 @@
* |
* |--- [script-file]
*
- * @param packageFileName Package file name
+ * @param packageName Package file name
* @param scriptFile Script file
* @param packageXmlFile package.xml
* @return Returns the created package
* @throws IOException
*/
- private File createPackageWithScript(String packageFileName, File scriptFile, File packageXmlFile) throws IOException
+ private File createPackageWithScript(String packageName, String packageVersion, File scriptFile, File packageXmlFile) throws IOException
{
File dummyJar = this.createDummyJar();
+ String packageFileName = packageName + JAR_SUFFIX;
File packageWithScript = new File(getPerTestTargetDir(this.getClass()), packageFileName);
JavaArchive pkg = JavaArchiveFactory.create(packageWithScript.getName());
pkg.addResource("dummy.jar", dummyJar);
@@ -496,7 +643,8 @@
}
/**
- * Creates a package containing a file to install and a packaged-dependency. The package
+ * Creates a package with the {@link #DEFAULT_PACKAGE_VERSION}
+ * and containing a file to install and a packaged-dependency. The package
* will look as follows:
*
* <package-name>
@@ -521,15 +669,55 @@
* The package.xml of the dependee package is configured to install the dummy.jar to JBOSS_HOME/common/lib.
* Nothing else is configured in the package.xml of the dependee package
*
- * @param packageFileName The name of the package to be created. Ex: simple-package.jar
- * Note: It is mandatory to specify the extension (.jar) which passing the packageFileName
+ * @param packageName The name of the package to be created. Ex: simple-package
* @return Returns the {@link File} corresponding the to the created package
* @throws IOException If any IO exceptions occur during the package creation
*/
- protected File createPackageWithSimplePackagedDependency(String packageFileName) throws IOException
+ protected File createPackageWithSimplePackagedDependency(String packageName) throws IOException
{
+ return this.createPackageWithSimplePackagedDependency(packageName, DEFAULT_PACKAGE_VERSION);
+
+ }
+
+
+ /**
+ * Creates a package with the {@link #DEFAULT_PACKAGE_VERSION}
+ * and containing a file to install and a packaged-dependency. The package
+ * will look as follows:
+ *
+ * <package-name>
+ * |
+ * |--- dependee-package.jar (this is the packaged dependency)
+ * |
+ * |--- package.xml
+ * |
+ * |--- dummy.jar
+ *
+ * The package.xml is configured to install the dummy.jar to JBOSS_HOME/server/default/lib. Also
+ * the package.xml is configured to mark dependee-package.jar as a packaged-dependency.
+ *
+ * The "dependee" package contains the following:
+ *
+ * <package-name>
+ * |
+ * |--- dummy.jar
+ * |
+ * |--- package.xml
+ *
+ * The package.xml of the dependee package is configured to install the dummy.jar to JBOSS_HOME/common/lib.
+ * Nothing else is configured in the package.xml of the dependee package
+ *
+ * @param packageName The name of the package to be created. Ex: simple-package
+ * @param packageVersion Version of the package
+ * @return Returns the {@link File} corresponding the to the created package
+ * @throws IOException If any IO exceptions occur during the package creation
+ */
+ protected File createPackageWithSimplePackagedDependency(String packageName, String packageVersion) throws IOException
+ {
+ String packageFileName = packageName + JAR_SUFFIX;
+
// let's create a simple "dependee" package
- File dependeePackage = this.createSimplePackage("dependee-package.jar");
+ File dependeePackage = this.createSimplePackage("dependee-package");
// Now package this dependee package and also any other files in the dependent package
File packageWithPackagedDependency = new File(getPerTestTargetDir(this.getClass()), packageFileName);
@@ -540,7 +728,8 @@
pkg.addResource("dummy.jar", dummyJar);
URL packageXmlURL = this.getResource(PackageManagerTestCase.class, "package-with-packaged-dependency.xml");
File packageXmlFile = new File(packageXmlURL.getFile());
- pkg.addResource("package.xml", packageXmlFile);
+ File processedPacackageXmlFile = this.processPackageXml(packageXmlFile, packageName, packageVersion);
+ pkg.addResource("package.xml", processedPacackageXmlFile);
// now write out the package to disk
logger.debug("Writing out the created package " + pkg.toString(true));
@@ -712,4 +901,55 @@
testCaseTargetDir.mkdirs();
return testCaseTargetDir;
}
+
+ /**
+ * Processes the <code>originalPackageXml</code> file to replace any occurences of
+ * ${package.name} and ${package.version} variables in that file. These variables
+ * are replaced with the actual values. The original package.xml file is left unchanged
+ * and instead a copy of the package.xml with the variable replacements is returned back.
+ *
+ * @param originalPackageXml The package.xml which needs to be processed
+ * @param packageName Package name
+ * @param packageVersion Package version
+ * @return Returns the processed copy of package.xml
+ * @throws IOException If any IO errors occur during processing
+ */
+ protected File processPackageXml(File originalPackageXml, String packageName, String packageVersion) throws IOException
+ {
+ if (!originalPackageXml.exists())
+ {
+ throw new IOException(originalPackageXml + " does not exist");
+ }
+ if (originalPackageXml.isDirectory())
+ {
+ throw new IOException(originalPackageXml + " is a directory. Cannot create package.xml out of a directory!");
+ }
+ BufferedReader bufferedReader = new BufferedReader(new FileReader(originalPackageXml));
+ File resultantPackageXmlFile = File.createTempFile("pkg", "xml", getPerTestTargetDir(this.getClass()));
+ BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(resultantPackageXmlFile));
+ try
+ {
+ String line = null;
+ while ((line = bufferedReader.readLine()) != null)
+ {
+ line = line.replaceAll("\\$\\{package.name\\}", packageName);
+ line = line.replaceAll("\\$\\{package.version\\}", packageVersion);
+ bufferedWriter.write(line);
+ bufferedWriter.write("\n");
+ }
+ }
+ finally
+ {
+ if (bufferedReader != null)
+ {
+ bufferedReader.close();
+ }
+ if (bufferedWriter != null)
+ {
+ bufferedWriter.close();
+ }
+ }
+ return resultantPackageXmlFile;
+
+ }
}
Modified: projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/dependency/unit/DependencyInstallTestCase.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/dependency/unit/DependencyInstallTestCase.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/dependency/unit/DependencyInstallTestCase.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -89,7 +89,7 @@
public void testPackageWithPackagedDependency() throws Exception
{
File packageWithPackagedDependency = this
- .createPackageWithSimplePackagedDependency("package-with-packaged-dependency.jar");
+ .createPackageWithSimplePackagedDependency("package-with-packaged-dependency");
// now install
this.pkgMgr.installPackage(packageWithPackagedDependency.getAbsolutePath());
Modified: projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/install/unit/BasicInstallTestCase.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/install/unit/BasicInstallTestCase.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/install/unit/BasicInstallTestCase.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -86,7 +86,7 @@
@Test
public void testSimpleInstall() throws Exception
{
- File simplePackage = this.createSimplePackage("simple-package.jar");
+ File simplePackage = this.createSimplePackage("simple-package");
// run the package manager
pkgMgr.installPackage(simplePackage.toURI().toURL());
@@ -105,7 +105,7 @@
@Test
public void testPreInstallScriptExecution() throws Exception
{
- File packageWithPreInstallScript = this.createPackageWithPreInstallScript("package-with-pre-install-script.jar");
+ File packageWithPreInstallScript = this.createPackageWithPreInstallScript("basic-pre-install-test-package");
// now run the package manager
this.pkgMgr.installPackage(packageWithPreInstallScript.getAbsolutePath());
@@ -127,7 +127,7 @@
@Test
public void testPostInstallScriptExecution() throws Exception
{
- File postInstallScriptPackage = this.createPackageWithPostInstallScript("post-install-test-package.jar");
+ File postInstallScriptPackage = this.createPackageWithPostInstallScript("basic-post-install-test-package");
// As a sanity check, ensure that the file supposed to be created by our post-install
// step is not already present
Modified: projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/uninstall/unit/UnInstallTestCase.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/uninstall/unit/UnInstallTestCase.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/uninstall/unit/UnInstallTestCase.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -91,7 +91,7 @@
@Test
public void testSimpleUninstall() throws Exception
{
- File simplePackage = this.createSimplePackage("simple-uninstall-test-package.jar");
+ File simplePackage = this.createSimplePackage("simple-uninstall-test-package");
// first install
this.pkgMgr.installPackage(simplePackage.getAbsolutePath());
@@ -102,7 +102,7 @@
this.assertFileExistenceUnderJBossHome(jbossHome, "common/lib/dummy.jar");
// now uninstall
- this.pkgMgr.removePackage("common-package-with-just-install-file");
+ this.pkgMgr.removePackage("simple-uninstall-test-package");
this.assertFileAbsenceUnderJBossHome(jbossHome, "common/lib/dummy.jar");
}
@@ -110,7 +110,7 @@
@Test
public void testUninstallationOfPackageContainingScripts() throws Exception
{
- File packageWithScripts = this.createPackageWithPreInstallScript("package-with-script-uninstall-test.jar");
+ File packageWithScripts = this.createPackageWithPreInstallScript("package-with-script-uninstall-test");
// first install
this.pkgMgr.installPackage(packageWithScripts.getAbsolutePath());
@@ -120,7 +120,7 @@
this.assertFileExistenceUnderJBossHome(jbossHome, "server/default/deploy/dummy.jar");
// now uninstall
- this.pkgMgr.removePackage("common-package-with-pre-install");
+ this.pkgMgr.removePackage("package-with-script-uninstall-test");
this.assertFileAbsenceUnderJBossHome(jbossHome, "server/default/deploy/dummy.jar");
@@ -136,7 +136,7 @@
public void testUnInstallationOfPackageWithDependencies() throws Exception
{
File packageWithDependencies = this
- .createPackageWithSimplePackagedDependency("uninstall-package-with-packaged-dependency.jar");
+ .createPackageWithSimplePackagedDependency("uninstall-package-with-packaged-dependency");
// first install
this.pkgMgr.installPackage(packageWithDependencies.getAbsolutePath());
@@ -147,7 +147,7 @@
this.assertFileExistenceUnderJBossHome(jbossHome, "common/lib/dummy.jar");
// uninstall
- this.pkgMgr.removePackage("common-package-with-packaged-dependency");
+ this.pkgMgr.removePackage("uninstall-package-with-packaged-dependency");
// the file installed by the main package (the package which was uninstalled)
// should no longer be present
@@ -166,7 +166,7 @@
@Test
public void testPostUnInstallScriptExecution() throws Exception
{
- File postUnInstallScriptPackage = this.createPackageWithPostUnInstallScript("post-uninstall-test-package.jar");
+ File postUnInstallScriptPackage = this.createPackageWithPostUnInstallScript("post-uninstall-test-package");
// As a sanity check, ensure that the file supposed to be created by our post-uninstall
// step is not already present
@@ -179,7 +179,7 @@
this.assertFileExistenceUnderJBossHome(jbossHome, "server/default/deploy/dummy.jar");
// now uninstall
- pkgMgr.removePackage("common-package-with-post-uninstall");
+ pkgMgr.removePackage("post-uninstall-test-package");
// make sure uninstall was successful
this.assertFileAbsenceUnderJBossHome(jbossHome, "server/default/deploy/dummy.jar");
// check that post-uninstall script was run
@@ -195,7 +195,7 @@
@Test
public void testPreUnInstallScriptExecution() throws Exception
{
- File preUnInstallScriptPackage = this.createPackageWithPreUnInstallScript("pre-uninstall-test-package.jar");
+ File preUnInstallScriptPackage = this.createPackageWithPreUnInstallScript("pre-uninstall-test-package");
// As a sanity check, ensure that the file supposed to be created by our pre-uninstall
// step is not already present
@@ -208,7 +208,7 @@
this.assertFileExistenceUnderJBossHome(jbossHome, "server/default/deploy/dummy.jar");
// now uninstall
- pkgMgr.removePackage("common-package-with-pre-uninstall");
+ pkgMgr.removePackage("pre-uninstall-test-package");
// make sure uninstall was successful
this.assertFileAbsenceUnderJBossHome(jbossHome, "server/default/deploy/dummy.jar");
// check that pre-uninstall script was run
Modified: projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/upgrade/unit/UpgradeUnitTestCase.java
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/upgrade/unit/UpgradeUnitTestCase.java 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/test/java/org/jboss/ejb3/packagemanager/test/upgrade/unit/UpgradeUnitTestCase.java 2009-11-19 11:49:09 UTC (rev 96557)
@@ -22,18 +22,24 @@
package org.jboss.ejb3.packagemanager.test.upgrade.unit;
import java.io.File;
+import java.io.IOException;
+import java.net.URL;
import org.jboss.ejb3.packagemanager.PackageManager;
import org.jboss.ejb3.packagemanager.PackageManagerEnvironment;
import org.jboss.ejb3.packagemanager.PackageManagerFactory;
import org.jboss.ejb3.packagemanager.test.common.PackageManagerTestCase;
import org.jboss.logging.Logger;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchiveFactory;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* UpgradeUnitTestCase
- *
+ *
+ * Tests the upgrade functionality of the package manager
+ *
* @author Jaikiran Pai
* @version $Revision: $
*/
@@ -60,8 +66,6 @@
*/
private static File pkgMgrHome;
- private static File perTestTargetDir = getPerTestTargetDir(UpgradeUnitTestCase.class);
-
/**
* Do the necessary setup
* @throws Exception
@@ -74,19 +78,176 @@
PackageManagerEnvironment env = new PackageManagerEnvironment(pkgMgrHome.getAbsolutePath());
pkgMgr = PackageManagerFactory.getDefaultPackageManager(env, jbossHome.getAbsolutePath());
}
-
+
+ /**
+ * Tests that a package installed at a lower version can be upgraded successfully to a
+ * higher version
+ * @throws Exception
+ */
@Test
public void testSimpleUpgrade() throws Exception
{
- // first install a simple package, then call upgrade on the same package
- File simplePackage = this.createSimplePackage("simple-package.jar");
+ // first install a simple package, then call upgrade to a newer version
+ File versionOne = this.createPackageVersionOne("upgrade-to-higher-version-test-package");
+
+ this.pkgMgr.installPackage(versionOne.getAbsolutePath());
+ // ensure install was successful
+ this.assertFileExistenceUnderJBossHome(jbossHome, "server/default/deploy/dummy-version1.jar");
+ this.assertFileExistenceUnderJBossHome(jbossHome, "common/lib/common-util.jar");
+ this.assertFileExistenceUnderJBossHome(jbossHome, "bin/post-install-version1.txt");
+
+ // now upgrade
+ File versionTwo = this.createPackageVersionTwo("upgrade-to-higher-version-test-package");
+ this.pkgMgr.updatePackage(versionTwo.getAbsolutePath());
+ // check that the previous version's files are no longer there
+ this.assertFileAbsenceUnderJBossHome(jbossHome, "bin/post-install-version1.txt");
+ this.assertFileAbsenceUnderJBossHome(jbossHome, "server/default/deploy/dummy-version1.jar");
+ // check that newer version files have been installed
+ this.assertFileExistenceUnderJBossHome(jbossHome, "server/default/deploy/dummy-version2.jar");
+ this.assertFileExistenceUnderJBossHome(jbossHome, "common/lib/common-util.jar");
+ this.assertFileExistenceUnderJBossHome(jbossHome, "bin/post-install-version2.txt");
+
+ }
+
+ /**
+ * Test that the package manager does not allow "upgrading" from an already installed
+ * higher version of a package to a lower version of the same package
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testUpgradeToLowerVersion() throws Exception
+ {
+
+ // first install a higher version of the package and then try to "upgrade"
+ // to a lower version
+ File versionTwo = this.createPackageVersionTwo("upgrade-to-lower-version-test-package");
+
+ this.pkgMgr.installPackage(versionTwo.getAbsolutePath());
+ // ensure install was successful
+ this.assertFileExistenceUnderJBossHome(jbossHome, "server/default/deploy/dummy-version2.jar");
+ this.assertFileExistenceUnderJBossHome(jbossHome, "common/lib/common-util.jar");
+ this.assertFileExistenceUnderJBossHome(jbossHome, "bin/post-install-version2.txt");
+
+ // now "upgrade" to lower version
+ File versionOne = this.createPackageVersionOne("upgrade-to-lower-version-test-package");
+ this.pkgMgr.updatePackage(versionOne.getAbsolutePath());
+
+ // ensure that the package wasn't degraded to a lower a version
+ // by checking that the previous files are *not* uninstalled and also the
+ // lower version files are *not* installed
+ this.assertFileExistenceUnderJBossHome(jbossHome, "server/default/deploy/dummy-version2.jar");
+ this.assertFileExistenceUnderJBossHome(jbossHome, "common/lib/common-util.jar");
+ this.assertFileExistenceUnderJBossHome(jbossHome, "bin/post-install-version2.txt");
+
+ this.assertFileAbsenceUnderJBossHome(jbossHome, "server/default/deploy/dummy-version1.jar");
+ this.assertFileAbsenceUnderJBossHome(jbossHome, "bin/post-install-version1.txt");
+
+ }
+
+ /**
+ * Test that a package being upgraded to same version does not cause any issues.
+ * Internally, such a package upgrade is ignored (skipped) by the package manager,
+ * but that's not the concern of this test case
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testUpgradeToSameVersion() throws Exception
+ {
+ File simplePackageWithDependency = this.createPackageWithSimplePackagedDependency("upgrade-to-same-version","1.0.0-beta-1");
+ // install
+ this.pkgMgr.installPackage(simplePackageWithDependency.getAbsolutePath());
- this.pkgMgr.installPackage(simplePackage.getAbsolutePath());
-
+ this.assertFileExistenceUnderJBossHome(jbossHome, "server/default/lib/dummy.jar");
this.assertFileExistenceUnderJBossHome(jbossHome, "common/lib/dummy.jar");
- // now upgrade
+ // now upgrade. Note that even though we are upgrading to a different
+ // package contents, this upgrade will be skipped and the contents installed
+ // previously by this package will stay.
+ File simplePackage = this.createSimplePackage("upgrade-to-same-version", "1.0.0-beta-1");
this.pkgMgr.updatePackage(simplePackage.getAbsolutePath());
+
+ // ensure that the upgrade did not result in loss of installed files
+ this.assertFileExistenceUnderJBossHome(jbossHome, "server/default/lib/dummy.jar");
this.assertFileExistenceUnderJBossHome(jbossHome, "common/lib/dummy.jar");
+
+
}
+
+ /**
+ * Creates a simple package with the following structure:
+ *
+ * <package-name>
+ * |
+ * |--- dummy-version1.jar (will be installed to server/default/deploy)
+ * |--- common-util.jar (will be installed to common/lib)
+ * |--- build-version1.xml
+ * |--- package.xml
+ *
+ * @param packageFileName
+ * @return
+ * @throws IOException
+ */
+ private File createPackageVersionOne(String packageName) throws IOException
+ {
+ File dummyJar = this.createDummyJar();
+ String packageFileName = packageName + JAR_SUFFIX;
+
+ // Now let's package the dummy.jar, package.xml into a package
+ File simplePackage = new File(getPerTestTargetDir(this.getClass()), packageFileName);
+ JavaArchive pkg = JavaArchiveFactory.create(simplePackage.getName());
+ pkg.addResource("dummy-version1.jar", dummyJar);
+ pkg.addResource("common-util.jar", dummyJar);
+ URL packageXmlURL = this.getResource(this.getClass(), "package-version1.xml");
+ File file = new File(packageXmlURL.getFile());
+ File processedPackageXmlFile = this.processPackageXml(file, packageName, "1.0.0-alpha-1");
+ pkg.addResource("package.xml", processedPackageXmlFile);
+ URL buildXmlURL = this.getResource(this.getClass(), "build-version1.xml");
+ File buildFile = new File(buildXmlURL.getFile());
+ pkg.addResource("build-version1.xml", buildFile);
+ // now write out the package to disk
+ logger.debug("Writing out the created package " + pkg.toString(true));
+ this.exportZip(pkg, simplePackage);
+
+ return simplePackage;
+ }
+
+ /**
+ * Creates a package with the following structure:
+ * <package-name>
+ * |
+ * |--- dummy-version2.jar (will be installed to server/default/deploy)
+ * |--- common-util.jar (will be installed to common/lib)
+ * |--- build-version2.xml
+ * |--- package.xml
+ *
+ * @param packageFileName
+ * @return
+ * @throws IOException
+ */
+ private File createPackageVersionTwo(String packageName) throws IOException
+ {
+ String packageFileName = packageName + JAR_SUFFIX;
+
+ File dummyJar = this.createDummyJar();
+
+ // Now let's package the dummy.jar, package.xml into a package
+ File simplePackage = new File(getPerTestTargetDir(this.getClass()), packageFileName);
+ JavaArchive pkg = JavaArchiveFactory.create(simplePackage.getName());
+ pkg.addResource("dummy-version2.jar", dummyJar);
+ pkg.addResource("common-util.jar", dummyJar);
+ URL packageXmlURL = this.getResource(this.getClass(), "package-version2.xml");
+ File file = new File(packageXmlURL.getFile());
+ File processedPackageXmlFile = this.processPackageXml(file, packageName, "1.0.0-alpha-2");
+ pkg.addResource("package.xml", processedPackageXmlFile);
+ URL buildXmlURL = this.getResource(this.getClass(), "build-version2.xml");
+ File buildFile = new File(buildXmlURL.getFile());
+ pkg.addResource("build-version2.xml", buildFile);
+ // now write out the package to disk
+ logger.debug("Writing out the created package " + pkg.toString(true));
+ this.exportZip(pkg, simplePackage);
+
+ return simplePackage;
+ }
}
Modified: projects/ejb3/trunk/package-manager/src/test/resources/log4j.xml
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/resources/log4j.xml 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/test/resources/log4j.xml 2009-11-19 11:49:09 UTC (rev 96557)
@@ -49,7 +49,7 @@
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
- <!-- <param name="Threshold" value="INFO"/> -->
+
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t] [%c{1}] %m%n"/>
@@ -65,18 +65,26 @@
<priority value="INFO"/>
</category>
- <category name="org.jboss.ejb3">
+ <category name="org.jboss.shrinkwrap">
+ <priority value="DEBUG"/>
+ </category>
+
+
+ <category name="org.jboss.ejb3.packagemanager">
<priority value="ALL"/>
</category>
<category name="org.hibernate">
- <priority value="ALL"/>
- </category>
+ <priority value="WARN"/>
+ </category>
+
+
<!-- ======================= -->
<!-- Setup the Root category -->
<!-- ======================= -->
<root>
+ <priority value="WARN"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
Modified: projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-just-install-file.xml
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-just-install-file.xml 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-just-install-file.xml 2009-11-19 11:49:09 UTC (rev 96557)
@@ -1,4 +1,4 @@
-<sh:package name="common-package-with-just-install-file" version="1.0.0-Alpha1"
+<sh:package name="${package.name}" version="${package.version}"
xmlns:sh="http://www.jboss.org/schema">
<!-- Package to install a dummy jar into JBOSS_AS/common/lib -->
Modified: projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-packaged-dependency.xml
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-packaged-dependency.xml 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-packaged-dependency.xml 2009-11-19 11:49:09 UTC (rev 96557)
@@ -1,4 +1,4 @@
-<sh:package name="common-package-with-packaged-dependency" version="1.0.0-Alpha1"
+<sh:package name="${package.name}" version="${package.version}"
xmlns:sh="http://www.jboss.org/schema">
<!-- Package to install a dummy jar into JBOSS_AS/server/default/lib -->
Modified: projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-post-install-script.xml
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-post-install-script.xml 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-post-install-script.xml 2009-11-19 11:49:09 UTC (rev 96557)
@@ -1,4 +1,4 @@
-<sh:package name="common-package-with-post-install" version="1.0.0-Alpha1"
+<sh:package name="${package.name}" version="${package.version}"
xmlns:sh="http://www.jboss.org/schema">
<!-- Package to install a dummy jar into JBOSS_AS/server/default/deploy -->
Modified: projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-post-uninstall-script.xml
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-post-uninstall-script.xml 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-post-uninstall-script.xml 2009-11-19 11:49:09 UTC (rev 96557)
@@ -1,4 +1,4 @@
-<sh:package name="common-package-with-post-uninstall" version="1.0.0-Alpha1"
+<sh:package name="${package.name}" version="${package.version}"
xmlns:sh="http://www.jboss.org/schema">
<!-- Package to install a dummy jar into JBOSS_AS/server/default/deploy -->
Modified: projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-pre-install-script.xml
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-pre-install-script.xml 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-pre-install-script.xml 2009-11-19 11:49:09 UTC (rev 96557)
@@ -1,4 +1,4 @@
-<sh:package name="common-package-with-pre-install" version="1.0.0-Alpha1"
+<sh:package name="${package.name}" version="${package.version}"
xmlns:sh="http://www.jboss.org/schema">
<!-- Package to install a dummy jar into JBOSS_AS/server/default/deploy -->
Modified: projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-pre-uninstall-script.xml
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-pre-uninstall-script.xml 2009-11-19 11:36:29 UTC (rev 96556)
+++ projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/common/package-with-pre-uninstall-script.xml 2009-11-19 11:49:09 UTC (rev 96557)
@@ -1,4 +1,4 @@
-<sh:package name="common-package-with-pre-uninstall" version="1.0.0-Alpha1"
+<sh:package name="${package.name}" version="${package.version}"
xmlns:sh="http://www.jboss.org/schema">
<!-- Package to install a dummy jar into JBOSS_AS/server/default/deploy -->
Added: projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/build-version1.xml
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/build-version1.xml (rev 0)
+++ projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/build-version1.xml 2009-11-19 11:49:09 UTC (rev 96557)
@@ -0,0 +1,44 @@
+<!--
+ ~ JBoss, Home of Professional Open Source
+ ~ Copyright 2005, JBoss Inc., and individual contributors as indicated
+ ~ by the @authors tag. See the copyright.txt in the distribution for a
+ ~ full listing of individual contributors.
+ ~
+ ~ This is free software; you can redistribute it and/or modify it
+ ~ under the terms of the GNU Lesser General Public License as
+ ~ published by the Free Software Foundation; either version 2.1 of
+ ~ the License, or (at your option) any later version.
+ ~
+ ~ This software is distributed in the hope that it will be useful,
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ ~ Lesser General Public License for more details.
+ ~
+ ~ You should have received a copy of the GNU Lesser General Public
+ ~ License along with this software; if not, write to the Free
+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ -->
+
+<project name="Package Install Script">
+
+ <target name="post-install">
+ <echo level="info">***************************************************************</echo>
+ <echo level="info">This is the post-install target in the dummy package!</echo>
+ <echo level="info">Package manager home is = ${PM_HOME}</echo>
+ <echo level="info">JBoss AS home is = ${JBOSS_HOME}</echo>
+ <echo level="info">***************************************************************</echo>
+ <echo file="${JBOSS_HOME}/bin/post-install-version1.txt" message="This proves that the post-install script was run"/>
+ </target>
+
+
+ <target name="post-uninstall">
+ <echo level="info">***************************************************************</echo>
+ <echo level="info">This is the post-uninstall target in the dummy package!</echo>
+ <echo level="info">Package manager home is = ${PM_HOME}</echo>
+ <echo level="info">JBoss AS home is = ${JBOSS_HOME}</echo>
+ <echo level="info">***************************************************************</echo>
+ <delete file="${JBOSS_HOME}/bin/post-install-version1.txt"/>
+ </target>
+
+</project>
\ No newline at end of file
Added: projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/build-version2.xml
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/build-version2.xml (rev 0)
+++ projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/build-version2.xml 2009-11-19 11:49:09 UTC (rev 96557)
@@ -0,0 +1,44 @@
+<!--
+ ~ JBoss, Home of Professional Open Source
+ ~ Copyright 2005, JBoss Inc., and individual contributors as indicated
+ ~ by the @authors tag. See the copyright.txt in the distribution for a
+ ~ full listing of individual contributors.
+ ~
+ ~ This is free software; you can redistribute it and/or modify it
+ ~ under the terms of the GNU Lesser General Public License as
+ ~ published by the Free Software Foundation; either version 2.1 of
+ ~ the License, or (at your option) any later version.
+ ~
+ ~ This software is distributed in the hope that it will be useful,
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ ~ Lesser General Public License for more details.
+ ~
+ ~ You should have received a copy of the GNU Lesser General Public
+ ~ License along with this software; if not, write to the Free
+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ -->
+
+<project name="Package Install Script">
+
+ <target name="post-install">
+ <echo level="info">***************************************************************</echo>
+ <echo level="info">This is the post-install target in the dummy package!</echo>
+ <echo level="info">Package manager home is = ${PM_HOME}</echo>
+ <echo level="info">JBoss AS home is = ${JBOSS_HOME}</echo>
+ <echo level="info">***************************************************************</echo>
+ <echo file="${JBOSS_HOME}/bin/post-install-version2.txt" message="This proves that the post-install script was run"/>
+ </target>
+
+
+ <target name="post-uninstall">
+ <echo level="info">***************************************************************</echo>
+ <echo level="info">This is the post-uninstall target in the dummy package!</echo>
+ <echo level="info">Package manager home is = ${PM_HOME}</echo>
+ <echo level="info">JBoss AS home is = ${JBOSS_HOME}</echo>
+ <echo level="info">***************************************************************</echo>
+ <delete file="${JBOSS_HOME}/bin/post-install-version2.txt"/>
+ </target>
+
+</project>
\ No newline at end of file
Added: projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/package-version1.xml
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/package-version1.xml (rev 0)
+++ projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/package-version1.xml 2009-11-19 11:49:09 UTC (rev 96557)
@@ -0,0 +1,16 @@
+<sh:package name="${package.name}" version="${package.version}"
+xmlns:sh="http://www.jboss.org/schema">
+
+ <!-- Package to install a dummy jar into JBOSS_AS/server/default/deploy -->
+ <file name="dummy-version1.jar" dest-path="server/default/deploy" type="library"/>
+ <file name="common-util.jar" dest-path="common/lib" type="library"/>
+
+ <post-install>
+ <script name="build-version1.xml"/>
+ </post-install>
+
+ <post-uninstall>
+ <script name="build-version1.xml"/>
+ </post-uninstall>
+
+</sh:package>
\ No newline at end of file
Added: projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/package-version2.xml
===================================================================
--- projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/package-version2.xml (rev 0)
+++ projects/ejb3/trunk/package-manager/src/test/resources/org/jboss/ejb3/packagemanager/test/upgrade/unit/package-version2.xml 2009-11-19 11:49:09 UTC (rev 96557)
@@ -0,0 +1,16 @@
+<sh:package name="${package.name}" version="${package.version}"
+xmlns:sh="http://www.jboss.org/schema">
+
+ <!-- Package to install a dummy jar into JBOSS_AS/server/default/deploy -->
+ <file name="dummy-version2.jar" dest-path="server/default/deploy" type="library"/>
+ <file name="common-util.jar" dest-path="common/lib" type="library"/>
+
+ <post-install>
+ <script name="build-version2.xml"/>
+ </post-install>
+
+ <post-uninstall>
+ <script name="build-version2.xml"/>
+ </post-uninstall>
+
+</sh:package>
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list