KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > jmx > test > DeployXMBeanUnitTestCase


1 /*
2  * JBoss, Home of Professional Open Source
3  * Copyright 2005, JBoss Inc., and individual contributors as indicated
4  * by the @authors tag. See the copyright.txt in the distribution for a
5  * full listing of individual contributors.
6  *
7  * This is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU Lesser General Public License as
9  * published by the Free Software Foundation; either version 2.1 of
10  * the License, or (at your option) any later version.
11  *
12  * This software is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this software; if not, write to the Free
19  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21  */

22 package org.jboss.test.jmx.test;
23
24 import javax.management.Attribute JavaDoc;
25 import javax.management.MBeanServerConnection JavaDoc;
26 import javax.management.ObjectName JavaDoc;
27 import javax.naming.InitialContext JavaDoc;
28 import javax.naming.Name JavaDoc;
29
30 import junit.framework.Test;
31 import junit.framework.TestSuite;
32
33 import org.jboss.security.SecurityAssociation;
34 import org.jboss.security.SimplePrincipal;
35 import org.jboss.test.JBossTestCase;
36 import org.jboss.test.jmx.xmbean.CustomType;
37 import org.jnp.interfaces.Naming;
38
39 /** JBoss model mbean deployment tests
40  *
41  * @author <a HREF="mailto:d_jencks@users.sourceforge.net">David Jencks</a>
42  * @author <a HREF="mailto:dimitris@jboss.org">Dimitris Andreadis</a>
43  * @author Scott.Stark@jboss.org
44  * @version $Revision: 56695 $
45  */

