1
2
3
4
5
6
7
8
9
10 package org.mule.registry;
11
12 import org.mule.api.transformer.DiscoverableTransformer;
13 import org.mule.api.transformer.Transformer;
14 import org.mule.api.transformer.TransformerException;
15 import org.mule.tck.AbstractMuleTestCase;
16 import org.mule.transformer.AbstractTransformer;
17 import org.mule.transformer.simple.ObjectToByteArray;
18
19 import java.io.FilterInputStream;
20 import java.io.InputStream;
21
22 public class TransformerCachingTestCase extends AbstractMuleTestCase
23 {
24 public void testCacheUpdate() throws Exception
25 {
26 Transformer trans = muleContext.getRegistry().lookupTransformer(FilterInputStream.class, byte[].class);
27 assertNotNull(trans);
28 assertTrue(trans instanceof ObjectToByteArray);
29
30 Transformer trans2 = new FilterInputStreamToByteArray();
31 muleContext.getRegistry().registerTransformer(trans2);
32
33 trans = muleContext.getRegistry().lookupTransformer(FilterInputStream.class, byte[].class);
34 assertNotNull(trans);
35 assertTrue(trans instanceof FilterInputStreamToByteArray);
36
37 trans = muleContext.getRegistry().lookupTransformer(InputStream.class, byte[].class);
38 assertNotNull(trans);
39 assertTrue(trans instanceof ObjectToByteArray);
40
41 muleContext.getRegistry().unregisterTransformer(trans2.getName());
42
43 trans = muleContext.getRegistry().lookupTransformer(FilterInputStream.class, byte[].class);
44 assertNotNull(trans);
45 assertTrue(trans instanceof ObjectToByteArray);
46
47 }
48
49 public static class FilterInputStreamToByteArray extends AbstractTransformer implements DiscoverableTransformer
50 {
51 public FilterInputStreamToByteArray()
52 {
53 registerSourceType(FilterInputStream.class);
54 setReturnClass(byte[].class);
55 }
56
57 protected Object doTransform(Object src, String encoding) throws TransformerException
58 {
59 throw new UnsupportedOperationException("This is a transformer only to be used for testing");
60 }
61
62 public int getPriorityWeighting()
63 {
64 return 0;
65 }
66
67 public void setPriorityWeighting(int weighting)
68 {
69
70 }
71 }
72 }