Index: /trunk/Config.kmk
===================================================================
--- /trunk/Config.kmk	(revision 30879)
+++ /trunk/Config.kmk	(revision 30880)
@@ -4328,8 +4328,9 @@
 ifeq ($(KBUILD_TARGET), darwin)
  VBOX_JAVA_HOME = /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0
- VBOX_JAVAC = $(VBOX_JAVA_HOME)/Commands/javac
- VBOX_JAVAH = $(VBOX_JAVA_HOME)/Commands/javah
- VBOX_JAR   = $(VBOX_JAVA_HOME)/Commands/jar
- VBOX_JAVA_INC = $(VBOX_JAVA_HOME)/Headers
+ VBOX_JAVAC     = $(VBOX_JAVA_HOME)/Commands/javac
+ VBOX_JAVAH     = $(VBOX_JAVA_HOME)/Commands/javah
+ VBOX_JAR       = $(VBOX_JAVA_HOME)/Commands/jar
+ VBOX_WSIMPORT  = $(VBOX_JAVA_HOME)/Commands/wsimport
+ VBOX_JAVA_INC  = $(VBOX_JAVA_HOME)/Headers
 
 else
@@ -4348,11 +4349,12 @@
 endif
 
- VBOX_JAVAC = $(VBOX_JAVA_HOME)/bin/javac
- VBOX_JAVAH = $(VBOX_JAVA_HOME)/bin/javah
- VBOX_JAR   = $(VBOX_JAVA_HOME)/bin/jar
+ VBOX_JAVAC     = $(VBOX_JAVA_HOME)/bin/javac
+ VBOX_JAVAH     = $(VBOX_JAVA_HOME)/bin/javah
+ VBOX_JAR       = $(VBOX_JAVA_HOME)/bin/jar
+ VBOX_WSIMPORT  = $(VBOX_JAVA_HOME)/bin/wsimport
  # correct for targets we care about
  VBOX_MD_OS = $(KBUILD_TARGET)
- VBOX_JAVA_INC = $(VBOX_JAVA_HOME)/include               \
-                $(VBOX_JAVA_HOME)/include/$(VBOX_MD_OS)
+ VBOX_JAVA_INC  = $(VBOX_JAVA_HOME)/include               \
+                  $(VBOX_JAVA_HOME)/include/$(VBOX_MD_OS)
 endif
 
Index: /trunk/src/VBox/Main/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Main/Makefile.kmk	(revision 30879)
+++ /trunk/src/VBox/Main/Makefile.kmk	(revision 30880)
@@ -874,5 +874,5 @@
                 $(VBOX_FILESPLIT)    \
 		| $(VBOX_JMSCOM_GEN)/java/
