]> source.dussan.org Git - archiva.git/commitdiff
add a bean with archiva runtime information
authorOlivier Lamy <olamy@apache.org>
Mon, 9 Jan 2012 12:44:45 +0000 (12:44 +0000)
committerOlivier Lamy <olamy@apache.org>
Mon, 9 Jan 2012 12:44:45 +0000 (12:44 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1229120 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-webapp-common/pom.xml
archiva-modules/archiva-web/archiva-webapp-common/src/main/java/org/apache/archiva/web/runtime/ArchivaRuntimeInfo.java [new file with mode: 0644]
archiva-modules/archiva-web/archiva-webapp-common/src/main/resources/META-INF/spring-context.xml
archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/AbstractActionSupport.java
archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/spring-context.xml

index 8ca867cb3106f159a00a7a896393861c0ee07840..7f19d81f260cf860cabe420d1206056e88347187 100644 (file)
   </dependencies>\r
 \r
   <build>\r
+    <resources>\r
+      <resource>\r
+        <directory>src/main/resources</directory>\r
+      </resource>\r
+      <resource>\r
+        <directory>src/main/filtered-resources</directory>\r
+        <filtering>true</filtering>\r
+      </resource>\r
+    </resources>\r
     <plugins>\r
       <plugin>\r
         <groupId>org.apache.felix</groupId>\r
diff --git a/archiva-modules/archiva-web/archiva-webapp-common/src/main/java/org/apache/archiva/web/runtime/ArchivaRuntimeInfo.java b/archiva-modules/archiva-web/archiva-webapp-common/src/main/java/org/apache/archiva/web/runtime/ArchivaRuntimeInfo.java
new file mode 100644 (file)
index 0000000..23f013b
--- /dev/null
@@ -0,0 +1,92 @@
+package org.apache.archiva.web.runtime;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.commons.lang.math.NumberUtils;
+import org.springframework.stereotype.Service;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import java.util.Properties;
+
+/**
+ * @author Olivier Lamy
+ * @since 1.4-M3
+ */
+@Service( "archivaRuntimeInfo" )
+public class ArchivaRuntimeInfo
+{
+
+    private String version;
+
+    private String buildNumber;
+
+    private long timestamp;
+
+
+    @Inject
+    public ArchivaRuntimeInfo( @Named( value = "archivaRuntimeProperties" ) Properties archivaRuntimeProperties )
+    {
+        this.version = (String) archivaRuntimeProperties.get( "archiva.version" );
+        this.buildNumber = (String) archivaRuntimeProperties.get( "archiva.buildNumber" );
+        this.timestamp = NumberUtils.createLong( (String) archivaRuntimeProperties.get( "archiva.timestamp" ) );
+    }
+
+    public String getVersion()
+    {
+        return version;
+    }
+
+    public void setVersion( String version )
+    {
+        this.version = version;
+    }
+
+    public String getBuildNumber()
+    {
+        return buildNumber;
+    }
+
+    public void setBuildNumber( String buildNumber )
+    {
+        this.buildNumber = buildNumber;
+    }
+
+    public long getTimestamp()
+    {
+        return timestamp;
+    }
+
+    public void setTimestamp( long timestamp )
+    {
+        this.timestamp = timestamp;
+    }
+
+    @Override
+    public String toString()
+    {
+        final StringBuilder sb = new StringBuilder();
+        sb.append( "ArchivaRuntimeInfo" );
+        sb.append( "{version='" ).append( version ).append( '\'' );
+        sb.append( ", buildNumber='" ).append( buildNumber ).append( '\'' );
+        sb.append( ", timestamp=" ).append( timestamp );
+        sb.append( '}' );
+        return sb.toString();
+    }
+}
index c44c99a0855d7e3510cec0cc0ff2028a7c03f189..261b885325388509b25bf6cf458b24d65d3514aa 100755 (executable)
@@ -31,6 +31,8 @@
        default-lazy-init="true">
 
   <context:annotation-config/>
-  <context:component-scan base-package="org.apache.archiva.web.spring, org.apache.archiva.web.startup"/>
+  <context:component-scan base-package="org.apache.archiva.web.spring, org.apache.archiva.web.startup, org.apache.archiva.web.runtime"/>
+
+  <util:properties id="archivaRuntimeProperties" location="classpath:application.properties" />
 
 </beans>
\ No newline at end of file
index 814f7ff1e5ff0f35ebffe8c341d123d43c04f958..b9ebec9b0dda55ef2677e05d56f37a991b95f36e 100644 (file)
@@ -27,8 +27,8 @@ import org.apache.archiva.audit.AuditListener;
 import org.apache.archiva.audit.Auditable;
 import org.apache.archiva.metadata.repository.RepositorySessionFactory;
 import org.apache.archiva.security.ArchivaXworkUser;
+import org.apache.archiva.web.runtime.ArchivaRuntimeInfo;
 import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang.math.NumberUtils;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.interceptor.SessionAware;
 import org.codehaus.plexus.redback.users.User;
@@ -47,7 +47,6 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Properties;
 
 /**
  * LogEnabled and SessionAware ActionSupport
@@ -73,9 +72,12 @@ public abstract class AbstractActionSupport
 
     private String principal;
 
+    //@Inject
+    //@Named( value = "archivaRuntimeProperties" )
+    //private Properties archivaRuntimeProperties;
+
     @Inject
-    @Named( value = "archivaRuntimeProperties" )
-    private Properties archivaRuntimeProperties;
+    private ArchivaRuntimeInfo archivaRuntimeInfo;
 
     @PostConstruct
     public void initialize()
@@ -200,24 +202,25 @@ public abstract class AbstractActionSupport
 
     public String getArchivaVersion()
     {
-        return (String) archivaRuntimeProperties.get( "archiva.version" );
+        return archivaRuntimeInfo.getVersion(); //(String) archivaRuntimeProperties.get( "archiva.version" );
     }
 
     public String getArchivaBuildNumber()
     {
-        return (String) archivaRuntimeProperties.get( "archiva.buildNumber" );
+        return archivaRuntimeInfo.getBuildNumber();// (String) archivaRuntimeProperties.get( "archiva.buildNumber" );
     }
 
     public String getArchivaBuildTimestamp()
     {
-        return (String) archivaRuntimeProperties.get( "archiva.timestamp" );
+        return Long.toString(
+            archivaRuntimeInfo.getTimestamp() ); //(String) archivaRuntimeProperties.get( "archiva.timestamp" );
     }
 
     public String getArchivaBuildTimestampDateStr()
     {
         SimpleDateFormat sfd = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ssz", getLocale() );
-        return sfd.format(
-            new Date( NumberUtils.createLong( (String) archivaRuntimeProperties.get( "archiva.timestamp" ) ) ) );
+        return sfd.format( new Date( archivaRuntimeInfo.getTimestamp() ) );
+        //new Date( NumberUtils.createLong( (String) archivaRuntimeProperties.get( "archiva.timestamp" ) ) ) );
     }
 
     /**
index fb14d761ad6208b1ab17cc70593598e98b53f142..d79ebcb5e304e532d134750bee3779a1e3991c05 100755 (executable)
@@ -33,8 +33,6 @@
   <context:annotation-config/>
   <context:component-scan base-package="org.apache.archiva.web"/>
 
-  <util:properties id="archivaRuntimeProperties" location="classpath:application.properties" />
-
   <bean id="jcr-repository" class="org.apache.jackrabbit.core.RepositoryImpl" destroy-method="shutdown" lazy-init="true">
     <constructor-arg ref="jcr-config"/>
   </bean>