TestSpecExampleOne.java
上传用户:xfwatch
上传日期:2020-12-14
资源大小:872k
文件大小:3k
源码类别:

中间件编程

开发平台:

Java

  1. /*
  2.  * JBoss, Home of Professional Open Source
  3.  * Copyright 2008, Red Hat, Inc., and others contributors as indicated
  4.  * by the @authors tag. All rights reserved.
  5.  * See the copyright.txt in the distribution for a
  6.  * full listing of individual contributors.
  7.  * This copyrighted material is made available to anyone wishing to use,
  8.  * modify, copy, or redistribute it subject to the terms and conditions
  9.  * of the GNU Lesser General Public License, v. 2.1.
  10.  * This program is distributed in the hope that it will be useful, but WITHOUT A
  11.  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  12.  * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
  13.  * You should have received a copy of the GNU Lesser General Public License,
  14.  * v.2.1 along with this distribution; if not, write to the Free Software
  15.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  16.  * MA  02110-1301, USA.
  17.  */
  18. package org.jboss.blacktie.jatmibroker.xatmi;
  19. import junit.framework.TestCase;
  20. import org.apache.log4j.LogManager;
  21. import org.apache.log4j.Logger;
  22. import org.jboss.blacktie.jatmibroker.RunServer;
  23. import org.jboss.blacktie.jatmibroker.core.conf.ConfigurationException;
  24. public class TestSpecExampleOne extends TestCase {
  25. private static final Logger log = LogManager
  26. .getLogger(TestSpecExampleOne.class);
  27. public static final int OK = 1;
  28. public static final int NOT_OK = 0;
  29. private RunServer server = new RunServer();
  30. private Connection connection;
  31. public void setUp() throws ConnectionException, ConfigurationException {
  32. server.serverinit();
  33. server.tpadvertiseCREDIT();
  34. server.tpadvertiseDEBIT();
  35. ConnectionFactory connectionFactory = ConnectionFactory
  36. .getConnectionFactory();
  37. connection = connectionFactory.getConnection();
  38. }
  39. public void tearDown() throws ConnectionException, ConfigurationException {
  40. connection.close();
  41. server.serverdone(); // server.close();
  42. }
  43. public void test() throws ConnectionException {
  44. log.info("TestSpecExampleOne::test_specexampleone");
  45. long dlen = 0;
  46. long clen = 0; /* contains a character array named input and an */
  47. int cd; /* integer named output. */
  48. /* allocate typed buffers */
  49. X_C_TYPE dptr = (X_C_TYPE) connection.tpalloc("X_C_TYPE", "dc_buf"); // TODO
  50. // ,0
  51. X_C_TYPE cptr = (X_C_TYPE) connection.tpalloc("X_C_TYPE", "dc_buf"); // TODO
  52. // ,0
  53. /* populate typed buffers with input data */
  54. dptr.setByteArray("input", "debit account 123 by 50".getBytes());
  55. cptr.setByteArray("input", "credit account 456 by 50".getBytes());
  56. // TODO tx_begin(); /* start global transaction */
  57. /* issue asynchronous request to DEBIT, while it is processing... */
  58. cd = connection.tpacall(server.getServiceNameDEBIT(), dptr, 0,
  59. Connection.TPSIGRSTRT);
  60. /* ...issue synchronous request to CREDIT */
  61. Response response = connection.tpcall(server.getServiceNameCREDIT(),
  62. cptr, 0, Connection.TPSIGRSTRT);
  63. cptr = (X_C_TYPE) response.getBuffer();
  64. clen = response.getLen();
  65. /* retrieve DEBIT�s reply */
  66. response = connection.tpgetrply(cd, Connection.TPSIGRSTRT);
  67. dptr = (X_C_TYPE) response.getBuffer();
  68. dlen = response.getLen();
  69. if (dptr.getInt("output") == OK && cptr.getInt("output") == OK) {
  70. // TODO tx_commit(); /* commit global transaction */
  71. } else {
  72. // TODO tx_rollback(); /* rollback global transaction */
  73. }
  74. }
  75. }