dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #34272
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 17600: Upgraded jetty from 6.1.25 to 9.2.5
------------------------------------------------------------
revno: 17600
committer: Bob Jolliffe <bobjolliffe@xxxxxxxxx>
branch nick: dhis2
timestamp: Wed 2014-11-26 15:44:28 +0000
message:
Upgraded jetty from 6.1.25 to 9.2.5
Simplified some code in the process.
modified:
dhis-live/pom.xml
dhis-live/src/main/java/org/hisp/dhis/TrayApp.java
dhis-live/src/main/java/org/hisp/dhis/WebAppServer.java
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-live/pom.xml'
--- dhis-live/pom.xml 2014-11-21 13:04:46 +0000
+++ dhis-live/pom.xml 2014-11-26 15:44:28 +0000
@@ -1,172 +1,188 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.hisp.dhis</groupId>
- <artifactId>dhis-live</artifactId>
- <packaging>jar</packaging>
- <version>1.0-SNAPSHOT</version>
- <name>DHIS Live</name>
-
- <url>http://maven.apache.org</url>
-
- <build>
- <finalName>dhis2-live</finalName>
- <defaultGoal>install</defaultGoal>
- <plugins>
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.hisp.dhis</groupId>
+ <artifactId>dhis-live</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>DHIS Live</name>
+
+ <url>http://maven.apache.org</url>
+
+ <properties>
+ <jettyVersion>9.2.5.v20141112</jettyVersion>
+ </properties>
+
+ <repositories>
+ <repository>
+ <id>central</id>
+ <url>http://central.maven.org/maven2</url>
+ </repository>
+ </repositories>
+
+ <build>
+ <finalName>dhis2-live</finalName>
+ <defaultGoal>install</defaultGoal>
+ <plugins>
- <!-- Maven Assembly -->
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.2</version>
- <configuration>
- <descriptorRefs>
- <descriptorRef>jar-with-dependencies</descriptorRef>
- </descriptorRefs>
- <archive>
- <manifest>
- <mainClass>org.hisp.dhis.TrayApp</mainClass>
- </manifest>
- </archive>
- </configuration>
- <executions>
- <execution>
- <id>make-assembly</id> <!-- this is used for inheritance merges -->
- <phase>package</phase> <!-- append to the packaging phase -->
- <goals>
- <goal>single</goal> <!-- goals == mojos -->
- </goals>
- </execution>
- </executions>
- </plugin>
+ <!-- Maven Assembly -->
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.2</version>
+ <configuration>
+ <descriptorRefs>
+ <descriptorRef>jar-with-dependencies</descriptorRef>
+ </descriptorRefs>
+ <archive>
+ <manifest>
+ <mainClass>org.hisp.dhis.TrayApp</mainClass>
+ </manifest>
+ </archive>
+ </configuration>
+ <executions>
+ <execution>
+ <id>make-assembly</id> <!-- this is used for inheritance merges -->
+ <phase>package</phase> <!-- append to the packaging phase -->
+ <goals>
+ <goal>single</goal> <!-- goals == mojos -->
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
- <!-- Maven Compiler -->
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.0.2</version>
- <configuration>
- <debug>true</debug>
- <source>1.7</source>
- <target>1.7</target>
- </configuration>
- </plugin>
+ <!-- Maven Compiler -->
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.0.2</version>
+ <configuration>
+ <debug>true</debug>
+ <source>1.7</source>
+ <target>1.7</target>
+ </configuration>
+ </plugin>
- <!-- Launch4J -->
- <plugin>
- <groupId>org.bluestemsoftware.open.maven.plugin</groupId>
- <artifactId>launch4j-plugin</artifactId>
- <version>1.5.0.0</version>
- <executions>
- <execution>
- <id>default</id>
- <phase>package</phase>
- <goals>
- <goal>launch4j</goal>
- </goals>
- <configuration>
- <dontWrapJar>true</dontWrapJar>
- <headerType>gui</headerType>
- <outfile>${project.build.directory}/dhis2-live.exe</outfile>
- <jar>dhis2-live.jar</jar>
- <errTitle>dhis2</errTitle>
- <priority>normal</priority>
- <downloadUrl>http://java.com/download</downloadUrl>
- <supportUrl>http://dhis2.org</supportUrl>
- <customProcName>false</customProcName>
- <stayAlive>false</stayAlive>
- <manifest></manifest>
- <icon>${basedir}/util/launch4j/favicon.ico</icon>
- <singleInstance>
- <mutexName>dhis-live.mutex</mutexName>
- <windowTitle></windowTitle>
- </singleInstance>
- <jre>
- <minVersion>1.6.0_14</minVersion>
- </jre>
- <splash>
- <file>${basedir}/util/launch4j/dhis2-splash.bmp</file>
- <waitForWindow>false</waitForWindow>
- <timeout>10</timeout>
- <timeoutErr>false</timeoutErr>
- </splash>
- </configuration>
- </execution>
- <execution>
- <id>embedded</id>
- <phase>package</phase>
- <goals>
- <goal>launch4j</goal>
- </goals>
- <configuration>
- <dontWrapJar>true</dontWrapJar>
- <headerType>gui</headerType>
- <outfile>${project.build.directory}/dhis2-live-embedded.exe</outfile>
- <jar>dhis2-live.jar</jar>
- <errTitle>dhis2</errTitle>
- <priority>normal</priority>
- <downloadUrl>http://java.com/download</downloadUrl>
- <supportUrl>http://dhis2.org</supportUrl>
- <customProcName>false</customProcName>
- <stayAlive>false</stayAlive>
- <manifest></manifest>
- <icon>${basedir}/util/launch4j/favicon.ico</icon>
- <singleInstance>
- <mutexName>dhis-live.mutex</mutexName>
- <windowTitle></windowTitle>
- </singleInstance>
- <jre>
- <path>jre6</path>
- <minVersion>1.6.0_14</minVersion>
- </jre>
- <splash>
- <file>${basedir}/util/launch4j/dhis2-splash.bmp</file>
- <waitForWindow>false</waitForWindow>
- <timeout>10</timeout>
- <timeoutErr>false</timeoutErr>
- </splash>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
+ <!-- Launch4J -->
+ <plugin>
+ <groupId>org.bluestemsoftware.open.maven.plugin</groupId>
+ <artifactId>launch4j-plugin</artifactId>
+ <version>1.5.0.0</version>
+ <executions>
+ <execution>
+ <id>default</id>
+ <phase>package</phase>
+ <goals>
+ <goal>launch4j</goal>
+ </goals>
+ <configuration>
+ <dontWrapJar>true</dontWrapJar>
+ <headerType>gui</headerType>
+ <outfile>${project.build.directory}/dhis2-live.exe</outfile>
+ <jar>dhis2-live.jar</jar>
+ <errTitle>dhis2</errTitle>
+ <priority>normal</priority>
+ <downloadUrl>http://java.com/download</downloadUrl>
+ <supportUrl>http://dhis2.org</supportUrl>
+ <customProcName>false</customProcName>
+ <stayAlive>false</stayAlive>
+ <manifest></manifest>
+ <icon>${basedir}/util/launch4j/favicon.ico</icon>
+ <singleInstance>
+ <mutexName>dhis-live.mutex</mutexName>
+ <windowTitle></windowTitle>
+ </singleInstance>
+ <jre>
+ <minVersion>1.6.0_14</minVersion>
+ </jre>
+ <splash>
+ <file>${basedir}/util/launch4j/dhis2-splash.bmp</file>
+ <waitForWindow>false</waitForWindow>
+ <timeout>10</timeout>
+ <timeoutErr>false</timeoutErr>
+ </splash>
+ </configuration>
+ </execution>
+ <execution>
+ <id>embedded</id>
+ <phase>package</phase>
+ <goals>
+ <goal>launch4j</goal>
+ </goals>
+ <configuration>
+ <dontWrapJar>true</dontWrapJar>
+ <headerType>gui</headerType>
+ <outfile>${project.build.directory}/dhis2-live-embedded.exe</outfile>
+ <jar>dhis2-live.jar</jar>
+ <errTitle>dhis2</errTitle>
+ <priority>normal</priority>
+ <downloadUrl>http://java.com/download</downloadUrl>
+ <supportUrl>http://dhis2.org</supportUrl>
+ <customProcName>false</customProcName>
+ <stayAlive>false</stayAlive>
+ <manifest></manifest>
+ <icon>${basedir}/util/launch4j/favicon.ico</icon>
+ <singleInstance>
+ <mutexName>dhis-live.mutex</mutexName>
+ <windowTitle></windowTitle>
+ </singleInstance>
+ <jre>
+ <path>jre6</path>
+ <minVersion>1.6.0_14</minVersion>
+ </jre>
+ <splash>
+ <file>${basedir}/util/launch4j/dhis2-splash.bmp</file>
+ <waitForWindow>false</waitForWindow>
+ <timeout>10</timeout>
+ <timeoutErr>false</timeoutErr>
+ </splash>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
- <dependencies>
- <dependency>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty</artifactId>
- <version>6.1.25</version>
- <type>jar</type>
- </dependency>
- <dependency>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty-util</artifactId>
- <version>6.1.26</version>
- <type>jar</type>
- </dependency>
- <dependency>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>servlet-api</artifactId>
- <version>3.0.20100224</version>
- <type>jar</type>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.1</version>
- <scope>compile</scope>
- <exclusions>
- <exclusion>
- <groupId>avalon-framework</groupId>
- <artifactId>avalon-framework</artifactId>
- </exclusion>
- <exclusion>
- <groupId>logkit</groupId>
- <artifactId>logkit</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- </dependencies>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>${jettyVersion}</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-webapp</artifactId>
+ <version>${jettyVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>${jettyVersion}</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>3.0.20100224</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.1</version>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>avalon-framework</groupId>
+ <artifactId>avalon-framework</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>logkit</groupId>
+ <artifactId>logkit</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
</project>
=== modified file 'dhis-live/src/main/java/org/hisp/dhis/TrayApp.java'
--- dhis-live/src/main/java/org/hisp/dhis/TrayApp.java 2010-12-06 10:21:18 +0000
+++ dhis-live/src/main/java/org/hisp/dhis/TrayApp.java 2014-11-26 15:44:28 +0000
@@ -24,7 +24,6 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
package org.hisp.dhis;
import java.awt.AWTException;
@@ -45,15 +44,15 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.mortbay.component.LifeCycle;
+import org.eclipse.jetty.util.component.LifeCycle;
/**
* @author Bob Jolliffe
*/
public class TrayApp
- implements LifeCycle.Listener
-{
- private static final Log log = LogFactory.getLog( TrayApp.class );
+ implements LifeCycle.Listener {
+
+ private static final Log log = LogFactory.getLog(TrayApp.class);
private static final String CONFIG_DIR = "/conf";
private static final String STOPPED_ICON = "/icons/stopped.png";
@@ -62,8 +61,8 @@
private static final String RUNNING_ICON = "/icons/running.png";
private static final String CMD_OPEN = "Open DHIS 2 Live";
private static final String CMD_EXIT = "Exit";
-
- private WebAppServer appServer;
+
+ private final WebAppServer appServer;
private TrayIcon trayIcon;
@@ -72,199 +71,177 @@
// -------------------------------------------------------------------------
// Main method
// -------------------------------------------------------------------------
-
- public static void main( String[] args )
- throws Exception
- {
- log.info( "Environment variable DHIS2_HOME: " + System.getenv( "DHIS2_HOME" ) );
- if ( !SystemTray.isSupported() )
- {
+ public static void main(String[] args)
+ throws Exception {
+ log.info("Environment variable DHIS2_HOME: " + System.getenv("DHIS2_HOME"));
+ if (!SystemTray.isSupported()) {
String message = "SystemTray not supported on this platform";
- JOptionPane.showMessageDialog( (JFrame) null, message );
- System.exit( 0 );
+ JOptionPane.showMessageDialog((JFrame) null, message);
+ System.exit(0);
}
- new TrayApp();
+ TrayApp trayApp = new TrayApp();
+ trayApp.start();
}
// -------------------------------------------------------------------------
// Constructor
// -------------------------------------------------------------------------
-
public TrayApp()
- throws Exception
- {
- log.info( "Initialising DHIS 2 Live..." );
-
+ throws Exception {
+ log.info("Initialising DHIS 2 Live...");
+
installDir = getInstallDir();
- if ( installDir == null )
- {
- log.info( "jar not installed, setting installdir to DHIS2_HOME: " + System.getenv( "DHIS2_HOME" ) );
- installDir = System.getenv( "DHIS2_HOME" );
+ if (installDir == null) {
+ log.info("jar not installed, setting installdir to DHIS2_HOME: " + System.getenv("DHIS2_HOME"));
+ installDir = System.getenv("DHIS2_HOME");
}
- System.setProperty( "dhis2.home", installDir + CONFIG_DIR );
- System.setProperty( "jetty.home", installDir );
+ System.setProperty("dhis2.home", installDir + CONFIG_DIR);
+ System.setProperty("jetty.home", installDir);
SystemTray tray = SystemTray.getSystemTray();
- Image image = createImage( STOPPED_ICON, "tray icon" );
+ Image image = createImage(STOPPED_ICON, "tray icon");
PopupMenu popup = new PopupMenu();
- MenuItem openItem = new MenuItem( CMD_OPEN );
- MenuItem exitItem = new MenuItem( CMD_EXIT );
- popup.add( openItem );
- popup.add( exitItem );
-
- trayIcon = new TrayIcon( image, "DHIS 2 Live", popup );
- trayIcon.setImageAutoSize( true );
-
- ActionListener listener = new ActionListener()
- {
- public void actionPerformed( ActionEvent e )
- {
+ MenuItem openItem = new MenuItem(CMD_OPEN);
+ MenuItem exitItem = new MenuItem(CMD_EXIT);
+ popup.add(openItem);
+ popup.add(exitItem);
+
+ trayIcon = new TrayIcon(image, "DHIS 2 Live", popup);
+ trayIcon.setImageAutoSize(true);
+
+ ActionListener listener = new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
- if ( cmd.equals( CMD_OPEN ) )
- {
- launchBrowser();
- }
- else if ( cmd.equals( CMD_EXIT ) )
- {
- shutdown();
- }
- };
+ switch (cmd) {
+ case CMD_OPEN:
+ launchBrowser();
+ break;
+ case CMD_EXIT:
+ shutdown();
+ break;
+ }
+ }
+ ;
};
- openItem.addActionListener( listener );
- exitItem.addActionListener( listener );
-
- try
- {
- tray.add( trayIcon );
- }
- catch ( AWTException ex )
- {
- log.warn( "Oops: " + ex.toString() );
- }
-
- appServer = new WebAppServer();
- appServer.init( installDir, this );
-
+ openItem.addActionListener(listener);
+ exitItem.addActionListener(listener);
+
+ try {
+ tray.add(trayIcon);
+ } catch (AWTException ex) {
+ log.warn("Oops: " + ex.toString());
+ }
+
+ appServer = new WebAppServer(installDir, this);
+
+ }
+
+ public void start() {
appServer.start();
-
}
// -------------------------------------------------------------------------
// Listener implementation
// -------------------------------------------------------------------------
-
- public void lifeCycleFailure( LifeCycle arg0, Throwable arg1 )
- {
- log.warn( "Lifecycle: server failed" );
- trayIcon.setImage( createImage( FAILED_ICON, "Running icon" ) );
+ @Override
+ public void lifeCycleFailure(LifeCycle arg0, Throwable arg1) {
+ log.warn("Lifecycle: server failed");
+ trayIcon.setImage(createImage(FAILED_ICON, "Running icon"));
String message = "Web server failed to start - see logs for details";
- JOptionPane.showMessageDialog( (JFrame) null, message );
+ JOptionPane.showMessageDialog((JFrame) null, message);
shutdown();
}
- public void lifeCycleStarted( LifeCycle arg0 )
- {
- log.info( "Lifecycle: server started" );
- trayIcon.displayMessage( "Started", "DHIS 2 is running. Your browser will\n be pointed to " + getUrl() + ".",
- TrayIcon.MessageType.INFO );
- trayIcon.setToolTip( "DHIS 2 Server running" );
- trayIcon.setImage( createImage( RUNNING_ICON, "Running icon" ) );
-
+ @Override
+ public void lifeCycleStarted(LifeCycle arg0) {
+ log.info("Lifecycle: server started");
+ trayIcon.displayMessage("Started", "DHIS 2 is running. Your browser will\n be pointed to " + getUrl() + ".",
+ TrayIcon.MessageType.INFO);
+ trayIcon.setToolTip("DHIS 2 Server running");
+ trayIcon.setImage(createImage(RUNNING_ICON, "Running icon"));
+
launchBrowser();
}
- public void lifeCycleStarting( LifeCycle arg0 )
- {
- log.info( "Lifecycle: server starting" );
- trayIcon.displayMessage( "Starting", "DHIS 2 is starting.\nPlease be patient.", TrayIcon.MessageType.INFO );
- trayIcon.setImage( createImage( STARTING_ICON, "Starting icon" ) );
- }
-
- public void lifeCycleStopped( LifeCycle arg0 )
- {
- log.info( "Lifecycle: server stopped" );
- trayIcon.displayMessage( "Stopped", "DHIS 2 has stopped.", TrayIcon.MessageType.INFO );
- trayIcon.setImage( createImage( STOPPED_ICON, "Running icon" ) );
- }
-
- public void lifeCycleStopping( LifeCycle arg0 )
- {
- log.info( "Lifecycle: server stopping" );
+ @Override
+ public void lifeCycleStarting(LifeCycle arg0) {
+ log.info("Lifecycle: server starting");
+ trayIcon.displayMessage("Starting", "DHIS 2 is starting.\nPlease be patient.", TrayIcon.MessageType.INFO);
+ trayIcon.setImage(createImage(STARTING_ICON, "Starting icon"));
+ }
+
+ @Override
+ public void lifeCycleStopped(LifeCycle arg0) {
+ log.info("Lifecycle: server stopped");
+ trayIcon.displayMessage("Stopped", "DHIS 2 has stopped.", TrayIcon.MessageType.INFO);
+ trayIcon.setImage(createImage(STOPPED_ICON, "Running icon"));
+ }
+
+ @Override
+ public void lifeCycleStopping(LifeCycle arg0) {
+ log.info("Lifecycle: server stopping");
}
// -------------------------------------------------------------------------
// Supportive methods
// -------------------------------------------------------------------------
-
/**
* Returns the URL where the application can be accessed.
- *
+ *
* @return the URL where the application can be accessed.
*/
- private String getUrl()
- {
- return "http://localhost:" + appServer.getConnectorPort();
+ private String getUrl() {
+ return appServer.getURI().toString();
}
-
+
/**
* Launches the application in the default browser.
*/
- private void launchBrowser()
- {
- try
- {
- Desktop.getDesktop().browse( URI.create( getUrl() ) );
- }
- catch ( Exception ex )
- {
- log.warn( "Couldn't open default desktop browser: " + ex );
+ private void launchBrowser() {
+ try {
+ Desktop.getDesktop().browse(URI.create(getUrl()));
+ } catch (Exception ex) {
+ log.warn("Couldn't open default desktop browser: " + ex);
}
}
-
+
/**
* Shuts down the web application server.
*/
- private void shutdown()
- {
- log.info( "Graceful shutdown..." );
- try
- {
+ private void shutdown() {
+ log.info("Graceful shutdown...");
+ try {
appServer.shutdown();
- }
- catch ( Exception ex )
- {
- log.warn( "Oops: " + ex.toString() );
- }
- log.info( "Exiting..." );
- System.exit( 0 );
+ } catch (Exception ex) {
+ log.warn("Oops: " + ex.toString());
+ }
+ log.info("Exiting...");
+ System.exit(0);
}
/**
* Creates an image based on the given path and description.
- *
+ *
* @param path the image path.
* @param description the image description.
* @return an Image.
*/
- private static Image createImage( String path, String description )
- {
- URL imageURL = TrayApp.class.getResource( path );
+ private static Image createImage(String path, String description) {
+ URL imageURL = TrayApp.class.getResource(path);
- if ( imageURL == null )
- {
- log.warn( "Resource not found: " + path );
+ if (imageURL == null) {
+ log.warn("Resource not found: " + path);
return null;
- }
- else
- {
- return (new ImageIcon( imageURL, description )).getImage();
+ } else {
+ return (new ImageIcon(imageURL, description)).getImage();
}
}
@@ -273,25 +250,24 @@
* directory the DHIS 2 Live package is installed in. It does this by
* finding the file URL of a resource within the executable jar and
* extracting the installation path from that.
- *
- * @return a <code>String</code> value representing the installation directory
+ *
+ * @return a <code>String</code> value representing the installation
+ * directory
*/
- private static String getInstallDir()
- {
+ private static String getInstallDir() {
// find a resource
- String resourceString = TrayApp.class.getResource( "/icons/" ).toString();
+ String resourceString = TrayApp.class.getResource("/icons/").toString();
// we expect to see something of the form:
// "jar:file:<install_dir>/dhis_xxx.jar!/icons"
- if ( !resourceString.startsWith( "jar:file:" ) )
- {
+ if (!resourceString.startsWith("jar:file:")) {
// we're in trouble - its not in a jar file
return null;
}
// find the last "/" just before the "!"
- int endIndex = resourceString.lastIndexOf( "/", resourceString.lastIndexOf( "!" ) );
- String result = resourceString.substring( 9, endIndex );
+ int endIndex = resourceString.lastIndexOf("/", resourceString.lastIndexOf("!"));
+ String result = resourceString.substring(9, endIndex);
// replace encoded spaces
- result = result.replaceAll( "%20", " " );
+ result = result.replaceAll("%20", " ");
return result;
}
}
=== modified file 'dhis-live/src/main/java/org/hisp/dhis/WebAppServer.java'
--- dhis-live/src/main/java/org/hisp/dhis/WebAppServer.java 2010-12-06 10:21:18 +0000
+++ dhis-live/src/main/java/org/hisp/dhis/WebAppServer.java 2014-11-26 15:44:28 +0000
@@ -24,116 +24,85 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
/**
*
* @author Bob Jolliffe
* @version $$Id$$
*/
-
package org.hisp.dhis;
-import java.io.BufferedReader;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.Reader;
+import java.io.File;
+import java.net.URI;
+import java.util.Scanner;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.mortbay.component.LifeCycle;
-import org.mortbay.jetty.Connector;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.nio.SelectChannelConnector;
-import org.mortbay.jetty.webapp.WebAppContext;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.util.component.LifeCycle;
+import org.eclipse.jetty.webapp.WebAppContext;
/**
* @author Bob Jolliffe
*/
-public class WebAppServer extends Thread
-{
+public class WebAppServer extends Thread {
+
public static final String DHIS_DIR = "/webapps/dhis";
public static final String JETTY_PORT_CONF = "/conf/jetty.port";
public static final int DEFAULT_JETTY_PORT = 8080;
- private static final Log log = LogFactory.getLog( WebAppServer.class );
+ public static int MAX_FORM_CONTENT_SIZE = 5000000;
+
+ private static final Log log = LogFactory.getLog(WebAppServer.class);
protected Server server;
- protected Connector connector;
-
- public WebAppServer()
- {
- server = new Server();
- connector = new SelectChannelConnector();
- }
-
- public void init( String installDir, LifeCycle.Listener serverListener )
- throws Exception
- {
- try
- {
- int portFromConfig = this.getPortFromConfig( installDir + JETTY_PORT_CONF );
- connector.setPort( portFromConfig );
- log.info( "Loading DHIS 2 on port: " + portFromConfig );
- }
- catch ( Exception ex )
- {
- log.info( "Couldn't load port number from " + installDir + JETTY_PORT_CONF );
- connector.setPort( DEFAULT_JETTY_PORT );
- log.info( "Loading DHIS 2 on port: " + DEFAULT_JETTY_PORT );
- }
-
- server.setConnectors( new Connector[] { connector } );
- server.addLifeCycleListener( serverListener );
-
- loadDHISContext(installDir+DHIS_DIR);
- }
-
- public void loadDHISContext(String webappPath)
- {
+ public WebAppServer(String installDir, LifeCycle.Listener serverListener)
+ throws Exception {
+
+ int port;
+ try {
+ Scanner scanner = new Scanner(new File(installDir + JETTY_PORT_CONF));
+ port = scanner.nextInt();
+ log.info("Loading DHIS 2 on port: " + port);
+ } catch (Exception ex) {
+ log.info("Couldn't load port number from " + installDir + JETTY_PORT_CONF);
+ port = DEFAULT_JETTY_PORT;
+ log.info("Loading DHIS 2 on port: " + DEFAULT_JETTY_PORT);
+ }
+
+ server = new Server(port);
+ server.addLifeCycleListener(serverListener);
+ loadDHISContext(installDir + DHIS_DIR);
+ }
+
+ private void loadDHISContext(String webappPath) {
WebAppContext dhisWebApp = new WebAppContext();
- dhisWebApp.setMaxFormContentSize( 5000000 );
- dhisWebApp.setWar( webappPath );
- log.info( "Setting DHIS 2 web app context to: " + webappPath );
+ dhisWebApp.setMaxFormContentSize(MAX_FORM_CONTENT_SIZE);
+ dhisWebApp.setWar(webappPath);
+ log.info("Setting DHIS 2 web app context to: " + webappPath);
- server.setHandler( dhisWebApp );
+ server.setHandler(dhisWebApp);
}
- public void run()
- {
- try
- {
+ @Override
+ public void run() {
+ try {
log.debug("Server thread starting");
server.start();
log.debug("Server thread exiting");
- } catch ( Exception ex )
- {
- log.error( "Server wouldn't start : " + ex);
+ } catch (Exception ex) {
+ log.error("Server wouldn't start : " + ex);
}
}
public void shutdown()
- throws Exception
- {
+ throws Exception {
server.stop();
}
- public int getConnectorPort()
- {
- return connector.getPort();
- }
-
- private int getPortFromConfig( String conf )
- throws FileNotFoundException, IOException
- {
- Reader r = new BufferedReader( new FileReader( conf ) );
- char[] cbuf = new char[10];
- r.read( cbuf );
- String numstr = String.copyValueOf( cbuf );
- Integer port = Integer.valueOf( numstr.trim() );
- return port.intValue();
+ public URI getURI() {
+ return server.getURI();
}
}