Author: solomax
Date: Fri Apr 19 03:36:29 2013
New Revision: 1469673

URL: http://svn.apache.org/r1469673
Log:
Usability: OM version is printed to the logs on OM start.

Added:
    openmeetings/branches/2.1/src/org/apache/openmeetings/Version.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/Version.java
Modified:
    
openmeetings/branches/2.1/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/AboutDialog.java

Added: openmeetings/branches/2.1/src/org/apache/openmeetings/Version.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/2.1/src/org/apache/openmeetings/Version.java?rev=1469673&view=auto
==============================================================================
--- openmeetings/branches/2.1/src/org/apache/openmeetings/Version.java (added)
+++ openmeetings/branches/2.1/src/org/apache/openmeetings/Version.java Fri Apr 
19 03:36:29 2013
@@ -0,0 +1,98 @@
+/*
+ * 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.
+ */
+package org.apache.openmeetings;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
+
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class Version {
+       private static final Logger log = 
Red5LoggerFactory.getLogger(Version.class, OpenmeetingsVariables.webAppRootKey);
+       private static final int startedStringLength = 48;
+       private static String version = null;
+       private static String revision = null;
+       private static String buildDate = null;
+       
+       private static Attributes getAttributes() throws MalformedURLException, 
IOException {
+               String jarUrl = 
Version.class.getResource(Version.class.getSimpleName() + ".class").toString();
+               return new Manifest(new URL(jarUrl.substring(0, 
jarUrl.indexOf('!')) + 
"!/META-INF/MANIFEST.MF").openStream()).getMainAttributes();
+       }
+       
+       public static String getVersion() {
+               if (version == null) {
+                       try {
+                               version = 
getAttributes().getValue("Product-Version");
+                       } catch (Exception e) {
+                               e.printStackTrace();
+                       }
+               }
+               return version;
+       }
+       
+       public static String getRevision() {
+               if (revision == null) {
+                       try {
+                               revision = 
getAttributes().getValue("Svn-Revision");
+                       } catch (Exception e) {
+                               e.printStackTrace();
+                       }
+               }
+               return revision;
+       }
+       
+       public static String getBuildDate() {
+               if (buildDate == null) {
+                       try {
+                               buildDate = 
getAttributes().getValue("Built-On");
+                       } catch (Exception e) {
+                               e.printStackTrace();
+                       }
+               }
+               return buildDate;
+       }
+
+       private static void getLine(StringBuilder sb, String text, char fill) {
+               sb.append('#');
+               int l = text.length();
+               int headLength = (startedStringLength - l) / 2;
+               for (int i = 0; i < headLength; ++i) {
+                       sb.append(fill);
+               }
+               sb.append(text);
+               for (int i = 0; i < (startedStringLength - l - headLength); 
++i) {
+                       sb.append(fill);
+               }
+               sb.append("#\n");
+       }
+       
+       public static void logOMStarted() {
+               StringBuilder sb = new StringBuilder("\n");
+               getLine(sb, "", '#');
+               getLine(sb, "Openmeetings is up", ' ');
+               getLine(sb, getVersion() + " " + getRevision() + " " + 
getBuildDate(), ' ');
+               getLine(sb, "and ready to use", ' ');
+               getLine(sb, "", '#');
+               log.debug(sb.toString());
+       }
+}

Modified: 
openmeetings/branches/2.1/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/2.1/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java?rev=1469673&r1=1469672&r2=1469673&view=diff
==============================================================================
--- 
openmeetings/branches/2.1/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
 (original)
+++ 
openmeetings/branches/2.1/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
 Fri Apr 19 03:36:29 2013
@@ -31,6 +31,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.openmeetings.OpenmeetingsVariables;
+import org.apache.openmeetings.Version;
 import org.apache.openmeetings.data.basic.SessiondataDao;
 import org.apache.openmeetings.data.basic.dao.ConfigurationDao;
 import org.apache.openmeetings.data.basic.dao.ServerDao;
@@ -148,13 +149,7 @@ public class ScopeApplicationAdapter ext
                        }
                        
                        ScopeApplicationAdapter.initComplete = true;
