You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2009/01/10 23:18:55 UTC
svn commit: r733380 - in
/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator:
ExtValInformation.java core/startup/ExtValStartupListener.java
util/ClassUtils.java
Author: gpetracek
Date: Sat Jan 10 14:18:55 2009
New Revision: 733380
URL: http://svn.apache.org/viewvc?rev=733380&view=rev
Log:
dynamic version
Modified:
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/ExtValInformation.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/ExtValStartupListener.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ClassUtils.java
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/ExtValInformation.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/ExtValInformation.java?rev=733380&r1=733379&r2=733380&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/ExtValInformation.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/ExtValInformation.java Sat Jan 10 14:18:55 2009
@@ -20,6 +20,7 @@
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.util.ClassUtils;
/**
* dont't move to an other package!!!
@@ -32,5 +33,5 @@
{
static final String EXTENSIONS_VALIDATOR_BASE_PACKAGE_NAME = ExtValInformation.class.getPackage().getName();
static final String WEBXML_PARAM_PREFIX = ExtValInformation.class.getPackage().getName();
- static final String VERSION = "1.2.2-SNAPSHOT";
+ static final String VERSION = ClassUtils.getJarVersion(ExtValInformation.class);
}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/ExtValStartupListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/ExtValStartupListener.java?rev=733380&r1=733379&r2=733380&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/ExtValStartupListener.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/ExtValStartupListener.java Sat Jan 10 14:18:55 2009
@@ -38,7 +38,14 @@
{
if(logger.isInfoEnabled())
{
- logger.info("starting up MyFaces Extensions Validator v" + ExtValInformation.VERSION);
+ if(ExtValInformation.VERSION != null)
+ {
+ logger.info("starting up MyFaces Extensions Validator v" + ExtValInformation.VERSION);
+ }
+ else
+ {
+ logger.info("starting up MyFaces Extensions Validator");
+ }
}
ExtValContext.getContext().registerRendererInterceptor(new ValidationInterceptor());
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ClassUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ClassUtils.java?rev=733380&r1=733379&r2=733380&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ClassUtils.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ClassUtils.java Sat Jan 10 14:18:55 2009
@@ -20,6 +20,12 @@
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.jar.Manifest;
+import java.util.jar.Attributes;
+import java.net.URL;
/**
* @author Gerhard Petracek
@@ -28,6 +34,8 @@
@UsageInformation(UsageCategory.INTERNAL)
public class ClassUtils
{
+ private static final Log LOG = LogFactory.getLog(ClassUtils.class);
+
public static Class tryToLoadClassForName(String name)
{
try
@@ -88,4 +96,28 @@
{
return loadClassForName(className).newInstance();
}
+
+ public static String getJarVersion(Class targetClass)
+ {
+ String classFilePath = targetClass.getCanonicalName().replace('.', '/') + ".class";
+ String manifestFilePath = "/META-INF/MANIFEST.MF";
+
+ String classLocation = targetClass.getResource(targetClass.getSimpleName() + ".class").toString();
+ String manifestFileLocation = classLocation
+ .substring(0, classLocation.indexOf(classFilePath) - 1) + manifestFilePath;
+
+ try
+ {
+ return new Manifest(new URL(manifestFileLocation).openStream())
+ .getMainAttributes().getValue(Attributes.Name.IMPLEMENTATION_VERSION);
+ }
+ catch (Throwable t)
+ {
+ if (LOG.isTraceEnabled())
+ {
+ LOG.trace("couldn't load version of jar file which contains " + targetClass.getName(), t);
+ }
+ return null;
+ }
+ }
}