46 public class DeployXMBeanUnitTestCase extends JBossTestCase
47 {
48    private final static String JavaDoc PACKAGE_NAME = "user-xmbean.sar";
49
50    public DeployXMBeanUnitTestCase(String JavaDoc name)
51    {
52       super(name);
53    }
54
55    public static Test suite() throws Exception JavaDoc
56    {
57       // JBAS-3604, the execution order of tests in this test case is important
58
// so it must be defined explicitly when running under some JVMs
59
TestSuite suite = new TestSuite();
60       suite.addTest(new DeployXMBeanUnitTestCase("testDeployXdocletUserXMBean"));
61       suite.addTest(new DeployXMBeanUnitTestCase("testGeneratedAVCFromWrappedStandardMBeanImpl"));
62       suite.addTest(new DeployXMBeanUnitTestCase("testDeployUserXMBean"));
63       suite.addTest(new DeployXMBeanUnitTestCase("testDeployUserEmbeddedDescriptorXMBean"));
64       suite.addTest(new DeployXMBeanUnitTestCase("testUserXMBeanValues"));
65       suite.addTest(new DeployXMBeanUnitTestCase("testUserXMBeanPersistentValues"));
66       suite.addTest(new DeployXMBeanUnitTestCase("testUserXMBeanPersistentValuesWithCustomPM"));
67       suite.addTest(new DeployXMBeanUnitTestCase("testSecuredXMBean"));
68       suite.addTest(new DeployXMBeanUnitTestCase("testSecuredJndiXMBean"));
69       suite.addTest(new DeployXMBeanUnitTestCase("testPersistentJndiXMBean"));
70       suite.addTest(new DeployXMBeanUnitTestCase("testXMBeanExternalEntityImport"));
71       
72       return suite;
73    }
74       
75    /** Test the xdoclet generated xmbean descriptor
76     * @throws Exception on failure
77     */

78    public void testDeployXdocletUserXMBean() throws Exception JavaDoc
79    {
80       getLog().info("+++ testDeployXdocletUserXMBean");
81       ObjectName JavaDoc userName = new ObjectName JavaDoc("jboss.test:service=xmbean-user");
82       MBeanServerConnection JavaDoc server = getServer();
83       try
84       {
85          deploy(PACKAGE_NAME);
86          getLog().info("Testing "+userName);
87
88          boolean isRegistered = server.isRegistered(userName);
89          assertTrue(userName+" is registered", isRegistered);
90          server.setAttribute(userName, new Attribute JavaDoc("ArtificialAttribute", "test-value"));
91          String JavaDoc actual = (String JavaDoc)server.getAttribute(userName, "ArtificialAttribute");
92          assertTrue("ArtificialAttribute should be 'test-value' rather than " + actual, "test-value".equals(actual));
93       }
94       finally
95       {
96          undeploy(PACKAGE_NAME);
97       } // end of try-finally
98
}
99
100    /** Test the generation of AVCs from target resources that are
101     * NotificationBroadcasters, too, like a class extending ServiceMBeanSupport
102     * @throws Exception on failure
103     */

104    public void testGeneratedAVCFromWrappedStandardMBeanImpl() throws Exception JavaDoc
105    {
106       getLog().info("+++ testGeneratedAVCFromWrappedStandardMBeanImpl");
107       String JavaDoc module = "listener-xmbean.sar";
108       ObjectName JavaDoc target = new ObjectName JavaDoc("jboss.test:service=self-listener-xmbean");
109       MBeanServerConnection JavaDoc server = getServer();
110       try
111       {
112          deploy(module);
113          getLog().info("Testing " + target);
114          
115          boolean isRegistered = server.isRegistered(target);
116          assertTrue(target + " is registered", isRegistered);
117          
118          server.setAttribute(target, new Attribute JavaDoc("Attr1", Boolean.TRUE));
119          
120          Boolean JavaDoc gotAttr1AVC = (Boolean JavaDoc)server.getAttribute(target, "GotAttr1AVC");
121          assertTrue("XMBean got an AVC for the attribute change: " + gotAttr1AVC.booleanValue(),
122                                                                   gotAttr1AVC.booleanValue());
123       }
124       finally
125       {
126          undeploy(module);
127       }
128    }
129    
130    /** Test the hand generated xmbean descriptor
131     * @throws Exception on failure
132     */

133    public void testDeployUserXMBean() throws Exception JavaDoc
134    {
135       getLog().info("+++ testDeployUserXMBean");
136       ObjectName JavaDoc user2Name = new ObjectName JavaDoc("jboss.test:service=xmbean-user2");
137       MBeanServerConnection JavaDoc server = getServer();
138       try
139       {
140          deploy(PACKAGE_NAME);
141          getLog().info("Testing "+user2Name);
142          assertTrue(user2Name+" is registered", server.isRegistered(user2Name));
143
144          // Validate that Attr1 is read-write
145
String JavaDoc attr1 = (String JavaDoc) server.getAttribute(user2Name, "Attr1");
146          getLog().info("Attr1: "+attr1);
147          assertTrue("Attr1 == attr1-string", attr1.equals("attr1-string"));
148          Attribute JavaDoc attr1Info = new Attribute JavaDoc("Attr1", "attr1-string#2");
149          server.setAttribute(user2Name, attr1Info);
150          attr1 = (String JavaDoc) server.getAttribute(user2Name, "Attr1");
151          assertTrue("Attr1 == attr1-string#2", attr1.equals("attr1-string#2"));
152
153          // Validate that Attr2 is read-write
154
Integer JavaDoc attr2 = (Integer JavaDoc) server.getAttribute(user2Name, "Attr2");
155          getLog().info("Attr2: "+attr2);
156          assertTrue("Attr2 == 15", attr2.intValue() == 15);
157          Attribute JavaDoc attr2Info = new Attribute JavaDoc("Attr2", new Integer JavaDoc(51));
158          server.setAttribute(user2Name, attr2Info);
159          attr2 = (Integer JavaDoc) server.getAttribute(user2Name, "Attr2");
160          assertTrue("Attr2 == 51", attr2.intValue() == 51);
161
162          // Validate that Attr3 is read-write
163
CustomType attr3 = (CustomType) server.getAttribute(user2Name, "Attr3");
164          getLog().info("Attr3: "+attr3);
165          assertTrue("Attr3 == 15", attr3.toString().equals("{10.20}"));
166          Attribute JavaDoc attr3Info = new Attribute JavaDoc("Attr3", new CustomType(11, 22));
167          server.setAttribute(user2Name, attr3Info);
168          attr3 = (CustomType) server.getAttribute(user2Name, "Attr3");
169          assertTrue("Attr3 == 51", attr3.toString().equals("{11.22}"));
170
171          // Validate that HashCode is read-only
172
Integer JavaDoc hash = (Integer JavaDoc) server.getAttribute(user2Name, "HashCode");
173          getLog().info("HashCode: "+hash);
174          Attribute JavaDoc hashInfo = new Attribute JavaDoc("HashCode", new Integer JavaDoc(12345));
175          try
176          {
177             server.setAttribute(user2Name, hashInfo);
178             fail("Was able to set HashCode attribute");
179          }
180          catch(Exception JavaDoc e)
181          {
182             getLog().info("set HashCode attribute failed as expected", e);
183          }
184
185          // Validate that Pi is read-only
186
Double JavaDoc pi = (Double JavaDoc) server.getAttribute(user2Name, "Pi");
187          getLog().info("Pi: "+pi);
188          assertTrue("Pi == 3.14159", pi.doubleValue() == 3.14159);
189          Attribute JavaDoc piInfo = new Attribute JavaDoc("Pi", new Double JavaDoc(7.654321));
190          try
191          {
192             server.setAttribute(user2Name, piInfo);
193             fail("Was able to set Pi attribute");
194          }
195          catch(Exception JavaDoc e)
196          {
197             getLog().info("set Pi attribute failed as expected", e);
198          }
199
200          // Validate that SecMgr is read-write
201
ObjectName JavaDoc defaultSecMgr = new ObjectName JavaDoc("jboss.security:service=JaasSecurityManager");
202          ObjectName JavaDoc secMgr = (ObjectName JavaDoc) server.getAttribute(user2Name, "SecMgr");
203          getLog().info("SecMgr: "+secMgr);
204          assertTrue("SecMgr == jboss.security:service=JaasSecurityManager", secMgr.equals(defaultSecMgr));
205          ObjectName JavaDoc newSecMgr = new ObjectName JavaDoc("jboss.security:service=JaasSecMgr2");
206          Attribute JavaDoc secMgrInfo = new Attribute JavaDoc("SecMgr", newSecMgr);
207          server.setAttribute(user2Name, secMgrInfo);
208          secMgr = (ObjectName JavaDoc) server.getAttribute(user2Name, "SecMgr");
209          assertTrue("SecMgr == jboss.security:service=JaasSecMgr2", secMgr.equals(newSecMgr));
210
211          Object JavaDoc[] noopArgs = {};
212          String JavaDoc[] noopSig = {};
213          server.invoke(user2Name, "noop", noopArgs, noopSig);
214
215          Object JavaDoc[] echoArgs = {"testDeployUserXMBean"};
216          String JavaDoc[] echoSig = {"java.lang.String"};
217          String JavaDoc rtn = (String JavaDoc) server.invoke(user2Name, "echoDate", echoArgs, echoSig);
218          getLog().info("echoDate: "+rtn);
219       }
220       finally
221       {
222          undeploy(PACKAGE_NAME);
223       } // end of try-finally
224
}
225
226    /** Test the hand generated xmbean descriptor that is embedded in the service
227     * descriptor.
228     * @throws Exception on failure
229     */

230    public void testDeployUserEmbeddedDescriptorXMBean() throws Exception JavaDoc
231    {
232       getLog().info("+++ testDeployUserEmbeddedDescriptorXMBean");
233       ObjectName JavaDoc user2Name = new ObjectName JavaDoc("jboss.test:service=xmbean-user2");
234       MBeanServerConnection JavaDoc server = getServer();
235       try
236       {
237          deploy("user2-xmbean-embedded.sar");
238          getLog().info("Testing "+user2Name);
239          assertTrue(user2Name+" is registered", server.isRegistered(user2Name));
240
241          // Validate that Attr1 is read-write
242
String JavaDoc attr1 = (String JavaDoc) server.getAttribute(user2Name, "Attr1");
243          getLog().info("Attr1: "+attr1);
244          assertTrue("Attr1 == attr1-string", attr1.equals("attr1-string"));
245          Attribute JavaDoc attr1Info = new Attribute JavaDoc("Attr1", "attr1-string#2");
246          server.setAttribute(user2Name, attr1Info);
247          attr1 = (String JavaDoc) server.getAttribute(user2Name, "Attr1");
248          assertTrue("Attr1 == attr1-string#2", attr1.equals("attr1-string#2"));
249
250          // Validate that Attr2 is read-write
251
Integer JavaDoc attr2 = (Integer JavaDoc) server.getAttribute(user2Name, "Attr2");
252          getLog().info("Attr2: "+attr2);
253          assertTrue("Attr2 == 15", attr2.intValue() == 15);
254          Attribute JavaDoc attr2Info = new Attribute JavaDoc("Attr2", new Integer JavaDoc(51));
255          server.setAttribute(user2Name, attr2Info);
256          attr2 = (Integer JavaDoc) server.getAttribute(user2Name, "Attr2");
257          assertTrue("Attr2 == 51", attr2.intValue() == 51);
258
259          // Validate that Attr3 is read-write
260
CustomType attr3 = (CustomType) server.getAttribute(user2Name, "Attr3");
261          getLog().info("Attr3: "+attr3);
262          assertTrue("Attr3 == 15", attr3.toString().equals("{10.20}"));
263          Attribute JavaDoc attr3Info = new Attribute JavaDoc("Attr3", new CustomType(11, 22));
264          server.setAttribute(user2Name, attr3Info);
265          attr3 = (CustomType) server.getAttribute(user2Name, "Attr3");
266          assertTrue("Attr3 == 51", attr3.toString().equals("{11.22}"));
267
268          // Validate that HashCode is read-only
269
Integer JavaDoc hash = (Integer JavaDoc) server.getAttribute(user2Name, "HashCode");
270          getLog().info("HashCode: "+hash);
271          Attribute JavaDoc hashInfo = new Attribute JavaDoc("HashCode", new Integer JavaDoc(12345));
272          try
273          {
274             server.setAttribute(user2Name, hashInfo);
275             fail("Was able to set HashCode attribute");
276          }
277          catch(Exception JavaDoc e)
278          {
279             getLog().info("set HashCode attribute failed as expected", e);
280          }
281
282          // Validate that Pi is read-only
283
Double JavaDoc pi = (Double JavaDoc) server.getAttribute(user2Name, "Pi");
284          getLog().info("Pi: "+pi);
285          assertTrue("Pi == 3.14159", pi.doubleValue() == 3.14159);
286          Attribute JavaDoc piInfo = new Attribute JavaDoc("Pi", new Double JavaDoc(7.654321));
287          try
288          {
289             server.setAttribute(user2Name, piInfo);
290             fail("Was able to set Pi attribute");
291          }
292          catch(Exception JavaDoc e)
293          {
294             getLog().info("set Pi attribute failed as expected", e);
295          }
296
297          // Validate that SecMgr is read-write
298
ObjectName JavaDoc defaultSecMgr = new ObjectName JavaDoc("jboss.security:service=JaasSecurityManager");
299          ObjectName JavaDoc secMgr = (ObjectName JavaDoc) server.getAttribute(user2Name, "SecMgr");
300          getLog().info("SecMgr: "+secMgr);
301          assertTrue("SecMgr == jboss.security:service=JaasSecurityManager", secMgr.equals(defaultSecMgr));
302          ObjectName JavaDoc newSecMgr = new ObjectName JavaDoc("jboss.security:service=JaasSecMgr2");
303          Attribute JavaDoc secMgrInfo = new Attribute JavaDoc("SecMgr", newSecMgr);
304          server.setAttribute(user2Name, secMgrInfo);
305          secMgr = (ObjectName JavaDoc) server.getAttribute(user2Name, "SecMgr");
306          assertTrue("SecMgr == jboss.security:service=JaasSecMgr2", secMgr.equals(newSecMgr));
307
308          Object JavaDoc[] noopArgs = {};
309          String JavaDoc[] noopSig = {};
310          server.invoke(user2Name, "noop", noopArgs, noopSig);
311
312          Object JavaDoc[] echoArgs = {"testDeployUserXMBean"};
313          String JavaDoc[] echoSig = {"java.lang.String"};
314          String JavaDoc rtn = (String JavaDoc) server.invoke(user2Name, "echoDate", echoArgs, echoSig);
315          getLog().info("echoDate: "+rtn);
316       }
317       finally
318       {
319          undeploy("user2-xmbean-embedded.sar");
320       } // end of try-finally
321
}
322
323    /** Tests of the attribute value settings from the xmbean descriptor
324     * @throws Exception on failure
325     */

326    public void testUserXMBeanValues() throws Exception JavaDoc
327    {
328       getLog().info("+++ testUserXMBeanValues");
329       try
330       {
331          ObjectName JavaDoc user2Name1 = new ObjectName JavaDoc("jboss.test:service=xmbean-user2,version=values1");
332          MBeanServerConnection JavaDoc server = getServer();
333          deploy("user2-xmbean.sar");
334          getLog().info("Testing "+user2Name1);
335          assertTrue(user2Name1+" is registered", server.isRegistered(user2Name1));
336          String JavaDoc value = (String JavaDoc) server.getAttribute(user2Name1, "Attr1");
337          assertTrue("value == Att1InitialValue, value="+value, value.equals("Att1InitialValue"));
338       }
339       finally
340       {
341          undeploy("user2-xmbean.sar");
342       }
343    }
344
345    /** Tests of the attribute value settings from the xmbean descriptor
346     * @throws Exception on failure
347     */

348    public void testUserXMBeanPersistentValues() throws Exception JavaDoc
349    {
350       getLog().info("+++ testUserXMBeanPersistentValues");
351       MBeanServerConnection JavaDoc server = getServer();
352       // Deploy the RemoveUser2Store.bsh script
353
deploy("RemoveUser2Store.bsh");
354
355       ObjectName JavaDoc user2Name2 = new ObjectName JavaDoc("jboss.test:service=xmbean-user2,version=values2");
356       try
357       {
358          deploy("user2-xmbean.sar");
359          log.info("Testing "+user2Name2);
360          assertTrue(user2Name2+" is registered", server.isRegistered(user2Name2));
361          String JavaDoc value = (String JavaDoc) server.getAttribute(user2Name2, "Attr1");
362          assertTrue("value == Att1InitialValue, value="+value, value.equals("Att1InitialValue"));
363          log.info("Initial Attr1 value: "+value);
364          // Update the Attr1 value
365
Attribute JavaDoc attr1 = new Attribute JavaDoc("Attr1", "UpdatedAttr1Value");
366          server.setAttribute(user2Name2, attr1);
367          // Undeploy
368
undeploy("user2-xmbean.sar");
369          // Reploy and validate persistence of Attr1
370
deploy("user2-xmbean.sar");
371          value = (String JavaDoc) server.getAttribute(user2Name2, "Attr1");
372          assertTrue("value == UpdatedAttr1Value, value="+value, value.equals("UpdatedAttr1Value"));
373          log.info("After redeploy Attr1 value: "+value);
374       }
375       finally
376       {
377          undeploy("user2-xmbean.sar");
378          undeploy("RemoveUser2Store.bsh");
379       }
380    }
381
382    /** Tests of the attribute value settings from the xmbean descriptor
383     * @throws Exception on failure
384     */

385    public void testUserXMBeanPersistentValuesWithCustomPM() throws Exception JavaDoc
386    {
387       getLog().info("+++ testUserXMBeanPersistentValuesWithCustomPM");
388       MBeanServerConnection JavaDoc server = getServer();
389       // Deploy the RemoveUser3Store.bsh script
390
deploy("RemoveUser3Store.bsh");
391
392       ObjectName JavaDoc user3Name = new ObjectName JavaDoc("jboss.test:service=xmbean-user2,version=xmlpm");
393       try
394       {
395          deploy("user3-xmbean.sar");
396          getLog().info("Testing "+user3Name);
397          assertTrue(user3Name+" is registered", server.isRegistered(user3Name));
398          String JavaDoc value = (String JavaDoc) server.getAttribute(user3Name, "Attr1");
399          assertTrue("value == Att1InitialValue, value="+value, value.equals("Att1InitialValueXMLPM"));
400          log.info("Initial Attr1 value: "+value);
401          // Update the Attr1 value
402
Attribute JavaDoc attr1 = new Attribute JavaDoc("Attr1", "UpdatedAttr1ValueXMLPM");
403          server.setAttribute(user3Name, attr1);
404          // Undeploy
405
undeploy("user3-xmbean.sar");
406          // Reploy and validate persistence of Attr1
407
deploy("user3-xmbean.sar");
408          value = (String JavaDoc) server.getAttribute(user3Name, "Attr1");
409          assertTrue("value == UpdatedAttr1Value, value="+value, value.equals("UpdatedAttr1ValueXMLPM"));
410          log.info("After redeploy Attr1 value: "+value);
411       }
412       finally
413       {
414          undeploy("user3-xmbean.sar");
415          undeploy("RemoveUser3Store.bsh");
416       }
417    }
418
419    /** Test an xmbean deployment with a custom security interceptor
420     * @throws Exception on failure
421     */

422    public void testSecuredXMBean() throws Exception JavaDoc
423    {
424       getLog().info("+++ testSecuredXMBean");
425       ObjectName JavaDoc xmbean = new ObjectName JavaDoc("jboss.test:service=SecuredXMBean");
426       MBeanServerConnection JavaDoc server = getServer();
427       try
428       {
429          deploy("interceptors-xmbean.sar");
430          getLog().info("Testing "+xmbean);
431
432          boolean isRegistered = server.isRegistered(xmbean);
433          assertTrue(xmbean+" is registered", isRegistered);
434
435          Object JavaDoc[] args = {"Hello"};
436          String JavaDoc[] sig = {"java.lang.String"};
437          try
438          {
439             server.invoke(xmbean, "secretEcho", args, sig);
440             fail("Was able to invoke secretEcho");
441          }
442          catch(Exception JavaDoc e)
443          {
444             getLog().info("secretEcho op failed as expected", e);
445          }
446
447          String JavaDoc echo = (String JavaDoc) server.invoke(xmbean, "echo", args, sig);
448          getLog().info("echo returned: "+echo);
449       }
450       finally
451       {
452          undeploy("interceptors-xmbean.sar");
453       } // end of try-finally
454
}
455
456    /** Test an xmbean deployment with a custom security interceptor
457     * @throws Exception on failure
458     */

459    public void testSecuredJndiXMBean() throws Exception JavaDoc
460    {
461       getLog().info("+++ testSecuredJndiXMBean");
462       ObjectName JavaDoc xmbean = new ObjectName JavaDoc("jboss.test:service=Naming,secured=true,persistent=true");
463       MBeanServerConnection JavaDoc server = getServer();
464       try
465       {
466          deploy("interceptors-xmbean.sar");
467          getLog().info("Testing "+xmbean);
468
469          boolean isRegistered = server.isRegistered(xmbean);
470          assertTrue(xmbean+" is registered", isRegistered);
471
472          // Lookup the Naming interface
473
InitialContext JavaDoc ctx = this.getInitialContext();
474          Naming naming = (Naming) ctx.lookup("secure/Naming");
475          getLog().info("Found Naming proxy: "+naming);
476          Name JavaDoc hello = ctx.getNameParser("").parse("Hello");
477
478          // Try to create a binding without security context
479
try
480          {
481             naming.bind(hello, "HelloBinding", "java.lang.String");
482             fail("Was able to invoke secretEcho");
483          }
484          catch(Exception JavaDoc e)
485          {
486             getLog().info("bind op failed as expected", e);
487          }
488
489          SimplePrincipal jduke = new SimplePrincipal("jduke");
490          SecurityAssociation.setPrincipal(jduke);
491          SecurityAssociation.setCredential("theduke".toCharArray());
492          naming.bind(hello, "HelloBinding", "java.lang.String");
493          getLog().info("Was able to create Hello binding");
494
495          SimplePrincipal guest = new SimplePrincipal("guest");
496          SecurityAssociation.setPrincipal(guest);
497          SecurityAssociation.setCredential("guest".toCharArray());
498          try
499          {
500             naming.bind(hello, "HelloBinding2", "java.lang.String");
501             fail("guest was able to create binding");
502          }
503          catch(Exception JavaDoc e)
504          {
505             getLog().info("guest bind op failed as expected", e);
506          }
507       }
508       finally
509       {
510          undeploy("interceptors-xmbean.sar");
511       } // end of try-finally
512
}
513
514    /** Test an xmbean deployment with a custom security interceptor and
515     * persistence interceptor. This runs after the testSecuredJndiXMBean
516     * test and access the
517     * @throws Exception on failure
518     */

519    public void testPersistentJndiXMBean() throws Exception JavaDoc
520    {
521       getLog().info("+++ testPersistentJndiXMBean");
522       ObjectName JavaDoc xmbean = new ObjectName JavaDoc("jboss.test:service=Naming,secured=true,persistent=true");
523       MBeanServerConnection JavaDoc server = getServer();
524       try
525       {
526          deploy("interceptors-xmbean.sar");
527          getLog().info("Testing "+xmbean);
528
529          boolean isRegistered = server.isRegistered(xmbean);
530          assertTrue(xmbean+" is registered", isRegistered);
531
532          // Lookup the Naming interface
533
InitialContext JavaDoc ctx = this.getInitialContext();
534          Naming naming = (Naming) ctx.lookup("secure/Naming");
535          getLog().info("Found Naming proxy: "+naming);
536          Name JavaDoc hello = ctx.getNameParser("").parse("Hello");
537
538          SimplePrincipal jduke = new SimplePrincipal("jduke");
539          SecurityAssociation.setPrincipal(jduke);
540          SecurityAssociation.setCredential("theduke".toCharArray());
541
542          // Lookup the previous Hello binding
543
String JavaDoc value = (String JavaDoc) naming.lookup(hello);
544          assertTrue("lookup(Hello) == HelloBinding", value.equals("HelloBinding"));
545          getLog().info("lookup(Hello) = "+value);
546       }
547       finally
548       {
549          undeploy("interceptors-xmbean.sar");
550       } // end of try-finally
551
}
552    
553    /** Test an xmbean deployment with an xmbean descriptor that
554     * imports an external 'entity' with operation definitions.
555     * The deployed service simply creates a second instance of
556     * JNDIView
557     * @throws Exception on failure
558     */

559    public void testXMBeanExternalEntityImport() throws Exception JavaDoc
560    {
561       getLog().info("+++ testXMBeanExternalEntityImport");
562       try
563       {
564          deploy("xmbean-entity-import.sar");
565          
566          boolean isRegistered = getServer().isRegistered(new ObjectName JavaDoc("jboss:service=JNDIView2"));
567          assertTrue("'jboss:service=JNDIView2' registered", isRegistered);
568       }
569       finally
570       {
571          undeploy("xmbean-entity-import.sar");
572       }
573    }
574
575 }
576
Popular Tags