diff --git a/Build/build/build.xml b/Build/build/build.xml index d10945debb2..62d6b83cf1c 100644 --- a/Build/build/build.xml +++ b/Build/build/build.xml @@ -178,6 +178,15 @@ + + + + + + + + + @@ -1389,7 +1398,7 @@ to add your own, add a target definition above and choose the correct group below --> - + diff --git a/Examples/ErJaxWS/README.txt b/Examples/ErJaxWS/README.txt new file mode 100644 index 00000000000..2a12abb94fc --- /dev/null +++ b/Examples/ErJaxWS/README.txt @@ -0,0 +1,30 @@ +The attached examples show how to use ERJaxWS to +provide SOAP services in your WOApplication + +1. WebService_Created + +shows you how to private a simple WebService from scratch +and how to register this with your WOApplication + + +2. WebService_Imported + +shows you how to provide a WebService implementing a generated +interface based on a given WSDL. +The wsdl had been imported using + +wsimport -s Sources -keep + + +3. WebService_Stateful + +shows you how to + - provide a WebService implementing a generated interface + based on a given WSDL, all generated stuff is in a jar file + and had been created using + + wsimport -clientjar Libraries/testservice.jar + + - provide and use a stateful WebService + + - use WebFaults, generated by throwing Exceptions \ No newline at end of file diff --git a/Examples/ErJaxWS/WebService_Created/.classpath b/Examples/ErJaxWS/WebService_Created/.classpath new file mode 100644 index 00000000000..a46d1af287a --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/.classpath @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Examples/ErJaxWS/WebService_Created/.project b/Examples/ErJaxWS/WebService_Created/.project new file mode 100644 index 00000000000..3a99f3475d2 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/.project @@ -0,0 +1,23 @@ + + + WebService_Created + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.objectstyle.wolips.incrementalbuilder + + + + + + org.eclipse.jdt.core.javanature + org.objectstyle.wolips.incrementalapplicationnature + + diff --git a/Examples/ErJaxWS/WebService_Created/.settings/org.eclipse.core.resources.prefs b/Examples/ErJaxWS/WebService_Created/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..c294b90fcbe --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/Components=UTF-8 diff --git a/Examples/ErJaxWS/WebService_Created/Components/Main.api b/Examples/ErJaxWS/WebService_Created/Components/Main.api new file mode 100644 index 00000000000..12535ad8d04 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/Components/Main.api @@ -0,0 +1,5 @@ + + + + + diff --git a/Examples/ErJaxWS/WebService_Created/Components/Main.wo/Main.html b/Examples/ErJaxWS/WebService_Created/Components/Main.wo/Main.html new file mode 100644 index 00000000000..7f43a9063da --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/Components/Main.wo/Main.html @@ -0,0 +1,9 @@ + + + + Untitled + + +Hello World + + diff --git a/Examples/ErJaxWS/WebService_Created/Components/Main.wo/Main.wod b/Examples/ErJaxWS/WebService_Created/Components/Main.wo/Main.wod new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Examples/ErJaxWS/WebService_Created/Components/Main.wo/Main.woo b/Examples/ErJaxWS/WebService_Created/Components/Main.wo/Main.woo new file mode 100644 index 00000000000..1f6e847c167 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/Components/Main.wo/Main.woo @@ -0,0 +1,4 @@ +{ + "WebObjects Release" = "WebObjects 5.0"; + encoding = "UTF-8"; +} \ No newline at end of file diff --git a/Examples/ErJaxWS/WebService_Created/Resources/Properties b/Examples/ErJaxWS/WebService_Created/Resources/Properties new file mode 100644 index 00000000000..7fac8817a35 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/Resources/Properties @@ -0,0 +1,68 @@ +# OGNL +ognl.helperFunctions=true +ognl.inlineBindings=true + +# Misc +er.extensions.stackTrace.cleanup=true + +# EOF +er.extensions.ERXEC.safeLocking=true +er.extensions.ERXEC.useSharedEditingContext=false +er.extensions.ERXEnterpriseObject.applyRestrictingQualifierOnInsert=true +er.extensions.ERXEnterpriseObject.updateInverseRelationships=true +#dbConnectURLGLOBAL= +#dbConnectUserGLOBAL= +#dbConnectPasswordGLOBAL= + +# Migrations +#er.migration.migrateAtStartup=true +#er.migration.createTablesIfNecessary=true +#er.migration.modelNames=YourModel + +# Misc Components +#er.extensions.ERXWOForm.multipleSubmitDefault=true +#er.extensions.ERXWORepetition.checkHashCodes=true +#er.extensions.ERXWORepetition.raiseOnUnmatchedObject=true +#er.extensions.ERXWORepetition.eoSupport=true +#er.component.clickToOpen=true +#wolips.password=wo + +# ERJavaMail +er.javamail.centralize=true +er.javamail.adminEmail=admin@yourhost.com +er.javamail.debugEnabled=false +er.javamail.smtpHost=your.smtpserver.com +er.javamail.smtpAuth=false +er.javamail.smtpUser= +er.javamail.smtpPassword= + +# Log4j Configuration +log4j.loggerFactory=er.extensions.logging.ERXLogger$Factory +log4j.rootCategory=INFO,A1 +log4j.appender.A1=er.extensions.logging.ERXConsoleAppender +log4j.appender.A1.layout=er.extensions.logging.ERXPatternLayout +log4j.appender.A1.layout.ConversionPattern=%d{MMM dd HH:mm:ss} %$[%#] %-5p %c %x - %m%n + +# Log4j Categories +# Here are a few log4j sub-categories that are interesting. +# Don't forget that in developement mode this file will get reloaded +# everytime it changes, so if you say want to turn adaptor debugging +# on in the middle of the app simply set the below category to debug. +# Very handy. +# Base Category +log4j.logger.er=INFO + +# ERExtensions +# Transaction - Switching this to debug will start the sql ouputting. +log4j.logger.er.transaction.adaptor.EOAdaptorDebugEnabled=DEBUG + +# Fixes - Turning this on will show all the models that are loaded +log4j.logger.er.extensions.fixes.ERSharedEOLoader=INFO + +er.extensions.ERXNSLogLog4jBridge=INFO +#log4j.logger.er.eo.ERXGenericRecord=DEBUG +#log4j.logger.er.validation.ERXEntityClassDescription=DEBUG +#log4j.logger.er.default.ERXEntityClassDescription=DEBUG +log4j.logger.er.extensions.ERXDatabaseContextDelegate=WARN +log4j.logger.er.extensions.ERXConfigurationManager=INFO +#log4j.logger.er.extensions.ERXApplication.RequestHandling=DEBUG diff --git a/Examples/ErJaxWS/WebService_Created/Sources/your/app/Application.java b/Examples/ErJaxWS/WebService_Created/Sources/your/app/Application.java new file mode 100644 index 00000000000..f33dbbc48a9 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/Sources/your/app/Application.java @@ -0,0 +1,29 @@ +package your.app; + +import javax.xml.ws.Endpoint; + +import your.app.ws.Calculator; +import er.extensions.appserver.ERXApplication; +import er.extensions.appserver.ws.ERJaxWebService; +import er.extensions.appserver.ws.ERJaxWebServiceRequestHandler; + +public class Application extends ERXApplication { + public static void main(String[] argv) { + ERXApplication.main(argv, Application.class); + } + + public Application() { + ERXApplication.log.info("Welcome to " + name() + " !"); + /* ** put your initialization code in here ** */ + setAllowsConcurrentRequestHandling(true); + + // do it the WONDER way + ERJaxWebServiceRequestHandler wsHandler = new ERJaxWebServiceRequestHandler(); + wsHandler.registerWebService("Calculator", new ERJaxWebService(Calculator.class)); + this.registerRequestHandler(wsHandler, this.webServiceRequestHandlerKey()); + + // create a standalone endpoint using Jax WS mechanisms + Endpoint.publish("http://localhost:9999/ws/Calculator", new Calculator()); + + } +} diff --git a/Examples/ErJaxWS/WebService_Created/Sources/your/app/DirectAction.java b/Examples/ErJaxWS/WebService_Created/Sources/your/app/DirectAction.java new file mode 100644 index 00000000000..19adaf30160 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/Sources/your/app/DirectAction.java @@ -0,0 +1,29 @@ +package your.app; + +import com.webobjects.appserver.WOActionResults; +import com.webobjects.appserver.WOApplication; +import com.webobjects.appserver.WORequest; + +import er.extensions.appserver.ERXDirectAction; + +import your.app.components.Main; + +public class DirectAction extends ERXDirectAction { + public DirectAction(WORequest request) { + super(request); + } + + @Override + public WOActionResults defaultAction() { + return pageWithName(Main.class.getName()); + } + + public Application application() { + return (Application)WOApplication.application(); + } + + @Override + public Session session() { + return (Session)super.session(); + } +} diff --git a/Examples/ErJaxWS/WebService_Created/Sources/your/app/Session.java b/Examples/ErJaxWS/WebService_Created/Sources/your/app/Session.java new file mode 100644 index 00000000000..ffd4bb6f202 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/Sources/your/app/Session.java @@ -0,0 +1,16 @@ +package your.app; + +import er.extensions.appserver.ERXSession; + +public class Session extends ERXSession { + private static final long serialVersionUID = 1L; + + public Session() { + } + + @Override + public Application application() { + return (Application)super.application(); + } + +} diff --git a/Examples/ErJaxWS/WebService_Created/Sources/your/app/components/BaseComponent.java b/Examples/ErJaxWS/WebService_Created/Sources/your/app/components/BaseComponent.java new file mode 100644 index 00000000000..eccd845afd6 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/Sources/your/app/components/BaseComponent.java @@ -0,0 +1,24 @@ +package your.app.components; + +import com.webobjects.appserver.WOContext; + +import er.extensions.components.ERXComponent; +import your.app.Application; +import your.app.Session; + +@SuppressWarnings("serial") +public class BaseComponent extends ERXComponent { + public BaseComponent(WOContext context) { + super(context); + } + + @Override + public Application application() { + return (Application)super.application(); + } + + @Override + public Session session() { + return (Session)super.session(); + } +} diff --git a/Examples/ErJaxWS/WebService_Created/Sources/your/app/components/Main.java b/Examples/ErJaxWS/WebService_Created/Sources/your/app/components/Main.java new file mode 100644 index 00000000000..ed0bbc67b29 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/Sources/your/app/components/Main.java @@ -0,0 +1,10 @@ +package your.app.components; + +import com.webobjects.appserver.WOContext; + +@SuppressWarnings("serial") +public class Main extends BaseComponent { + public Main(WOContext context) { + super(context); + } +} diff --git a/Examples/ErJaxWS/WebService_Created/Sources/your/app/ws/Calculator.java b/Examples/ErJaxWS/WebService_Created/Sources/your/app/ws/Calculator.java new file mode 100644 index 00000000000..eb06355f684 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/Sources/your/app/ws/Calculator.java @@ -0,0 +1,13 @@ +package your.app.ws; + +import javax.jws.WebService; + +@WebService + +public class Calculator { + + public int add(int a, int b) + { + return a + b; + } +} diff --git a/Examples/ErJaxWS/WebService_Created/build.properties b/Examples/ErJaxWS/WebService_Created/build.properties new file mode 100644 index 00000000000..8b9cdee83cf --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/build.properties @@ -0,0 +1,13 @@ +classes.dir=bin +project.name=WebService_Created +project.name.lowercase=webservice_created +project.type=application +principalClass=your.app.Application +customInfoPListContent= +embed.Local=true +embed.System=true +webXML=false +webXML_CustomContent= +component.wellFormedTemplateRequired=false +component.inlineBindingPrefix=$ +component.inlineBindingSuffix= \ No newline at end of file diff --git a/Examples/ErJaxWS/WebService_Created/build.xml b/Examples/ErJaxWS/WebService_Created/build.xml new file mode 100644 index 00000000000..249a76f4414 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/build.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples/ErJaxWS/WebService_Created/woproject/classes.exclude.patternset b/Examples/ErJaxWS/WebService_Created/woproject/classes.exclude.patternset new file mode 100644 index 00000000000..56fb545fa67 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/woproject/classes.exclude.patternset @@ -0,0 +1 @@ +build.properties diff --git a/Examples/ErJaxWS/WebService_Created/woproject/classes.include.patternset b/Examples/ErJaxWS/WebService_Created/woproject/classes.include.patternset new file mode 100644 index 00000000000..3179091db39 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/woproject/classes.include.patternset @@ -0,0 +1,2 @@ +**/*.class +*.properties diff --git a/Examples/ErJaxWS/WebService_Created/woproject/resources.exclude.patternset b/Examples/ErJaxWS/WebService_Created/woproject/resources.exclude.patternset new file mode 100644 index 00000000000..905050dfb73 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/woproject/resources.exclude.patternset @@ -0,0 +1,3 @@ +**/*.eomodeld~/ +**/*.woa/** +**/*.framework/** diff --git a/Examples/ErJaxWS/WebService_Created/woproject/resources.include.patternset b/Examples/ErJaxWS/WebService_Created/woproject/resources.include.patternset new file mode 100644 index 00000000000..611978755e2 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/woproject/resources.include.patternset @@ -0,0 +1,3 @@ +Components/**/*.wo/**/* +Components/**/*.api +Resources/**/* \ No newline at end of file diff --git a/Examples/ErJaxWS/WebService_Created/woproject/wsresources.exclude.patternset b/Examples/ErJaxWS/WebService_Created/woproject/wsresources.exclude.patternset new file mode 100644 index 00000000000..9435a512320 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/woproject/wsresources.exclude.patternset @@ -0,0 +1,3 @@ +**/*.woa/** +**/*.framework/** +**/*.eomodeld~/** diff --git a/Examples/ErJaxWS/WebService_Created/woproject/wsresources.include.patternset b/Examples/ErJaxWS/WebService_Created/woproject/wsresources.include.patternset new file mode 100644 index 00000000000..234cdc88bb7 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Created/woproject/wsresources.include.patternset @@ -0,0 +1 @@ +WebServerResources/**/* diff --git a/Examples/ErJaxWS/WebService_Imported/.classpath b/Examples/ErJaxWS/WebService_Imported/.classpath new file mode 100644 index 00000000000..a46d1af287a --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/.classpath @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Examples/ErJaxWS/WebService_Imported/.project b/Examples/ErJaxWS/WebService_Imported/.project new file mode 100644 index 00000000000..97f0434dcdb --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/.project @@ -0,0 +1,23 @@ + + + WebService_Imported + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.objectstyle.wolips.incrementalbuilder + + + + + + org.eclipse.jdt.core.javanature + org.objectstyle.wolips.incrementalapplicationnature + + diff --git a/Examples/ErJaxWS/WebService_Imported/.settings/org.eclipse.core.resources.prefs b/Examples/ErJaxWS/WebService_Imported/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..c294b90fcbe --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/Components=UTF-8 diff --git a/Examples/ErJaxWS/WebService_Imported/Components/Main.api b/Examples/ErJaxWS/WebService_Imported/Components/Main.api new file mode 100644 index 00000000000..12535ad8d04 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Components/Main.api @@ -0,0 +1,5 @@ + + + + + diff --git a/Examples/ErJaxWS/WebService_Imported/Components/Main.wo/Main.html b/Examples/ErJaxWS/WebService_Imported/Components/Main.wo/Main.html new file mode 100644 index 00000000000..7f43a9063da --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Components/Main.wo/Main.html @@ -0,0 +1,9 @@ + + + + Untitled + + +Hello World + + diff --git a/Examples/ErJaxWS/WebService_Imported/Components/Main.wo/Main.wod b/Examples/ErJaxWS/WebService_Imported/Components/Main.wo/Main.wod new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Examples/ErJaxWS/WebService_Imported/Components/Main.wo/Main.woo b/Examples/ErJaxWS/WebService_Imported/Components/Main.wo/Main.woo new file mode 100644 index 00000000000..1f6e847c167 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Components/Main.wo/Main.woo @@ -0,0 +1,4 @@ +{ + "WebObjects Release" = "WebObjects 5.0"; + encoding = "UTF-8"; +} \ No newline at end of file diff --git a/Examples/ErJaxWS/WebService_Imported/Resources/Properties b/Examples/ErJaxWS/WebService_Imported/Resources/Properties new file mode 100644 index 00000000000..7fac8817a35 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Resources/Properties @@ -0,0 +1,68 @@ +# OGNL +ognl.helperFunctions=true +ognl.inlineBindings=true + +# Misc +er.extensions.stackTrace.cleanup=true + +# EOF +er.extensions.ERXEC.safeLocking=true +er.extensions.ERXEC.useSharedEditingContext=false +er.extensions.ERXEnterpriseObject.applyRestrictingQualifierOnInsert=true +er.extensions.ERXEnterpriseObject.updateInverseRelationships=true +#dbConnectURLGLOBAL= +#dbConnectUserGLOBAL= +#dbConnectPasswordGLOBAL= + +# Migrations +#er.migration.migrateAtStartup=true +#er.migration.createTablesIfNecessary=true +#er.migration.modelNames=YourModel + +# Misc Components +#er.extensions.ERXWOForm.multipleSubmitDefault=true +#er.extensions.ERXWORepetition.checkHashCodes=true +#er.extensions.ERXWORepetition.raiseOnUnmatchedObject=true +#er.extensions.ERXWORepetition.eoSupport=true +#er.component.clickToOpen=true +#wolips.password=wo + +# ERJavaMail +er.javamail.centralize=true +er.javamail.adminEmail=admin@yourhost.com +er.javamail.debugEnabled=false +er.javamail.smtpHost=your.smtpserver.com +er.javamail.smtpAuth=false +er.javamail.smtpUser= +er.javamail.smtpPassword= + +# Log4j Configuration +log4j.loggerFactory=er.extensions.logging.ERXLogger$Factory +log4j.rootCategory=INFO,A1 +log4j.appender.A1=er.extensions.logging.ERXConsoleAppender +log4j.appender.A1.layout=er.extensions.logging.ERXPatternLayout +log4j.appender.A1.layout.ConversionPattern=%d{MMM dd HH:mm:ss} %$[%#] %-5p %c %x - %m%n + +# Log4j Categories +# Here are a few log4j sub-categories that are interesting. +# Don't forget that in developement mode this file will get reloaded +# everytime it changes, so if you say want to turn adaptor debugging +# on in the middle of the app simply set the below category to debug. +# Very handy. +# Base Category +log4j.logger.er=INFO + +# ERExtensions +# Transaction - Switching this to debug will start the sql ouputting. +log4j.logger.er.transaction.adaptor.EOAdaptorDebugEnabled=DEBUG + +# Fixes - Turning this on will show all the models that are loaded +log4j.logger.er.extensions.fixes.ERSharedEOLoader=INFO + +er.extensions.ERXNSLogLog4jBridge=INFO +#log4j.logger.er.eo.ERXGenericRecord=DEBUG +#log4j.logger.er.validation.ERXEntityClassDescription=DEBUG +#log4j.logger.er.default.ERXEntityClassDescription=DEBUG +log4j.logger.er.extensions.ERXDatabaseContextDelegate=WARN +log4j.logger.er.extensions.ERXConfigurationManager=INFO +#log4j.logger.er.extensions.ERXApplication.RequestHandling=DEBUG diff --git a/Examples/ErJaxWS/WebService_Imported/Sources/your/app/Application.java b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/Application.java new file mode 100644 index 00000000000..e6b235681a4 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/Application.java @@ -0,0 +1,23 @@ +package your.app; + +import your.app.ws.impl.CalculatorImpl; +import er.extensions.appserver.ERXApplication; +import er.extensions.appserver.ws.ERJaxWebService; +import er.extensions.appserver.ws.ERJaxWebServiceRequestHandler; + +public class Application extends ERXApplication { + public static void main(String[] argv) { + ERXApplication.main(argv, Application.class); + } + + public Application() { + ERXApplication.log.info("Welcome to " + name() + " !"); + /* ** put your initialization code in here ** */ + setAllowsConcurrentRequestHandling(true); + + ERJaxWebServiceRequestHandler wsHandler = new ERJaxWebServiceRequestHandler(); + wsHandler.registerWebService("Calculator", new ERJaxWebService(CalculatorImpl.class)); + this.registerRequestHandler(wsHandler, this.webServiceRequestHandlerKey()); + + } +} diff --git a/Examples/ErJaxWS/WebService_Imported/Sources/your/app/DirectAction.java b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/DirectAction.java new file mode 100644 index 00000000000..19adaf30160 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/DirectAction.java @@ -0,0 +1,29 @@ +package your.app; + +import com.webobjects.appserver.WOActionResults; +import com.webobjects.appserver.WOApplication; +import com.webobjects.appserver.WORequest; + +import er.extensions.appserver.ERXDirectAction; + +import your.app.components.Main; + +public class DirectAction extends ERXDirectAction { + public DirectAction(WORequest request) { + super(request); + } + + @Override + public WOActionResults defaultAction() { + return pageWithName(Main.class.getName()); + } + + public Application application() { + return (Application)WOApplication.application(); + } + + @Override + public Session session() { + return (Session)super.session(); + } +} diff --git a/Examples/ErJaxWS/WebService_Imported/Sources/your/app/Session.java b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/Session.java new file mode 100644 index 00000000000..ffd4bb6f202 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/Session.java @@ -0,0 +1,16 @@ +package your.app; + +import er.extensions.appserver.ERXSession; + +public class Session extends ERXSession { + private static final long serialVersionUID = 1L; + + public Session() { + } + + @Override + public Application application() { + return (Application)super.application(); + } + +} diff --git a/Examples/ErJaxWS/WebService_Imported/Sources/your/app/components/BaseComponent.java b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/components/BaseComponent.java new file mode 100644 index 00000000000..eccd845afd6 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/components/BaseComponent.java @@ -0,0 +1,24 @@ +package your.app.components; + +import com.webobjects.appserver.WOContext; + +import er.extensions.components.ERXComponent; +import your.app.Application; +import your.app.Session; + +@SuppressWarnings("serial") +public class BaseComponent extends ERXComponent { + public BaseComponent(WOContext context) { + super(context); + } + + @Override + public Application application() { + return (Application)super.application(); + } + + @Override + public Session session() { + return (Session)super.session(); + } +} diff --git a/Examples/ErJaxWS/WebService_Imported/Sources/your/app/components/Main.java b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/components/Main.java new file mode 100644 index 00000000000..ed0bbc67b29 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/components/Main.java @@ -0,0 +1,10 @@ +package your.app.components; + +import com.webobjects.appserver.WOContext; + +@SuppressWarnings("serial") +public class Main extends BaseComponent { + public Main(WOContext context) { + super(context); + } +} diff --git a/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/Add.java b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/Add.java new file mode 100644 index 00000000000..ad0306a40ca --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/Add.java @@ -0,0 +1,71 @@ + +package your.app.ws; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for add complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="add">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="arg0" type="{http://www.w3.org/2001/XMLSchema}int"/>
+ *         <element name="arg1" type="{http://www.w3.org/2001/XMLSchema}int"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "add", propOrder = { + "arg0", + "arg1" +}) +public class Add { + + protected int arg0; + protected int arg1; + + /** + * Gets the value of the arg0 property. + * + */ + public int getArg0() { + return arg0; + } + + /** + * Sets the value of the arg0 property. + * + */ + public void setArg0(int value) { + this.arg0 = value; + } + + /** + * Gets the value of the arg1 property. + * + */ + public int getArg1() { + return arg1; + } + + /** + * Sets the value of the arg1 property. + * + */ + public void setArg1(int value) { + this.arg1 = value; + } + +} diff --git a/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/AddResponse.java b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/AddResponse.java new file mode 100644 index 00000000000..1a8a0893a05 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/AddResponse.java @@ -0,0 +1,54 @@ + +package your.app.ws; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for addResponse complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="addResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://www.w3.org/2001/XMLSchema}int"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "addResponse", propOrder = { + "_return" +}) +public class AddResponse { + + @XmlElement(name = "return") + protected int _return; + + /** + * Gets the value of the return property. + * + */ + public int getReturn() { + return _return; + } + + /** + * Sets the value of the return property. + * + */ + public void setReturn(int value) { + this._return = value; + } + +} diff --git a/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/Calculator.java b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/Calculator.java new file mode 100644 index 00000000000..75f9ef65ecb --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/Calculator.java @@ -0,0 +1,43 @@ + +package your.app.ws; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.ws.RequestWrapper; +import javax.xml.ws.ResponseWrapper; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebService(name = "Calculator", targetNamespace = "http://ws.app.your/") +@XmlSeeAlso({ + ObjectFactory.class +}) +public interface Calculator { + + + /** + * + * @param arg1 + * @param arg0 + * @return + * returns int + */ + @WebMethod + @WebResult(targetNamespace = "") + @RequestWrapper(localName = "add", targetNamespace = "http://ws.app.your/", className = "your.app.ws.Add") + @ResponseWrapper(localName = "addResponse", targetNamespace = "http://ws.app.your/", className = "your.app.ws.AddResponse") + public int add( + @WebParam(name = "arg0", targetNamespace = "") + int arg0, + @WebParam(name = "arg1", targetNamespace = "") + int arg1); + +} diff --git a/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/CalculatorService.java b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/CalculatorService.java new file mode 100644 index 00000000000..655e9b8efc1 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/CalculatorService.java @@ -0,0 +1,94 @@ + +package your.app.ws; + +import java.net.MalformedURLException; +import java.net.URL; +import javax.xml.namespace.QName; +import javax.xml.ws.Service; +import javax.xml.ws.WebEndpoint; +import javax.xml.ws.WebServiceClient; +import javax.xml.ws.WebServiceException; +import javax.xml.ws.WebServiceFeature; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebServiceClient(name = "CalculatorService", targetNamespace = "http://ws.app.your/", wsdlLocation = "http://localhost:3333/cgi-bin/WebObjects/WebService1.woa/ws/Calculator?wsdl") +public class CalculatorService + extends Service +{ + + private final static URL CALCULATORSERVICE_WSDL_LOCATION; + private final static WebServiceException CALCULATORSERVICE_EXCEPTION; + private final static QName CALCULATORSERVICE_QNAME = new QName("http://ws.app.your/", "CalculatorService"); + + static { + URL url = null; + WebServiceException e = null; + try { + url = new URL("http://localhost:3333/cgi-bin/WebObjects/WebService1.woa/ws/Calculator?wsdl"); + } catch (MalformedURLException ex) { + e = new WebServiceException(ex); + } + CALCULATORSERVICE_WSDL_LOCATION = url; + CALCULATORSERVICE_EXCEPTION = e; + } + + public CalculatorService() { + super(__getWsdlLocation(), CALCULATORSERVICE_QNAME); + } + + public CalculatorService(WebServiceFeature... features) { + super(__getWsdlLocation(), CALCULATORSERVICE_QNAME, features); + } + + public CalculatorService(URL wsdlLocation) { + super(wsdlLocation, CALCULATORSERVICE_QNAME); + } + + public CalculatorService(URL wsdlLocation, WebServiceFeature... features) { + super(wsdlLocation, CALCULATORSERVICE_QNAME, features); + } + + public CalculatorService(URL wsdlLocation, QName serviceName) { + super(wsdlLocation, serviceName); + } + + public CalculatorService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) { + super(wsdlLocation, serviceName, features); + } + + /** + * + * @return + * returns Calculator + */ + @WebEndpoint(name = "CalculatorPort") + public Calculator getCalculatorPort() { + return super.getPort(new QName("http://ws.app.your/", "CalculatorPort"), Calculator.class); + } + + /** + * + * @param features + * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. + * @return + * returns Calculator + */ + @WebEndpoint(name = "CalculatorPort") + public Calculator getCalculatorPort(WebServiceFeature... features) { + return super.getPort(new QName("http://ws.app.your/", "CalculatorPort"), Calculator.class, features); + } + + private static URL __getWsdlLocation() { + if (CALCULATORSERVICE_EXCEPTION!= null) { + throw CALCULATORSERVICE_EXCEPTION; + } + return CALCULATORSERVICE_WSDL_LOCATION; + } + +} diff --git a/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/ObjectFactory.java b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/ObjectFactory.java new file mode 100644 index 00000000000..c65262d313f --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/ObjectFactory.java @@ -0,0 +1,71 @@ + +package your.app.ws; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the your.app.ws package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _AddResponse_QNAME = new QName("http://ws.app.your/", "addResponse"); + private final static QName _Add_QNAME = new QName("http://ws.app.your/", "add"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: your.app.ws + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link AddResponse } + * + */ + public AddResponse createAddResponse() { + return new AddResponse(); + } + + /** + * Create an instance of {@link Add } + * + */ + public Add createAdd() { + return new Add(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link AddResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://ws.app.your/", name = "addResponse") + public JAXBElement createAddResponse(AddResponse value) { + return new JAXBElement(_AddResponse_QNAME, AddResponse.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Add }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://ws.app.your/", name = "add") + public JAXBElement createAdd(Add value) { + return new JAXBElement(_Add_QNAME, Add.class, null, value); + } + +} diff --git a/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/impl/CalculatorImpl.java b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/impl/CalculatorImpl.java new file mode 100644 index 00000000000..cbaf546a7cc --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/impl/CalculatorImpl.java @@ -0,0 +1,17 @@ +package your.app.ws.impl; + +import javax.jws.WebService; + +import your.app.ws.Calculator; + +@WebService (endpointInterface = "your.app.ws.Calculator", + targetNamespace = "http://ws.app.your/") + +public class CalculatorImpl implements Calculator { + + @Override + public int add(int arg0, int arg1) { + return arg0 + arg1; + } + +} diff --git a/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/package-info.java b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/package-info.java new file mode 100644 index 00000000000..76557317c8f --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/Sources/your/app/ws/package-info.java @@ -0,0 +1,2 @@ +@javax.xml.bind.annotation.XmlSchema(namespace = "http://ws.app.your/") +package your.app.ws; diff --git a/Examples/ErJaxWS/WebService_Imported/build.properties b/Examples/ErJaxWS/WebService_Imported/build.properties new file mode 100644 index 00000000000..01bfacc7fc0 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/build.properties @@ -0,0 +1,13 @@ +classes.dir=bin +project.name=WebService_Imported +project.name.lowercase=webservice_imported +project.type=application +principalClass=your.app.Application +customInfoPListContent= +embed.Local=true +embed.System=true +webXML=false +webXML_CustomContent= +component.wellFormedTemplateRequired=false +component.inlineBindingPrefix=$ +component.inlineBindingSuffix= \ No newline at end of file diff --git a/Examples/ErJaxWS/WebService_Imported/build.xml b/Examples/ErJaxWS/WebService_Imported/build.xml new file mode 100644 index 00000000000..c31ce574d25 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/build.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples/ErJaxWS/WebService_Imported/woproject/classes.exclude.patternset b/Examples/ErJaxWS/WebService_Imported/woproject/classes.exclude.patternset new file mode 100644 index 00000000000..56fb545fa67 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/woproject/classes.exclude.patternset @@ -0,0 +1 @@ +build.properties diff --git a/Examples/ErJaxWS/WebService_Imported/woproject/classes.include.patternset b/Examples/ErJaxWS/WebService_Imported/woproject/classes.include.patternset new file mode 100644 index 00000000000..3179091db39 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/woproject/classes.include.patternset @@ -0,0 +1,2 @@ +**/*.class +*.properties diff --git a/Examples/ErJaxWS/WebService_Imported/woproject/resources.exclude.patternset b/Examples/ErJaxWS/WebService_Imported/woproject/resources.exclude.patternset new file mode 100644 index 00000000000..905050dfb73 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/woproject/resources.exclude.patternset @@ -0,0 +1,3 @@ +**/*.eomodeld~/ +**/*.woa/** +**/*.framework/** diff --git a/Examples/ErJaxWS/WebService_Imported/woproject/resources.include.patternset b/Examples/ErJaxWS/WebService_Imported/woproject/resources.include.patternset new file mode 100644 index 00000000000..611978755e2 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/woproject/resources.include.patternset @@ -0,0 +1,3 @@ +Components/**/*.wo/**/* +Components/**/*.api +Resources/**/* \ No newline at end of file diff --git a/Examples/ErJaxWS/WebService_Imported/woproject/wsresources.exclude.patternset b/Examples/ErJaxWS/WebService_Imported/woproject/wsresources.exclude.patternset new file mode 100644 index 00000000000..9435a512320 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/woproject/wsresources.exclude.patternset @@ -0,0 +1,3 @@ +**/*.woa/** +**/*.framework/** +**/*.eomodeld~/** diff --git a/Examples/ErJaxWS/WebService_Imported/woproject/wsresources.include.patternset b/Examples/ErJaxWS/WebService_Imported/woproject/wsresources.include.patternset new file mode 100644 index 00000000000..234cdc88bb7 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Imported/woproject/wsresources.include.patternset @@ -0,0 +1 @@ +WebServerResources/**/* diff --git a/Examples/ErJaxWS/WebService_Stateful/.classpath b/Examples/ErJaxWS/WebService_Stateful/.classpath new file mode 100644 index 00000000000..47ad26fc0a7 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/.classpath @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Examples/ErJaxWS/WebService_Stateful/.gitignore b/Examples/ErJaxWS/WebService_Stateful/.gitignore new file mode 100644 index 00000000000..fcc7e7a559b --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/.gitignore @@ -0,0 +1,6 @@ +target +bin +build +*.xcodeproj +*.pbxproj +ant.* \ No newline at end of file diff --git a/Examples/ErJaxWS/WebService_Stateful/.project b/Examples/ErJaxWS/WebService_Stateful/.project new file mode 100644 index 00000000000..a6f407296ca --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/.project @@ -0,0 +1,23 @@ + + + WebService_Stateful + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.objectstyle.wolips.incrementalbuilder + + + + + + org.eclipse.jdt.core.javanature + org.objectstyle.wolips.incrementalapplicationnature + + diff --git a/Examples/ErJaxWS/WebService_Stateful/.settings/org.eclipse.core.resources.prefs b/Examples/ErJaxWS/WebService_Stateful/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..c294b90fcbe --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/Components=UTF-8 diff --git a/Examples/ErJaxWS/WebService_Stateful/Components/Main.api b/Examples/ErJaxWS/WebService_Stateful/Components/Main.api new file mode 100644 index 00000000000..12535ad8d04 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/Components/Main.api @@ -0,0 +1,5 @@ + + + + + diff --git a/Examples/ErJaxWS/WebService_Stateful/Components/Main.wo/Main.html b/Examples/ErJaxWS/WebService_Stateful/Components/Main.wo/Main.html new file mode 100644 index 00000000000..c83b82eb634 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/Components/Main.wo/Main.html @@ -0,0 +1,13 @@ + + + + Untitled + + +

Stateful WebService

+ +Ask server + +

Server says:

+ + diff --git a/Examples/ErJaxWS/WebService_Stateful/Components/Main.wo/Main.wod b/Examples/ErJaxWS/WebService_Stateful/Components/Main.wo/Main.wod new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Examples/ErJaxWS/WebService_Stateful/Components/Main.wo/Main.woo b/Examples/ErJaxWS/WebService_Stateful/Components/Main.wo/Main.woo new file mode 100644 index 00000000000..1f6e847c167 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/Components/Main.wo/Main.woo @@ -0,0 +1,4 @@ +{ + "WebObjects Release" = "WebObjects 5.0"; + encoding = "UTF-8"; +} \ No newline at end of file diff --git a/Examples/ErJaxWS/WebService_Stateful/Libraries/testservice.jar b/Examples/ErJaxWS/WebService_Stateful/Libraries/testservice.jar new file mode 100644 index 00000000000..28b7b07534a Binary files /dev/null and b/Examples/ErJaxWS/WebService_Stateful/Libraries/testservice.jar differ diff --git a/Examples/ErJaxWS/WebService_Stateful/Resources/Properties b/Examples/ErJaxWS/WebService_Stateful/Resources/Properties new file mode 100644 index 00000000000..7fac8817a35 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/Resources/Properties @@ -0,0 +1,68 @@ +# OGNL +ognl.helperFunctions=true +ognl.inlineBindings=true + +# Misc +er.extensions.stackTrace.cleanup=true + +# EOF +er.extensions.ERXEC.safeLocking=true +er.extensions.ERXEC.useSharedEditingContext=false +er.extensions.ERXEnterpriseObject.applyRestrictingQualifierOnInsert=true +er.extensions.ERXEnterpriseObject.updateInverseRelationships=true +#dbConnectURLGLOBAL= +#dbConnectUserGLOBAL= +#dbConnectPasswordGLOBAL= + +# Migrations +#er.migration.migrateAtStartup=true +#er.migration.createTablesIfNecessary=true +#er.migration.modelNames=YourModel + +# Misc Components +#er.extensions.ERXWOForm.multipleSubmitDefault=true +#er.extensions.ERXWORepetition.checkHashCodes=true +#er.extensions.ERXWORepetition.raiseOnUnmatchedObject=true +#er.extensions.ERXWORepetition.eoSupport=true +#er.component.clickToOpen=true +#wolips.password=wo + +# ERJavaMail +er.javamail.centralize=true +er.javamail.adminEmail=admin@yourhost.com +er.javamail.debugEnabled=false +er.javamail.smtpHost=your.smtpserver.com +er.javamail.smtpAuth=false +er.javamail.smtpUser= +er.javamail.smtpPassword= + +# Log4j Configuration +log4j.loggerFactory=er.extensions.logging.ERXLogger$Factory +log4j.rootCategory=INFO,A1 +log4j.appender.A1=er.extensions.logging.ERXConsoleAppender +log4j.appender.A1.layout=er.extensions.logging.ERXPatternLayout +log4j.appender.A1.layout.ConversionPattern=%d{MMM dd HH:mm:ss} %$[%#] %-5p %c %x - %m%n + +# Log4j Categories +# Here are a few log4j sub-categories that are interesting. +# Don't forget that in developement mode this file will get reloaded +# everytime it changes, so if you say want to turn adaptor debugging +# on in the middle of the app simply set the below category to debug. +# Very handy. +# Base Category +log4j.logger.er=INFO + +# ERExtensions +# Transaction - Switching this to debug will start the sql ouputting. +log4j.logger.er.transaction.adaptor.EOAdaptorDebugEnabled=DEBUG + +# Fixes - Turning this on will show all the models that are loaded +log4j.logger.er.extensions.fixes.ERSharedEOLoader=INFO + +er.extensions.ERXNSLogLog4jBridge=INFO +#log4j.logger.er.eo.ERXGenericRecord=DEBUG +#log4j.logger.er.validation.ERXEntityClassDescription=DEBUG +#log4j.logger.er.default.ERXEntityClassDescription=DEBUG +log4j.logger.er.extensions.ERXDatabaseContextDelegate=WARN +log4j.logger.er.extensions.ERXConfigurationManager=INFO +#log4j.logger.er.extensions.ERXApplication.RequestHandling=DEBUG diff --git a/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/Application.java b/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/Application.java new file mode 100644 index 00000000000..b9d66a52a4e --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/Application.java @@ -0,0 +1,22 @@ +package your.app; + +import your.app.ws.StatefulActionImpl; +import er.extensions.appserver.ERXApplication; +import er.extensions.appserver.ws.ERJaxWebService; +import er.extensions.appserver.ws.ERJaxWebServiceRequestHandler; + +public class Application extends ERXApplication { + public static void main(String[] argv) { + ERXApplication.main(argv, Application.class); + } + + public Application() { + ERXApplication.log.info("Welcome to " + name() + " !"); + /* ** put your initialization code in here ** */ + setAllowsConcurrentRequestHandling(true); + + ERJaxWebServiceRequestHandler wsHandler = new ERJaxWebServiceRequestHandler(); + wsHandler.registerWebService("StatefulAction", new ERJaxWebService(StatefulActionImpl.class)); + this.registerRequestHandler(wsHandler, this.webServiceRequestHandlerKey()); + } +} diff --git a/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/DirectAction.java b/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/DirectAction.java new file mode 100644 index 00000000000..19adaf30160 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/DirectAction.java @@ -0,0 +1,29 @@ +package your.app; + +import com.webobjects.appserver.WOActionResults; +import com.webobjects.appserver.WOApplication; +import com.webobjects.appserver.WORequest; + +import er.extensions.appserver.ERXDirectAction; + +import your.app.components.Main; + +public class DirectAction extends ERXDirectAction { + public DirectAction(WORequest request) { + super(request); + } + + @Override + public WOActionResults defaultAction() { + return pageWithName(Main.class.getName()); + } + + public Application application() { + return (Application)WOApplication.application(); + } + + @Override + public Session session() { + return (Session)super.session(); + } +} diff --git a/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/Session.java b/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/Session.java new file mode 100644 index 00000000000..e93a2471217 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/Session.java @@ -0,0 +1,19 @@ +package your.app; + + +import er.extensions.appserver.ERXSession; + +public class Session extends ERXSession { + private static final long serialVersionUID = 1L; + + public Session() { + } + + @Override + public Application application() { + return (Application)super.application(); + } + + + public boolean authenticated = false; +} diff --git a/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/components/BaseComponent.java b/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/components/BaseComponent.java new file mode 100644 index 00000000000..eccd845afd6 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/components/BaseComponent.java @@ -0,0 +1,24 @@ +package your.app.components; + +import com.webobjects.appserver.WOContext; + +import er.extensions.components.ERXComponent; +import your.app.Application; +import your.app.Session; + +@SuppressWarnings("serial") +public class BaseComponent extends ERXComponent { + public BaseComponent(WOContext context) { + super(context); + } + + @Override + public Application application() { + return (Application)super.application(); + } + + @Override + public Session session() { + return (Session)super.session(); + } +} diff --git a/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/components/Main.java b/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/components/Main.java new file mode 100644 index 00000000000..bb3b0007a5d --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/components/Main.java @@ -0,0 +1,37 @@ +package your.app.components; + +import java.net.MalformedURLException; +import java.net.URL; + +import javax.xml.ws.BindingProvider; + +import your.app.ws.StatefulAction; +import your.app.ws.StatefulActionException; +import your.app.ws.StatefulActionImplService; + +import com.webobjects.appserver.WOActionResults; +import com.webobjects.appserver.WOContext; + +@SuppressWarnings("serial") +public class Main extends BaseComponent { + public Main(WOContext context) { + super(context); + } + + public WOActionResults doit() throws MalformedURLException, StatefulActionException { + URL url = new URL("http://127.0.0.1:3335/cgi-bin/WebObjects/WebService_Stateful.woa/ws/StatefulAction?wsdl"); + + StatefulActionImplService service = new StatefulActionImplService(url); + + StatefulAction sAction = service.getPort(StatefulAction.class); + + ((BindingProvider) sAction).getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true); + + sAction.authenticate("name", "password"); + serverOutput = sAction.testAction("test"); + + return null; + } + + public String serverOutput = null; +} diff --git a/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/ws/StatefulActionImpl.java b/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/ws/StatefulActionImpl.java new file mode 100644 index 00000000000..1def626b04f --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/Sources/your/app/ws/StatefulActionImpl.java @@ -0,0 +1,54 @@ +package your.app.ws; + +import javax.annotation.Resource; +import javax.jws.WebMethod; +import javax.jws.WebService; +import javax.xml.ws.WebServiceContext; +import javax.xml.ws.handler.MessageContext; + +import your.app.Session; +import er.extensions.appserver.ERXWOContext; +import er.extensions.appserver.ws.ERWSWOHTTPConnection; + +@WebService ( + endpointInterface = "your.app.ws.StatefulAction") + +public class StatefulActionImpl implements StatefulAction +{ + @Resource + private WebServiceContext wsContext; + + @Override + @WebMethod + public void authenticate(String login, String password) + throws StatefulActionException { + + if(login.length() == 0 || password.length() == 0) + { + StatefulActionFaultInfo statefulActionFaultInfo = new StatefulActionFaultInfo(); + statefulActionFaultInfo.setMessage("INVALID_LOGIN"); + throw new StatefulActionException("INVALID_LOGIN", statefulActionFaultInfo); + }; + + MessageContext mc = wsContext.getMessageContext(); + ERXWOContext context = (ERXWOContext) mc.get(ERWSWOHTTPConnection.ERJAXWS_ERXWOCONTEXT); + + ((Session)context.session()).authenticated = true; + } + + @Override + @WebMethod + public String testAction(String name) throws StatefulActionException { + MessageContext mc = wsContext.getMessageContext(); + ERXWOContext context = (ERXWOContext) mc.get(ERWSWOHTTPConnection.ERJAXWS_ERXWOCONTEXT); + + if(!((Session)context.session()).authenticated) + { + StatefulActionFaultInfo statefulActionFaultInfo = new StatefulActionFaultInfo(); + statefulActionFaultInfo.setMessage("NOT_AUTHENTICATED"); + throw new StatefulActionException("NOT_AUTHENTICATED", statefulActionFaultInfo); + } + + return "Hello " + name; + } +} diff --git a/Examples/ErJaxWS/WebService_Stateful/build.properties b/Examples/ErJaxWS/WebService_Stateful/build.properties new file mode 100644 index 00000000000..82cdd35e1e4 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/build.properties @@ -0,0 +1,13 @@ +classes.dir=bin +project.name=WebService_Stateful +project.name.lowercase=webservice_stateful +project.type=application +principalClass=your.app.Application +customInfoPListContent= +embed.Local=true +embed.System=true +webXML=false +webXML_CustomContent= +component.wellFormedTemplateRequired=false +component.inlineBindingPrefix=$ +component.inlineBindingSuffix= \ No newline at end of file diff --git a/Examples/ErJaxWS/WebService_Stateful/build.xml b/Examples/ErJaxWS/WebService_Stateful/build.xml new file mode 100644 index 00000000000..f23b9a1e081 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/build.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples/ErJaxWS/WebService_Stateful/woproject/classes.exclude.patternset b/Examples/ErJaxWS/WebService_Stateful/woproject/classes.exclude.patternset new file mode 100644 index 00000000000..56fb545fa67 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/woproject/classes.exclude.patternset @@ -0,0 +1 @@ +build.properties diff --git a/Examples/ErJaxWS/WebService_Stateful/woproject/classes.include.patternset b/Examples/ErJaxWS/WebService_Stateful/woproject/classes.include.patternset new file mode 100644 index 00000000000..3179091db39 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/woproject/classes.include.patternset @@ -0,0 +1,2 @@ +**/*.class +*.properties diff --git a/Examples/ErJaxWS/WebService_Stateful/woproject/resources.exclude.patternset b/Examples/ErJaxWS/WebService_Stateful/woproject/resources.exclude.patternset new file mode 100644 index 00000000000..905050dfb73 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/woproject/resources.exclude.patternset @@ -0,0 +1,3 @@ +**/*.eomodeld~/ +**/*.woa/** +**/*.framework/** diff --git a/Examples/ErJaxWS/WebService_Stateful/woproject/resources.include.patternset b/Examples/ErJaxWS/WebService_Stateful/woproject/resources.include.patternset new file mode 100644 index 00000000000..611978755e2 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/woproject/resources.include.patternset @@ -0,0 +1,3 @@ +Components/**/*.wo/**/* +Components/**/*.api +Resources/**/* \ No newline at end of file diff --git a/Examples/ErJaxWS/WebService_Stateful/woproject/wsresources.exclude.patternset b/Examples/ErJaxWS/WebService_Stateful/woproject/wsresources.exclude.patternset new file mode 100644 index 00000000000..9435a512320 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/woproject/wsresources.exclude.patternset @@ -0,0 +1,3 @@ +**/*.woa/** +**/*.framework/** +**/*.eomodeld~/** diff --git a/Examples/ErJaxWS/WebService_Stateful/woproject/wsresources.include.patternset b/Examples/ErJaxWS/WebService_Stateful/woproject/wsresources.include.patternset new file mode 100644 index 00000000000..234cdc88bb7 --- /dev/null +++ b/Examples/ErJaxWS/WebService_Stateful/woproject/wsresources.include.patternset @@ -0,0 +1 @@ +WebServerResources/**/* diff --git a/Frameworks/Misc/ERJaxWS/.classpath b/Frameworks/Misc/ERJaxWS/.classpath new file mode 100644 index 00000000000..5b8386b1601 --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/.classpath @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Frameworks/Misc/ERJaxWS/.gitignore b/Frameworks/Misc/ERJaxWS/.gitignore new file mode 100644 index 00000000000..fcc7e7a559b --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/.gitignore @@ -0,0 +1,6 @@ +target +bin +build +*.xcodeproj +*.pbxproj +ant.* \ No newline at end of file diff --git a/Frameworks/Misc/ERJaxWS/.project b/Frameworks/Misc/ERJaxWS/.project new file mode 100644 index 00000000000..44f7fdf506c --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/.project @@ -0,0 +1,23 @@ + + + ERJaxWS + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.objectstyle.wolips.incrementalbuilder + + + + + + org.eclipse.jdt.core.javanature + org.objectstyle.wolips.incrementalframeworknature + + diff --git a/Frameworks/Misc/ERJaxWS/.settings/org.eclipse.core.resources.prefs b/Frameworks/Misc/ERJaxWS/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..41c316b762a --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +#Thu Feb 06 13:07:09 CET 2014 +eclipse.preferences.version=1 +encoding/=UTF-8 +encoding/Components=UTF-8 diff --git a/Frameworks/Misc/ERJaxWS/Libraries/FastInfoset.jar b/Frameworks/Misc/ERJaxWS/Libraries/FastInfoset.jar new file mode 100644 index 00000000000..01652beaa4d Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/FastInfoset.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/activation.jar b/Frameworks/Misc/ERJaxWS/Libraries/activation.jar new file mode 100644 index 00000000000..e31e71c1886 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/activation.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/gmbal-api-only.jar b/Frameworks/Misc/ERJaxWS/Libraries/gmbal-api-only.jar new file mode 100644 index 00000000000..b062fddaf8f Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/gmbal-api-only.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/ha-api.jar b/Frameworks/Misc/ERJaxWS/Libraries/ha-api.jar new file mode 100644 index 00000000000..4df68e11299 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/ha-api.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/http.jar b/Frameworks/Misc/ERJaxWS/Libraries/http.jar new file mode 100644 index 00000000000..6e2b44e69af Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/http.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/javax.annotation-api.jar b/Frameworks/Misc/ERJaxWS/Libraries/javax.annotation-api.jar new file mode 100644 index 00000000000..5c942d70fa4 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/javax.annotation-api.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/javax.xml.soap-api.jar b/Frameworks/Misc/ERJaxWS/Libraries/javax.xml.soap-api.jar new file mode 100644 index 00000000000..b9f4d5b2380 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/javax.xml.soap-api.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/jaxb-api.jar b/Frameworks/Misc/ERJaxWS/Libraries/jaxb-api.jar new file mode 100644 index 00000000000..b7728c0b78b Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/jaxb-api.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/jaxb-core.jar b/Frameworks/Misc/ERJaxWS/Libraries/jaxb-core.jar new file mode 100644 index 00000000000..82b6eb7ac9c Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/jaxb-core.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/jaxb-impl.jar b/Frameworks/Misc/ERJaxWS/Libraries/jaxb-impl.jar new file mode 100644 index 00000000000..b895c7941bc Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/jaxb-impl.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/jaxb-jxc.jar b/Frameworks/Misc/ERJaxWS/Libraries/jaxb-jxc.jar new file mode 100644 index 00000000000..0b6f4935a61 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/jaxb-jxc.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/jaxb-xjc.jar b/Frameworks/Misc/ERJaxWS/Libraries/jaxb-xjc.jar new file mode 100644 index 00000000000..640e0381d4f Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/jaxb-xjc.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/jaxws-api.jar b/Frameworks/Misc/ERJaxWS/Libraries/jaxws-api.jar new file mode 100644 index 00000000000..b91c91c4320 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/jaxws-api.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/jaxws-rt.jar b/Frameworks/Misc/ERJaxWS/Libraries/jaxws-rt.jar new file mode 100644 index 00000000000..13a957bd026 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/jaxws-rt.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/jaxws-tools.jar b/Frameworks/Misc/ERJaxWS/Libraries/jaxws-tools.jar new file mode 100644 index 00000000000..3359344f1b1 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/jaxws-tools.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/jsr173_api.jar b/Frameworks/Misc/ERJaxWS/Libraries/jsr173_api.jar new file mode 100644 index 00000000000..015169dc71f Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/jsr173_api.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/jsr181-api.jar b/Frameworks/Misc/ERJaxWS/Libraries/jsr181-api.jar new file mode 100644 index 00000000000..e6833880e2d Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/jsr181-api.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/jsr250-api.jar b/Frameworks/Misc/ERJaxWS/Libraries/jsr250-api.jar new file mode 100644 index 00000000000..2b10def6448 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/jsr250-api.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/management-api.jar b/Frameworks/Misc/ERJaxWS/Libraries/management-api.jar new file mode 100644 index 00000000000..f7bbc69a788 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/management-api.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/mimepull.jar b/Frameworks/Misc/ERJaxWS/Libraries/mimepull.jar new file mode 100644 index 00000000000..48625373217 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/mimepull.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/policy.jar b/Frameworks/Misc/ERJaxWS/Libraries/policy.jar new file mode 100644 index 00000000000..e688eea4196 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/policy.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/resolver.jar b/Frameworks/Misc/ERJaxWS/Libraries/resolver.jar new file mode 100644 index 00000000000..0f97dc711b0 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/resolver.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/saaj-api.jar b/Frameworks/Misc/ERJaxWS/Libraries/saaj-api.jar new file mode 100644 index 00000000000..5a4f436b38c Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/saaj-api.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/saaj-impl.jar b/Frameworks/Misc/ERJaxWS/Libraries/saaj-impl.jar new file mode 100644 index 00000000000..5ddbbaca33a Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/saaj-impl.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/stax-ex.jar b/Frameworks/Misc/ERJaxWS/Libraries/stax-ex.jar new file mode 100644 index 00000000000..ab582361325 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/stax-ex.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/stax2-api.jar b/Frameworks/Misc/ERJaxWS/Libraries/stax2-api.jar new file mode 100644 index 00000000000..63a8a064672 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/stax2-api.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/streambuffer.jar b/Frameworks/Misc/ERJaxWS/Libraries/streambuffer.jar new file mode 100644 index 00000000000..15674ffb5b1 Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/streambuffer.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/woodstox-core-asl.jar b/Frameworks/Misc/ERJaxWS/Libraries/woodstox-core-asl.jar new file mode 100644 index 00000000000..685132d9cdf Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/woodstox-core-asl.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Libraries/woodstox.jar b/Frameworks/Misc/ERJaxWS/Libraries/woodstox.jar new file mode 100644 index 00000000000..db7985cf33b Binary files /dev/null and b/Frameworks/Misc/ERJaxWS/Libraries/woodstox.jar differ diff --git a/Frameworks/Misc/ERJaxWS/Resources/Properties b/Frameworks/Misc/ERJaxWS/Resources/Properties new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Frameworks/Misc/ERJaxWS/Sources/er/extensions/appserver/ws/ERJaxWebService.java b/Frameworks/Misc/ERJaxWS/Sources/er/extensions/appserver/ws/ERJaxWebService.java new file mode 100644 index 00000000000..e17b2736f02 --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/Sources/er/extensions/appserver/ws/ERJaxWebService.java @@ -0,0 +1,458 @@ +package er.extensions.appserver.ws; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; +import java.util.TreeMap; + +import javax.xml.namespace.QName; + +import org.apache.log4j.Logger; + +import com.sun.istack.NotNull; +import com.sun.xml.ws.api.BindingID; +import com.sun.xml.ws.api.message.ExceptionHasMessage; +import com.sun.xml.ws.api.message.Message; +import com.sun.xml.ws.api.message.Packet; +import com.sun.xml.ws.api.pipe.Codec; +import com.sun.xml.ws.api.pipe.ContentType; +import com.sun.xml.ws.api.server.DocumentAddressResolver; +import com.sun.xml.ws.api.server.PortAddressResolver; +import com.sun.xml.ws.api.server.SDDocument; +import com.sun.xml.ws.api.server.ServiceDefinition; +import com.sun.xml.ws.api.server.WSEndpoint; +import com.sun.xml.ws.api.server.WSEndpoint.PipeHead; +import com.sun.xml.ws.binding.BindingImpl; +import com.sun.xml.ws.server.UnsupportedMediaException; +import com.sun.xml.ws.transport.http.WSHTTPConnection; +import com.sun.xml.ws.util.ByteArrayBuffer; +import com.webobjects.appserver.WOApplication; +import com.webobjects.appserver.WODynamicURL; +import com.webobjects.appserver.WOMessage; +import com.webobjects.appserver.WORequest; +import com.webobjects.appserver.WOResponse; + +import er.extensions.appserver.ERXRequest; +import er.extensions.appserver.ERXResourceManager; +import er.extensions.appserver.ERXResponse; + +/** + * @author mstoll + * + * @param + */ +public class ERJaxWebService +{ + /** + * + */ + public static final Logger webServiceLog = + Logger.getLogger("er.extensions.appserver.ws.ERJaxWebServiceRequestHandler.Logging"); + + /** + * + */ + protected WSEndpoint wsEndpoint; + /** + * + */ + protected PipeHead pipeHead; + /** + * + */ + protected Codec codec; + + /** + * + */ + protected Map wsdls; + /** + * + */ + private Map revWsdls; + + public ERJaxWebService(Class implementationClass) + { + wsEndpoint = WSEndpoint.create(implementationClass, false, null, null, null, null, + BindingImpl.create(BindingID.parse(implementationClass)), null, null, null, true); + pipeHead = wsEndpoint.createPipeHead(); + codec = wsEndpoint.createCodec(); + initWSDLMap(wsEndpoint.getServiceDefinition()); + } + + /** + * @param woRequest + * @return + */ + public WOResponse handleRequest(WORequest woRequest) + { + if(isMetadataQuery(woRequest.queryString())) + { + SDDocument doc = wsdls.get(woRequest.queryString()); + if(doc == null) + { + ERXResponse resp = new ERXResponse(); + resp.setStatus(WOMessage.HTTP_STATUS_NOT_FOUND); + return resp; + } + + ERXResponse resp = new ERXResponse(); + + resp.setStatus(HttpURLConnection.HTTP_OK); + resp.setHeader("text/xml;charset=utf-8", "Content-Type"); + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + WODynamicURL du = woRequest._uriDecomposed(); + String baseUri = String.format("%s/%s.woa/%s/%s", + du.adaptorPath(), + du.applicationName(), + du.requestHandlerKey(), + du.requestHandlerPath()); + + boolean isSecure; + + if(woRequest instanceof ERXRequest) + { + isSecure = ((ERXRequest)woRequest).isSecure(); + } else + { + isSecure = ERXRequest.isRequestSecure(woRequest); + } + + String soapAddress = ERXResourceManager._completeURLForResource( + baseUri, + isSecure, + WOApplication.application().createContextForRequest(woRequest) + ); + + try + { + doc.writeTo(new ERPortAddressResolver(soapAddress), + new ERDocumentAddressResolver(soapAddress), + baos); + baos.flush(); + } + catch(IOException e) + { + } + + resp.setContent(baos.toByteArray()); + + return resp; + } + + ERWSWOHTTPConnection con = new ERWSWOHTTPConnection(woRequest); + try + { + Packet packet; + boolean invoke = false; + try + { + packet = decodePacket(con, codec); + invoke = true; + } + catch(Exception e) + { + packet = new Packet(); + if(e instanceof ExceptionHasMessage) + { + webServiceLog.error(e.getMessage(), e); + packet.setMessage(((ExceptionHasMessage)e).getFaultMessage()); + } + else if(e instanceof UnsupportedMediaException) + { + webServiceLog.error(e.getMessage(), e); + con.setStatus(415); + } + else + { + webServiceLog.error(e.getMessage(), e); + con.setStatus(500); + } + } + if(invoke) + { + try + { + packet = pipeHead.process(packet, con.getWebServiceContextDelegate(), + packet.transportBackChannel); + } + catch(Exception e) + { + webServiceLog.error(e.getMessage(), e); + return null; + } + } + try + { + encodePacket(packet, con, codec); + } + catch(IOException e) + { + webServiceLog.error(e.getMessage(), e); + } + } + finally + { + if(!con.isClosed()) + { + con.close(); + } + } + + return con.generateResponse(); + + } + + /** + * @param con + * @param codec + * @return + * @throws IOException + */ + private Packet decodePacket(WSHTTPConnection con, Codec codec) + throws IOException + { + String ct = con.getRequestHeader("Content-Type"); + InputStream in = con.getInput(); + Packet packet = new Packet(); + packet.soapAction = fixQuotesAroundSoapAction(con.getRequestHeader("SOAPAction")); + packet.wasTransportSecure = con.isSecure(); + packet.acceptableMimeTypes = con.getRequestHeader("Accept"); + packet.addSatellite(con); + addSatellites(packet); + packet.webServiceContextDelegate = con.getWebServiceContextDelegate(); + codec.decode(in, ct, packet); + return packet; + } + + /** + * @param soapAction + * @return + */ + public static String fixQuotesAroundSoapAction(String soapAction) + { + if(soapAction != null && (!soapAction.startsWith("\"") || !soapAction.endsWith("\""))) + { + webServiceLog.info("Received WS-I BP non-conformant Unquoted SoapAction HTTP header: " + soapAction); + String fixedSoapAction = soapAction; + if(!soapAction.startsWith("\"")) + fixedSoapAction = (new StringBuilder()).append("\"").append(fixedSoapAction).toString(); + if(!soapAction.endsWith("\"")) + fixedSoapAction = (new StringBuilder()).append(fixedSoapAction).append("\"").toString(); + return fixedSoapAction; + } + else + { + return soapAction; + } + } + + /** + * @param packet1 + */ + protected void addSatellites(Packet packet1) + { + } + + /** + * @param connStatus + * @return + */ + private boolean isClientErrorStatus(int connStatus) + { + return (connStatus == HttpURLConnection.HTTP_FORBIDDEN); // add more for future. + } + + + /** + * @param packet + * @param con + * @param codec + * @throws IOException + */ + private void encodePacket(@NotNull Packet packet, @NotNull WSHTTPConnection con, @NotNull Codec codec) + throws IOException + { + Message responseMessage = packet.getMessage(); + + if(responseMessage == null) + { + if(con.getStatus() == 0) + { + con.setStatus(WSHTTPConnection.ONEWAY); + } + } + else + { + if(con.getStatus() == 0) + { + // if the application didn't set the status code, + // set the default one. + con.setStatus(responseMessage.isFault() + ? HttpURLConnection.HTTP_INTERNAL_ERROR + : HttpURLConnection.HTTP_OK); + } + + if(isClientErrorStatus(con.getStatus())) + return; + + ContentType contentType = codec.getStaticContentType(packet); + if(contentType != null) + { + con.setContentTypeResponseHeader(contentType.getContentType()); + OutputStream os = con.getOutput(); + codec.encode(packet, os); + } + else + { + + ByteArrayBuffer buf = new ByteArrayBuffer(); + contentType = codec.encode(packet, buf); + con.setContentTypeResponseHeader(contentType.getContentType()); + OutputStream os = con.getOutput(); + buf.writeTo(os); + } + } + } + + /** + * @param sdef + */ + public final void initWSDLMap(ServiceDefinition sdef) + { + if(sdef == null) + { + wsdls = Collections.emptyMap(); + revWsdls = Collections.emptyMap(); + } + else + { + wsdls = new HashMap(); + // wsdl=1 --> Doc + // Sort WSDL, Schema documents based on SystemId so that the same + // document gets wsdl=x mapping + Map systemIds = new TreeMap(); + for(SDDocument sdd : sdef) + { + if(sdd == sdef.getPrimary()) + { + // No sorting for Primary WSDL + wsdls.put("wsdl", sdd); + wsdls.put("WSDL", sdd); + } + else + { + systemIds.put(sdd.getURL().toString(), sdd); + } + } + + int wsdlnum = 1; + int xsdnum = 1; + for(Map.Entry e : systemIds.entrySet()) + { + SDDocument sdd = e.getValue(); + if(sdd.isWSDL()) + { + wsdls.put("wsdl=" + (wsdlnum++), sdd); + } + if(sdd.isSchema()) + { + wsdls.put("xsd=" + (xsdnum++), sdd); + } + } + + revWsdls = new HashMap(); // Doc --> wsdl=1 + for(Entry e : wsdls.entrySet()) + { + if(!e.getKey().equals("WSDL")) + { // map Doc --> wsdl, not WSDL + revWsdls.put(e.getValue(), e.getKey()); + } + } + } + } + + /** + * @param query + * @return + */ + private boolean isMetadataQuery(String query) + { + // we intentionally return true even if documents don't exist, + // so that they get 404. + return query != null && (query.equals("WSDL") || query.startsWith("wsdl") || query.startsWith("xsd=")); + } + + /** + * @author mstoll + * + */ + final class ERPortAddressResolver + extends PortAddressResolver + { + /** + * + */ + String base; + + /** + * @param base + */ + public ERPortAddressResolver(String base) + { + super(); + this.base = base; + } + + /* (non-Javadoc) + * @see com.sun.xml.ws.api.server.PortAddressResolver#getAddressFor(javax.xml.namespace.QName, java.lang.String) + */ + @Override + public String getAddressFor(QName qname, String s) + { + return base; + } + }; + + /** + * @author mstoll + * + */ + final class ERDocumentAddressResolver + implements + DocumentAddressResolver + { + /** + * + */ + String base; + + /** + * @param base + */ + public ERDocumentAddressResolver(String base) + { + super(); + this.base = base; + } + + /* (non-Javadoc) + * @see com.sun.xml.ws.api.server.DocumentAddressResolver#getRelativeAddressFor(com.sun.xml.ws.api.server.SDDocument, com.sun.xml.ws.api.server.SDDocument) + */ + @Override + public String getRelativeAddressFor(SDDocument sddocument, SDDocument referenced) + { + assert (revWsdls.containsKey(referenced)); + return base + '?' + ((String)revWsdls.get(referenced)); + } + }; + +} diff --git a/Frameworks/Misc/ERJaxWS/Sources/er/extensions/appserver/ws/ERJaxWebServiceRequestHandler.java b/Frameworks/Misc/ERJaxWS/Sources/er/extensions/appserver/ws/ERJaxWebServiceRequestHandler.java new file mode 100644 index 00000000000..d22d2a01536 --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/Sources/er/extensions/appserver/ws/ERJaxWebServiceRequestHandler.java @@ -0,0 +1,78 @@ +package er.extensions.appserver.ws; + +import com.webobjects.appserver.WORequest; +import com.webobjects.appserver.WOResponse; +import com.webobjects.appserver._private.WODirectActionRequestHandler; +import com.webobjects.foundation.NSArray; +import com.webobjects.foundation.NSMutableDictionary; + +/** + * The WebObject request handler that maps a WORequest to a JaxWS request. + * This class uses the existing JaxWS mechanism for handling Servlet requests. + * + * + * to register your own WebServices, you have to instanciate this class in your + * Application and bind this to a request handler key: + * + *
+ *  ERJaxWebServiceRequestHandler wsHandler = new ERJaxWebServiceRequestHandler()
+ *  registerRequestHandler(wsHandler, this.webServiceRequestHandlerKey());
+ *  
+ * + * To this ERJaxWebServiceRequestHandler you can bind single WebServices, for example: + * + *
+ *  wsHandler.registerWebService("TestWS", new ERJaxWebService(TestWSImpl.class));
+ *  
+ * + * This binds the implementation "TestWSImpl" to the given service name. + * + * This example can be called using this URL: + * + *
+ *  http://hostname/adapterpath/appname/ws/TestWS
+ *  
+ * + * Appending the parameter "?wsdl" will return the full WSDL for this WebService. + * + */ +public class ERJaxWebServiceRequestHandler + extends WODirectActionRequestHandler +{ + /** a dictionary where all WebService registrations are kept */ + protected NSMutableDictionary> registeredWebServices = + new NSMutableDictionary>(); + + /** + * Register a WebService implementation under a given service name + * + * @param serviceName the given servicename, a existing service for this name will be replaced + * @param webService the ERXJaxWebService object, holding the implementation for the referred service + */ + public void registerWebService(String serviceName, ERJaxWebService webService) + { + registeredWebServices.put(serviceName, webService); + } + + /* (non-Javadoc) + * @see com.webobjects.appserver._private.WOActionRequestHandler#handleRequest(com.webobjects.appserver.WORequest) + */ + @Override + public WOResponse handleRequest(WORequest aRequest) + { + NSArray requestHandlerPath = aRequest.requestHandlerPathArray(); + String serviceName = requestHandlerPath.objectAtIndex(0); + + ERJaxWebService ws = registeredWebServices.get(serviceName); + if(ws != null) + { + WOResponse resp = ws.handleRequest(aRequest); + if(resp != null) + return resp; + + return nullResponse(); + } + + return nullResponse(); + } +} diff --git a/Frameworks/Misc/ERJaxWS/Sources/er/extensions/appserver/ws/ERWSWOHTTPConnection.java b/Frameworks/Misc/ERJaxWS/Sources/er/extensions/appserver/ws/ERWSWOHTTPConnection.java new file mode 100644 index 00000000000..959787f4dec --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/Sources/er/extensions/appserver/ws/ERWSWOHTTPConnection.java @@ -0,0 +1,336 @@ +package er.extensions.appserver.ws; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; + +import com.sun.istack.NotNull; +import com.sun.xml.ws.api.PropertySet; +import com.sun.xml.ws.api.server.WebServiceContextDelegate; +import com.sun.xml.ws.transport.http.WSHTTPConnection; +import com.webobjects.appserver.WOApplication; +import com.webobjects.appserver.WOContext; +import com.webobjects.appserver.WORequest; +import com.webobjects.appserver.WOResponse; +import com.webobjects.appserver.WOSession; + +import er.extensions.appserver.ERXRequest; +import er.extensions.appserver.ERXResponse; +import er.extensions.appserver.ERXWOContext; + + +/** + * @author mstoll + * + * This class maps ERXRequest/ERXResponse to a WSHTTPConnection + * This enables to jump into the request handling mechanism of JaxWS + * for handling WebServices from a Servlet. + * + */ +public class ERWSWOHTTPConnection + extends WSHTTPConnection +{ + public static final String ERJAXWS_WOCONTEXT = "com.webobjects.appserver.WOContext"; + public static final String ERJAXWS_ERXWOCONTEXT = "er.extensions.appserver.ERXWOContext"; + + /** the current ERXRequest */ + ERXRequest woRequest; + + /** the output stream JaxWS writes into */ + ByteArrayOutputStream responseOutputStream = new ByteArrayOutputStream(); + + /** the HTTP result status, being set from JaxWS + * to be handed into ERXResponse + */ + int responseStatus = 0; + + /** the current ERXResponse */ + ERXResponse woResponse; + + /** the associated session **/ + WOSession session = null; + + private static final PropertySet.PropertyMap model = parse(ERWSWOHTTPConnection.class); + + /** + * The constructor + * @param req the current ERXRequest for this RR cycle + */ + public ERWSWOHTTPConnection(WORequest req) + { + woRequest = (ERXRequest)req; + woResponse = new ERXResponse(); + } + + /* (non-Javadoc) + * @see com.sun.xml.ws.transport.http.WSHTTPConnection#getInput() + */ + @Override + public InputStream getInput() throws IOException + { + return woRequest.content().stream(); + } + + /* (non-Javadoc) + * @see com.sun.xml.ws.transport.http.WSHTTPConnection#getOutput() + */ + @Override + public OutputStream getOutput() throws IOException + { + return responseOutputStream; + } + + /* (non-Javadoc) + * @see com.sun.xml.ws.transport.http.WSHTTPConnection#getPathInfo() + */ + @Override + public String getPathInfo() + { + return ""; + } + + /* (non-Javadoc) + * @see com.sun.xml.ws.transport.http.WSHTTPConnection#getQueryString() + */ + @Override + public String getQueryString() + { + return woRequest.queryString(); + } + + /* (non-Javadoc) + * @see com.sun.xml.ws.transport.http.WSHTTPConnection#getRequestHeader(java.lang.String) + */ + @Override + public String getRequestHeader(String s) + { + return woRequest.headerForKey(s); + } + +// JAX 2.2 methods +// @Override +// public Set getRequestHeaderNames() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// @Override +// public List getRequestHeaderValues(String s) +// { +// // TODO Auto-generated method stub +// return null; +// } + + /* (non-Javadoc) + * @see com.sun.xml.ws.transport.http.WSHTTPConnection#getRequestHeaders() + */ + @SuppressWarnings({ + "rawtypes", "unchecked" + }) + @PropertySet.Property({ "javax.xml.ws.http.request.headers", + "com.sun.xml.ws.api.message.packet.inbound.transport.headers" }) + @NotNull + @Override + public Map> getRequestHeaders() + { + return (Map)woRequest.headers(); + } + + /* (non-Javadoc) + * @see com.sun.xml.ws.transport.http.WSHTTPConnection#getRequestMethod() + */ + @Override + public String getRequestMethod() + { + return woRequest.method(); + } + +// JAX 2.2 methods +// @Override +// public String getRequestScheme() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// @Override +// public String getRequestURI() +// { +// // TODO Auto-generated method stub +// return null; +// } + + /* (non-Javadoc) + * @see com.sun.xml.ws.transport.http.WSHTTPConnection#getResponseHeaders() + */ + @PropertySet.Property({ "javax.xml.ws.http.response.headers", + "com.sun.xml.ws.api.message.packet.outbound.transport.headers" }) + @Override + public Map> getResponseHeaders() + { + return null; + } + +// @Override +// public String getServerName() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// @Override +// public int getServerPort() +// { +// // TODO Auto-generated method stub +// return 0; +// } + + /* (non-Javadoc) + * @see com.sun.xml.ws.transport.http.WSHTTPConnection#getStatus() + */ + @Override + public int getStatus() + { + return responseStatus; + } + + /* (non-Javadoc) + * @see com.sun.xml.ws.transport.http.WSHTTPConnection#getWebServiceContextDelegate() + */ + @Override + public WebServiceContextDelegate getWebServiceContextDelegate() + { + return null; + } + + /* (non-Javadoc) + * @see com.sun.xml.ws.transport.http.WSHTTPConnection#isSecure() + */ + @Override + public boolean isSecure() + { + return woRequest.isSecure(); + } + + /* (non-Javadoc) + * @see com.sun.xml.ws.transport.http.WSHTTPConnection#setContentTypeResponseHeader(java.lang.String) + */ + @Override + public void setContentTypeResponseHeader(String s) + { + woResponse.setHeader(s, "Content-Type"); + } + +// @Override +// public void setResponseHeader(String s, List list) +// { +// // TODO Auto-generated method stub +// +// } + + /* (non-Javadoc) + * @see com.sun.xml.ws.transport.http.WSHTTPConnection#setResponseHeaders(java.util.Map) + */ + @Override + public void setResponseHeaders(Map> map) + { + woResponse.setHeaders(map); + } + + /* (non-Javadoc) + * @see com.sun.xml.ws.transport.http.WSHTTPConnection#setStatus(int) + */ + @Override + public void setStatus(int i) + { + responseStatus = i; + } + + /* (non-Javadoc) + * @see com.sun.xml.ws.api.PropertySet#getPropertyMap() + */ + @Override + protected PropertySet.PropertyMap getPropertyMap() + { + return model; + } + + /** + * Generate the response after the ERXRequest has been treaten by JaxWS + * + * @return the generated ERXResponse + */ + public WOResponse generateResponse() + { + try + { + responseOutputStream.flush(); + woResponse.setStatus(responseStatus); + woResponse.setContent(responseOutputStream.toByteArray()); + + if(context != null && context._session() != null) + { + context._session().setStoresIDsInCookies(true); + context._session()._appendCookieToResponse(woResponse); + WOApplication.application().saveSessionForContext(context); + + woResponse._finalizeInContext(context); + } + } + catch(IOException e) + { + Logger.getLogger("er.extensions.appserver.ws.ERJaxWebServiceRequestHandler.Logging").error("Exception on writing response", e); + return null; + } + + return woResponse; + } + + private WOContext context = null; + + @PropertySet.Property({ "com.webobjects.appserver.WOContext" }) + public synchronized WOContext WOContext() + { + if(context == null) + { + synchronized (this) + { + if(context == null) + { + context = WOApplication.application().createContextForRequest(woRequest); + + String sessionID = getSessionIDFromCookie(); + if(sessionID != null) + context._setRequestSessionID(sessionID); + } + } + } + + return context; + } + + @PropertySet.Property({ "er.extensions.appserver.ERXWOContext" }) + public synchronized ERXWOContext ERXWOContext() + { + WOContext c = WOContext(); + + if(c instanceof ERXWOContext) + { + return (ERXWOContext)c; + } + + throw new IllegalArgumentException("WOContext is no sublass of ERXWOContext"); + } + + private String getSessionIDFromCookie() + { + return woRequest.cookieValueForKey(WOApplication.application().sessionIdKey()); + } + +} diff --git a/Frameworks/Misc/ERJaxWS/build.properties b/Frameworks/Misc/ERJaxWS/build.properties new file mode 100644 index 00000000000..51ceaaeb63e --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/build.properties @@ -0,0 +1,16 @@ +classes.dir = bin +project.name=ERJaxWS +project.name.lowercase=erjaxws +project.type=framework +principalClass = +customInfoPListContent = +embed.Local=true +embed.System=true +eoAdaptorClassName = +cfBundleVersion = +cfBundleShortVersion = +cfBundleID = org.mywoapp +javaVersion = 1.5+ +component.wellFormedTemplateRequired=true +component.inlineBindingPrefix=[ +component.inlineBindingSuffix=] \ No newline at end of file diff --git a/Frameworks/Misc/ERJaxWS/build.xml b/Frameworks/Misc/ERJaxWS/build.xml new file mode 120000 index 00000000000..0f8b528f5ed --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/build.xml @@ -0,0 +1 @@ +../../../Build/build/build-framework-template.xml \ No newline at end of file diff --git a/Frameworks/Misc/ERJaxWS/woproject/classes.exclude.patternset b/Frameworks/Misc/ERJaxWS/woproject/classes.exclude.patternset new file mode 100644 index 00000000000..56fb545fa67 --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/woproject/classes.exclude.patternset @@ -0,0 +1 @@ +build.properties diff --git a/Frameworks/Misc/ERJaxWS/woproject/classes.include.patternset b/Frameworks/Misc/ERJaxWS/woproject/classes.include.patternset new file mode 100644 index 00000000000..3179091db39 --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/woproject/classes.include.patternset @@ -0,0 +1,2 @@ +**/*.class +*.properties diff --git a/Frameworks/Misc/ERJaxWS/woproject/resources.exclude.patternset b/Frameworks/Misc/ERJaxWS/woproject/resources.exclude.patternset new file mode 100644 index 00000000000..905050dfb73 --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/woproject/resources.exclude.patternset @@ -0,0 +1,3 @@ +**/*.eomodeld~/ +**/*.woa/** +**/*.framework/** diff --git a/Frameworks/Misc/ERJaxWS/woproject/resources.include.patternset b/Frameworks/Misc/ERJaxWS/woproject/resources.include.patternset new file mode 100644 index 00000000000..611978755e2 --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/woproject/resources.include.patternset @@ -0,0 +1,3 @@ +Components/**/*.wo/**/* +Components/**/*.api +Resources/**/* \ No newline at end of file diff --git a/Frameworks/Misc/ERJaxWS/woproject/wsresources.exclude.patternset b/Frameworks/Misc/ERJaxWS/woproject/wsresources.exclude.patternset new file mode 100644 index 00000000000..9435a512320 --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/woproject/wsresources.exclude.patternset @@ -0,0 +1,3 @@ +**/*.woa/** +**/*.framework/** +**/*.eomodeld~/** diff --git a/Frameworks/Misc/ERJaxWS/woproject/wsresources.include.patternset b/Frameworks/Misc/ERJaxWS/woproject/wsresources.include.patternset new file mode 100644 index 00000000000..234cdc88bb7 --- /dev/null +++ b/Frameworks/Misc/ERJaxWS/woproject/wsresources.include.patternset @@ -0,0 +1 @@ +WebServerResources/**/* diff --git a/Frameworks/Misc/pom.xml b/Frameworks/Misc/pom.xml index dae721501d6..fcc33b5e46c 100644 --- a/Frameworks/Misc/pom.xml +++ b/Frameworks/Misc/pom.xml @@ -16,6 +16,7 @@ ERDistribution ERChronic ERFirebug + ERJaxWS ERPDFGeneration ERPersistentSessionStorage ERProfiling @@ -27,4 +28,4 @@ WOJRebel WOLips -
\ No newline at end of file + diff --git a/pom.xml b/pom.xml index 088a8fd54cb..9bbeffadf74 100644 --- a/pom.xml +++ b/pom.xml @@ -316,6 +316,11 @@ ERDivaliteLook ${project.version} + + wonder.misc + ERJaxWS + ${project.version} + wonder.eoadaptors JavaMemoryAdaptor