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;
+        }
+    }
 }