adds experimental support for SSH tunneling to the Java client.  Has not been tested with large desktop sizes yet.  CMakeLists.txt needs some rework.

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4882 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/CMakeLists.txt b/java/CMakeLists.txt
index eb391e3..d00bedb 100644
--- a/java/CMakeLists.txt
+++ b/java/CMakeLists.txt
@@ -5,7 +5,7 @@
 
 find_package(Java)
 
-set(DEFAULT_JAVACFLAGS "-source 1.5 -target 1.5 -Xlint:all,-serial,-cast")
+set(DEFAULT_JAVACFLAGS "-source 1.5 -target 1.5 -Xlint:all,-serial,-cast,-unchecked,-fallthrough,-dep-ann")
 set(JAVACFLAGS ${DEFAULT_JAVACFLAGS} CACHE STRING
   "Java compiler flags (Default: ${DEFAULT_JAVACFLAGS})")
 message(STATUS "Java compiler flags = ${JAVACFLAGS}")
@@ -27,7 +27,7 @@
   F8Menu
   OptionsDialogCallback
   PasswdDialog
-  PixelBufferImage
+  PlatformPixelBuffer
   OptionsDialog
   ServerDialog
   UserPrefs
@@ -41,17 +41,69 @@
     ${CMAKE_CURRENT_BINARY_DIR}/${CLASSPATH}/${class}.class)
 endforeach()
 
+set(JSCH_CLASSNAMES
+  DH
+  DHG1
+  DHG14
+  DHGEX
+  JSch
+  Session
+  UserAuth
+  UserAuthKeyboardInteractive
+  UserAuthPassword
+  UserAuthPublicKey
+  UserAuthNone
+  jce/AES128CBC
+  jce/AES192CTR
+  jce/ARCFOUR128
+  jce/BlowfishCBC
+  jce/HMACMD5
+  jce/KeyPairGenDSA
+  jce/Random
+  jce/SignatureRSA
+  jce/AES128CTR
+  jce/AES256CBC
+  jce/ARCFOUR256
+  jce/DH
+  jce/HMACSHA196
+  jce/KeyPairGenRSA
+  jce/SHA1
+  jce/TripleDESCBC
+  jce/AES192CBC
+  jce/AES256CTR
+  jce/ARCFOUR
+  jce/HMACMD596
+  jce/HMACSHA1
+  jce/MD5
+  jce/SignatureDSA
+  jce/TripleDESCTR
+  jcraft/Compression
+  jcraft/HMAC
+  jcraft/HMACMD596
+  jcraft/HMACMD5
+  jcraft/HMACSHA196
+  jcraft/HMACSHA1)
+set(JSCH_SRCDIR ${CMAKE_CURRENT_SOURCE_DIR}/com/jcraft/jsch)
+foreach(class ${JSCH_CLASSNAMES})
+  set(JAVA_SOURCES ${JAVA_SOURCES} ${JSCH_SRCDIR}/${class}.java)
+  set(JAVA_CLASSES_FULL ${JAVA_CLASSES_FULL}
+    ${CMAKE_CURRENT_BINARY_DIR}/com/jcraft/jsch/${class}.class)
+endforeach()
+
 file(GLOB DEPEND_SOURCES
   ${CMAKE_CURRENT_SOURCE_DIR}/com/tigervnc/rfb/*.java
   ${CMAKE_CURRENT_SOURCE_DIR}/com/tigervnc/rdr/*.java
   ${CMAKE_CURRENT_SOURCE_DIR}/com/tigervnc/network/*.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/com/jcraft/jsch/*.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/com/jcraft/jsch/jcraft/*.java
+  ${CMAKE_CURRENT_SOURCE_DIR}/com/jcraft/jsch/jgss/*.java
   ${CMAKE_CURRENT_SOURCE_DIR}/com/jcraft/jzlib/*.java)
 
 string(REGEX REPLACE " " ";" JAVACFLAGS "${JAVACFLAGS}")
 add_custom_command(OUTPUT ${JAVA_CLASSES_FULL}
   DEPENDS ${JAVA_SOURCES} ${DEPEND_SOURCES}
   COMMAND ${JAVA_COMPILE}
-  ARGS ${JAVACFLAGS} -cp ${CMAKE_CURRENT_SOURCE_DIR}
+  ARGS ${JAVACFLAGS} -sourcepath ${CMAKE_CURRENT_SOURCE_DIR}
     -d ${CMAKE_CURRENT_BINARY_DIR} ${JAVA_SOURCES})
 
 configure_file(${CLASSPATH}/timestamp.in ${CLASSPATH}/timestamp)
@@ -84,6 +136,9 @@
     com/tigervnc/rdr/*.class
     com/tigervnc/network/*.class
     com/jcraft/jzlib/*.class
+    com/jcraft/jsch/jcraft/*.class
+    com/jcraft/jsch/jce/*.class
+    com/jcraft/jsch/*.class
     com/tigervnc/vncviewer/tigervnc.png
     com/tigervnc/vncviewer/tigervnc.ico
   COMMAND ${CMAKE_COMMAND}