View Javadoc

1   /*
2    * $Id: ServerStartupSplashScreen.java 19191 2010-08-25 21:05:23Z tcarlson $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.util;
12  
13  import org.mule.api.MuleContext;
14  import org.mule.api.agent.Agent;
15  import org.mule.config.MuleManifest;
16  import org.mule.config.StartupContext;
17  import org.mule.config.i18n.CoreMessages;
18  
19  import java.net.InetAddress;
20  import java.net.UnknownHostException;
21  import java.util.Collection;
22  import java.util.Iterator;
23  import java.util.Map;
24  import java.util.jar.Manifest;
25  
26  public class ServerStartupSplashScreen extends SplashScreen
27  {
28      protected void doHeader(MuleContext context)
29      {
30          String notset = CoreMessages.notSet().getMessage();
31  
32          // Mule Version, Timestamp, and Server ID
33          Manifest mf = MuleManifest.getManifest();
34          Map att = mf.getMainAttributes();
35          if (att.values().size() > 0)
36          {
37              header.add(StringUtils.defaultString(MuleManifest.getProductDescription(), notset));
38              header.add(CoreMessages.version().getMessage() + " Build: "
39                      + StringUtils.defaultString(MuleManifest.getBuildNumber(), notset));
40  
41              header.add(StringUtils.defaultString(MuleManifest.getVendorName(), notset));
42              header.add(StringUtils.defaultString(MuleManifest.getProductMoreInfo(), notset));
43          }
44          else
45          {
46              header.add(CoreMessages.versionNotSet().getMessage());
47          }
48          header.add(" ");
49          if (context.getStartDate() > 0)
50          {
51              header.add(CoreMessages.serverStartedAt(context.getStartDate()).getMessage());
52          }
53          header.add("Server ID: " + context.getConfiguration().getId());
54  
55          // JDK, Encoding, OS, and Host
56          header.add("JDK: " + System.getProperty("java.version") + " (" 
57              + System.getProperty("java.vm.info") + ")");
58          header.add("OS encoding: " + System.getProperty("file.encoding")
59                  + ", Mule encoding: " + context.getConfiguration().getDefaultEncoding());
60          String patch = System.getProperty("sun.os.patch.level", null);
61          header.add("OS: " + System.getProperty("os.name")
62                  + (patch != null && !"unknown".equalsIgnoreCase(patch) ? " - " + patch : "") + " ("
63                  + System.getProperty("os.version") + ", " + System.getProperty("os.arch") + ")");
64          try
65          {
66              InetAddress host = InetAddress.getLocalHost();
67              header.add("Host: " + host.getHostName() + " (" + host.getHostAddress() + ")");
68          }
69          catch (UnknownHostException e)
70          {
71              // ignore
72          }
73  
74          // Dev/Production mode
75          final boolean productionMode = StartupContext.get().getStartupOptions().containsKey("production");
76          header.add("Mode: " + (productionMode ? "Production" : "Development"));
77  
78          header.add(" ");
79      }
80     
81      protected void doFooter(MuleContext context)
82      {
83          // Mule Agents
84          if (!body.isEmpty())
85          {
86              footer.add(" ");
87          }
88          //List agents
89          Collection agents = context.getRegistry().lookupObjects(Agent.class);
90          if (agents.size() == 0)
91          {
92              footer.add(CoreMessages.agentsRunning().getMessage() + " "
93                      + CoreMessages.none().getMessage());
94          }
95          else
96          {
97              footer.add(CoreMessages.agentsRunning().getMessage());
98              Agent agent;
99              for (Iterator iterator = agents.iterator(); iterator.hasNext();)
100             {
101                 agent = (Agent) iterator.next();
102                 footer.add("  " + agent.getDescription());
103             }
104         }
105     }    
106 }