-	$(call MSG_L1,Generating Java glue files from XIDL)
+	$(call MSG_L1,Generating Java MSCOM glue files from XIDL)
 	$(QUIET)$(RM) -f $(wildcard $(VBOX_JMSCOM_GEN)/java/*.java)
 	$(QUIET)$(VBOX_XSLTPROC) \
Index: /trunk/src/VBox/Main/glue/tests/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Main/glue/tests/Makefile.kmk	(revision 30879)
+++ /trunk/src/VBox/Main/glue/tests/Makefile.kmk	(revision 30880)
@@ -38,4 +38,6 @@
 endif
 
+VBOX_JAR_WS=$(VBOX_SDK)bindings/webservice/java/jax-ws/vboxjws.jar
+
 JAVA_ARGS += -Dvbox.home=$(VBOX_BIN)
 CLASSPATH  := $(CLASSPATH)$(VBOX_JAR)$(SEP).
@@ -47,2 +49,6 @@
 	java $(JAVA_ARGS) -cp $(CLASSPATH)  TestVBox
 
+
+testws:
+	javac -cp $(VBOX_JAR_WS) TestVBox.java
+	java $(JAVA_ARGS) -cp $(VBOX_JAR_WS) TestVBox -w -url http://localhost:18083
Index: /trunk/src/VBox/Main/glue/tests/TestVBox.java
===================================================================
--- /trunk/src/VBox/Main/glue/tests/TestVBox.java	(revision 30879)
+++ /trunk/src/VBox/Main/glue/tests/TestVBox.java	(revision 30880)
@@ -107,5 +107,29 @@
         VirtualBoxManager mgr = VirtualBoxManager.getInstance(null);
 
-        System.out.println("\n--> initialized\n");
+        boolean ws = false;
+        String  url = null;
+        String  user = null;
+        String  passwd = null;
+
+        for (int i = 0; i<args.length; i++)
+        {
+            if ("-w".equals(args[i]))
+                ws = true;
+            else if ("-url".equals(args[i]))
+                url = args[++i];
+            else if ("-user".equals(args[i]))
+                user = args[++i];
+            else if ("-passwd".equals(args[i]))
+                passwd = args[++i];
+        }
+
+        if (ws)
+        {
+            try {
+                mgr.connect(url, user, passwd);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
 
         try
@@ -125,7 +149,15 @@
         }
 
+        if (ws)
+        {
+            try {
+                mgr.disconnect();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+
         mgr.cleanup();
 
-        System.out.println("\n--< done\n");
     }
 
Index: /trunk/src/VBox/Main/webservice/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Main/webservice/Makefile.kmk	(revision 30879)
+++ /trunk/src/VBox/Main/webservice/Makefile.kmk	(revision 30880)
@@ -287,4 +287,64 @@
  endif # !VBOX_ONLY_SDK
 
+ifdef VBOX_WITH_JWS
+INSTALLS += VBoxJWs-inst-jar
+
+#
+# Java glue JAR files
+#
+VBOX_JWS_JAR     = $(VBoxJWs-inst-jar_0_OUTDIR)/vboxjws.jar
+VBOX_JWS_TARGET := $(PATH_TARGET)/vboxjws-gen
+VBOX_JWS_GEN     = $(VBOX_JWS_TARGET)/jwsgen
+VBOX_JWS_JDEST  := $(VBOX_JWS_TARGET)/jdest
+VBOX_GLUE_XSLT_DIR := $(PATH_ROOT)/src/VBox/Main/glue
+VBOX_JAXLIB_DIR    := $(PATH_ROOT)/src/VBox/Main/webservice/jaxlibs
+
+VBoxJWs-inst-jar_INST = $(INST_SDK)bindings/webservice/java/jax-ws/vboxjws.jar
+VBoxJWs-inst-jar_SOURCES = \
+	$(VBOX_JWS_JAR)
+VBoxJWs-inst-jar_CLEAN = \
+	$(VBOX_JWS_JAR) \
+	$(VBOX_JWS_GEN)/jwsglue.list \
+	$(wildcard \
+		$(VBOX_JWS_GEN)/java/*.java \
+	        $(VBOX_JWS_GEN)/java/jws/*/*/*.java \
+		$(VBOX_JWS_JDEST)/*.class \
+		$(VBOX_JWS_JDEST)/*/*.class \
+		$(VBOX_JWS_JDEST)/*/*/*.class \
+		$(VBOX_JWS_JDEST)/*/*/*/*.class \
+	)
+VBoxJWs-inst-jar_BLDDIRS += $(VBOX_JWS_GEN)/java $(VBOX_JWS_GEN)/java/jws
+
+$(VBOX_JWS_GEN)/jwsglue.list:  \
+		$(VBOX_XIDL_FILE)    \
+                $(VBOX_GLUE_XSLT_DIR)/glue-java.xsl \
+                $(VBOX_FILESPLIT)    \
+	        | $(VBOX_JWS_GEN)/java/jws/
+	$(call MSG_L1,Generating JAX-WS Java glue files from XIDL)
+	$(RM) -f $(VBOX_JWS_GEN)/java/*.java
+	$(QUIET)$(VBOX_XSLTPROC) \
+              --stringparam G_vboxApiSuffix $(VBOX_API_SUFFIX) \
+              --stringparam G_vboxGlueStyle jaxws              \
+              -o $(VBOX_JWS_GEN)/java/merged.file $(VBOX_GLUE_XSLT_DIR)/glue-java.xsl $<
+	$(QUIET)$(VBOX_FILESPLIT) $(VBOX_JWS_GEN)/java/merged.file $(VBOX_JWS_GEN)/java
+	$(call MSG_GENERATE,,$@,JAX-WS for Java 1.6 bindings using $(VBOXWEBSERVICE_WSDL))
+	$(VBOX_WSIMPORT) -Xnocompile -p $(VBOX_JAVA_PACKAGE) -d $(VBOX_JWS_GEN)/java/jws $(VBOXWEBSERVICE_WSDL)
+	$(QUIET)echo $(VBOX_JWS_GEN)/java/*.java > $@
+	$(QUIET)echo $(VBOX_JWS_GEN)/java/jws/*/*/*.java >> $@
+
+$$(VBOX_JWS_JAR): $(VBOX_JWS_GEN)/jwsglue.list $(VBOXWEB_WSDL) $(VBOXWEBSERVICE_WSDL) | $$(dir $$@)
+	$(call MSG_TOOL,javac,$(notdir $@),jwsgen.list,)
+	$(QUIET)$(RM) -Rf $(VBOX_JWS_JDEST)
+	$(QUIET)$(MKDIR) -p $(VBOX_JWS_JDEST)
+	$(call MSG_L1,Compiling bridge code)
+	$(VBOX_JAVAC) $(VBOX_JAVAC_OPTS) \
+                @$(VBOX_JWS_GEN)/jwsglue.list \
+		-d $(VBOX_JWS_JDEST) -classpath $(VBOX_JWS_JDEST)
+	$(QUIET)$(SED) -e "s/vboxweb.wsdl/vboxweb$(VBOX_API_SUFFIX).wsdl/" <  $(VBOXWEBSERVICE_WSDL) > $(VBOX_JWS_JDEST)/vboxwebService$(VBOX_API_SUFFIX).wsdl
+	$(QUIET)$(CP) -f $(VBOXWEB_WSDL) $(VBOX_JWS_JDEST)/vboxweb$(VBOX_API_SUFFIX).wsdl
+	$(call MSG_LINK,$(notdir $@),$@)
+	$(VBOX_JAR) cf $@ -C $(VBOX_JWS_JDEST) .
+
+endif # VBOX_WITH_JWS
 
  ifndef VBOX_ONLY_SDK
@@ -386,5 +446,4 @@
   $(error Failed to autodetect VBOX_WSIMPORT16, please set it manually)
  endif
- VBOX_JAR                      = jar
 
  VBOXWEB_OTHERS               += \
Index: /trunk/src/libs/xpcom18a4/java/Makefile.kmk
===================================================================
--- /trunk/src/libs/xpcom18a4/java/Makefile.kmk	(revision 30879)
+++ /trunk/src/libs/xpcom18a4/java/Makefile.kmk	(revision 30880)
@@ -203,5 +203,5 @@
 		$(VBOX_XPIDL) \
 		| $(VBOX_JXPCOM_GEN)/java/
-	$(call MSG_L1,Generating Java interface files from IDL)
+	$(call MSG_L1,Generating XPCOM Java interface files from IDL)
 	$(QUIET)$(RM) -f $(filter-out %/XPCOMError.java, $(wildcard $(VBOX_JXPCOM_GEN)/java/*.java))
 	$(foreach idl, $(VBOX_PATH_SDK)/bindings/xpcom/idl/VirtualBox_XPCOM.idl $(addprefix $(VBOX_PATH_XPCOM_SRC)/,$(XPCOM_IDLFILES))\
