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:
parent
064e98a35c
commit
55c80a7954
jaxws/src/share/jaxws_classes
com
oracle
webservices/internal
api
databinding
message
impl/encoding
xmlns/internal/webservices/jaxws_databinding
sun
tools/internal
jxc
MessageBundle.propertiesMessageBundle_de.propertiesMessageBundle_es.propertiesMessageBundle_fr.propertiesMessageBundle_it.propertiesMessageBundle_ja.propertiesMessageBundle_ko.propertiesMessageBundle_pt_BR.propertiesMessageBundle_zh_CN.propertiesMessageBundle_zh_TW.properties
gen/config
ws
xjc
xml/internal
bind/v2
fastinfoset
CommonResourceBundle.javaDecoder.java
algorithm
BASE64EncodingAlgorithm.javaBooleanEncodingAlgorithm.javaBuiltInEncodingAlgorithm.javaFloatEncodingAlgorithm.javaHexadecimalEncodingAlgorithm.java
dom
resources
sax
stax
tools
org/jvnet/mimepull
ws
api
databinding
message/saaj
pipe
streaming
assembler
client
db
encoding
message/stream
model
resources
server
spi/db
transport/http
util
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;
|
||||
|
1
jaxws/src/share/jaxws_classes/com/oracle/webservices/internal/impl/encoding/StreamDecoderImpl.java
1
jaxws/src/share/jaxws_classes/com/oracle/webservices/internal/impl/encoding/StreamDecoderImpl.java
@ -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) {
|
||||
|
2
jaxws/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/FloatEncodingAlgorithm.java
2
jaxws/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/FloatEncodingAlgorithm.java
@ -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?
|
||||
|
2
jaxws/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/resources/ResourceBundle.properties
2
jaxws/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/resources/ResourceBundle.properties
@ -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 {
|
||||
|
14
jaxws/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/stax/events/StartElementEvent.java
14
jaxws/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/stax/events/StartElementEvent.java
@ -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
|
||||
|
57
jaxws/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/stax/factory/StAXOutputFactory.java
57
jaxws/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/stax/factory/StAXOutputFactory.java
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
144
jaxws/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java
Normal file
144
jaxws/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java
Normal file
@ -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";
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user