You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by he...@apache.org on 2005/07/04 15:32:45 UTC
svn commit: r209072 - in /webservices/axis/trunk/java/modules/samples: ./
src/sample/mtom/ src/sample/mtom/META-INF/ src/sample/mtom/client/
Author: hemapani
Date: Mon Jul 4 06:32:41 2005
New Revision: 209072
URL: http://svn.apache.org/viewcvs?rev=209072&view=rev
Log:
check in the mtom sample
Added:
webservices/axis/trunk/java/modules/samples/src/sample/mtom/
webservices/axis/trunk/java/modules/samples/src/sample/mtom/META-INF/
webservices/axis/trunk/java/modules/samples/src/sample/mtom/META-INF/service.xml
webservices/axis/trunk/java/modules/samples/src/sample/mtom/MTOMService.java
webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/
webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/EchoRawMTOMTest.java
webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/MTOMClient.java
webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/UserInterface.java
Modified:
webservices/axis/trunk/java/modules/samples/maven.xml
Modified: webservices/axis/trunk/java/modules/samples/maven.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/maven.xml?rev=209072&r1=209071&r2=209072&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/maven.xml (original)
+++ webservices/axis/trunk/java/modules/samples/maven.xml Mon Jul 4 06:32:41 2005
@@ -54,6 +54,7 @@
<attainGoal name="googleSearch"/>
<attainGoal name="googleSpellcheck"/>
<attainGoal name="version"/>
+ <attainGoal name="mtomSample"/>
</goal>
<!-- ================================================================ -->
@@ -208,6 +209,32 @@
</jar>
</goal>
+ <!-- ================================================================ -->
+ <!--- Google MTOM Sample -->
+ <!-- ================================================================ -->
+
+ <goal name="mtomSample">
+ <mkdir dir="${samples.dir}/mtom"/>
+ <mkdir dir="${samples.dir}/mtom/src"/>
+ <ant:copy todir="${samples.dir}/mtom/src">
+ <ant:fileset dir="src">
+ <ant:include name="sample/mtom/**"/>
+ </ant:fileset>
+ </ant:copy>
+ <jar destfile="${samples.dir}/mtom/mtomSample.aar">
+ <fileset dir="src/sample/mtom/">
+ <include name="META-INF/**"/>
+ </fileset>
+ <fileset dir="target/classes">
+ <include name="sample/mtom/*.class"/>
+ </fileset>
+ </jar>
+ <jar destfile="${samples.dir}/mtom/mtomClient.jar">
+ <fileset dir="target/classes">
+ <include name="sample/mtom/**"/>
+ </fileset>
+ </jar>
+ </goal>
<goal name="test-mtom">
<echo message="running MTOM tests"/>
Added: webservices/axis/trunk/java/modules/samples/src/sample/mtom/META-INF/service.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/sample/mtom/META-INF/service.xml?rev=209072&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/sample/mtom/META-INF/service.xml (added)
+++ webservices/axis/trunk/java/modules/samples/src/sample/mtom/META-INF/service.xml Mon Jul 4 06:32:41 2005
@@ -0,0 +1,12 @@
+<service name="MyService">
+ <description>
+ This is a sample Web Service with two operations,echo and ping.
+ </description>
+ <parameter name="ServiceClass" locked="xsd:false">userguide.example1.MyService</parameter>
+ <operation name="echo">
+ <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+ </operation>
+ <operation name="ping">
+ <messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+ </operation>
+ </service>
\ No newline at end of file
Added: webservices/axis/trunk/java/modules/samples/src/sample/mtom/MTOMService.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/sample/mtom/MTOMService.java?rev=209072&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/sample/mtom/MTOMService.java (added)
+++ webservices/axis/trunk/java/modules/samples/src/sample/mtom/MTOMService.java Mon Jul 4 06:32:41 2005
@@ -0,0 +1,42 @@
+package sample.mtom;
+
+import java.awt.Image;
+import java.io.FileOutputStream;
+
+import javax.activation.DataHandler;
+
+import org.apache.axis2.attachments.JDK13IO;
+import org.apache.axis2.om.OMAbstractFactory;
+import org.apache.axis2.om.OMElement;
+import org.apache.axis2.om.OMFactory;
+import org.apache.axis2.om.OMNamespace;
+import org.apache.axis2.om.OMText;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: Jaliya
+ * Date: Jun 2, 2005
+ * Time: 2:17:58 PM
+ */
+public class MTOMService {
+ public OMElement mtomSample(OMElement element) throws Exception {
+ //Praparing the OMElement so that it can be attached to another OM Tree.
+ //First the OMElement should be completely build in case it is not fully built and still
+ //some of the xml is in the stream.
+ OMElement imageEle = element.getFirstElement();
+ OMElement imageName = (OMElement)imageEle.getNextSibling();
+ OMText binaryNode = (OMText) imageEle.getFirstChild();
+ String nameNode = imageName.getText();
+ DataHandler actualDH;
+ actualDH = binaryNode.getDataHandler();
+ Image actualObject = new JDK13IO().loadImage(actualDH.getDataSource()
+ .getInputStream());
+ FileOutputStream imageOutStream = new FileOutputStream(nameNode);
+ new JDK13IO().saveImage("image/jpeg", actualObject, imageOutStream);
+ OMFactory fac = OMAbstractFactory.getOMFactory();
+ OMNamespace ns = fac.createOMNamespace("urn://fakenamespace","ns");
+ OMElement ele = fac.createOMElement("response",ns);
+ ele.setText("Image Saved");
+ return ele;
+ }
+}
Added: webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/EchoRawMTOMTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/EchoRawMTOMTest.java?rev=209072&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/EchoRawMTOMTest.java (added)
+++ webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/EchoRawMTOMTest.java Mon Jul 4 06:32:41 2005
@@ -0,0 +1,89 @@
+package sample.mtom.client;
+
+import org.apache.axis2.Constants;
+import org.apache.axis2.addressing.AddressingConstants;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.attachments.ImageDataSource;
+import org.apache.axis2.attachments.JDK13IO;
+import org.apache.axis2.clientapi.Call;
+import org.apache.axis2.om.*;
+import org.apache.axis2.om.impl.llom.OMTextImpl;
+
+import javax.activation.DataHandler;
+import javax.xml.namespace.QName;
+import java.awt.*;
+import java.io.File;
+import java.io.FileInputStream;
+
+
+public class EchoRawMTOMTest {
+ private File inputFile = null;
+
+ private EndpointReference targetEPR = new EndpointReference(AddressingConstants.WSA_TO,
+ "http://127.0.0.1:8080/axis2/services/MyService");
+
+
+ private QName operationName = new QName("echoOMElement");
+
+
+ public EchoRawMTOMTest() {
+
+ }
+
+ private OMElement createEnvelope(String fileName) throws Exception {
+
+ DataHandler expectedDH;
+ OMFactory fac = OMAbstractFactory.getOMFactory();
+ OMNamespace omNs = fac.createOMNamespace("http://localhost/my", "my");
+
+ OMElement data = fac.createOMElement("mtomSample", omNs);
+ OMElement image = fac.createOMElement("image", omNs);
+ Image expectedImage;
+ expectedImage = new JDK13IO()
+ .loadImage(new FileInputStream(inputFile));
+
+ ImageDataSource dataSource = new ImageDataSource("test.jpg",
+ expectedImage);
+ expectedDH = new DataHandler(dataSource);
+ OMText textData = new OMTextImpl(expectedDH, true);
+ image.addChild(textData);
+
+ OMElement imageName = fac.createOMElement("fileName", omNs);
+ if (fileName != null) {
+ imageName.setText(fileName);
+ }
+ data.addChild(image);
+ data.addChild(imageName);
+
+ return data;
+
+ }
+
+ public OMElement testEchoXMLSync(String fileName) throws Exception {
+
+ OMElement payload = createEnvelope(fileName);
+
+ Call call = new Call();
+ call.setTo(targetEPR);
+ call.set(Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE);
+ call.setTransportInfo(Constants.TRANSPORT_HTTP,
+ Constants.TRANSPORT_HTTP, false);
+
+ OMElement result = (OMElement) call.invokeBlocking(operationName
+ .getLocalPart(), payload);
+
+ return result;
+ }
+
+
+ public void setTargetEPR(String targetEPR) {
+ this.targetEPR = new EndpointReference(AddressingConstants.WSA_TO,
+ targetEPR);
+
+ }
+
+
+ public void setInputFile(File inputFile) {
+ this.inputFile = inputFile;
+ }
+}
Added: webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/MTOMClient.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/MTOMClient.java?rev=209072&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/MTOMClient.java (added)
+++ webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/MTOMClient.java Mon Jul 4 06:32:41 2005
@@ -0,0 +1,30 @@
+package sample.mtom.client;
+
+import java.awt.Dimension;
+import java.awt.HeadlessException;
+import java.awt.Toolkit;
+import java.awt.event.ActionListener;
+
+import javax.swing.JFrame;
+import javax.swing.WindowConstants;
+
+public class MTOMClient extends JFrame{
+
+ public MTOMClient(String title) throws HeadlessException {
+ super(title);
+
+ this.getContentPane().add(new UserInterface(this));
+ this.show();
+
+ }
+
+ public static void main(String[] args) {
+ MTOMClient form = new MTOMClient("MTOM Sample Client");
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ form.setLocation(screenSize.width / 4 - 20,
+ screenSize.height / 4);
+ form.setSize(screenSize.width / 2 - 80, screenSize.height / 2);
+ form.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
+ form.show();
+ }
+}
Added: webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/UserInterface.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/UserInterface.java?rev=209072&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/UserInterface.java (added)
+++ webservices/axis/trunk/java/modules/samples/src/sample/mtom/client/UserInterface.java Mon Jul 4 06:32:41 2005
@@ -0,0 +1,188 @@
+package sample.mtom.client;
+
+
+import org.apache.axis2.om.OMElement;
+
+import javax.swing.*;
+import javax.swing.filechooser.FileFilter;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+
+public class UserInterface extends JPanel implements ActionListener {
+
+
+ JButton browse;
+ JButton send;
+ JTextArea jTextArea;
+ JFileChooser jFileChooser;
+ File file = null;
+ JTextField EPR;
+ JTextField fileName;
+ JTextField fileFeild;
+ JLabel label;
+ JLabel savefile;
+ private String deriredFileName = null;
+ private String EPRName = null;
+ private MTOMClient swa;
+
+ public UserInterface(MTOMClient swa) {
+ this.swa = swa;
+ EPR = new JTextField();
+ fileFeild = new JTextField();
+ fileName = new JTextField();
+ label = new JLabel("END Point:");
+ savefile = new JLabel("Desired File Name:");
+ jTextArea = new JTextArea(5, 5);
+ jTextArea.setPreferredSize(new Dimension(200, 100));
+
+ jFileChooser = new JFileChooser();
+ jFileChooser.addChoosableFileFilter(new ImageFilter());
+ jFileChooser.setAcceptAllFileFilterUsed(false);
+ jFileChooser.setName("Image Chosser");
+ this.browse = new JButton("Browse");
+ this.send = new JButton("send The Image");
+ fileFeild.setBounds(20, 20, 270, 20);
+ browse.setBounds(300, 20, 120, 20);
+ savefile.setBounds(20, 60, 200, 20);
+ fileName.setBounds(150, 60, 270, 20);
+
+
+ label.setBounds(20, 90, 200, 20);
+ EPR.setBounds(150, 90, 270, 20);
+
+ EPR.setText("http://127.0.0.1:8080/axis2/services/MyService");
+
+ send.setBounds(140, 120, 150, 20);
+
+ jTextArea.setBounds(20, 150, 400, 180);
+
+ browse.addActionListener(this);
+ send.addActionListener(this);
+
+ Container pane = swa.getContentPane();
+ this.setLayout(null);
+
+
+ pane.add(browse);
+
+
+ pane.add(send);
+ pane.add(jTextArea);
+ pane.add(EPR);
+ pane.add(fileFeild);
+ pane.add(label);
+ pane.add(savefile);
+ pane.add(fileName);
+
+ }
+
+ public void actionPerformed(ActionEvent e) {
+
+ if (e.getSource() == browse) {
+
+ int returnVal = jFileChooser.showDialog(this, "OK");
+
+
+ if (returnVal == JFileChooser.APPROVE_OPTION) {
+ file = jFileChooser.getSelectedFile();
+ if (file.getAbsolutePath() != null) {
+ fileFeild.setText(file.getAbsolutePath());
+ }
+ } else {
+
+ }
+
+
+ jFileChooser.setSelectedFile(null);
+
+
+ }
+ if (e.getSource() == send) {
+ if (fileName.getText() != null) {
+ deriredFileName = fileName.getText();
+ }
+ if (file == null) {
+ JOptionPane.showMessageDialog(swa,
+ "Attachments should not be null.",
+ " error",
+ JOptionPane.ERROR_MESSAGE);
+
+ } else if (("").equals(EPR.getText())) {
+ JOptionPane.showMessageDialog(swa,
+ "END Point null",
+ " error",
+ JOptionPane.ERROR_MESSAGE);
+
+ } else {
+ EPRName = EPR.getText();
+ this.send(deriredFileName);
+ }
+
+
+ }
+ }
+
+ public void send(String fileName) {
+
+ EchoRawMTOMTest mtomTest = new EchoRawMTOMTest();
+
+ try {
+ mtomTest.setInputFile(file);
+ mtomTest.setTargetEPR(EPRName);
+ OMElement result = (OMElement) mtomTest.testEchoXMLSync(fileName);
+ jTextArea.setText(result.toString());
+ } catch (Exception e) {
+ e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ }
+
+ }
+
+
+ class ImageFilter extends FileFilter {
+
+ //Accept all directories and all gif, jpg, tiff, or png files.
+ public boolean accept(File f) {
+ if (f.isDirectory()) {
+ return true;
+ }
+
+ String extension = getExtension(f);
+ if (extension != null) {
+ if (
+ extension.equals("jpg") ||
+ extension.equals("JPEG"))
+ return true;
+ else {
+ return false;
+ }
+ }
+
+ return false;
+ }
+
+ public String getDescription() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ private String getExtension(File f) {
+ String ext = null;
+ String s = f.getName();
+ int i = s.lastIndexOf('.');
+
+ if (i > 0 && i < s.length() - 1) {
+ ext = s.substring(i + 1).toLowerCase();
+ }
+ return ext;
+ }
+
+
+ }
+
+ //The description of this filter
+ public String getDescription() {
+ return "Just Images";
+ }
+
+}