-                   log.debug("\n" + 
-                               
"\t################################################\n" +
-                               "\t#            Openmeetings is up              
  #\n" +
-                               "\t#             and ready to use               
  #\n" +
-                               
"\t################################################\n"
-                               );
-
+                   Version.logOMStarted();
                } catch (Exception err) {
                        log.error("[appStart]", err);
                }

Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/Version.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/Version.java?rev=1469673&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/Version.java 
(added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/Version.java 
Fri Apr 19 03:36:29 2013
@@ -0,0 +1,98 @@
+/*
+ * 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.
+ */
+package org.apache.openmeetings;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
+
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class Version {
+       private static final Logger log = 
Red5LoggerFactory.getLogger(Version.class, OpenmeetingsVariables.webAppRootKey);
+       private static final int startedStringLength = 48;
+       private static String version = null;
+       private static String revision = null;
+       private static String buildDate = null;
+       
+       private static Attributes getAttributes() throws MalformedURLException, 
IOException {
+               String jarUrl = 
Version.class.getResource(Version.class.getSimpleName() + ".class").toString();
+               return new Manifest(new URL(jarUrl.substring(0, 
jarUrl.indexOf('!')) + 
"!/META-INF/MANIFEST.MF").openStream()).getMainAttributes();
+       }
+       
+       public static String getVersion() {
+               if (version == null) {
+                       try {
+                               version = 
getAttributes().getValue("Product-Version");
+                       } catch (Exception e) {
+                               e.printStackTrace();
+                       }
+               }
+               return version;
+       }
+       
+       public static String getRevision() {
+               if (revision == null) {
+                       try {
+                               revision = 
getAttributes().getValue("Svn-Revision");
+                       } catch (Exception e) {
+                               e.printStackTrace();
+                       }
+               }
+               return revision;
+       }
+       
+       public static String getBuildDate() {
+               if (buildDate == null) {
+                       try {
+                               buildDate = 
getAttributes().getValue("Built-On");
+                       } catch (Exception e) {
+                               e.printStackTrace();
+                       }
+               }
+               return buildDate;
+       }
+
+       private static void getLine(StringBuilder sb, String text, char fill) {
+               sb.append('#');
+               int l = text.length();
+               int headLength = (startedStringLength - l) / 2;
+               for (int i = 0; i < headLength; ++i) {
+                       sb.append(fill);
+               }
+               sb.append(text);
+               for (int i = 0; i < (startedStringLength - l - headLength); 
++i) {
+                       sb.append(fill);
+               }
+               sb.append("#\n");
+       }
+       
+       public static void logOMStarted() {
+               StringBuilder sb = new StringBuilder("\n");
+               getLine(sb, "", '#');
+               getLine(sb, "Openmeetings is up", ' ');
+               getLine(sb, getVersion() + " " + getRevision() + " " + 
getBuildDate(), ' ');
+               getLine(sb, "and ready to use", ' ');
+               getLine(sb, "", '#');
+               log.debug(sb.toString());
+       }
+}

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java?rev=1469673&r1=1469672&r2=1469673&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
 Fri Apr 19 03:36:29 2013
@@ -32,6 +32,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.openmeetings.OpenmeetingsVariables;
+import org.apache.openmeetings.Version;
 import org.apache.openmeetings.data.basic.SessiondataDao;
 import org.apache.openmeetings.data.basic.dao.ConfigurationDao;
 import org.apache.openmeetings.data.basic.dao.ServerDao;
@@ -149,13 +150,7 @@ public class ScopeApplicationAdapter ext
                        }
                        
                        ScopeApplicationAdapter.initComplete = true;
-                   log.debug("\n" + 
-                               
"\t################################################\n" +
-                               "\t#            Openmeetings is up              
  #\n" +
-                               "\t#             and ready to use               
  #\n" +
-                               
"\t################################################\n"
-                               );
-
+                   Version.logOMStarted();
                } catch (Exception err) {
                        log.error("[appStart]", err);
                }

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/AboutDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/AboutDialog.java?rev=1469673&r1=1469672&r2=1469673&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/AboutDialog.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/AboutDialog.java
 Fri Apr 19 03:36:29 2013
@@ -18,13 +18,12 @@
  */
 package org.apache.openmeetings.web.components.user;
 
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
+import static org.apache.openmeetings.Version.getBuildDate;
+import static org.apache.openmeetings.Version.getRevision;
+import static org.apache.openmeetings.Version.getVersion;
+
 import java.util.ArrayList;
 import java.util.List;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
 
 import org.apache.openmeetings.data.basic.dao.ConfigurationDao;
 import org.apache.openmeetings.web.app.Application;
@@ -36,48 +35,6 @@ import com.googlecode.wicket.jquery.ui.w
 
 public class AboutDialog extends AbstractDialog<String> {
        private static final long serialVersionUID = 1400355222295594321L;
-       private static String version = null;
-       private static String revision = null;
-       private static String buildDate = null;
-       
-       private Attributes getAttributes() throws MalformedURLException, 
IOException {
-               String jarUrl = 
getClass().getResource(getClass().getSimpleName() + ".class").toString();
-               return new Manifest(new URL(jarUrl.substring(0, 
jarUrl.indexOf('!')) + 
"!/META-INF/MANIFEST.MF").openStream()).getMainAttributes();
-       }
-       
-       private String getVersion() {
-               if (version == null) {
-                       try {
-                               version = 
getAttributes().getValue("Product-Version");
-                       } catch (Exception e) {
-                               e.printStackTrace();
-                       }
-               }
-               return version;
-       }
-       
-       private String getRevision() {
-               if (revision == null) {
-                       try {
-                               revision = 
getAttributes().getValue("Svn-Revision");
-                       } catch (Exception e) {
-                               e.printStackTrace();
-                       }
-               }
-               return revision;
-       }
-       
-       private String getBuildDate() {
-               if (buildDate == null) {
-                       try {
-                               buildDate = 
getAttributes().getValue("Built-On");
-                       } catch (Exception e) {
-                               e.printStackTrace();
-                       }
-               }
-               return buildDate;
-       }
-       
        public AboutDialog(String id) {
                super(id, "About"); //FIXME hardcoded
                


Reply via email to