NamingServiceClient.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.core.transport;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. import java.util.Properties;
  22. import junit.framework.TestCase;
  23. import org.apache.log4j.LogManager;
  24. import org.apache.log4j.Logger;
  25. import org.omg.CORBA.ORB;
  26. import org.omg.CORBA.ORBPackage.InvalidName;
  27. import org.omg.CosNaming.Binding;
  28. import org.omg.CosNaming.BindingIteratorHolder;
  29. import org.omg.CosNaming.BindingListHolder;
  30. import org.omg.CosNaming.BindingType;
  31. import org.omg.CosNaming.NamingContextExt;
  32. import org.omg.CosNaming.NamingContextExtHelper;
  33. public class NamingServiceClient extends TestCase {
  34. private static final Logger log = LogManager
  35. .getLogger(NamingServiceClient.class);
  36. public void test() throws InvalidName {
  37. String[] args = new String[2];
  38. args[0] = "-ORBInitRef";
  39. args[1] = "NameService=corbaloc::localhost:3528/NameService";
  40. Properties props = new Properties();
  41. props.put("org.omg.CORBA.ORBInitialPort", "3528");
  42. props.put("org.omg.CORBA.ORBInitialHost", "localhost");
  43. ORB orb = ORB.init(args, props);
  44. NamingContextExt nc = NamingContextExtHelper.narrow(orb
  45. .resolve_initial_references("NameService"));
  46. BindingListHolder bl = new BindingListHolder();
  47. BindingIteratorHolder blIt = new BindingIteratorHolder();
  48. nc.list(1000, bl, blIt);
  49. Binding bindings[] = bl.value;
  50. List<String> toResolve = new ArrayList<String>();
  51. toResolve.add("TransactionManagerService");
  52. for (int i = 0; i < bindings.length; i++) {
  53. int lastIx = bindings[i].binding_name.length - 1;
  54. // check to see if this is a naming context
  55. if (bindings[i].binding_type == BindingType.ncontext) {
  56. log.info("Context: " + bindings[i].binding_name[lastIx].id);
  57. } else {
  58. log.info("Object: " + bindings[i].binding_name[lastIx].id);
  59. }
  60. toResolve.remove(bindings[i].binding_name[lastIx].id);
  61. }
  62. assertTrue(toResolve.isEmpty());
  63. }
  64. }