Thermostat/DevelopmentSetupWindows

From IcedTea

Jump to: navigation, search

Contents

1 Building Thermostat on Windows 10

This will build thermostat, but (as of early December 2016), only "thermostat setup", "thermostat web-storage", "thermostat agent" and "thermostat gui" are functional (with many caveats).

Note: Ensure no install or development directories have spaces in them; for example, some installers will try to install into c:\Program Files. Don't let them.

The JVM enumeration routines rely on the value of the TMP environment value. This works properly by default if a JVM has been started from vanilla Windows, but will not find JVMs started under CygWin64. The TMP variable in CygWin64 must be set to (Windows home directory)/AppData/Local/Temp for a JVM to be enumerated properly. (more precisely, the value of TMP must match between the JVM and the Thermostat Agent process for that JVM to appear within Thermostat)

1.1 A warning about security

The current implementation on Windows uses TCP sockets for interprocess communication. These sockets are unencrypted and insecure. You should assume any process can attach to them and any process can read any data that passes over them.

1.2 Prepare the environment

Install these programs in Windows:

  • Maven
  • OpenJDK 1.8
  • CygWin64

Within Cygwin64, install these packages:

  • mercurial
  • make
  • automake
  • mingw64-x86_64-gcc-g++


Ensure that JAVA_HOME is set.
Ensure that the JDK and Maven bin directories appear in your Windows path.
Ensure that SysWOW64 directory is in your path (in most installations this is C:\Windows\SysWOW64; test by trying to run 'tasklist')

1.3 Build

Start up a Cygwin64 shell:

   hg clone http://icedtea.classpath.org/hg/thermostat thermostat
   cd thermostat
   mvn -Dmaven.test.skip=true clean install


1.4 Run

Install mongodb server (version 3.2.X or higher) and ensure the bin directory appears in your Windows path.

From Windows shells (three processes must be spawned, recommended in separate shells)

   (thermostat)\distribution\target\image\bin\thermostat web-storage
   (thermostat)\distribution\target\image\bin\thermostat agent
   (thermostat)\distribution\target\image\bin\thermostat gui

under cygwin64 (three processes must be spawned, recommended in separate shells)

   (thermostat)/distribution/target/image/bin/thermostat web-storage
   (thermostat)/distribution/target/image/bin/thermostat agent
   (thermostat)/distribution/target/image/bin/thermostat gui
Personal tools