8013021: Rebase 8005432 & 8003542 against the latest jdk8/jaxws

8003542: Improve processing of MTOM attachments
8005432: Update access to JAX-WS

Reviewed-by: mullan
This commit is contained in:
Miroslav Kos 2013-06-12 14:47:09 +01:00
parent 064e98a35c
commit 55c80a7954
83 changed files with 1159 additions and 793 deletions
jaxws/src/share/jaxws_classes
com
oracle
webservices/internal
xmlns/internal/webservices/jaxws_databinding
sun
tools/internal
xml/internal
javax/xml/soap

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -30,7 +30,7 @@ import java.util.Map;
import javax.xml.ws.WebServiceFeature;
public class DatabindingModeFeature extends WebServiceFeature {
public class DatabindingModeFeature extends WebServiceFeature implements com.sun.xml.internal.ws.api.ServiceSharedFeatureMarker {
/**
* Constant value identifying the DatabindingFeature
*/

@ -52,6 +52,7 @@ public class ExternalMetadataFeature extends WebServiceFeature {
private List<String> resourceNames;
private List<File> files;
private MetadataReader reader;
private ExternalMetadataFeature() {
}
@ -88,6 +89,7 @@ public class ExternalMetadataFeature extends WebServiceFeature {
}
public MetadataReader getMetadataReader(ClassLoader classLoader, boolean disableSecureXmlProcessing) {
if (reader != null && enabled) return reader;
return enabled ? new ExternalMetadataReader(files, resourceNames, classLoader, true, disableSecureXmlProcessing) : null;
}
@ -153,5 +155,9 @@ public class ExternalMetadataFeature extends WebServiceFeature {
return this;
}
public Builder setReader( MetadataReader r ) {
o.reader = r;
return this;
}
}
}

@ -22,6 +22,7 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.oracle.webservices.internal.api.message;
import com.sun.istack.internal.NotNull;

@ -22,6 +22,7 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.oracle.webservices.internal.impl.encoding;
import java.io.IOException;

@ -23,7 +23,6 @@
* questions.
*/
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.6-SNAPSHOT
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>

@ -30,10 +30,10 @@ BASEDIR_DOESNT_EXIST = \
Non-existent directory: {0}
VERSION = \
schemagen 2.2.7-b63
schemagen 2.2.8-b01
FULLVERSION = \
schemagen full version "2.2.7-b63"
schemagen full version "2.2.8-b01"
USAGE = \
Usage: schemagen [-options ...] <java files> \n\

@ -27,8 +27,8 @@ UNEXPECTED_NGCC_TOKEN = Nicht erkanntes {0} in Zeile {1} Spalte {2}
BASEDIR_DOESNT_EXIST = Nicht vorhandenes Verzeichnis: {0}
VERSION = schemagen 2.2.7-b63
VERSION = schemagen 2.2.8-b01
FULLVERSION = schemagen vollst\u00E4ndige Version "2.2.7-b63"
FULLVERSION = schemagen vollst\u00E4ndige Version "2.2.8-b01"
USAGE = Verwendung: schemagen [-options ...] <java files> \nOptionen: \n\\ \\ \\ \\ -d <path> : Gibt an, wo die von Prozessor und javac generierten Klassendateien gespeichert werden sollen\n\\ \\ \\ \\ -cp <path> : Gibt an, wo die vom Benutzer angegebenen Dateien gespeichert sind\n\\ \\ \\ \\ -classpath <path> : Gibt an, wo die vom Benutzer angegebenen Dateien gespeichert sind\n\\ \\ \\ \\ -encoding <encoding> : Gibt die Codierung f\u00FCr die Annotationsverarbeitung/den javac-Aufruf an \n\\ \\ \\ \\ -episode <file> : Generiert Episodendatei f\u00FCr separate Kompilierung\n\\ \\ \\ \\ -version : Zeigt Versionsinformation an\n\\ \\ \\ \\ -fullversion : Zeigt vollst\u00E4ndige Versionsinformationen an\n\\ \\ \\ \\ -help : Zeigt diese Verwendungsmeldung an

@ -27,8 +27,8 @@ UNEXPECTED_NGCC_TOKEN = Aparece un {0} inesperado en la l\u00EDnea {1} y la colu
BASEDIR_DOESNT_EXIST = Directorio no existente: {0}
VERSION = schemagen 2.2.7-b63
VERSION = schemagen 2.2.8-b01
FULLVERSION = versi\u00F3n completa de schemagen "2.2.7-b63"
FULLVERSION = versi\u00F3n completa de schemagen "2.2.8-b01"
USAGE = Sintaxis: schemagen [-options ...] <archivos java> \nOpciones: \n\\ \\ \\ \\ -d <ruta de acceso> : especifique d\u00F3nde se colocan los archivos de clase generados por javac y el procesador\n\\ \\ \\ \\ -cp <ruta de acceso> : especifique d\u00F3nde se encuentran los archivos especificados por el usuario\n\\ \\ \\ \\ -encoding <codificaci\u00F3n> : especifique la codificaci\u00F3n que se va a utilizar para el procesamiento de anotaciones/llamada de javac\n\\ \\ \\ \\ -episode <archivo> : genera un archivo de episodio para una compilaci\u00F3n diferente\n\\ \\ \\ \\ -version : muestra la informaci\u00F3n de la versi\u00F3n\n\\ \\ \\ \\ -fullversion : muestra la informaci\u00F3n completa de la versi\u00F3n\n\\ \\ \\ \\ -help : muestra este mensaje de sintaxis

@ -27,8 +27,8 @@ UNEXPECTED_NGCC_TOKEN = Un \u00E9l\u00E9ment {0} inattendu appara\u00EEt \u00E0
BASEDIR_DOESNT_EXIST = R\u00E9pertoire {0} inexistant
VERSION = schemagen 2.2.7-b63
VERSION = schemagen 2.2.8-b01
FULLVERSION = version compl\u00E8te de schemagen "2.2.7-b63"
FULLVERSION = version compl\u00E8te de schemagen "2.2.8-b01"
USAGE = Syntaxe : schemagen [-options ...] <java files> \nOptions : \n\ \ \ \ -d <path> : indiquez o\u00F9 placer les fichiers de classe g\u00E9n\u00E9r\u00E9s par le processeur et le compilateur javac\n\ \ \ \ -cp <path> : indiquez o\u00F9 trouver les fichiers sp\u00E9cifi\u00E9s par l'utilisateur\n\ \ \ \ -classpath <path> : indiquez o\u00F9 trouver les fichiers sp\u00E9cifi\u00E9s par l'utilisateur\n\ \ \ \ -encoding <encoding> : indiquez l'encodage \u00E0 utiliser pour l'appel de javac/traitement de l'annotation \n\ \ \ \ -episode <file> : g\u00E9n\u00E9rez un fichier d'\u00E9pisode pour la compilation s\u00E9par\u00E9e\n\ \ \ \ -version : affichez les informations de version\n\ \ \ \ -fullversion : affichez les informations compl\u00E8tes de version\n\ \ \ \ -help : affichez ce message de syntaxe

@ -27,8 +27,8 @@ UNEXPECTED_NGCC_TOKEN = {0} imprevisto visualizzato sulla riga {1} colonna {2}
BASEDIR_DOESNT_EXIST = Directory non esistente: {0}
VERSION = schemagen 2.2.7-b63
VERSION = schemagen 2.2.8-b01
FULLVERSION = versione completa schemagen "2.2.7-b63"
FULLVERSION = versione completa schemagen "2.2.8-b01"
USAGE = Uso: schemagen [-options ...] <java files> \nOpzioni: \n\ \ \ \ -d <path> : specifica dove posizionare il processore e i file della classe generata javac\n\ \ \ \ -cp <path> : specifica dove trovare i file specificati dall'utente\n\ \ \ \ -classpath <path> : specifica dove trovare i file specificati dall'utente\n\ \ \ \ -encoding <encoding> : specifica la codifica da usare per l'elaborazione dell'annotazione/richiamo javac \n\ \ \ \ -episode <file> : genera il file di episodio per la compilazione separata\n\ \ \ \ -version : visualizza le informazioni sulla versione\n\ \ \ \ -fullversion : visualizza le informazioni sulla versione completa\n\ \ \ \ -help : visualizza questo messaggio sull'uso

@ -27,8 +27,8 @@ UNEXPECTED_NGCC_TOKEN = \u4E88\u671F\u3057\u306A\u3044{0}\u304C\u884C{1}\u3001\u
BASEDIR_DOESNT_EXIST = \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u5B58\u5728\u3057\u307E\u305B\u3093: {0}
VERSION = schemagen 2.2.7-b63
VERSION = schemagen 2.2.8-b01
FULLVERSION = schemagen\u30D5\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3"2.2.7-b63"
FULLVERSION = schemagen\u30D5\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3"2.2.8-b01"
USAGE = \u4F7F\u7528\u65B9\u6CD5: schemagen [-options ...] <java files> \n\u30AA\u30D7\u30B7\u30E7\u30F3: \n\ \ \ \ -d <path> : \u30D7\u30ED\u30BB\u30C3\u30B5\u304A\u3088\u3073javac\u304C\u751F\u6210\u3057\u305F\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u7F6E\u304F\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\n\ \ \ \ -cp <path> : \u30E6\u30FC\u30B6\u30FC\u304C\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\n\ \ \ \ -classpath <path> : \u30E6\u30FC\u30B6\u30FC\u304C\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\n\ \ \ \ -encoding <encoding> : \u6CE8\u91C8\u51E6\u7406/javac\u547C\u51FA\u3057\u306B\u4F7F\u7528\u3059\u308B\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3092\u6307\u5B9A\u3057\u307E\u3059\n\ \ \ \ -episode <file> : \u30B3\u30F3\u30D1\u30A4\u30EB\u3054\u3068\u306B\u30A8\u30D4\u30BD\u30FC\u30C9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u751F\u6210\u3057\u307E\u3059\n\ \ \ \ -version : \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\n\ \ \ \ -fullversion : \u30D5\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\n\ \ \ \ -help : \u3053\u306E\u4F7F\u7528\u4F8B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3057\u307E\u3059

@ -27,8 +27,8 @@ UNEXPECTED_NGCC_TOKEN = \uC608\uC0C1\uCE58 \uC54A\uC740 {0}\uC774(\uAC00) {1}\uD
BASEDIR_DOESNT_EXIST = \uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uB514\uB809\uD1A0\uB9AC: {0}
VERSION = schemagen 2.2.7-b63
VERSION = schemagen 2.2.8-b01
FULLVERSION = schemagen \uC815\uC2DD \uBC84\uC804 "2.2.7-b63"
FULLVERSION = schemagen \uC815\uC2DD \uBC84\uC804 "2.2.8-b01"
USAGE = \uC0AC\uC6A9\uBC95: schemagen [-options ...] <java files> \n\uC635\uC158: \n\ \ \ \ -d <path> : \uD504\uB85C\uC138\uC11C \uBC0F javac\uC5D0\uC11C \uC0DD\uC131\uD55C \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uBC30\uCE58\uD560 \uC704\uCE58\uB97C \uC9C0\uC815\uD569\uB2C8\uB2E4.\n\ \ \ \ -cp <path> : \uC0AC\uC6A9\uC790\uAC00 \uC9C0\uC815\uD55C \uD30C\uC77C\uC744 \uCC3E\uC744 \uC704\uCE58\uB97C \uC9C0\uC815\uD569\uB2C8\uB2E4.\n\ \ \ \ -classpath <path> : \uC0AC\uC6A9\uC790\uAC00 \uC9C0\uC815\uD55C \uD30C\uC77C\uC744 \uCC3E\uC744 \uC704\uCE58\uB97C \uC9C0\uC815\uD569\uB2C8\uB2E4.\n\ \ \ \ -encoding <encoding> : \uC8FC\uC11D \uCC98\uB9AC/javac \uD638\uCD9C\uC5D0 \uC0AC\uC6A9\uD560 \uC778\uCF54\uB529\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4. \n\ \ \ \ -episode <file> : \uBCC4\uB3C4 \uCEF4\uD30C\uC77C\uC744 \uC704\uD574 episode \uD30C\uC77C\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4.\n\ \ \ \ -version : \uBC84\uC804 \uC815\uBCF4\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.\n\ \ \ \ -fullversion : \uC815\uC2DD \uBC84\uC804 \uC815\uBCF4\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.\n\ \ \ \ -help : \uC774 \uC0AC\uC6A9\uBC95 \uBA54\uC2DC\uC9C0\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.

@ -27,8 +27,8 @@ UNEXPECTED_NGCC_TOKEN = {0} inesperado aparece na linha {1} coluna {2}
BASEDIR_DOESNT_EXIST = Diret\u00F3rio n\u00E3o existente: {0}
VERSION = gera\u00E7\u00E3o do esquema 2.2.7-b63
VERSION = gera\u00E7\u00E3o do esquema 2.2.8-b01
FULLVERSION = vers\u00E3o completa da gera\u00E7\u00E3o do esquema "2.2.7-b63"
FULLVERSION = vers\u00E3o completa da gera\u00E7\u00E3o do esquema "2.2.8-b01"
USAGE = Uso: gera\u00E7\u00E3o do esquema [-options ...] <java files> \nOp\u00E7\u00F5es: \n\\ \\ \\ \\ -d <path> : especificar onde colocar o processador e os arquivos da classe gerados por javac\n\\ \\ \\ \\ -cp <path> : especificar onde localizar arquivos especificados pelo usu\u00E1rio\n\\ \\ \\ \\ -classpath <path> : especificar onde localizar os arquivos especificados pelo usu\u00E1rio\n\\ \\ \\ \\ -encoding <encoding> : especificar codifica\u00E7\u00E3o a ser usada para processamento de anota\u00E7\u00E3o/chamada javac \n\\ \\ \\ \\ -episode <file> : gerar arquivo do epis\u00F3dio para compila\u00E7\u00E3o separada\n\\ \\ \\ \\ -version : exibir informa\u00E7\u00F5es da vers\u00E3o\n\\ \\ \\ \\ -fullversion : exibir informa\u00E7\u00F5es da vers\u00E3o completa\n\\ \\ \\ \\ -help : exibir esta mensagem de uso

@ -27,8 +27,8 @@ UNEXPECTED_NGCC_TOKEN = \u5728\u7B2C {1} \u884C, \u7B2C {2} \u5217\u51FA\u73B0\u
BASEDIR_DOESNT_EXIST = \u4E0D\u5B58\u5728\u7684\u76EE\u5F55: {0}
VERSION = schemagen 2.2.7-b63
VERSION = schemagen 2.2.8-b01
FULLVERSION = schemagen \u5B8C\u6574\u7248\u672C "2.2.7-b63"
FULLVERSION = schemagen \u5B8C\u6574\u7248\u672C "2.2.8-b01"
USAGE = \u7528\u6CD5: schemagen [-options ...] <java files> \n\u9009\u9879: \n\ \ \ \ -d <path> : \u6307\u5B9A\u653E\u7F6E\u5904\u7406\u7A0B\u5E8F\u548C javac \u751F\u6210\u7684\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n\ \ \ \ -cp <path> : \u6307\u5B9A\u67E5\u627E\u7528\u6237\u6307\u5B9A\u6587\u4EF6\u7684\u4F4D\u7F6E\n\ \ \ \ -classpath <path> : \u6307\u5B9A\u67E5\u627E\u7528\u6237\u6307\u5B9A\u6587\u4EF6\u7684\u4F4D\u7F6E\n\ \ \ \ -encoding <encoding> : \u6307\u5B9A\u7528\u4E8E\u6CE8\u91CA\u5904\u7406/javac \u8C03\u7528\u7684\u7F16\u7801\n\ \ \ \ -episode <file> : \u751F\u6210\u7247\u6BB5\u6587\u4EF6\u4EE5\u4F9B\u5355\u72EC\u7F16\u8BD1\n\ \ \ \ -version : \u663E\u793A\u7248\u672C\u4FE1\u606F\n\ \ \ \ -fullversion : \u663E\u793A\u5B8C\u6574\u7684\u7248\u672C\u4FE1\u606F\n\ \ \ \ -help : \u663E\u793A\u6B64\u7528\u6CD5\u6D88\u606F

@ -27,8 +27,8 @@ UNEXPECTED_NGCC_TOKEN = \u672A\u9810\u671F\u7684 {0} \u986F\u793A\u65BC\u884C {1
BASEDIR_DOESNT_EXIST = \u4E0D\u5B58\u5728\u7684\u76EE\u9304: {0}
VERSION = schemagen 2.2.7-b63
VERSION = schemagen 2.2.8-b01
FULLVERSION = schemagen \u5B8C\u6574\u7248\u672C "2.2.7-b63"
FULLVERSION = schemagen \u5B8C\u6574\u7248\u672C "2.2.8-b01"
USAGE = \u7528\u6CD5: schemagen [-options ...] <java files> \n\u9078\u9805: \n\\ \\ \\ \\ -d <path> : \u6307\u5B9A\u8655\u7406\u5668\u4EE5\u53CA javac \u7522\u751F\u7684\u985E\u5225\u6A94\u6848\u653E\u7F6E\u4F4D\u7F6E\n\\ \\ \\ \\ -cp <path> : \u6307\u5B9A\u8981\u5C0B\u627E\u4F7F\u7528\u8005\u6307\u5B9A\u6A94\u6848\u7684\u4F4D\u7F6E\n\\ \\ \\ \\ -classpath <path> : \u6307\u5B9A\u8981\u5C0B\u627E\u4F7F\u7528\u8005\u6307\u5B9A\u6A94\u6848\u7684\u4F4D\u7F6E\n\\ \\ \\ \\ -encoding <encoding> : \u6307\u5B9A\u8981\u7528\u65BC\u8A3B\u89E3\u8655\u7406/javac \u547C\u53EB\u7684\u7DE8\u78BC \n\\ \\ \\ \\ -episode <file> : \u7522\u751F\u7368\u7ACB\u7DE8\u8B6F\u7684\u4E8B\u4EF6 (episode) \u6A94\u6848\n\\ \\ \\ \\ -version : \u986F\u793A\u7248\u672C\u8CC7\u8A0A\n\\ \\ \\ \\ -fullversion : \u986F\u793A\u5B8C\u6574\u7248\u672C\u8CC7\u8A0A\n\\ \\ \\ \\ -help : \u986F\u793A\u6B64\u7528\u6CD5\u8A0A\u606F

@ -78,11 +78,6 @@ public class Classes extends NGCCHandler {
$localName = $__local;
$qname = $__qname;
switch($_ngcc_current_state) {
case 0:
{
revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
}
break;
case 4:
{
$_ngcc_current_state = 3;
@ -112,6 +107,11 @@ public class Classes extends NGCCHandler {
}
}
break;
case 0:
{
revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
}
break;
case 12:
{
if(($__uri.equals("") && $__local.equals("classes"))) {
@ -137,33 +137,6 @@ public class Classes extends NGCCHandler {
$localName = $__local;
$qname = $__qname;
switch($_ngcc_current_state) {
case 8:
{
if(($__uri.equals("") && $__local.equals("includes"))) {
$runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
$_ngcc_current_state = 2;
}
else {
unexpectedLeaveElement($__qname);
}
}
break;
case 1:
{
if(($__uri.equals("") && $__local.equals("classes"))) {
$runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
$_ngcc_current_state = 0;
}
else {
unexpectedLeaveElement($__qname);
}
}
break;
case 0:
{
revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
}
break;
case 4:
{
$_ngcc_current_state = 3;
@ -181,12 +154,39 @@ public class Classes extends NGCCHandler {
}
}
break;
case 1:
{
if(($__uri.equals("") && $__local.equals("classes"))) {
$runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
$_ngcc_current_state = 0;
}
else {
unexpectedLeaveElement($__qname);
}
}
break;
case 8:
{
if(($__uri.equals("") && $__local.equals("includes"))) {
$runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
$_ngcc_current_state = 2;
}
else {
unexpectedLeaveElement($__qname);
}
}
break;
case 2:
{
$_ngcc_current_state = 1;
$runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
}
break;
case 0:
{
revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
}
break;
default:
{
unexpectedLeaveElement($__qname);
@ -201,11 +201,6 @@ public class Classes extends NGCCHandler {
$localName = $__local;
$qname = $__qname;
switch($_ngcc_current_state) {
case 0:
{
revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
}
break;
case 4:
{
$_ngcc_current_state = 3;
@ -218,6 +213,11 @@ public class Classes extends NGCCHandler {
$runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
}
break;
case 0:
{
revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
}
break;
default:
{
unexpectedEnterAttribute($__qname);
@ -232,11 +232,6 @@ public class Classes extends NGCCHandler {
$localName = $__local;
$qname = $__qname;
switch($_ngcc_current_state) {
case 0:
{
revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
}
break;
case 4:
{
$_ngcc_current_state = 3;
@ -249,6 +244,11 @@ public class Classes extends NGCCHandler {
$runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
}
break;
case 0:
{
revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
}
break;
default:
{
unexpectedLeaveAttribute($__qname);
@ -260,25 +260,6 @@ public class Classes extends NGCCHandler {
public void text(String $value) throws SAXException {
int $ai;
switch($_ngcc_current_state) {
case 9:
{
include_content = $value;
$_ngcc_current_state = 8;
action2();
}
break;
case 8:
{
include_content = $value;
$_ngcc_current_state = 8;
action2();
}
break;
case 0:
{
revertToParentFromText(this, super._cookie, $value);
}
break;
case 4:
{
exclude_content = $value;
@ -293,6 +274,20 @@ public class Classes extends NGCCHandler {
action0();
}
break;
case 9:
{
include_content = $value;
$_ngcc_current_state = 8;
action2();
}
break;
case 10:
{
__text = $value;
$_ngcc_current_state = 9;
action3();
}
break;
case 6:
{
__text = $value;
@ -300,17 +295,22 @@ public class Classes extends NGCCHandler {
action1();
}
break;
case 8:
{
include_content = $value;
$_ngcc_current_state = 8;
action2();
}
break;
case 2:
{
$_ngcc_current_state = 1;
$runtime.sendText(super._cookie, $value);
}
break;
case 10:
case 0:
{
__text = $value;
$_ngcc_current_state = 9;
action3();
revertToParentFromText(this, super._cookie, $value);
}
break;
}

@ -74,31 +74,16 @@ public class Config extends NGCCHandler {
$localName = $__local;
$qname = $__qname;
switch($_ngcc_current_state) {
case 1:
case 2:
{
if(($__uri.equals("") && $__local.equals("schema"))) {
NGCCHandler h = new Schema(this, super._source, $runtime, 31, baseDir);
NGCCHandler h = new Schema(this, super._source, $runtime, 16, baseDir);
spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
}
else {
unexpectedEnterElement($__qname);
}
}
break;
case 0:
{
revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
}
break;
case 7:
{
if(($ai = $runtime.getAttributeIndex("","baseDir"))>=0) {
$runtime.consumeAttribute($ai);
$_ngcc_current_state = 1;
$runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
}
else {
unexpectedEnterElement($__qname);
}
}
break;
case 8:
@ -112,22 +97,10 @@ public class Config extends NGCCHandler {
}
}
break;
case 2:
{
if(($__uri.equals("") && $__local.equals("schema"))) {
NGCCHandler h = new Schema(this, super._source, $runtime, 32, baseDir);
spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
}
else {
$_ngcc_current_state = 1;
$runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
}
}
break;
case 4:
{
if(($__uri.equals("") && $__local.equals("classes"))) {
NGCCHandler h = new Classes(this, super._source, $runtime, 34);
NGCCHandler h = new Classes(this, super._source, $runtime, 18);
spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
}
else {
@ -135,6 +108,33 @@ public class Config extends NGCCHandler {
}
}
break;
case 0:
{
revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
}
break;
case 1:
{
if(($__uri.equals("") && $__local.equals("schema"))) {
NGCCHandler h = new Schema(this, super._source, $runtime, 15, baseDir);
spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
}
else {
unexpectedEnterElement($__qname);
}
}
break;
case 7:
{
if(($ai = $runtime.getAttributeIndex("","baseDir"))>=0) {
$runtime.consumeAttribute($ai);
$runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
}
else {
unexpectedEnterElement($__qname);
}
}
break;
default:
{
unexpectedEnterElement($__qname);
@ -149,6 +149,17 @@ public class Config extends NGCCHandler {
$localName = $__local;
$qname = $__qname;
switch($_ngcc_current_state) {
case 2:
{
$_ngcc_current_state = 1;
$runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
}
break;
case 0:
{
revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
}
break;
case 1:
{
if(($__uri.equals("") && $__local.equals("config"))) {
@ -160,11 +171,6 @@ public class Config extends NGCCHandler {
}
}
break;
case 0:
{
revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
}
break;
case 7:
{
if(($ai = $runtime.getAttributeIndex("","baseDir"))>=0) {
@ -176,12 +182,6 @@ public class Config extends NGCCHandler {
}
}
break;
case 2:
{
$_ngcc_current_state = 1;
$runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
}
break;
default:
{
unexpectedLeaveElement($__qname);
@ -196,6 +196,12 @@ public class Config extends NGCCHandler {
$localName = $__local;
$qname = $__qname;
switch($_ngcc_current_state) {
case 2:
{
$_ngcc_current_state = 1;
$runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
}
break;
case 0:
{
revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
@ -211,12 +217,6 @@ public class Config extends NGCCHandler {
}
}
break;
case 2:
{
$_ngcc_current_state = 1;
$runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
}
break;
default:
{
unexpectedEnterAttribute($__qname);
@ -231,11 +231,6 @@ public class Config extends NGCCHandler {
$localName = $__local;
$qname = $__qname;
switch($_ngcc_current_state) {
case 0:
{
revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
}
break;
case 2:
{
$_ngcc_current_state = 1;
@ -252,6 +247,11 @@ public class Config extends NGCCHandler {
}
}
break;
case 0:
{
revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
}
break;
default:
{
unexpectedLeaveAttribute($__qname);
@ -263,9 +263,10 @@ public class Config extends NGCCHandler {
public void text(String $value) throws SAXException {
int $ai;
switch($_ngcc_current_state) {
case 0:
case 2:
{
revertToParentFromText(this, super._cookie, $value);
$_ngcc_current_state = 1;
$runtime.sendText(super._cookie, $value);
}
break;
case 6:
@ -275,6 +276,11 @@ public class Config extends NGCCHandler {
action1();
}
break;
case 0:
{
revertToParentFromText(this, super._cookie, $value);
}
break;
case 7:
{
if(($ai = $runtime.getAttributeIndex("","baseDir"))>=0) {
@ -283,31 +289,25 @@ public class Config extends NGCCHandler {
}
}
break;
case 2:
{
$_ngcc_current_state = 1;
$runtime.sendText(super._cookie, $value);
}
break;
}
}
public void onChildCompleted(Object result, int cookie, boolean needAttCheck)throws SAXException {
switch(cookie) {
case 31:
case 16:
{
this._schema = ((Schema)result);
action0();
$_ngcc_current_state = 1;
}
break;
case 34:
case 18:
{
this.classes = ((Classes)result);
$_ngcc_current_state = 2;
}
break;
case 32:
case 15:
{
this._schema = ((Schema)result);
action0();

@ -67,6 +67,23 @@ public class Schema extends NGCCHandler {
$localName = $__local;
$qname = $__qname;
switch($_ngcc_current_state) {
case 0:
{
revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
}
break;
case 6:
{
if(($ai = $runtime.getAttributeIndex("","namespace"))>=0) {
$runtime.consumeAttribute($ai);
$runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
}
else {
$_ngcc_current_state = 2;
$runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
}
}
break;
case 2:
{
if(($ai = $runtime.getAttributeIndex("","location"))>=0) {
@ -90,23 +107,6 @@ public class Schema extends NGCCHandler {
}
}
break;
case 0:
{
revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
}
break;
case 6:
{
if(($ai = $runtime.getAttributeIndex("","namespace"))>=0) {
$runtime.consumeAttribute($ai);
$runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
}
else {
$_ngcc_current_state = 2;
$runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
}
}
break;
default:
{
unexpectedEnterElement($__qname);
@ -121,29 +121,6 @@ public class Schema extends NGCCHandler {
$localName = $__local;
$qname = $__qname;
switch($_ngcc_current_state) {
case 1:
{
if(($__uri.equals("") && $__local.equals("schema"))) {
$runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
$_ngcc_current_state = 0;
}
else {
unexpectedLeaveElement($__qname);
}
}
break;
case 2:
{
if(($ai = $runtime.getAttributeIndex("","location"))>=0) {
$runtime.consumeAttribute($ai);
$runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
}
else {
$_ngcc_current_state = 1;
$runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
}
}
break;
case 0:
{
revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
@ -161,6 +138,29 @@ public class Schema extends NGCCHandler {
}
}
break;
case 2:
{
if(($ai = $runtime.getAttributeIndex("","location"))>=0) {
$runtime.consumeAttribute($ai);
$runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
}
else {
$_ngcc_current_state = 1;
$runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
}
}
break;
case 1:
{
if(($__uri.equals("") && $__local.equals("schema"))) {
$runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
$_ngcc_current_state = 0;
}
else {
unexpectedLeaveElement($__qname);
}
}
break;
default:
{
unexpectedLeaveElement($__qname);
@ -175,17 +175,6 @@ public class Schema extends NGCCHandler {
$localName = $__local;
$qname = $__qname;
switch($_ngcc_current_state) {
case 2:
{
if(($__uri.equals("") && $__local.equals("location"))) {
$_ngcc_current_state = 4;
}
else {
$_ngcc_current_state = 1;
$runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
}
}
break;
case 0:
{
revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
@ -202,6 +191,17 @@ public class Schema extends NGCCHandler {
}
}
break;
case 2:
{
if(($__uri.equals("") && $__local.equals("location"))) {
$_ngcc_current_state = 4;
}
else {
$_ngcc_current_state = 1;
$runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
}
}
break;
default:
{
unexpectedEnterAttribute($__qname);
@ -216,10 +216,9 @@ public class Schema extends NGCCHandler {
$localName = $__local;
$qname = $__qname;
switch($_ngcc_current_state) {
case 2:
case 0:
{
$_ngcc_current_state = 1;
$runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
}
break;
case 7:
@ -232,6 +231,12 @@ public class Schema extends NGCCHandler {
}
}
break;
case 6:
{
$_ngcc_current_state = 2;
$runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
}
break;
case 3:
{
if(($__uri.equals("") && $__local.equals("location"))) {
@ -242,14 +247,9 @@ public class Schema extends NGCCHandler {
}
}
break;
case 0:
case 2:
{
revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
}
break;
case 6:
{
$_ngcc_current_state = 2;
$_ngcc_current_state = 1;
$runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
}
break;
@ -264,25 +264,6 @@ public class Schema extends NGCCHandler {
public void text(String $value) throws SAXException {
int $ai;
switch($_ngcc_current_state) {
case 2:
{
if(($ai = $runtime.getAttributeIndex("","location"))>=0) {
$runtime.consumeAttribute($ai);
$runtime.sendText(super._cookie, $value);
}
else {
$_ngcc_current_state = 1;
$runtime.sendText(super._cookie, $value);
}
}
break;
case 4:
{
loc = $value;
$_ngcc_current_state = 3;
action0();
}
break;
case 8:
{
namespace = $value;
@ -306,6 +287,25 @@ public class Schema extends NGCCHandler {
}
}
break;
case 4:
{
loc = $value;
$_ngcc_current_state = 3;
action0();
}
break;
case 2:
{
if(($ai = $runtime.getAttributeIndex("","location"))>=0) {
$runtime.consumeAttribute($ai);
$runtime.sendText(super._cookie, $value);
}
else {
$_ngcc_current_state = 1;
$runtime.sendText(super._cookie, $value);
}
}
break;
}
}

@ -23,7 +23,7 @@
# questions.
#
build-id=2.2.9-b13941
build-version=JAX-WS RI 2.2.9-b13941
build-id=2.2.9-b14027
build-version=JAX-WS RI 2.2.9-b14027
major-version=2.2.9
svn-revision=unknown
svn-revision=14027

@ -171,23 +171,23 @@ Driver.CompilingSchema = \
Driver.FailedToGenerateCode = \
Failed to produce code.
# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter>
# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = \
This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.7-b63 \n\
This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b01 \n\
See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\
Any modifications to this file will be lost upon recompilation of the source schema. \n\
Generated on: {0} \n
Driver.Version = \
xjc 2.2.7-b63
xjc 2.2.8-b01
Driver.FullVersion = \
xjc full version "2.2.7-b63-b19"
xjc full version "2.2.8-b01-b28"
Driver.BuildID = 2.2.7-b63
Driver.BuildID = 2.2.8-b01
# for JDK integration - include version in source zip
jaxb.jdk.version=2.2.7-b63
jaxb.jdk.version=2.2.8-b01
# see java.text.SimpleDateFormat for format syntax
# DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.

@ -96,17 +96,17 @@ Driver.CompilingSchema = Ein Schema wird kompiliert ...
Driver.FailedToGenerateCode = Code konnte nicht erzeugt werden.
# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = Diese Datei wurde mit der JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.7-b63 generiert \nSiehe <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\u00c4nderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren. \nGeneriert: {0} \n
# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = Diese Datei wurde mit der JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b01 generiert \nSiehe <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\u00c4nderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren. \nGeneriert: {0} \n
Driver.Version = xjc 2.2.7-b63
Driver.Version = xjc 2.2.8-b01
Driver.FullVersion = xjc vollst\u00e4ndige Version "2.2.7-b63-b19"
Driver.FullVersion = xjc vollst\u00e4ndige Version "2.2.8-b01-b28"
Driver.BuildID = 2.2.7-b63
Driver.BuildID = 2.2.8-b01
# for JDK integration - include version in source zip
jaxb.jdk.version=2.2.7-b63
jaxb.jdk.version=2.2.8-b01
# see java.text.SimpleDateFormat for format syntax
# DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.

@ -96,17 +96,17 @@ Driver.CompilingSchema = Compilando un esquema...
Driver.FailedToGenerateCode = Fallo al producir c\u00f3digo.
# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = Este archivo ha sido generado por la arquitectura JavaTM para la implantaci\u00f3n de la referencia de enlace (JAXB) XML v2.2.7-b63 \nVisite <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nTodas las modificaciones realizadas en este archivo se perder\u00e1n si se vuelve a compilar el esquema de origen. \nGenerado el: {0} \n
# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = Este archivo ha sido generado por la arquitectura JavaTM para la implantaci\u00f3n de la referencia de enlace (JAXB) XML v2.2.8-b01 \nVisite <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nTodas las modificaciones realizadas en este archivo se perder\u00e1n si se vuelve a compilar el esquema de origen. \nGenerado el: {0} \n
Driver.Version = xjc 2.2.7-b63
Driver.Version = xjc 2.2.8-b01
Driver.FullVersion = versi\u00f3n completa de xjc "2.2.7-b63-b19"
Driver.FullVersion = versi\u00f3n completa de xjc "2.2.8-b01-b28"
Driver.BuildID = 2.2.7-b63
Driver.BuildID = 2.2.8-b01
# for JDK integration - include version in source zip
jaxb.jdk.version=2.2.7-b63
jaxb.jdk.version=2.2.8-b01
# see java.text.SimpleDateFormat for format syntax
# DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.

@ -96,17 +96,17 @@ Driver.CompilingSchema = compilation d'un sch\u00e9ma...
Driver.FailedToGenerateCode = Echec de la production du code.
# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = Ce fichier a \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9 par l''impl\u00e9mentation de r\u00e9f\u00e9rence JavaTM Architecture for XML Binding (JAXB), v2.2.7-b63 \nVoir <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nToute modification apport\u00e9e \u00e0 ce fichier sera perdue lors de la recompilation du sch\u00e9ma source. \nG\u00e9n\u00e9r\u00e9 le : {0} \n
# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = Ce fichier a \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9 par l''impl\u00e9mentation de r\u00e9f\u00e9rence JavaTM Architecture for XML Binding (JAXB), v2.2.8-b01 \nVoir <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nToute modification apport\u00e9e \u00e0 ce fichier sera perdue lors de la recompilation du sch\u00e9ma source. \nG\u00e9n\u00e9r\u00e9 le : {0} \n
Driver.Version = xjc 2.2.7-b63
Driver.Version = xjc 2.2.8-b01
Driver.FullVersion = version compl\u00e8te xjc "2.2.7-b63-b19"
Driver.FullVersion = version compl\u00e8te xjc "2.2.8-b01-b28"
Driver.BuildID = 2.2.7-b63
Driver.BuildID = 2.2.8-b01
# for JDK integration - include version in source zip
jaxb.jdk.version=2.2.7-b63
jaxb.jdk.version=2.2.8-b01
# see java.text.SimpleDateFormat for format syntax
# DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.

@ -96,17 +96,17 @@ Driver.CompilingSchema = compilazione di uno schema in corso...
Driver.FailedToGenerateCode = Produzione del codice non riuscita.
# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = Questo file \u00e8 stato generato dall''architettura JavaTM per XML Binding (JAXB) Reference Implementation, v2.2.7-b63 \nVedere <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nQualsiasi modifica a questo file andr\u00e0 persa durante la ricompilazione dello schema di origine. \nGenerato il: {0} \n
# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = Questo file \u00e8 stato generato dall''architettura JavaTM per XML Binding (JAXB) Reference Implementation, v2.2.8-b01 \nVedere <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nQualsiasi modifica a questo file andr\u00e0 persa durante la ricompilazione dello schema di origine. \nGenerato il: {0} \n
Driver.Version = xjc 2.2.7-b63
Driver.Version = xjc 2.2.8-b01
Driver.FullVersion = versione completa xjc "2.2.7-b63-b19"
Driver.FullVersion = versione completa xjc "2.2.8-b01-b28"
Driver.BuildID = 2.2.7-b63
Driver.BuildID = 2.2.8-b01
# for JDK integration - include version in source zip
jaxb.jdk.version=2.2.7-b63
jaxb.jdk.version=2.2.8-b01
# see java.text.SimpleDateFormat for format syntax
# DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.

@ -96,17 +96,17 @@ Driver.CompilingSchema = \u30b9\u30ad\u30fc\u30de\u306e\u30b3\u30f3\u30d1\u30a4\
Driver.FailedToGenerateCode = \u30b3\u30fc\u30c9\u306e\u751f\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002
# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = \u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306f\u3001JavaTM Architecture for XML Binding(JAXB) Reference Implementation\u3001v2.2.7-b63\u306b\u3088\u3063\u3066\u751f\u6210\u3055\u308c\u307e\u3057\u305f \n<a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044 \n\u30bd\u30fc\u30b9\u30fb\u30b9\u30ad\u30fc\u30de\u306e\u518d\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u5909\u66f4\u306f\u5931\u308f\u308c\u307e\u3059\u3002 \n\u751f\u6210\u65e5: {0} \n
# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = \u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306f\u3001JavaTM Architecture for XML Binding(JAXB) Reference Implementation\u3001v2.2.8-b01\u306b\u3088\u3063\u3066\u751f\u6210\u3055\u308c\u307e\u3057\u305f \n<a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044 \n\u30bd\u30fc\u30b9\u30fb\u30b9\u30ad\u30fc\u30de\u306e\u518d\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u5909\u66f4\u306f\u5931\u308f\u308c\u307e\u3059\u3002 \n\u751f\u6210\u65e5: {0} \n
Driver.Version = xjc 2.2.7-b63
Driver.Version = xjc 2.2.8-b01
Driver.FullVersion = xjc\u30d5\u30eb\u30fb\u30d0\u30fc\u30b8\u30e7\u30f3"2.2.7-b63-b19"
Driver.FullVersion = xjc\u30d5\u30eb\u30fb\u30d0\u30fc\u30b8\u30e7\u30f3"2.2.8-b01-b28"
Driver.BuildID = 2.2.7-b63
Driver.BuildID = 2.2.8-b01
# for JDK integration - include version in source zip
jaxb.jdk.version=2.2.7-b63
jaxb.jdk.version=2.2.8-b01
# see java.text.SimpleDateFormat for format syntax
# DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.

@ -96,17 +96,17 @@ Driver.CompilingSchema = \uc2a4\ud0a4\ub9c8\ub97c \ucef4\ud30c\uc77c\ud558\ub294
Driver.FailedToGenerateCode = \ucf54\ub4dc \uc0dd\uc131\uc744 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = \uc774 \ud30c\uc77c\uc740 JAXB(JavaTM Architecture for XML Binding) \ucc38\uc870 \uad6c\ud604 2.2.7-b63 \ubc84\uc804\uc744 \ud1b5\ud574 \uc0dd\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \n<a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>\ub97c \ucc38\uc870\ud558\uc2ed\uc2dc\uc624. \n\uc774 \ud30c\uc77c\uc744 \uc218\uc815\ud558\uba74 \uc18c\uc2a4 \uc2a4\ud0a4\ub9c8\ub97c \uc7ac\ucef4\ud30c\uc77c\ud560 \ub54c \uc218\uc815 \uc0ac\ud56d\uc774 \uc190\uc2e4\ub429\ub2c8\ub2e4. \n\uc0dd\uc131 \ub0a0\uc9dc: {0} \n
# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = \uc774 \ud30c\uc77c\uc740 JAXB(JavaTM Architecture for XML Binding) \ucc38\uc870 \uad6c\ud604 2.2.8-b01 \ubc84\uc804\uc744 \ud1b5\ud574 \uc0dd\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \n<a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>\ub97c \ucc38\uc870\ud558\uc2ed\uc2dc\uc624. \n\uc774 \ud30c\uc77c\uc744 \uc218\uc815\ud558\uba74 \uc18c\uc2a4 \uc2a4\ud0a4\ub9c8\ub97c \uc7ac\ucef4\ud30c\uc77c\ud560 \ub54c \uc218\uc815 \uc0ac\ud56d\uc774 \uc190\uc2e4\ub429\ub2c8\ub2e4. \n\uc0dd\uc131 \ub0a0\uc9dc: {0} \n
Driver.Version = XJC 2.2.7-b63
Driver.Version = XJC 2.2.8-b01
Driver.FullVersion = XJC \uc815\uc2dd \ubc84\uc804 "2.2.7-b63-b19"
Driver.FullVersion = XJC \uc815\uc2dd \ubc84\uc804 "2.2.8-b01-b28"
Driver.BuildID = 2.2.7-b63
Driver.BuildID = 2.2.8-b01
# for JDK integration - include version in source zip
jaxb.jdk.version=2.2.7-b63
jaxb.jdk.version=2.2.8-b01
# see java.text.SimpleDateFormat for format syntax
# DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.

@ -96,17 +96,17 @@ Driver.CompilingSchema = compilando um esquema...
Driver.FailedToGenerateCode = Falha ao produzir o c\u00f3digo.
# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = Este arquivo foi gerado pela Arquitetura JavaTM para Implementa\u00e7\u00e3o de Refer\u00eancia (JAXB) de Bind XML, v2.2.7-b63 \nConsulte <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nTodas as modifica\u00e7\u00f5es neste arquivo ser\u00e3o perdidas ap\u00f3s a recompila\u00e7\u00e3o do esquema de origem. \nGerado em: {0} \n
# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = Este arquivo foi gerado pela Arquitetura JavaTM para Implementa\u00e7\u00e3o de Refer\u00eancia (JAXB) de Bind XML, v2.2.8-b01 \nConsulte <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nTodas as modifica\u00e7\u00f5es neste arquivo ser\u00e3o perdidas ap\u00f3s a recompila\u00e7\u00e3o do esquema de origem. \nGerado em: {0} \n
Driver.Version = xjc 2.2.7-b63
Driver.Version = xjc 2.2.8-b01
Driver.FullVersion = vers\u00e3o completa de xjc "2.2.7-b63-b19"
Driver.FullVersion = vers\u00e3o completa de xjc "2.2.8-b01-b28"
Driver.BuildID = 2.2.7-b63
Driver.BuildID = 2.2.8-b01
# for JDK integration - include version in source zip
jaxb.jdk.version=2.2.7-b63
jaxb.jdk.version=2.2.8-b01
# see java.text.SimpleDateFormat for format syntax
# DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.

@ -96,17 +96,17 @@ Driver.CompilingSchema = \u6b63\u5728\u7f16\u8bd1\u6a21\u5f0f...
Driver.FailedToGenerateCode = \u65e0\u6cd5\u751f\u6210\u4ee3\u7801\u3002
# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = \u6b64\u6587\u4ef6\u662f\u7531 JavaTM Architecture for XML Binding (JAXB) \u5f15\u7528\u5b9e\u73b0 v2.2.7-b63 \u751f\u6210\u7684\n\u8bf7\u8bbf\u95ee <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\u5728\u91cd\u65b0\u7f16\u8bd1\u6e90\u6a21\u5f0f\u65f6, \u5bf9\u6b64\u6587\u4ef6\u7684\u6240\u6709\u4fee\u6539\u90fd\u5c06\u4e22\u5931\u3002\n\u751f\u6210\u65f6\u95f4: {0} \n
# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = \u6b64\u6587\u4ef6\u662f\u7531 JavaTM Architecture for XML Binding (JAXB) \u5f15\u7528\u5b9e\u73b0 v2.2.8-b01 \u751f\u6210\u7684\n\u8bf7\u8bbf\u95ee <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\u5728\u91cd\u65b0\u7f16\u8bd1\u6e90\u6a21\u5f0f\u65f6, \u5bf9\u6b64\u6587\u4ef6\u7684\u6240\u6709\u4fee\u6539\u90fd\u5c06\u4e22\u5931\u3002\n\u751f\u6210\u65f6\u95f4: {0} \n
Driver.Version = xjc 2.2.7-b63
Driver.Version = xjc 2.2.8-b01
Driver.FullVersion = xjc \u5b8c\u6574\u7248\u672c "2.2.7-b63-b19"
Driver.FullVersion = xjc \u5b8c\u6574\u7248\u672c "2.2.8-b01-b28"
Driver.BuildID = 2.2.7-b63
Driver.BuildID = 2.2.8-b01
# for JDK integration - include version in source zip
jaxb.jdk.version=2.2.7-b63
jaxb.jdk.version=2.2.8-b01
# see java.text.SimpleDateFormat for format syntax
# DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.

@ -96,17 +96,17 @@ Driver.CompilingSchema = \u6b63\u5728\u7de8\u8b6f\u7db1\u8981...
Driver.FailedToGenerateCode = \u7121\u6cd5\u7522\u751f\u7a0b\u5f0f\u78bc.
# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = \u6b64\u6a94\u6848\u662f\u7531 JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.7-b63 \u6240\u7522\u751f \n\u8acb\u53c3\u95b1 <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\u4e00\u65e6\u91cd\u65b0\u7de8\u8b6f\u4f86\u6e90\u7db1\u8981, \u5c0d\u6b64\u6a94\u6848\u6240\u505a\u7684\u4efb\u4f55\u4fee\u6539\u90fd\u5c07\u6703\u907a\u5931. \n\u7522\u751f\u6642\u9593: {0} \n
# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter>
Driver.FilePrologComment = \u6b64\u6a94\u6848\u662f\u7531 JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b01 \u6240\u7522\u751f \n\u8acb\u53c3\u95b1 <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\u4e00\u65e6\u91cd\u65b0\u7de8\u8b6f\u4f86\u6e90\u7db1\u8981, \u5c0d\u6b64\u6a94\u6848\u6240\u505a\u7684\u4efb\u4f55\u4fee\u6539\u90fd\u5c07\u6703\u907a\u5931. \n\u7522\u751f\u6642\u9593: {0} \n
Driver.Version = xjc 2.2.7-b63
Driver.Version = xjc 2.2.8-b01
Driver.FullVersion = xjc \u5b8c\u6574\u7248\u672c "2.2.7-b63-b19"
Driver.FullVersion = xjc \u5b8c\u6574\u7248\u672c "2.2.8-b01-b28"
Driver.BuildID = 2.2.7-b63
Driver.BuildID = 2.2.8-b01
# for JDK integration - include version in source zip
jaxb.jdk.version=2.2.7-b63
jaxb.jdk.version=2.2.8-b01
# see java.text.SimpleDateFormat for format syntax
# DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.

@ -289,12 +289,23 @@ public class ModelBuilder<T,C,F,M> implements ModelBuilderI<T,C,F,M> {
String pkg = nav.getPackageName(clazz);
if (!registries.containsKey(pkg)) {
// insert the package's object factory
C c = nav.findClass(pkg + ".ObjectFactory", clazz);
C c = loadObjectFactory(clazz, pkg);
if (c != null)
addRegistry(c, p);
}
}
private C loadObjectFactory(C clazz, String pkg) {
C c;
try {
c = nav.findClass(pkg + ".ObjectFactory", clazz);
} catch (SecurityException ignored) {
// treat SecurityException in same way as ClassNotFoundException in this case
c = null;
}
return c;
}
/**
* Getting parametrized classes of {@code JAXBElement<...>} property
* @param p property which parametrized types we will try to get

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -894,19 +894,6 @@ public final class JAXBContextImpl extends JAXBRIContext {
}
}
/**
* Used for testing.
*/
public SchemaOutputResolver createTestResolver() {
return new SchemaOutputResolver() {
public Result createOutput(String namespaceUri, String suggestedFileName) {
SAXResult r = new SAXResult(new DefaultHandler());
r.setSystemId(suggestedFileName);
return r;
}
};
}
@Override
public <T> Binder<T> createBinder(Class<T> domType) {
if(domType==Node.class)

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -278,6 +278,7 @@ public final class XmlSchemaGenerator<T,C,F,M> {
public void add( ElementInfo<T,C> elem ) {
assert elem!=null;
@SuppressWarnings("UnusedAssignment")
boolean nillable = false; // default value
QName name = elem.getElementName();
@ -1162,9 +1163,8 @@ public final class XmlSchemaGenerator<T,C,F,M> {
return true;
}
// there's a circular reference from an anonymous subtype to a global element
if ((ci != null) && ((targetTagName != null) && (te.getScope() == null))) {
if (targetTagName.getLocalPart().equals(tn.getLocalPart())) {
if ((ci != null) && ((targetTagName != null) && (te.getScope() == null) && (targetTagName.getNamespaceURI() == null))) {
if (targetTagName.equals(tn)) {
return true;
}
}

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -35,7 +35,7 @@ import java.util.ResourceBundle;
public class CommonResourceBundle extends AbstractResourceBundle {
public static final String BASE_NAME = "com.sun.xml.internal.fastinfoset.resources.ResourceBundle";
private static CommonResourceBundle instance = null;
private static volatile CommonResourceBundle instance = null;
private static Locale locale = null;
private ResourceBundle bundle = null;
@ -56,8 +56,7 @@ public class CommonResourceBundle extends AbstractResourceBundle {
//**need to know where to get the locale
//String localeString = CommonProperties.getInstance()
// .getProperty("omar.common.locale");
String localeString = null;
locale = parseLocale(localeString);
locale = parseLocale(/*localeString*/null);
}
}

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -431,7 +431,7 @@ public abstract class Decoder implements FastInfosetParser {
final int noOfItems = decodeNumberOfItemsOfSequence();
for (int i = 0; i < noOfItems; i++) {
String URI = decodeNonEmptyOctetStringOnSecondBitAsUtf8String();
/*String URI = */decodeNonEmptyOctetStringOnSecondBitAsUtf8String();
decodeNonEmptyOctetStringLengthOnSecondBit();
ensureOctetBufferSize();
@ -1817,7 +1817,7 @@ public abstract class Decoder implements FastInfosetParser {
second.getChars(0, l2, _charBuffer, l1 + 1);
return new String(_charBuffer, 0, total);
} else {
StringBuffer b = new StringBuffer(new String(first));
StringBuilder b = new StringBuilder(new String(first));
b.append(':');
b.append(second);
return b.toString();
@ -1992,10 +1992,12 @@ public abstract class Decoder implements FastInfosetParser {
static public boolean isFastInfosetDocument(InputStream s) throws IOException {
// TODO
// Check for <?xml declaration with 'finf' encoding
final int headerSize = 4;
final byte[] header = new byte[4];
s.read(header);
if (header[0] != EncodingConstants.BINARY_HEADER[0] ||
final byte[] header = new byte[headerSize];
final int readBytesCount = s.read(header);
if (readBytesCount < headerSize ||
header[0] != EncodingConstants.BINARY_HEADER[0] ||
header[1] != EncodingConstants.BINARY_HEADER[1] ||
header[2] != EncodingConstants.BINARY_HEADER[2] ||
header[3] != EncodingConstants.BINARY_HEADER[3]) {

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -137,7 +137,7 @@ public class BASE64EncodingAlgorithm extends BuiltInEncodingAlgorithm {
return new byte[0];
}
StringBuffer encodedValue = removeWhitespace(ch, start, length);
StringBuilder encodedValue = removeWhitespace(ch, start, length);
int encodedLength = encodedValue.length();
if (encodedLength == 0) {
return new byte[0];

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -259,7 +259,7 @@ public class BooleanEncodingAlgorithm extends BuiltInEncodingAlgorithm {
* @param array The array
*
*/
private final boolean[] generateArrayFromList(List array) {
private boolean[] generateArrayFromList(List array) {
boolean[] bdata = new boolean[array.size()];
for (int i = 0; i < bdata.length; i++) {
bdata[i] = ((Boolean)array.get(i)).booleanValue();

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -61,8 +61,8 @@ public abstract class BuiltInEncodingAlgorithm implements EncodingAlgorithm {
wl.word(i, cb.length());
}
public StringBuffer removeWhitespace(char[] ch, int start, int length) {
StringBuffer buf = new StringBuffer();
public StringBuilder removeWhitespace(char[] ch, int start, int length) {
StringBuilder buf = new StringBuilder();
int firstNonWS = 0;
int idx = 0;
for (; idx < length; ++idx) {

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -88,7 +88,7 @@ public class HexadecimalEncodingAlgorithm extends BuiltInEncodingAlgorithm {
return new byte[0];
}
StringBuffer encodedValue = removeWhitespace(ch, start, length);
StringBuilder encodedValue = removeWhitespace(ch, start, length);
int encodedLength = encodedValue.length();
if (encodedLength == 0) {
return new byte[0];

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -272,7 +272,7 @@ public class DOMDocumentParser extends Decoder {
}
if ((_b & EncodingConstants.DOCUMENT_CHARACTER_ENCODING_SCHEME) > 0) {
String version = decodeCharacterEncodingScheme();
/*String version = */decodeCharacterEncodingScheme();
/*
* TODO
* how to report the character encoding scheme?
@ -280,7 +280,7 @@ public class DOMDocumentParser extends Decoder {
}
if ((_b & EncodingConstants.DOCUMENT_STANDALONE_FLAG) > 0) {
boolean standalone = (read() > 0) ? true : false ;
/*boolean standalone = (*/read()/* > 0) ? true : false*/ ;
/*
* TODO
* how to report the standalone flag?

@ -1,5 +1,5 @@
#
# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -850,7 +850,7 @@ public class SAXDocumentParser extends Decoder implements FastInfosetReader {
}
if ((_b & EncodingConstants.DOCUMENT_CHARACTER_ENCODING_SCHEME) > 0) {
String characterEncodingScheme = decodeCharacterEncodingScheme();
/*String characterEncodingScheme = */decodeCharacterEncodingScheme();
/*
* TODO
* how to report the character encoding scheme?
@ -858,7 +858,7 @@ public class SAXDocumentParser extends Decoder implements FastInfosetReader {
}
if ((_b & EncodingConstants.DOCUMENT_STANDALONE_FLAG) > 0) {
boolean standalone = (read() > 0) ? true : false ;
/*boolean standalone = (*/read()/* > 0) ? true : false*/ ;
/*
* TODO
* how to report the standalone flag?

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -499,7 +499,7 @@ public class StAXDocumentParser extends Decoder
}
}
private final void popStack() {
private void popStack() {
// Pop information off the stack
_qualifiedName = _qNameStack[_stackCount];
_currentNamespaceAIIsStart = _namespaceAIIsStartStack[_stackCount];
@ -522,8 +522,6 @@ public class StAXDocumentParser extends Decoder
throw new XMLStreamException(CommonResourceBundle.getInstance().getString("message.namespaceURINotMatch", new Object[]{namespaceURI}));
if(localName != null && !localName.equals(getLocalName()))
throw new XMLStreamException(CommonResourceBundle.getInstance().getString("message.localNameNotMatch", new Object[]{localName}));
return;
}
/** Reads the content of a text-only element. Precondition:
@ -551,7 +549,7 @@ public class StAXDocumentParser extends Decoder
CommonResourceBundle.getInstance().getString("message.mustBeOnSTARTELEMENT"), getLocation());
}
int eventType = getEventType();
StringBuffer content = new StringBuffer();
StringBuilder content = new StringBuilder();
while(eventType != END_ELEMENT ) {
if(eventType == CHARACTERS
|| eventType == CDATA
@ -1624,6 +1622,11 @@ public class StAXDocumentParser extends Decoder
? decodeIdentifyingNonEmptyStringOnFirstBit(_v.otherURI) : "";
String public_identifier = ((b & EncodingConstants.UNEXPANDED_ENTITY_PUBLIC_IDENTIFIER_FLAG) > 0)
? decodeIdentifyingNonEmptyStringOnFirstBit(_v.otherURI) : "";
if (logger.isLoggable(Level.FINEST)) {
logger.log(Level.FINEST, "processUnexpandedEntityReference: entity_reference_name={0} system_identifier={1}public_identifier={2}",
new Object[]{entity_reference_name, system_identifier, public_identifier});
}
}
protected final void processCIIEncodingAlgorithm(boolean addToTable) throws FastInfosetException, IOException {

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -187,14 +187,16 @@ public class StartElementEvent extends EventBase implements StartElement {
}
public String toString() {
String s = "<" + nameAsString();
final StringBuilder sb = new StringBuilder(64);
sb.append('<').append(nameAsString());
if(_attributes != null){
Iterator it = this.getAttributes();
Attribute attr = null;
while(it.hasNext()){
attr = (Attribute)it.next();
s = s + " " + attr.toString();
sb.append(' ').append(attr.toString());
}
}
@ -203,11 +205,11 @@ public class StartElementEvent extends EventBase implements StartElement {
Namespace attr = null;
while(it.hasNext()){
attr = (Namespace)it.next();
s = s + " " + attr.toString();
sb.append(' ').append(attr.toString());
}
}
s = s + ">";
return s;
sb.append('>');
return sb.toString();
}
/** Return this event as String

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -69,28 +69,53 @@ public class StAXOutputFactory extends XMLOutputFactory {
}
public XMLStreamWriter createXMLStreamWriter(Result result) throws XMLStreamException {
if(result instanceof StreamResult){
StreamResult streamResult = (StreamResult)result;
if( streamResult.getWriter() != null){
if (result instanceof StreamResult) {
StreamResult streamResult = (StreamResult) result;
if (streamResult.getWriter() != null) {
return createXMLStreamWriter(streamResult.getWriter());
}else if(streamResult.getOutputStream() != null ){
} else if (streamResult.getOutputStream() != null) {
return createXMLStreamWriter(streamResult.getOutputStream());
}else if(streamResult.getSystemId()!= null){
try{
FileWriter writer = new FileWriter(new File(streamResult.getSystemId()));
return createXMLStreamWriter(writer);
}catch(IOException ie){
} else if (streamResult.getSystemId() != null) {
FileWriter writer = null;
boolean isError = true;
try {
writer = new FileWriter(new File(streamResult.getSystemId()));
final XMLStreamWriter streamWriter = createXMLStreamWriter(writer);
isError = false;
return streamWriter;
} catch (IOException ie) {
throw new XMLStreamException(ie);
} finally {
if (isError && writer != null) {
try {
writer.close();
} catch (IOException ignored) {
}
}
}
}
}
else {
try{
} else {
FileWriter writer = null;
boolean isError = true;
try {
//xxx: should we be using FileOutputStream - nb.
FileWriter writer = new FileWriter(new File(result.getSystemId()));
return createXMLStreamWriter(writer);
}catch(IOException ie){
writer = new FileWriter(new File(result.getSystemId()));
final XMLStreamWriter streamWriter = createXMLStreamWriter(writer);
isError = false;
return streamWriter;
} catch (IOException ie) {
throw new XMLStreamException(ie);
} finally {
if (isError && writer != null) {
try {
writer.close();
} catch (IOException ignored) {
}
}
}
}
throw new java.lang.UnsupportedOperationException();

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -397,11 +397,27 @@ public class SAXEventSerializer extends DefaultHandler
public int compareTo(Object o) {
try {
return qName.compareTo(((AttributeValueHolder) o).qName);
}
catch (Exception e) {
} catch (Exception e) {
throw new RuntimeException(CommonResourceBundle.getInstance().getString("message.AttributeValueHolderExpected"));
}
}
@Override
public boolean equals(Object o) {
try {
return (o instanceof AttributeValueHolder) &&
qName.equals(((AttributeValueHolder) o).qName);
} catch (Exception e) {
throw new RuntimeException(CommonResourceBundle.getInstance().getString("message.AttributeValueHolderExpected"));
}
}
@Override
public int hashCode() {
int hash = 7;
hash = 97 * hash + (this.qName != null ? this.qName.hashCode() : 0);
return hash;
}
}
}

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -115,7 +115,7 @@ public abstract class TransformInputOutput {
String[] fileSplit = fileStr.split("/");
int diff;
for(diff = 0; diff<oldwdSplit.length & diff<fileSplit.length; diff++) {
for (diff = 0; diff < oldwdSplit.length && diff < fileSplit.length; diff++) {
if (!oldwdSplit[diff].equals(fileSplit[diff])) {
break;
}

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -103,8 +103,8 @@ final class DataHead {
}
void close() {
head = tail = null;
if (dataFile != null) {
head = tail = null;
dataFile.close();
}
}

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -78,20 +78,22 @@ final class MemoryData implements Data {
try {
String prefix = config.getTempFilePrefix();
String suffix = config.getTempFileSuffix();
File dir = config.getTempDir();
File tempFile = (dir == null)
? File.createTempFile(prefix, suffix)
: File.createTempFile(prefix, suffix, dir);
File tempFile = TempFiles.createTempFile(prefix, suffix, config.getTempDir());
// delete the temp file when VM exits as a last resort for file clean up
tempFile.deleteOnExit();
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.log(Level.FINE, "Created temp file = {0}", tempFile);
}
// delete the temp file when VM exits as a last resort for file clean up
tempFile.deleteOnExit();
if (LOGGER.isLoggable(Level.FINE)) {LOGGER.log(Level.FINE, "Created temp file = {0}", tempFile);}
dataHead.dataFile = new DataFile(tempFile);
} catch(IOException ioe) {
} catch (IOException ioe) {
throw new MIMEParsingException(ioe);
}
if (dataHead.head != null) {
for(Chunk c=dataHead.head; c != null; c=c.next) {
for (Chunk c = dataHead.head; c != null; c = c.next) {
long pointer = c.data.writeTo(dataHead.dataFile);
c.data = new FileData(dataHead.dataFile, pointer, len);
}
@ -101,4 +103,5 @@ final class MemoryData implements Data {
return new MemoryData(buf, config);
}
}
}

@ -0,0 +1,144 @@
/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.sun.xml.internal.org.jvnet.mimepull;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Array;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Helper utility to support jdk <= jdk1.6. After jdk1.6 EOL reflection can be removed and API can be used directly.
*/
class TempFiles {
private static final Logger LOGGER = Logger.getLogger(TempFiles.class.getName());
private static final Class<?> CLASS_FILES;
private static final Class<?> CLASS_PATH;
private static final Class<?> CLASS_FILE_ATTRIBUTE;
private static final Class<?> CLASS_FILE_ATTRIBUTES;
private static final Method METHOD_FILE_TO_PATH;
private static final Method METHOD_FILES_CREATE_TEMP_FILE;
private static final Method METHOD_FILES_CREATE_TEMP_FILE_WITHPATH;
private static final Method METHOD_PATH_TO_FILE;
private static boolean useJdk6API;
static {
useJdk6API = isJdk6();
CLASS_FILES = safeGetClass("java.nio.file.Files");
CLASS_PATH = safeGetClass("java.nio.file.Path");
CLASS_FILE_ATTRIBUTE = safeGetClass("java.nio.file.attribute.FileAttribute");
CLASS_FILE_ATTRIBUTES = safeGetClass("[Ljava.nio.file.attribute.FileAttribute;");
METHOD_FILE_TO_PATH = safeGetMethod(File.class, "toPath");
METHOD_FILES_CREATE_TEMP_FILE = safeGetMethod(CLASS_FILES, "createTempFile", String.class, String.class, CLASS_FILE_ATTRIBUTES);
METHOD_FILES_CREATE_TEMP_FILE_WITHPATH = safeGetMethod(CLASS_FILES, "createTempFile", CLASS_PATH, String.class, String.class, CLASS_FILE_ATTRIBUTES);
METHOD_PATH_TO_FILE = safeGetMethod(CLASS_PATH, "toFile");
}
private static boolean isJdk6() {
String javaVersion = System.getProperty("java.version");
LOGGER.log(Level.FINEST, "Detected java version = {0}", javaVersion);
return javaVersion.startsWith("1.6.");
}
private static Class<?> safeGetClass(String className) {
// it is jdk 6 or something failed already before
if (useJdk6API) return null;
try {
return Class.forName(className);
} catch (ClassNotFoundException e) {
LOGGER.log(Level.SEVERE, "Exception cought", e);
LOGGER.log(Level.WARNING, "Class {0} not found. Temp files will be created using old java.io API.", className);
useJdk6API = true;
return null;
}
}
private static Method safeGetMethod(Class<?> clazz, String methodName, Class<?>... parameterTypes) {
// it is jdk 6 or something failed already before
if (useJdk6API) return null;
try {
return clazz.getMethod(methodName, parameterTypes);
} catch (NoSuchMethodException e) {
LOGGER.log(Level.SEVERE, "Exception cought", e);
LOGGER.log(Level.WARNING, "Method {0} not found. Temp files will be created using old java.io API.", methodName);
useJdk6API = true;
return null;
}
}
static Object toPath(File f) throws InvocationTargetException, IllegalAccessException {
return METHOD_FILE_TO_PATH.invoke(f);
}
static File toFile(Object path) throws InvocationTargetException, IllegalAccessException {
return (File) METHOD_PATH_TO_FILE.invoke(path);
}
static File createTempFile(String prefix, String suffix, File dir) throws IOException {
if (useJdk6API) {
LOGGER.log(Level.FINEST, "Jdk6 detected, temp file (prefix:{0}, suffix:{1}) being created using old java.io API.", new Object[]{prefix, suffix});
return File.createTempFile(prefix, suffix, dir);
} else {
try {
if (dir != null) {
Object path = toPath(dir);
LOGGER.log(Level.FINEST, "Temp file (path: {0}, prefix:{1}, suffix:{2}) being created using NIO API.", new Object[]{dir.getAbsolutePath(), prefix, suffix});
return toFile(METHOD_FILES_CREATE_TEMP_FILE_WITHPATH.invoke(null, path, prefix, suffix, Array.newInstance(CLASS_FILE_ATTRIBUTE, 0)));
} else {
LOGGER.log(Level.FINEST, "Temp file (prefix:{0}, suffix:{1}) being created using NIO API.", new Object[]{prefix, suffix});
return toFile(METHOD_FILES_CREATE_TEMP_FILE.invoke(null, prefix, suffix, Array.newInstance(CLASS_FILE_ATTRIBUTE, 0)));
}
} catch (IllegalAccessException e) {
LOGGER.log(Level.SEVERE, "Exception caught", e);
LOGGER.log(Level.WARNING, "Error invoking java.nio API, temp file (path: {0}, prefix:{1}, suffix:{2}) being created using old java.io API.",
new Object[]{dir != null ? dir.getAbsolutePath() : null, prefix, suffix});
return File.createTempFile(prefix, suffix, dir);
} catch (InvocationTargetException e) {
LOGGER.log(Level.SEVERE, "Exception caught", e);
LOGGER.log(Level.WARNING, "Error invoking java.nio API, temp file (path: {0}, prefix:{1}, suffix:{2}) being created using old java.io API.",
new Object[]{dir != null ? dir.getAbsolutePath() : null, prefix, suffix});
return File.createTempFile(prefix, suffix, dir);
}
}
}
}

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -52,18 +52,10 @@ public class DatabindingConfig {
protected Class contractClass;
protected Class endpointClass;
protected Set<Class> additionalValueTypes = new HashSet<Class>();
// protected Set<SchemaInfo> schemaInfo;
// protected MappingInfo defaultMappingInfo = new MappingInfo();
// protected MappingInfo overrideMappingInfo = new MappingInfo();
protected MappingInfo mappingInfo = new MappingInfo();
// protected Definition wsdl;
protected URL wsdlURL;
protected ClassLoader classLoader;
// protected QName serviceName;
// protected BindingID bindingId;
protected Iterable<WebServiceFeature> features;
//TODO WSBinding isn't it BindingID + features?
//On the EndpointFactory.createEndpoint path, WSBinding could be created from DeploymentDescriptorParser.createBinding
protected WSBinding wsBinding;
protected WSDLPort wsdlPort;
protected MetadataReader metadataReader;
@ -71,19 +63,6 @@ public class DatabindingConfig {
protected Source wsdlSource;
protected EntityResolver entityResolver;
// public MappingInfo getDefaultMappingInfo() {
// return defaultMappingInfo;
// }
// public void setDefaultMappingInfo(MappingInfo defaultMappingInfo) {
// this.defaultMappingInfo = defaultMappingInfo;
// }
// public MappingInfo getOverrideMappingInfo() {
// return overrideMappingInfo;
// }
// public void setOverrideMappingInfo(MappingInfo overrideMappingInfo) {
// this.overrideMappingInfo = overrideMappingInfo;
// }
public Class getContractClass() {
return contractClass;
}
@ -114,19 +93,8 @@ public class DatabindingConfig {
public void setClassLoader(ClassLoader classLoader) {
this.classLoader = classLoader;
}
// public QName getServiceName() {
// return serviceName;
// }
// public void setServiceName(QName serviceName) {
// this.serviceName = serviceName;
// }
// public BindingID getBindingId() {
// return bindingId;
// }
// public void setBindingId(BindingID bindingId) {
// this.bindingId = bindingId;
// }
public Iterable<WebServiceFeature> getFeatures() {
if (features == null && wsBinding != null) return wsBinding.getFeatures();
return features;
}
public void setFeatures(WebServiceFeature[] features) {

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -173,7 +173,13 @@ public class SAAJFactory {
* @throws SOAPException if SAAJ processing fails
*/
public static SAAJMessage read(Packet packet) throws SOAPException {
for (SAAJFactory s : ServiceFinder.find(SAAJFactory.class)) {
// Use the Component from the Packet if it exists. Note the logic
// in the ServiceFinder is such that find(Class) is not equivalent
// to find (Class, null), so the ternary operator is needed.
ServiceFinder<SAAJFactory> factories = (packet.component != null ?
ServiceFinder.find(SAAJFactory.class, packet.component) :
ServiceFinder.find(SAAJFactory.class));
for (SAAJFactory s : factories) {
SAAJMessage msg = s.readAsSAAJ(packet);
if (msg != null) return msg;
}

@ -1027,12 +1027,12 @@ public final class Fiber implements Runnable, Cancelable, ComponentRegistry {
}
try {
boolean needsToReenter = false;
boolean needsToReenter;
do {
// if interceptors are set, go through the interceptors.
if (ints == null) {
this.next = next;
if (__doRun(isRequireUnlock, ints)) {
if (__doRun(isRequireUnlock, null /*ints*/)) {
return true;
}
} else {
@ -1357,6 +1357,7 @@ public final class Fiber implements Runnable, Cancelable, ComponentRegistry {
*/
public static
@NotNull
@SuppressWarnings({"null", "ConstantConditions"})
Fiber current() {
Fiber fiber = CURRENT_FIBER.get();
if (fiber == null)

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -42,6 +42,7 @@ import java.io.OutputStream;
import java.io.StringWriter;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
@ -53,6 +54,7 @@ import java.util.logging.Logger;
*
* @author Kohsuke Kawaguchi
*/
@SuppressWarnings("StaticNonFinalUsedInInitialization")
public abstract class XMLStreamWriterFactory {
private static final Logger LOGGER = Logger.getLogger(XMLStreamWriterFactory.class.getName());
@ -80,8 +82,19 @@ public abstract class XMLStreamWriterFactory {
// this system property can be used to disable the pooling altogether,
// in case someone hits an issue with pooling in the production system.
if(!Boolean.getBoolean(XMLStreamWriterFactory.class.getName()+".noPool"))
f = Zephyr.newInstance(xof);
if (!Boolean.getBoolean(XMLStreamWriterFactory.class.getName()+".noPool")) {
try {
Class<?> clazz = xof.createXMLStreamWriter(new StringWriter()).getClass();
if (clazz.getName().startsWith("com.sun.xml.internal.stream.")) {
f = new Zephyr(xof,clazz);
}
} catch (XMLStreamException ex) {
Logger.getLogger(XMLStreamWriterFactory.class.getName()).log(Level.INFO, null, ex);
} catch (NoSuchMethodException ex) {
Logger.getLogger(XMLStreamWriterFactory.class.getName()).log(Level.INFO, null, ex);
}
}
if(f==null) {
// is this Woodstox?
if(xof.getClass().getName().equals("com.ctc.wstx.stax.WstxOutputFactory"))
@ -91,7 +104,9 @@ public abstract class XMLStreamWriterFactory {
f = new Default(xof);
theInstance = f;
LOGGER.fine("XMLStreamWriterFactory instance is = "+theInstance);
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.log(Level.FINE, "XMLStreamWriterFactory instance is = {0}", f);
}
}
/**
@ -165,6 +180,7 @@ public abstract class XMLStreamWriterFactory {
* @param f
* must not be null.
*/
@SuppressWarnings({"null", "ConstantConditions"})
public static void set(@NotNull XMLStreamWriterFactory f) {
if(f==null) throw new IllegalArgumentException();
theInstance = f;
@ -220,10 +236,12 @@ public abstract class XMLStreamWriterFactory {
this.xof = xof;
}
@Override
public XMLStreamWriter doCreate(OutputStream out) {
return doCreate(out,"UTF-8");
}
@Override
public synchronized XMLStreamWriter doCreate(OutputStream out, String encoding) {
try {
XMLStreamWriter writer = xof.createXMLStreamWriter(out,encoding);
@ -233,6 +251,7 @@ public abstract class XMLStreamWriterFactory {
}
}
@Override
public void doRecycle(XMLStreamWriter r) {
// no recycling
}
@ -284,10 +303,12 @@ public abstract class XMLStreamWriterFactory {
return sr;
}
@Override
public XMLStreamWriter doCreate(OutputStream out) {
return doCreate(out,"UTF-8");
}
@Override
public XMLStreamWriter doCreate(OutputStream out, String encoding) {
XMLStreamWriter xsw = fetch();
if(xsw!=null) {
@ -311,6 +332,7 @@ public abstract class XMLStreamWriterFactory {
return new HasEncodingWriter(xsw, encoding);
}
@Override
public void doRecycle(XMLStreamWriter r) {
if (r instanceof HasEncodingWriter) {
r = ((HasEncodingWriter)r).getWriter();
@ -340,10 +362,12 @@ public abstract class XMLStreamWriterFactory {
this.xof = xof;
}
@Override
public XMLStreamWriter doCreate(OutputStream out) {
return doCreate(out, SOAPBindingCodec.UTF8_ENCODING);
}
@Override
public XMLStreamWriter doCreate(OutputStream out, String encoding) {
try {
XMLStreamWriter writer = xof.createXMLStreamWriter(out,encoding);
@ -353,6 +377,7 @@ public abstract class XMLStreamWriterFactory {
}
}
@Override
public void doRecycle(XMLStreamWriter r) {
// no recycling
}
@ -367,6 +392,7 @@ public abstract class XMLStreamWriterFactory {
this.encoding = encoding;
}
@Override
public String getEncoding() {
return encoding;
}

@ -42,10 +42,13 @@ import javax.xml.bind.Unmarshaller;
import javax.xml.stream.XMLInputFactory;
import javax.xml.ws.WebServiceException;
import java.lang.reflect.Method;
import java.lang.reflect.ReflectPermission;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.security.*;
import java.util.PropertyPermission;
import java.util.logging.Level;
/**
@ -235,7 +238,7 @@ class MetroConfigLoader {
private static MetroConfig loadMetroConfig(@NotNull URL resourceUrl) {
MetroConfig result = null;
try {
JAXBContext jaxbContext = JAXBContext.newInstance(MetroConfig.class.getPackage().getName());
JAXBContext jaxbContext = createJAXBContext();
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
XMLInputFactory factory = XmlUtil.newXMLInputFactory(true);
final JAXBElement<MetroConfig> configElement = unmarshaller.unmarshal(factory.createXMLStreamReader(resourceUrl.openStream()), MetroConfig.class);
@ -246,6 +249,38 @@ class MetroConfigLoader {
return result;
}
private static JAXBContext createJAXBContext() throws Exception {
if (isJDKInternal()) {
// since jdk classes are repackaged, extra privilege is necessary to create JAXBContext
return AccessController.doPrivileged(
new PrivilegedExceptionAction<JAXBContext>() {
@Override
public JAXBContext run() throws Exception {
return JAXBContext.newInstance(MetroConfig.class.getPackage().getName());
}
}, createSecurityContext()
);
} else {
// usage from JAX-WS/Metro/Glassfish
return JAXBContext.newInstance(MetroConfig.class.getPackage().getName());
}
}
private static AccessControlContext createSecurityContext() {
PermissionCollection perms = new Permissions();
perms.add(new RuntimePermission("accessClassInPackage.com" + ".sun.xml.internal.ws.runtime.config")); // avoid repackaging
perms.add(new ReflectPermission("suppressAccessChecks"));
return new AccessControlContext(
new ProtectionDomain[]{
new ProtectionDomain(null, perms),
});
}
private static boolean isJDKInternal() {
// avoid "string repackaging"
return MetroConfigLoader.class.getName().startsWith("com." + "sun.xml.internal.ws");
}
private static class MetroConfigUrlLoader extends ResourceLoader {
Container container; // TODO remove the field together with the code path using it (see below)

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -45,11 +45,17 @@ final class TubeCreator {
private final String msgDumpPropertyBase;
TubeCreator(TubeFactoryConfig config, ClassLoader tubeFactoryClassLoader) {
String className = config.getClassName();
try {
Class<?> factoryClass = Class.forName(config.getClassName(), true, tubeFactoryClassLoader);
Class<?> factoryClass;
if (isJDKInternal(className)) {
factoryClass = Class.forName(className, true, null);
} else {
factoryClass = Class.forName(className, true, tubeFactoryClassLoader);
}
if (TubeFactory.class.isAssignableFrom(factoryClass)) {
@SuppressWarnings("unchecked")
// We can suppress "unchecked" warning here as we are checking for the correct type in the if statement above
@SuppressWarnings("unchecked")
Class<TubeFactory> typedClass = (Class<TubeFactory>) factoryClass;
this.factory = typedClass.newInstance();
this.msgDumpPropertyBase = this.factory.getClass().getName() + ".dump";
@ -57,11 +63,11 @@ final class TubeCreator {
throw new RuntimeException(TubelineassemblyMessages.MASM_0015_CLASS_DOES_NOT_IMPLEMENT_INTERFACE(factoryClass.getName(), TubeFactory.class.getName()));
}
} catch (InstantiationException ex) {
throw LOGGER.logSevereException(new RuntimeException(TubelineassemblyMessages.MASM_0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY(config.getClassName()), ex), true);
throw LOGGER.logSevereException(new RuntimeException(TubelineassemblyMessages.MASM_0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY(className), ex), true);
} catch (IllegalAccessException ex) {
throw LOGGER.logSevereException(new RuntimeException(TubelineassemblyMessages.MASM_0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY(config.getClassName()), ex), true);
throw LOGGER.logSevereException(new RuntimeException(TubelineassemblyMessages.MASM_0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY(className), ex), true);
} catch (ClassNotFoundException ex) {
throw LOGGER.logSevereException(new RuntimeException(TubelineassemblyMessages.MASM_0017_UNABLE_TO_LOAD_TUBE_FACTORY_CLASS(config.getClassName()), ex), true);
throw LOGGER.logSevereException(new RuntimeException(TubelineassemblyMessages.MASM_0017_UNABLE_TO_LOAD_TUBE_FACTORY_CLASS(className), ex), true);
}
}
@ -90,4 +96,10 @@ final class TubeCreator {
String getMessageDumpPropertyBase() {
return msgDumpPropertyBase;
}
private boolean isJDKInternal(String className) {
// avoid repackaging
return className.startsWith("com." + "sun.xml.internal.ws");
}
}

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -27,20 +27,12 @@ package com.sun.xml.internal.ws.client;
import com.sun.xml.internal.ws.api.server.Container;
import com.sun.xml.internal.ws.model.wsdl.WSDLServiceImpl;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import javax.xml.namespace.QName;
import com.sun.org.glassfish.external.amx.AMXGlassfish;
import com.sun.org.glassfish.gmbal.AMXMetadata;
import com.sun.org.glassfish.gmbal.Description;
import com.sun.org.glassfish.gmbal.InheritedAttribute;
import com.sun.org.glassfish.gmbal.InheritedAttributes;
import com.sun.org.glassfish.gmbal.ManagedAttribute;
import com.sun.org.glassfish.gmbal.ManagedData;
import com.sun.org.glassfish.gmbal.ManagedObject;
import com.sun.org.glassfish.gmbal.ManagedObjectManager;
import com.sun.org.glassfish.gmbal.ManagedObjectManagerFactory;
import java.net.URL;
/**

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -33,6 +33,8 @@ import com.sun.xml.internal.ws.binding.SOAPBindingImpl;
import com.sun.xml.internal.ws.binding.WebServiceFeatureList;
import com.sun.xml.internal.ws.model.SOAPSEIModel;
import javax.xml.ws.WebServiceFeature;
/**
* {@link PortInfo} that has {@link SEIModel}.
*
@ -46,27 +48,37 @@ import com.sun.xml.internal.ws.model.SOAPSEIModel;
* @author Kohsuke Kawaguchi
*/
public final class SEIPortInfo extends PortInfo {
public final Class sei;
/**
* Model of {@link #sei}.
*/
public final SOAPSEIModel model;
public SEIPortInfo(WSServiceDelegate owner, Class sei, SOAPSEIModel model, @NotNull WSDLPort portModel) {
super(owner,portModel);
super(owner, portModel);
this.sei = sei;
this.model = model;
assert sei!=null && model!=null;
assert sei != null && model != null;
}
@Override
public BindingImpl createBinding(WebServiceFeature[] webServiceFeatures, Class<?> portInterface) {
BindingImpl binding = super.createBinding(webServiceFeatures, portInterface);
return setKnownHeaders(binding);
}
public BindingImpl createBinding(WebServiceFeatureList webServiceFeatures, Class<?> portInterface) {
// not to pass in (BindingImpl) model.getWSBinding()
BindingImpl bindingImpl = super.createBinding(webServiceFeatures, portInterface, null);
if(bindingImpl instanceof SOAPBindingImpl) {
((SOAPBindingImpl)bindingImpl).setPortKnownHeaders(model.getKnownHeaders());
BindingImpl binding = super.createBinding(webServiceFeatures, portInterface, null);
return setKnownHeaders(binding);
}
private BindingImpl setKnownHeaders(BindingImpl binding) {
if (binding instanceof SOAPBindingImpl) {
((SOAPBindingImpl) binding).setPortKnownHeaders(model.getKnownHeaders());
}
//Not needed as set above in super.createBinding() call
//bindingImpl.setFeatures(webServiceFeatures);
return bindingImpl;
return binding;
}
}

@ -91,8 +91,7 @@ import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.*;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
@ -187,7 +186,7 @@ public class WSServiceDelegate extends WSService {
* Multiple {@link ServiceInterceptor}s are aggregated into one.
*/
/*package*/ final @NotNull ServiceInterceptor serviceInterceptor;
private URL wsdlURL;
public WSServiceDelegate(URL wsdlDocumentLocation, QName serviceName, Class<? extends Service> serviceClass, WebServiceFeature... features) {
this(wsdlDocumentLocation, serviceName, serviceClass, new WebServiceFeatureList(features));
@ -197,6 +196,7 @@ public class WSServiceDelegate extends WSService {
this(
wsdlDocumentLocation==null ? null : new StreamSource(wsdlDocumentLocation.toExternalForm()),
serviceName,serviceClass, features);
wsdlURL = wsdlDocumentLocation;
}
/**
@ -699,6 +699,39 @@ public class WSServiceDelegate extends WSService {
}
private <T> T createProxy(final Class<T> portInterface, final InvocationHandler pis) {
// When creating the proxy, use a ClassLoader that can load classes
// from both the interface class and also from this classes
// classloader. This is necessary when this code is used in systems
// such as OSGi where the class loader for the interface class may
// not be able to load internal JAX-WS classes like
// "WSBindingProvider", but the class loader for this class may not
// be able to load the interface class.
final ClassLoader loader = getDelegatingLoader(portInterface.getClassLoader(),
WSServiceDelegate.class.getClassLoader());
// accessClassInPackage privilege needs to be granted ...
RuntimePermission perm = new RuntimePermission("accessClassInPackage.com.sun." + "xml.internal.*");
PermissionCollection perms = perm.newPermissionCollection();
perms.add(perm);
return AccessController.doPrivileged(
new PrivilegedAction<T>() {
@Override
public T run() {
Object proxy = Proxy.newProxyInstance(loader,
new Class[]{portInterface, WSBindingProvider.class, Closeable.class}, pis);
return portInterface.cast(proxy);
}
},
new AccessControlContext(
new ProtectionDomain[]{
new ProtectionDomain(null, perms)
})
);
}
private WSDLServiceImpl getWSDLModelfromSEI(final Class sei) {
WebService ws = AccessController.doPrivileged(new PrivilegedAction<WebService>() {
public WebService run() {
@ -750,7 +783,7 @@ public class WSServiceDelegate extends WSService {
}
}
private <T> T createEndpointIFBaseProxy(@Nullable WSEndpointReference epr,QName portName, Class<T> portInterface,
private <T> T createEndpointIFBaseProxy(@Nullable WSEndpointReference epr, QName portName, Class<T> portInterface,
WebServiceFeatureList webServiceFeatures, SEIPortInfo eif) {
//fail if service doesnt have WSDL
if (wsdlService == null) {
@ -762,21 +795,11 @@ public class WSServiceDelegate extends WSService {
ClientMessages.INVALID_PORT_NAME(portName,buildWsdlPortNames()));
}
BindingImpl binding = eif.createBinding(webServiceFeatures,portInterface);
BindingImpl binding = eif.createBinding(webServiceFeatures, portInterface);
InvocationHandler pis = getStubHandler(binding, eif, epr);
// When creating the proxy, use a ClassLoader that can load classes
// from both the interface class and also from this classes
// classloader. This is necessary when this code is used in systems
// such as OSGi where the class loader for the interface class may
// not be able to load internal JAX-WS classes like
// "WSBindingProvider", but the class loader for this class may not
// be able to load the interface class.
ClassLoader loader =
getDelegatingLoader(portInterface.getClassLoader(),
WSServiceDelegate.class.getClassLoader());
T proxy = portInterface.cast(Proxy.newProxyInstance(loader,
new Class[]{portInterface, WSBindingProvider.class, Closeable.class}, pis));
T proxy = createProxy(portInterface, pis);
if (serviceInterceptor != null) {
serviceInterceptor.postCreateProxy((WSBindingProvider)proxy, portInterface);
}
@ -841,7 +864,7 @@ public class WSServiceDelegate extends WSService {
config.setFeatures(features);
config.setClassLoader(portInterface.getClassLoader());
config.getMappingInfo().setPortName(portName);
config.setWsdlURL(wsdlURL);
// if ExternalMetadataFeature present, ExternalMetadataReader will be created ...
config.setMetadataReader(getMetadadaReader(features, portInterface.getClassLoader()));

@ -386,8 +386,10 @@ public abstract class DispatchImpl<T> extends Stub implements Dispatch<T> {
endpoint = (String) requestContext.get(BindingProvider.ENDPOINT_ADDRESS_PROPERTY);
}
// This is existing before packetTakesPriorityOverRequestContext so leaving in place.
if (endpoint == null)
if (endpoint == null) {
if (message.endpointAddress == null) throw new WebServiceException(DispatchMessages.INVALID_NULLARG_URI());
endpoint = message.endpointAddress.toString();
}
String pathInfo = null;
String queryString = null;

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -88,7 +88,7 @@ public final class SEIStub extends Stub implements InvocationHandler {
// first fill in sychronized versions
for (JavaMethodImpl m : seiModel.getJavaMethods()) {
if (!m.getMEP().isAsync) {
SyncMethodHandler handler = new SyncMethodHandler(this, m.getMethod());
SyncMethodHandler handler = new SyncMethodHandler(this, m);
syncs.put(m.getOperation(), m);
methodHandlers.put(m.getMethod(), handler);
}

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -32,10 +32,13 @@ import com.sun.xml.internal.ws.client.RequestContext;
import com.sun.xml.internal.ws.client.ResponseContextReceiver;
import com.sun.xml.internal.ws.encoding.soap.DeserializationException;
import com.sun.xml.internal.ws.message.jaxb.JAXBMessage;
import com.sun.xml.internal.ws.model.JavaMethodImpl;
import com.sun.xml.internal.ws.resources.DispatchMessages;
import javax.xml.bind.JAXBException;
import javax.xml.stream.XMLStreamException;
import javax.xml.ws.Holder;
import javax.xml.ws.WebServiceException;
import java.lang.reflect.Method;
@ -60,18 +63,16 @@ import java.lang.reflect.Method;
* @author Kohsuke Kawaguchi
*/
final class SyncMethodHandler extends MethodHandler {
// private ResponseBuilder responseBuilder;
SyncMethodHandler(SEIStub owner, Method m) {
super(owner, m);
// responseBuilder = buildResponseBuilder(method, ValueSetterFactory.SYNC);
final boolean isVoid;
final boolean isOneway;
final JavaMethodImpl javaMethod;
SyncMethodHandler(SEIStub owner, JavaMethodImpl jm) {
super(owner, jm.getMethod());
javaMethod = jm;
isVoid = void.class.equals(jm.getMethod().getReturnType());
isOneway = jm.getMEP().isOneWay();
}
// SyncMethodHandler(SEIStub owner, JavaMethodImpl method) {
// super(owner, method);
// responseBuilder = buildResponseBuilder(method, ValueSetterFactory.SYNC);
// }
Object invoke(Object proxy, Object[] args) throws Throwable {
return invoke(proxy,args,owner.requestContext,owner);
}
@ -87,37 +88,32 @@ final class SyncMethodHandler extends MethodHandler {
*/
Object invoke(Object proxy, Object[] args, RequestContext rc, ResponseContextReceiver receiver) throws Throwable {
JavaCallInfo call = owner.databinding.createJavaCallInfo(method, args);
// Packet req = new Packet(createRequestMessage(args));
Packet req = (Packet) owner.databinding.serializeRequest(call);
// process the message
Packet reply = owner.doProcess(req,rc,receiver);
Message msg = reply.getMessage();
if(msg ==null)
// no reply. must have been one-way
if(msg == null) {
if (!isOneway || !isVoid) {
throw new WebServiceException(DispatchMessages.INVALID_RESPONSE());
}
return null;
}
try {
// return dbHandler.readResponse(reply, call).getReturnValue();
call = owner.databinding.deserializeResponse(reply, call);
if (call.getException() != null) {
throw call.getException();
} else {
return call.getReturnValue();
}
// if(msg.isFault()) {
// SOAPFaultBuilder faultBuilder = SOAPFaultBuilder.create(msg);
// throw faultBuilder.createException(checkedExceptions);
// } else {
// return responseBuilder.readResponse(msg,args);
// }
} catch (JAXBException e) {
throw new DeserializationException("failed.to.read.response",e);
throw new DeserializationException(DispatchMessages.INVALID_RESPONSE_DESERIALIZATION(), e);
} catch (XMLStreamException e) {
throw new DeserializationException("failed.to.read.response",e);
throw new DeserializationException(DispatchMessages.INVALID_RESPONSE_DESERIALIZATION(),e);
} finally {
if (reply.transportBackChannel != null)
reply.transportBackChannel.close();
if (reply.transportBackChannel != null)
reply.transportBackChannel.close();
}
}

@ -42,6 +42,7 @@ import org.xml.sax.EntityResolver;
import com.oracle.webservices.internal.api.databinding.Databinding;
import com.oracle.webservices.internal.api.databinding.Databinding.Builder;
import com.oracle.webservices.internal.api.databinding.WSDLGenerator;
import com.oracle.webservices.internal.api.databinding.DatabindingModeFeature;
import com.sun.xml.internal.ws.api.BindingID;
import com.sun.xml.internal.ws.api.WSBinding;
import com.sun.xml.internal.ws.api.databinding.DatabindingConfig;
@ -58,13 +59,10 @@ import com.sun.xml.internal.ws.util.ServiceFinder;
*/
public class DatabindingFactoryImpl extends DatabindingFactory {
// static final String WsRuntimeFactoryProperties = DatabindingProvider.class.getName() + ".properties";
static final String WsRuntimeFactoryDefaultImpl = "com.sun.xml.internal.ws.db.DatabindingProviderImpl";
protected Map<String, Object> properties = new HashMap<String, Object>();
protected DatabindingProvider defaultRuntimeFactory;
// protected Map<String, DatabindingProvider> runtimeFactories = new HashMap<String, DatabindingProvider>();
// protected Properties wsRuntimeFactoryMap;
protected List<DatabindingProvider> providers;
static private List<DatabindingProvider> providers() {
@ -97,11 +95,6 @@ public class DatabindingFactoryImpl extends DatabindingFactory {
if (p.isFor(mode))
provider = p;
} if (provider == null) {
// if (defaultRuntimeFactory == null) {
// defaultRuntimeFactory =
// newRuntimeFactory(WsRuntimeFactoryDefaultImpl);
// }
// provider = defaultRuntimeFactory;
provider = new DatabindingProviderImpl();
}
return provider;
@ -117,33 +110,14 @@ public class DatabindingFactoryImpl extends DatabindingFactory {
return provider.wsdlGen(config);
}
// DatabindingProvider newRuntimeFactory(String name) {
// ClassLoader classLoader = classLoader();
// DatabindingProvider factory = null;
// try {
// Class cls = (classLoader != null) ? classLoader.loadClass(name) : Class.forName(name);
// factory = DatabindingProvider.class.cast(cls.newInstance());
// } catch (Exception e) {
// throw new DatabindingException("Unknown DatabindingFactory: " + name, e);
// }
// factory.init(properties);
// return factory;
// }
String databindingMode(DatabindingConfig config) {
// if ( config.getOverrideMappingInfo() != null &&
// config.getOverrideMappingInfo().getDatabindingMode() != null)
// return config.getOverrideMappingInfo().getDatabindingMode();
// if ( config.getDefaultMappingInfo() != null &&
// config.getDefaultMappingInfo().getDatabindingMode() != null)
// return config.getDefaultMappingInfo().getDatabindingMode();
if ( config.getMappingInfo() != null &&
config.getMappingInfo().getDatabindingMode() != null)
return config.getMappingInfo().getDatabindingMode();
if ( config.getFeatures() != null) for (WebServiceFeature f : config.getFeatures()) {
if (f instanceof com.oracle.webservices.internal.api.databinding.DatabindingModeFeature) {
com.oracle.webservices.internal.api.databinding.DatabindingModeFeature dmf = (com.oracle.webservices.internal.api.databinding.DatabindingModeFeature) f;
if (f instanceof DatabindingModeFeature) {
DatabindingModeFeature dmf = (DatabindingModeFeature) f;
config.properties().putAll(dmf.getProperties());
return dmf.getMode();
}
}

@ -66,58 +66,77 @@ import com.sun.xml.internal.ws.wsdl.OperationDispatcher;
*
* @author shih-chang.chen@oracle.com
*/
public class DatabindingImpl implements Databinding {
public final class DatabindingImpl implements Databinding {
AbstractSEIModelImpl seiModel;
Map<Method, StubHandler> stubHandlers;
Map<Method, StubHandler> stubHandlers;
// QNameMap<TieHandler> wsdlOpMap = new QNameMap<TieHandler>();
Map<JavaMethodImpl, TieHandler> wsdlOpMap = new HashMap<JavaMethodImpl, TieHandler>();
Map<Method, TieHandler> tieHandlers = new HashMap<Method, TieHandler>();
Map<JavaMethodImpl, TieHandler> wsdlOpMap = new HashMap<JavaMethodImpl, TieHandler>();
Map<Method, TieHandler> tieHandlers = new HashMap<Method, TieHandler>();
OperationDispatcher operationDispatcher;
OperationDispatcher operationDispatcherNoWsdl;
boolean clientConfig = false;
Codec codec;
MessageContextFactory packetFactory = null;
public DatabindingImpl(DatabindingProviderImpl p, DatabindingConfig config) {
RuntimeModeler modeler = new RuntimeModeler(config);
modeler.setClassLoader(config.getClassLoader());
seiModel = modeler.buildRuntimeModel();
WSDLPort wsdlport = config.getWsdlPort();
packetFactory = new MessageContextFactory(seiModel.getWSBinding().getFeatures());
clientConfig = isClientConfig(config);
if ( clientConfig ) initStubHandlers();
seiModel.setDatabinding(this);
if (wsdlport != null) freeze(wsdlport);
if (operationDispatcher == null) operationDispatcherNoWsdl = new OperationDispatcher(null, seiModel.getWSBinding(), seiModel);
public DatabindingImpl(DatabindingProviderImpl p, DatabindingConfig config) {
RuntimeModeler modeler = new RuntimeModeler(config);
modeler.setClassLoader(config.getClassLoader());
seiModel = modeler.buildRuntimeModel();
WSDLPort wsdlport = config.getWsdlPort();
packetFactory = new MessageContextFactory(seiModel.getWSBinding().getFeatures());
clientConfig = isClientConfig(config);
if (clientConfig) {
initStubHandlers();
}
seiModel.setDatabinding(this);
if (wsdlport != null) {
freeze(wsdlport);
}
if (operationDispatcher == null) {
operationDispatcherNoWsdl = new OperationDispatcher(null, seiModel.getWSBinding(), seiModel);
}
// if(!clientConfig) {
for(JavaMethodImpl jm: seiModel.getJavaMethods()) if (!jm.isAsync()) {
TieHandler th = new TieHandler(jm, seiModel.getWSBinding(), packetFactory);
wsdlOpMap.put(jm, th);
tieHandlers.put(th.getMethod(), th);
for (JavaMethodImpl jm : seiModel.getJavaMethods()) {
if (!jm.isAsync()) {
TieHandler th = new TieHandler(jm, seiModel.getWSBinding(), packetFactory);
wsdlOpMap.put(jm, th);
tieHandlers.put(th.getMethod(), th);
}
}
// }
}
}
//TODO isClientConfig
private boolean isClientConfig(DatabindingConfig config) {
if (config.getContractClass() == null) return false;
if (!config.getContractClass().isInterface()) return false;
return (config.getEndpointClass() == null || config.getEndpointClass().isInterface());
//TODO isClientConfig
private boolean isClientConfig(DatabindingConfig config) {
if (config.getContractClass() == null) {
return false;
}
//TODO fix freeze
public synchronized void freeze(WSDLPort port) {
if (clientConfig) return;
if (operationDispatcher != null) return;
if (!config.getContractClass().isInterface()) {
return false;
}
return (config.getEndpointClass() == null || config.getEndpointClass().isInterface());
}
//TODO fix freeze
public void freeze(WSDLPort port) {
if (clientConfig) {
return;
}
synchronized(this) {
if (operationDispatcher == null) {
operationDispatcher = (port == null) ? null : new OperationDispatcher(port, seiModel.getWSBinding(), seiModel);
}
}
}
public SEIModel getModel() {
return seiModel;
}
public SEIModel getModel() {
return seiModel;
}
//Refactored from SEIStub
private void initStubHandlers() {
stubHandlers = new HashMap<Method, StubHandler>();
stubHandlers = new HashMap<Method, StubHandler>();
Map<ActionBasedOperationSignature, JavaMethodImpl> syncs = new HashMap<ActionBasedOperationSignature, JavaMethodImpl>();
// fill in methodHandlers.
// first fill in sychronized versions
@ -138,29 +157,33 @@ public class DatabindingImpl implements Databinding {
}
}
public JavaMethodImpl resolveJavaMethod(Packet req) throws DispatchException {
JavaMethodImpl resolveJavaMethod(Packet req) throws DispatchException {
WSDLOperationMapping m = req.getWSDLOperationMapping();
if (m == null) m = (operationDispatcher != null) ?
operationDispatcher.getWSDLOperationMapping(req):
operationDispatcherNoWsdl.getWSDLOperationMapping(req);
if (m == null) {
synchronized (this) {
m = (operationDispatcher != null)
? operationDispatcher.getWSDLOperationMapping(req)
: operationDispatcherNoWsdl.getWSDLOperationMapping(req);
}
}
return (JavaMethodImpl) m.getJavaMethod();
}
public JavaCallInfo deserializeRequest(Packet req) {
com.sun.xml.internal.ws.api.databinding.JavaCallInfo call = new com.sun.xml.internal.ws.api.databinding.JavaCallInfo();
try {
JavaMethodImpl wsdlOp = resolveJavaMethod(req);
TieHandler tie = wsdlOpMap.get(wsdlOp);
call.setMethod(tie.getMethod());
Object[] args = tie.readRequest(req.getMessage());
call.setParameters(args);
} catch (DispatchException e) {
call.setException(e);
}
return call;
public JavaCallInfo deserializeRequest(Packet req) {
com.sun.xml.internal.ws.api.databinding.JavaCallInfo call = new com.sun.xml.internal.ws.api.databinding.JavaCallInfo();
try {
JavaMethodImpl wsdlOp = resolveJavaMethod(req);
TieHandler tie = wsdlOpMap.get(wsdlOp);
call.setMethod(tie.getMethod());
Object[] args = tie.readRequest(req.getMessage());
call.setParameters(args);
} catch (DispatchException e) {
call.setException(e);
}
return call;
}
public JavaCallInfo deserializeResponse(Packet res, JavaCallInfo call) {
public JavaCallInfo deserializeResponse(Packet res, JavaCallInfo call) {
StubHandler stubHandler = stubHandlers.get(call.getMethod());
try {
return stubHandler.readResponse(res, call);
@ -168,86 +191,97 @@ public class DatabindingImpl implements Databinding {
call.setException(e);
return call;
}
}
}
public WebServiceFeature[] getFeatures() {
// TODO Auto-generated method stub
return null;
}
public WebServiceFeature[] getFeatures() {
// TODO Auto-generated method stub
return null;
}
public Packet serializeRequest(JavaCallInfo call) {
@Override
public Packet serializeRequest(JavaCallInfo call) {
StubHandler stubHandler = stubHandlers.get(call.getMethod());
Packet p = stubHandler.createRequestPacket(call);
p.setState(Packet.State.ClientRequest);
return p;
}
}
public Packet serializeResponse(JavaCallInfo call) {
Method method = call.getMethod();
Message message = null;
if (method != null) {
TieHandler th = tieHandlers.get(method);
if (th != null) {
return th.serializeResponse(call);
}
}
if (call.getException() instanceof DispatchException) {
message = ((DispatchException)call.getException()).fault;
}
Packet p = (Packet)packetFactory.createContext(message);
@Override
public Packet serializeResponse(JavaCallInfo call) {
Method method = call.getMethod();
Message message = null;
if (method != null) {
TieHandler th = tieHandlers.get(method);
if (th != null) {
return th.serializeResponse(call);
}
}
if (call.getException() instanceof DispatchException) {
message = ((DispatchException) call.getException()).fault;
}
Packet p = (Packet) packetFactory.createContext(message);
p.setState(Packet.State.ServerResponse);
return p;
}
}
public ClientCallBridge getClientBridge(Method method) {
return stubHandlers.get(method);
}
@Override
public ClientCallBridge getClientBridge(Method method) {
return stubHandlers.get(method);
}
public void generateWSDL(WSDLGenInfo info) {
com.sun.xml.internal.ws.wsdl.writer.WSDLGenerator wsdlGen = new com.sun.xml.internal.ws.wsdl.writer.WSDLGenerator(
seiModel,
info.getWsdlResolver(),
seiModel.getWSBinding(),
info.getContainer(), seiModel.getEndpointClass(),
info.isInlineSchemas(),
info.isSecureXmlProcessingDisabled(),
info.getExtensions());
@Override
public void generateWSDL(WSDLGenInfo info) {
com.sun.xml.internal.ws.wsdl.writer.WSDLGenerator wsdlGen = new com.sun.xml.internal.ws.wsdl.writer.WSDLGenerator(
seiModel,
info.getWsdlResolver(),
seiModel.getWSBinding(),
info.getContainer(), seiModel.getEndpointClass(),
info.isInlineSchemas(),
info.isSecureXmlProcessingDisabled(),
info.getExtensions());
wsdlGen.doGeneration();
}
}
public EndpointCallBridge getEndpointBridge(Packet req) throws DispatchException {
@Override
public EndpointCallBridge getEndpointBridge(Packet req) throws DispatchException {
JavaMethodImpl wsdlOp = resolveJavaMethod(req);
return wsdlOpMap.get(wsdlOp);
return wsdlOpMap.get(wsdlOp);
}
Codec getCodec() {
if (codec == null) {
codec = ((BindingImpl) seiModel.getWSBinding()).createCodec();
}
return codec;
}
Codec getCodec() {
if (codec == null) codec = ((BindingImpl)seiModel.getWSBinding()).createCodec();
return codec;
}
public ContentType encode( Packet packet, OutputStream out ) throws IOException {
@Override
public ContentType encode(Packet packet, OutputStream out) throws IOException {
return getCodec().encode(packet, out);
}
public void decode( InputStream in, String ct, Packet p ) throws IOException{
@Override
public void decode(InputStream in, String ct, Packet p) throws IOException {
getCodec().decode(in, ct, p);
}
@Override
public com.oracle.webservices.internal.api.databinding.JavaCallInfo createJavaCallInfo(Method method, Object[] args) {
return new com.sun.xml.internal.ws.api.databinding.JavaCallInfo(method, args);
}
@Override
public com.oracle.webservices.internal.api.databinding.JavaCallInfo deserializeResponse(
MessageContext message, com.oracle.webservices.internal.api.databinding.JavaCallInfo call) {
return deserializeResponse((Packet)message, (JavaCallInfo)call);
return deserializeResponse((Packet) message, (JavaCallInfo) call);
}
@Override
public com.oracle.webservices.internal.api.databinding.JavaCallInfo deserializeRequest(MessageContext message) {
return deserializeRequest((Packet)message);
return deserializeRequest((Packet) message);
}
@Override
public MessageContextFactory getMessageContextFactory() {
return packetFactory;
}

@ -81,8 +81,8 @@ import java.util.UUID;
public class MtomCodec extends MimeCodec {
public static final String XOP_XML_MIME_TYPE = "application/xop+xml";
private static final String XOP_LOCALNAME = "Include";
private static final String XOP_NAMESPACEURI = "http://www.w3.org/2004/08/xop/include";
public static final String XOP_LOCALNAME = "Include";
public static final String XOP_NAMESPACEURI = "http://www.w3.org/2004/08/xop/include";
private final StreamSOAPCodec codec;
private final MTOMFeature mtomFeature;
@ -171,8 +171,10 @@ public class MtomCodec extends MimeCodec {
bos.write(out);
}
//now write out the attachments in the message
writeAttachments(packet.getMessage().getAttachments(),out, boundary);
// now write out the attachments in the message that weren't
// previously written
writeNonMtomAttachments(packet.getMessage().getAttachments(),
out, boundary);
//write out the end boundary
writeAsAscii("--"+boundary, out);
@ -204,7 +206,13 @@ public class MtomCodec extends MimeCodec {
ByteArrayBuffer(@NotNull DataHandler dh, String b) {
this.dh = dh;
this.contentId = encodeCid();
String cid = null;
if (dh instanceof StreamingDataHandler) {
StreamingDataHandler sdh = (StreamingDataHandler) dh;
if (sdh.getHrefCid() != null)
cid = sdh.getHrefCid();
}
this.contentId = cid != null ? cid : encodeCid();
boundary = b;
}
@ -227,13 +235,27 @@ public class MtomCodec extends MimeCodec {
writeln(out);
}
private void writeAttachments(AttachmentSet attachments, OutputStream out, String boundary) throws IOException {
for(Attachment att : attachments){
//build attachment frame
writeln("--"+boundary, out);
// Compiler warning for not calling close, but cannot call close,
// will consume attachment bytes.
@SuppressWarnings("resource")
private void writeNonMtomAttachments(AttachmentSet attachments,
OutputStream out, String boundary) throws IOException {
for (Attachment att : attachments) {
DataHandler dh = att.asDataHandler();
if (dh instanceof StreamingDataHandler) {
StreamingDataHandler sdh = (StreamingDataHandler) dh;
// If DataHandler has href Content-ID, it is MTOM, so skip.
if (sdh.getHrefCid() != null)
continue;
}
// build attachment frame
writeln("--" + boundary, out);
writeMimeHeaders(att.getContentType(), att.getContentId(), out);
att.writeTo(out);
writeln(out); // write \r\n
writeln(out); // write \r\n
}
}

@ -104,7 +104,9 @@ public class StreamMessage extends AbstractMessageImpl {
* If the creater of this object didn't care about those,
* we use stock values.
*/
private @NotNull TagInfoset envelopeTag,headerTag,bodyTag;
private @NotNull TagInfoset envelopeTag;
private @NotNull TagInfoset headerTag;
private @NotNull TagInfoset bodyTag;
/**
* Used only for debugging. This records where the message was consumed.
@ -203,8 +205,7 @@ public class StreamMessage extends AbstractMessageImpl {
throw new IllegalArgumentException("BodyTag TagInfoset cannot be null");
}
this.envelopeTag = envelopeTag;
this.headerTag = headerTag!=null ? headerTag :
new TagInfoset(envelopeTag.nsUri,"Header",envelopeTag.prefix,EMPTY_ATTS);
this.headerTag = headerTag;
this.bodyTag = bodyTag;
this.bodyPrologue = bodyPrologue;
this.bodyEpilogue = bodyEpilogue;
@ -391,10 +392,13 @@ public class StreamMessage extends AbstractMessageImpl {
//write headers
MessageHeaders hl = getHeaders();
if(hl.hasHeaders()){
if (hl.hasHeaders() && headerTag == null) headerTag = new TagInfoset(envelopeTag.nsUri,"Header",envelopeTag.prefix,EMPTY_ATTS);
if (headerTag != null) {
headerTag.writeStart(writer);
for(Header h : hl.asList()){
h.writeTo(writer);
if (hl.hasHeaders()){
for(Header h : hl.asList()){
h.writeTo(writer);
}
}
writer.writeEndElement();
}
@ -527,15 +531,18 @@ public class StreamMessage extends AbstractMessageImpl {
contentHandler.setDocumentLocator(NULL_LOCATOR);
contentHandler.startDocument();
envelopeTag.writeStart(contentHandler);
headerTag.writeStart(contentHandler);
if(hasHeaders()) {
MessageHeaders headers = getHeaders();
for (Header h : headers.asList()) {
// shouldn't JDK be smart enough to use array-style indexing for this foreach!?
h.writeTo(contentHandler,errorHandler);
if (hasHeaders() && headerTag == null) headerTag = new TagInfoset(envelopeTag.nsUri,"Header",envelopeTag.prefix,EMPTY_ATTS);
if (headerTag != null) {
headerTag.writeStart(contentHandler);
if (hasHeaders()) {
MessageHeaders headers = getHeaders();
for (Header h : headers.asList()) {
// shouldn't JDK be smart enough to use array-style indexing for this foreach!?
h.writeTo(contentHandler,errorHandler);
}
}
headerTag.writeEnd(contentHandler);
}
headerTag.writeEnd(contentHandler);
bodyTag.writeStart(contentHandler);
writePayloadTo(contentHandler,errorHandler, true);
bodyTag.writeEnd(contentHandler);

@ -210,20 +210,10 @@ public class RuntimeModeler {
private <T extends Annotation> T getAnnotation(final Class<?> clazz, final Class<T> T) {
return metadataReader.getAnnotation(T, clazz);
// return AccessController.doPrivileged(new PrivilegedAction<T>() {
// public T run() {
// return clazz.getAnnotation(T);
// }
// });
}
private <T extends Annotation> T getAnnotation(final Method method, final Class<T> T) {
return metadataReader.getAnnotation(T, method);
// return AccessController.doPrivileged(new PrivilegedAction<T>() {
// public T run() {
// return method.getAnnotation(T);
// }
// });
}
private Annotation[] getAnnotations(final Method method) {
@ -235,11 +225,6 @@ public class RuntimeModeler {
}
private Annotation[][] getParamAnnotations(final Method method) {
return metadataReader.getParameterAnnotations(method);
// return AccessController.doPrivileged(new PrivilegedAction<Annotation[][]>() {
// public Annotation[][] run() {
// return method.getParameterAnnotations();
// }
// });
}
private static final Logger logger =
@ -258,6 +243,7 @@ public class RuntimeModeler {
model.endpointClass = config.getEndpointClass();
model.classLoader = this.classLoader;
model.wsBinding = wsBinding;
model.databindingInfo.setWsdlURL(config.getWsdlURL());
model.databindingInfo.properties().putAll(config.properties());
if (model.contractClass == null) model.contractClass = portClass;
if (model.endpointClass == null && !portClass.isInterface()) model.endpointClass = portClass;
@ -476,11 +462,12 @@ public class RuntimeModeler {
for (Method method : clazz.getMethods()) {
if (!clazz.isInterface()) { // if clazz is SEI, then all methods are web methods
if (method.getDeclaringClass() == Object.class) continue;
if (!getBooleanSystemProperty("com.sun.xml.internal.ws.legacyWebMethod")) { // legacy webMethod computation behaviour to be used
if (!isWebMethodBySpec(method, clazz))
continue;
} else {
if (method.getDeclaringClass() == Object.class || !isWebMethod(method))
if (!isWebMethod(method))
continue;
}
}

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -69,10 +69,12 @@ public class WrapperBeanGenerator {
super(annReader, nav, beanMemberFactory);
}
@Override
protected java.lang.reflect.Type getSafeType(java.lang.reflect.Type type) {
return type;
}
@Override
protected java.lang.reflect.Type getHolderValueType(java.lang.reflect.Type paramType) {
if (paramType instanceof ParameterizedType) {
ParameterizedType p = (ParameterizedType)paramType;
@ -83,6 +85,7 @@ public class WrapperBeanGenerator {
return null;
}
@Override
protected boolean isVoidType(java.lang.reflect.Type type) {
return type == Void.TYPE;
}
@ -90,6 +93,7 @@ public class WrapperBeanGenerator {
}
private static final class FieldFactory implements BeanMemberFactory<java.lang.reflect.Type, Field> {
@Override
public Field createWrapperBeanMember(java.lang.reflect.Type paramType,
String paramName, List<Annotation> jaxb) {
return new Field(paramName, paramType, getASMType(paramType), jaxb);
@ -257,7 +261,9 @@ public class WrapperBeanGenerator {
static Class createRequestWrapperBean(String className, Method method, QName reqElemName, ClassLoader cl) {
LOGGER.log(Level.FINE, "Request Wrapper Class : {0}", className);
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.log(Level.FINE, "Request Wrapper Class : {0}", className);
}
List<Field> requestMembers = RUNTIME_GENERATOR.collectRequestBeanMembers(
method);
@ -276,7 +282,9 @@ public class WrapperBeanGenerator {
static Class createResponseWrapperBean(String className, Method method, QName resElemName, ClassLoader cl) {
LOGGER.log(Level.FINE, "Response Wrapper Class : {0}", className);
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.log(Level.FINE, "Response Wrapper Class : {0}", className);
}
List<Field> responseMembers = RUNTIME_GENERATOR.collectResponseBeanMembers(method);
@ -346,6 +354,9 @@ public class WrapperBeanGenerator {
return Injector.inject(cl, className, image);
}
/**
* Note: this class has a natural ordering that is inconsistent with equals.
*/
private static class Field implements Comparable<Field> {
private final java.lang.reflect.Type reflectType;
private final Type asmType;
@ -370,10 +381,10 @@ public class WrapperBeanGenerator {
return FieldSignature.vms(reflectType);
}
@Override
public int compareTo(Field o) {
return fieldName.compareTo(o.fieldName);
}
}
static void write(byte[] b, String className) {
@ -384,8 +395,7 @@ public class WrapperBeanGenerator {
fo.flush();
fo.close();
} catch (java.io.IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
LOGGER.log(Level.INFO, "Error Writing class", e);
}
}

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -63,7 +63,6 @@ public final class WSDLBoundOperationImpl extends AbstractExtensibleImpl impleme
private final Map<String, WSDLPartImpl> inParts;
private final Map<String, WSDLPartImpl> outParts;
private final Map<String, WSDLPartImpl> fltParts;
private final List<WSDLBoundFaultImpl> wsdlBoundFaults;
private WSDLOperationImpl operation;
private String soapAction;
@ -86,15 +85,16 @@ public final class WSDLBoundOperationImpl extends AbstractExtensibleImpl impleme
faultMimeTypes = new HashMap<String, String>();
inParts = new HashMap<String, WSDLPartImpl>();
outParts = new HashMap<String, WSDLPartImpl>();
fltParts = new HashMap<String, WSDLPartImpl>();
wsdlBoundFaults = new ArrayList<WSDLBoundFaultImpl>();
this.owner = owner;
}
@Override
public QName getName(){
return name;
}
@Override
public String getSOAPAction() {
return soapAction;
}
@ -103,6 +103,7 @@ public final class WSDLBoundOperationImpl extends AbstractExtensibleImpl impleme
this.soapAction = soapAction!=null?soapAction:"";
}
@Override
public WSDLPartImpl getPart(String partName, Mode mode) {
if(mode==Mode.IN){
return inParts.get(partName);
@ -147,15 +148,18 @@ public final class WSDLBoundOperationImpl extends AbstractExtensibleImpl impleme
}
// TODO: what's the difference between this and inputParts/outputParts?
@Override
public Map<String,WSDLPart> getInParts() {
return Collections.<String,WSDLPart>unmodifiableMap(inParts);
}
@Override
public Map<String,WSDLPart> getOutParts() {
return Collections.<String,WSDLPart>unmodifiableMap(outParts);
}
@NotNull
@Override
public List<WSDLBoundFaultImpl> getFaults() {
return wsdlBoundFaults;
}
@ -291,11 +295,13 @@ public final class WSDLBoundOperationImpl extends AbstractExtensibleImpl impleme
return faultMimeTypes.get(part);
}
@Override
public WSDLOperationImpl getOperation() {
return operation;
}
@Override
public WSDLBoundPortType getBoundPortType() {
return owner;
}
@ -317,6 +323,7 @@ public final class WSDLBoundOperationImpl extends AbstractExtensibleImpl impleme
this.style = style;
}
@Override
public @Nullable QName getReqPayloadName() {
if (emptyRequestPayload)
return null;
@ -346,6 +353,7 @@ public final class WSDLBoundOperationImpl extends AbstractExtensibleImpl impleme
return null;
}
@Override
public @Nullable QName getResPayloadName() {
if (emptyResponsePayload)
return null;
@ -385,6 +393,7 @@ public final class WSDLBoundOperationImpl extends AbstractExtensibleImpl impleme
* @return non-null for rpclit and null for doclit
* @see RuntimeModeler#processRpcMethod(JavaMethodImpl, String, String, Method)
*/
@Override
public String getRequestNamespace(){
return (reqNamespace != null)?reqNamespace:name.getNamespaceURI();
}
@ -400,6 +409,7 @@ public final class WSDLBoundOperationImpl extends AbstractExtensibleImpl impleme
* @return non-null for rpclit and null for doclit
* @see RuntimeModeler#processRpcMethod(JavaMethodImpl, String, String, Method)
*/
@Override
public String getResponseNamespace(){
return (respNamespace!=null)?respNamespace:name.getNamespaceURI();
}
@ -433,6 +443,7 @@ public final class WSDLBoundOperationImpl extends AbstractExtensibleImpl impleme
/**
* @inheritDoc
*/
@Override
public ANONYMOUS getAnonymous() {
return anonymous;
}

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -34,9 +34,7 @@ import com.sun.xml.internal.ws.util.QNameMap;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Implementaiton of {@link WSDLOperation}

@ -51,6 +51,18 @@ public final class DispatchMessages {
return localizer.localize(localizableINVALID_NULLARG_XMLHTTP_REQUEST_METHOD(arg0, arg1));
}
public static Localizable localizableINVALID_NULLARG_URI() {
return messageFactory.getMessage("invalid.nullarg.uri");
}
/**
* Endpoint address URI is not allowed with a null argument
*
*/
public static String INVALID_NULLARG_URI() {
return localizer.localize(localizableINVALID_NULLARG_URI());
}
public static Localizable localizableINVALID_SOAPMESSAGE_DISPATCH_MSGMODE(Object arg0, Object arg1) {
return messageFactory.getMessage("invalid.soapmessage.dispatch.msgmode", arg0, arg1);
}

@ -1,5 +1,5 @@
#
# Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@ -26,6 +26,7 @@
invalid.nullarg.soap.msgmode=SOAP/HTTP Binding in {0} is not allowed with a null invocation argument. Must be: {1}
# {0}, {1} - one of: POST, GET, DELETE PUT e.g.: A XML/HTTP request using MessageContext.HTTP_REQUEST_METHOD equals POST with a Null invocation Argument is not allowed. Must be: GET
invalid.nullarg.xmlhttp.request.method=A XML/HTTP request using MessageContext.HTTP_REQUEST_METHOD equals {0} with a Null invocation Argument is not allowed. Must be: {1}
invalid.nullarg.uri=Endpoint address URI is not allowed with a null argument
invalid.response=No response returned.
invalid.response.deserialization=Failed to deserialize the response.
# {0} - "PAYLOAD", {1} - "MESSAGE"

@ -265,7 +265,7 @@ public class EndpointFactory {
terminal = createProviderInvokerTube(implType, binding, invoker, container);
} else {
// Create runtime model for non Provider endpoints
seiModel = createSEIModel(wsdlPort, implType, serviceName, portName, binding);
seiModel = createSEIModel(wsdlPort, implType, serviceName, portName, binding, primaryDoc);
if(binding instanceof SOAPBindingImpl){
//set portKnownHeaders on Binding, so that they can be used for MU processing
((SOAPBindingImpl)binding).setPortKnownHeaders(
@ -436,37 +436,17 @@ public class EndpointFactory {
private static AbstractSEIModelImpl createSEIModel(WSDLPort wsdlPort,
Class<?> implType, @NotNull QName serviceName, @NotNull QName portName, WSBinding binding) {
// RuntimeModeler rap;
// // Create runtime model for non Provider endpoints
//
// // wsdlPort will be null, means we will generate WSDL. Hence no need to apply
// // bindings or need to look in the WSDL
// if(wsdlPort == null){
// rap = new RuntimeModeler(implType,serviceName, binding.getBindingId(), binding.getFeatures().toArray());
// } else {
// /*
// This not needed anymore as wsdlFeatures are merged later anyway
// and so is the MTOMFeature.
// applyEffectiveMtomSetting(wsdlPort.getBinding(), binding);
// */
// //now we got the Binding so lets build the model
// rap = new RuntimeModeler(implType, serviceName, (WSDLPortImpl)wsdlPort, binding.getFeatures().toArray());
// }
// rap.setClassLoader(implType.getClassLoader());
// rap.setPortName(portName);
// return rap.buildRuntimeModel();
Class<?> implType, @NotNull QName serviceName, @NotNull QName portName, WSBinding binding,
SDDocumentSource primaryWsdl) {
DatabindingFactory fac = DatabindingFactory.newInstance();
DatabindingConfig config = new DatabindingConfig();
config.setEndpointClass(implType);
config.getMappingInfo().setServiceName(serviceName);
config.setWsdlPort(wsdlPort);
config.setWSBinding(binding);
// config.setFeatures(binding.getFeatures().toArray());
// config.getMappingInfo().setBindingID(binding.getBindingId());
config.setClassLoader(implType.getClassLoader());
config.getMappingInfo().setPortName(portName);
if (primaryWsdl != null) config.setWsdlURL(primaryWsdl.getSystemId());
config.setMetadataReader(getExternalMetadatReader(implType, binding));
com.sun.xml.internal.ws.db.DatabindingImpl rt = (com.sun.xml.internal.ws.db.DatabindingImpl)fac.createRuntime(config);

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -25,6 +25,7 @@
package com.sun.xml.internal.ws.spi.db;
import java.net.URL;
import java.util.Collection;
import java.util.Map;
@ -47,6 +48,7 @@ public class BindingInfo {
protected ClassLoader classLoader;
private SEIModel seiModel;
private URL wsdlURL;
public String getDatabindingMode() {
return databindingMode;
@ -87,5 +89,10 @@ public class BindingInfo {
public void setClassLoader(ClassLoader classLoader) {
this.classLoader = classLoader;
}
public URL getWsdlURL() {
return wsdlURL;
}
public void setWsdlURL(URL wsdlURL) {
this.wsdlURL = wsdlURL;
}
}

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -43,6 +43,7 @@ import java.util.List;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.namespace.QName;
/**
@ -87,12 +88,19 @@ public class JAXBWrapperAccessor extends WrapperAccessor {
}
HashSet<String> elementLocalNames = new HashSet<String>();
for (Field field : getAllFields(contentClass)) {
XmlElementWrapper xmlElemWrapper = field.getAnnotation(XmlElementWrapper.class);
XmlElement xmlElem = field.getAnnotation(XmlElement.class);
XmlElementRef xmlElemRef = field.getAnnotation(XmlElementRef.class);
String fieldName = field.getName().toLowerCase();
String namespace = "";
String localName = field.getName();
if (xmlElem != null) {
if (xmlElemWrapper != null) {
namespace = xmlElemWrapper.namespace();
if (xmlElemWrapper.name() != null && !xmlElemWrapper.name().equals("")
&& !xmlElemWrapper.name().equals("##default")) {
localName = xmlElemWrapper.name();
}
}else if (xmlElem != null) {
namespace = xmlElem.namespace();
if (xmlElem.name() != null && !xmlElem.name().equals("")
&& !xmlElem.name().equals("##default")) {

@ -25,14 +25,34 @@
package com.sun.xml.internal.ws.transport.http;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.ws.Binding;
import javax.xml.ws.WebServiceException;
import javax.xml.ws.http.HTTPBinding;
import com.oracle.webservices.internal.api.message.PropertySet;
import com.sun.istack.internal.NotNull;
import com.sun.istack.internal.Nullable;
import com.sun.xml.internal.ws.api.SOAPVersion;
import com.sun.xml.internal.ws.api.addressing.NonAnonymousResponseProcessor;
import com.sun.xml.internal.ws.api.addressing.AddressingVersion;
import com.sun.xml.internal.ws.api.EndpointAddress;
import com.sun.xml.internal.ws.api.Component;
import com.sun.xml.internal.ws.api.EndpointAddress;
import com.sun.xml.internal.ws.api.SOAPVersion;
import com.sun.xml.internal.ws.api.addressing.AddressingVersion;
import com.sun.xml.internal.ws.api.addressing.NonAnonymousResponseProcessor;
import com.sun.xml.internal.ws.api.ha.HaInfo;
import com.sun.xml.internal.ws.api.message.ExceptionHasMessage;
import com.sun.xml.internal.ws.api.message.Message;
@ -56,29 +76,13 @@ import com.sun.xml.internal.ws.server.UnsupportedMediaException;
import com.sun.xml.internal.ws.util.ByteArrayBuffer;
import com.sun.xml.internal.ws.util.Pool;
import javax.xml.ws.Binding;
import javax.xml.ws.WebServiceException;
import javax.xml.ws.http.HTTPBinding;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.util.*;
import java.util.Map.Entry;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* {@link Adapter} that receives messages in HTTP.
* {@link com.sun.xml.internal.ws.api.server.Adapter} that receives messages in HTTP.
*
* <p>
* This object also assigns unique query string (such as "xsd=1") to
* each {@link SDDocument} so that they can be served by HTTP GET requests.
* each {@link com.sun.xml.internal.ws.api.server.SDDocument} so that they can be served by HTTP GET requests.
*
* @author Kohsuke Kawaguchi
* @author Jitendra Kotamraju
@ -86,10 +90,10 @@ import java.util.logging.Logger;
public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
/**
* {@link SDDocument}s keyed by the query string like "?abc".
* {@link com.sun.xml.internal.ws.api.server.SDDocument}s keyed by the query string like "?abc".
* Used for serving documents via HTTP GET.
*
* Empty if the endpoint doesn't have {@link ServiceDefinition}.
* Empty if the endpoint doesn't have {@link com.sun.xml.internal.ws.api.server.ServiceDefinition}.
* Read-only.
*/
protected Map<String,SDDocument> wsdls;
@ -109,7 +113,7 @@ public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
public final HttpAdapterList<? extends HttpAdapter> owner;
/**
* Servlet URL pattern with which this {@link HttpAdapter} is associated.
* Servlet URL pattern with which this {@link com.sun.xml.internal.ws.transport.http.HttpAdapter} is associated.
*/
public final String urlPattern;
@ -118,10 +122,10 @@ public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
protected boolean disableJreplicaCookie = false;
/**
* Creates a lone {@link HttpAdapter} that does not know of any other
* {@link HttpAdapter}s.
* Creates a lone {@link com.sun.xml.internal.ws.transport.http.HttpAdapter} that does not know of any other
* {@link com.sun.xml.internal.ws.transport.http.HttpAdapter}s.
*
* This is convenient for creating an {@link HttpAdapter} for an environment
* This is convenient for creating an {@link com.sun.xml.internal.ws.transport.http.HttpAdapter} for an environment
* where they don't know each other (such as JavaSE deployment.)
*
* @param endpoint web service endpoint
@ -137,11 +141,14 @@ public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
* @param endpoint web service endpoint
* @param owner list of related adapters
*/
protected HttpAdapter(WSEndpoint endpoint, HttpAdapterList<? extends HttpAdapter> owner) {
protected HttpAdapter(WSEndpoint endpoint,
HttpAdapterList<? extends HttpAdapter> owner) {
this(endpoint,owner,null);
}
protected HttpAdapter(WSEndpoint endpoint, HttpAdapterList<? extends HttpAdapter> owner, String urlPattern) {
protected HttpAdapter(WSEndpoint endpoint,
HttpAdapterList<? extends HttpAdapter> owner,
String urlPattern) {
super(endpoint);
this.owner = owner;
this.urlPattern = urlPattern;
@ -184,7 +191,7 @@ public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
int wsdlnum = 1;
int xsdnum = 1;
for (Map.Entry<String, SDDocument> e : systemIds.entrySet()) {
for (Entry<String, SDDocument> e : systemIds.entrySet()) {
SDDocument sdd = e.getValue();
if (sdd.isWSDL()) {
wsdls.put("wsdl="+(wsdlnum++),sdd);
@ -231,12 +238,12 @@ public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
* and "connection" here is an HTTP connection.
*
* <p>
* To populate a request {@link Packet} with more info,
* To populate a request {@link com.sun.xml.internal.ws.api.message.Packet} with more info,
* define {@link com.oracle.webservices.internal.api.message.PropertySet.Property properties} on
* {@link WSHTTPConnection}.
*
* @param connection to receive/send HTTP messages for web service endpoints
* @throws IOException when I/O errors happen
* @throws java.io.IOException when I/O errors happen
*/
public void handle(@NotNull WSHTTPConnection connection) throws IOException {
if (handleGet(connection)) {
@ -338,7 +345,7 @@ public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
/**
* Some stacks may send non WS-I BP 1.2 conforming SoapAction.
* Make sure SOAPAction is quoted as {@link Packet#soapAction} expects quoted soapAction value.
* Make sure SOAPAction is quoted as {@link com.sun.xml.internal.ws.api.message.Packet#soapAction} expects quoted soapAction value.
*
* @param soapAction SoapAction HTTP Header
* @return quoted SOAPAction value
@ -385,7 +392,7 @@ public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
private void encodePacket(@NotNull Packet packet, @NotNull WSHTTPConnection con, @NotNull Codec codec) throws IOException {
if (isNonAnonymousUri(packet.endpointAddress) && packet.getMessage() != null) {
try {
try {
// Message is targeted to non-anonymous response endpoint.
// After call to non-anonymous processor, typically, packet.getMessage() will be null
// however, processors could use this pattern to modify the response sent on the back-channel,
@ -413,9 +420,18 @@ public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
if (con.getStatus() == 0) {
con.setStatus(WSHTTPConnection.ONEWAY);
}
OutputStream os = con.getProtocol().contains("1.1") ? con.getOutput() : new Http10OutputStream(con);
if (dump || LOGGER.isLoggable(Level.FINER)) {
ByteArrayBuffer buf = new ByteArrayBuffer();
codec.encode(packet, buf);
dump(buf, "HTTP response " + con.getStatus(), con.getResponseHeaders());
buf.writeTo(os);
} else {
codec.encode(packet, os);
}
// close the response channel now
try {
con.getOutput().close(); // no payload
os.close(); // no payload
} catch (IOException e) {
throw new WebServiceException(e);
}
@ -430,10 +446,17 @@ public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
}
if (isClientErrorStatus(con.getStatus())) {
OutputStream os = con.getOutput();
writeClientError(con.getStatus(), os, packet);
os.close();
return;
OutputStream os = con.getOutput();
if (dump || LOGGER.isLoggable(Level.FINER)) {
ByteArrayBuffer buf = new ByteArrayBuffer();
writeClientError(con.getStatus(), buf, packet);
dump(buf, "HTTP response " + con.getStatus(), con.getResponseHeaders());
buf.writeTo(os);
} else {
writeClientError(con.getStatus(), os, packet);
}
os.close();
return;
}
ContentType contentType = codec.getStaticContentType(packet);
@ -634,6 +657,15 @@ public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
// no-op
}
if (dump || LOGGER.isLoggable(Level.FINER)) {
try {
ByteArrayBuffer buf = new ByteArrayBuffer();
dump(buf, "HTTP response " + con.getStatus(), con.getResponseHeaders());
} catch (Exception e) {
throw new WebServiceException(e.toString(), e);
}
}
if (output != null) {
try {
output.close(); // no payload
@ -671,7 +703,7 @@ public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
try {
packet = head.process(packet, con.getWebServiceContextDelegate(),
packet.transportBackChannel);
} catch(Exception e) {
} catch(Throwable e) {
LOGGER.log(Level.SEVERE, e.getMessage(), e);
if (!con.isClosed()) {
writeInternalServerError(con);
@ -682,6 +714,9 @@ public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
encodePacket(packet, con, codec);
} finally {
if (!con.isClosed()) {
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.log(Level.FINE, "Closing HTTP Connection with status: {0}", con.getStatus());
}
con.close();
}
}
@ -710,7 +745,7 @@ public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
* @param con
* The connection to which the data will be sent.
*
* @throws IOException when I/O errors happen
* @throws java.io.IOException when I/O errors happen
*/
public void publishWSDL(@NotNull WSHTTPConnection con) throws IOException {
con.getInput().close();
@ -800,7 +835,7 @@ public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> {
}
}
private void dump(ByteArrayBuffer buf, String caption, Map<String, List<String>> headers) throws IOException {
private static void dump(ByteArrayBuffer buf, String caption, Map<String, List<String>> headers) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintWriter pw = new PrintWriter(baos, true);
pw.println("---["+caption +"]---");

@ -23,7 +23,7 @@
# questions.
#
build-id=2.2.9-b13941
build-version=JAX-WS RI 2.2.9-b13941
build-id=2.2.9-b14027
build-version=JAX-WS RI 2.2.9-b14027
major-version=2.2.9
svn-revision=unknown
svn-revision=14027

@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -39,20 +39,17 @@ class FactoryFinder {
* or could not be instantiated
*/
private static Object newInstance(String className,
ClassLoader classLoader,
String defaultFactoryClass)
throws SOAPException
ClassLoader classLoader)
throws SOAPException
{
try {
Class spiClass = safeLoadClass(className, classLoader, defaultFactoryClass);
Class spiClass = safeLoadClass(className, classLoader);
return spiClass.newInstance();
} catch (ClassNotFoundException x) {
throw new SOAPException(
"Provider " + className + " not found", x);
throw new SOAPException("Provider " + className + " not found", x);
} catch (Exception x) {
throw new SOAPException(
"Provider " + className + " could not be instantiated: " + x,
x);
throw new SOAPException("Provider " + className + " could not be instantiated: " + x, x);
}
}
@ -70,7 +67,7 @@ class FactoryFinder {
* @exception SOAPException if there is a SOAP error
*/
static Object find(String factoryId)
throws SOAPException
throws SOAPException
{
return find(factoryId, null, false);
}
@ -85,7 +82,7 @@ class FactoryFinder {
* This method is package private so that this code can be shared.
*
* @return the <code>Class</code> object of the specified message factory;
* may not be <code>null</code>
* may be <code>null</code>
*
* @param factoryId the name of the factory to find, which is
* a system property
@ -96,7 +93,7 @@ class FactoryFinder {
* @exception SOAPException if there is a SOAP error
*/
static Object find(String factoryId, String fallbackClassName)
throws SOAPException
throws SOAPException
{
return find(factoryId, fallbackClassName, true);
}
@ -108,7 +105,7 @@ class FactoryFinder {
* is <code>true</code>. The arguments supplied must be used in order
* If using the first argument is successful, the second one will not
* be used. Note the default class name may be needed even if fallback
* is not to be attempted, so certain error condiitons can be handled.
* is not to be attempted, so certain error conditions can be handled.
* <P>
* This method is package private so that this code can be shared.
*
@ -126,7 +123,7 @@ class FactoryFinder {
* @exception SOAPException if there is a SOAP error
*/
static Object find(String factoryId, String defaultClassName,
boolean tryFallback) throws SOAPException {
boolean tryFallback) throws SOAPException {
ClassLoader classLoader;
try {
classLoader = Thread.currentThread().getContextClassLoader();
@ -137,9 +134,9 @@ class FactoryFinder {
// Use the system property first
try {
String systemProp =
System.getProperty( factoryId );
System.getProperty( factoryId );
if( systemProp!=null) {
return newInstance(systemProp, classLoader, defaultClassName);
return newInstance(systemProp, classLoader);
}
} catch (SecurityException se) {
}
@ -148,13 +145,13 @@ class FactoryFinder {
try {
String javah=System.getProperty( "java.home" );
String configFile = javah + File.separator +
"lib" + File.separator + "jaxm.properties";
"lib" + File.separator + "jaxm.properties";
File f=new File( configFile );
if( f.exists()) {
Properties props=new Properties();
props.load( new FileInputStream(f));
String factoryClassName = props.getProperty(factoryId);
return newInstance(factoryClassName, classLoader, defaultClassName);
return newInstance(factoryClassName, classLoader);
}
} catch(Exception ex ) {
}
@ -171,14 +168,14 @@ class FactoryFinder {
if( is!=null ) {
BufferedReader rd =
new BufferedReader(new InputStreamReader(is, "UTF-8"));
new BufferedReader(new InputStreamReader(is, "UTF-8"));
String factoryClassName = rd.readLine();
rd.close();
if (factoryClassName != null &&
! "".equals(factoryClassName)) {
return newInstance(factoryClassName, classLoader, defaultClassName);
! "".equals(factoryClassName)) {
return newInstance(factoryClassName, classLoader);
}
}
} catch( Exception ex ) {
@ -192,9 +189,9 @@ class FactoryFinder {
// (built in) factory if specified.
if (defaultClassName == null) {
throw new SOAPException(
"Provider for " + factoryId + " cannot be found", null);
"Provider for " + factoryId + " cannot be found", null);
}
return newInstance(defaultClassName, classLoader, defaultClassName);
return newInstance(defaultClassName, classLoader);
}
/**
@ -204,7 +201,7 @@ class FactoryFinder {
* Class.forName() on it so it will be loaded by the bootstrap class loader.
*/
private static Class safeLoadClass(String className,
ClassLoader classLoader, String defaultFactoryClass)
ClassLoader classLoader)
throws ClassNotFoundException {
try {
// make sure that the current thread has an access to the package of the given name.
@ -221,12 +218,19 @@ class FactoryFinder {
else
return classLoader.loadClass(className);
} catch (SecurityException se) {
// The FactoryFinder is in the bootstrap class loader, so
// the following should work, but we only attempt it
// if it the the default class.
if (className.equals(defaultFactoryClass))
// (only) default implementation can be loaded
// using bootstrap class loader:
if (isDefaultImplementation(className))
return Class.forName(className);
throw se;
}
}
private static boolean isDefaultImplementation(String className) {
return MessageFactory.DEFAULT_MESSAGE_FACTORY.equals(className) ||
SOAPFactory.DEFAULT_SOAP_FACTORY.equals(className) ||
SOAPConnectionFactory.DEFAULT_SOAP_CONNECTION_FACTORY.equals(className) ||
SAAJMetaFactory.DEFAULT_META_FACTORY_CLASS.equals(className);
}
}

@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -66,7 +66,7 @@ import java.io.InputStream;
*/
public abstract class MessageFactory {
static private final String DEFAULT_MESSAGE_FACTORY
static final String DEFAULT_MESSAGE_FACTORY
= "com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl";
static private final String MESSAGE_FACTORY_PROPERTY
@ -96,16 +96,22 @@ public abstract class MessageFactory {
* @see SAAJMetaFactory
*/
public static MessageFactory newInstance()
throws SOAPException {
public static MessageFactory newInstance() throws SOAPException {
try {
MessageFactory factory = (MessageFactory)
MessageFactory factory = (MessageFactory) FactoryFinder.find(
MESSAGE_FACTORY_PROPERTY,
DEFAULT_MESSAGE_FACTORY,
false);
FactoryFinder.find(MESSAGE_FACTORY_PROPERTY,
DEFAULT_MESSAGE_FACTORY, false);
if (factory != null)
if (factory != null) {
return factory;
}
return newInstance(SOAPConstants.SOAP_1_1_PROTOCOL);
} catch (Exception ex) {
throw new SOAPException(
"Unable to create message factory for SOAP: "

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -44,7 +44,7 @@ package javax.xml.soap;
public abstract class SAAJMetaFactory {
static private final String META_FACTORY_CLASS_PROPERTY =
"javax.xml.soap.MetaFactory";
static private final String DEFAULT_META_FACTORY_CLASS =
static final String DEFAULT_META_FACTORY_CLASS =
"com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl";
/**

@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -38,7 +38,7 @@ public abstract class SOAPConnectionFactory {
* A constant representing the default value for a <code>SOAPConnection</code>
* object. The default is the point-to-point SOAP connection.
*/
static private final String DEFAULT_SOAP_CONNECTION_FACTORY
static final String DEFAULT_SOAP_CONNECTION_FACTORY
= "com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnectionFactory";
/**

@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -54,11 +54,9 @@ public abstract class SOAPFactory {
"javax.xml.soap.SOAPFactory";
/**
* A constant representing the name of the default <code>SOAPFactory</code>
* factory class to be used if another cannot be found.
* a <code>SOAPFactory</code> implementation class.
* Class name of default <code>SOAPFactory</code> implementation.
*/
static private final String DEFAULT_SOAP_FACTORY
static final String DEFAULT_SOAP_FACTORY
= "com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl";
/**