Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
JavaComponent |
|
| 0.0;0 |
1 | /* | |
2 | * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com | |
3 | * The software in this package is published under the terms of the CPAL v1.0 | |
4 | * license, a copy of which has been included with this distribution in the | |
5 | * LICENSE.txt file. | |
6 | */ | |
7 | package org.mule.api.component; | |
8 | ||
9 | import org.mule.api.model.EntryPointResolverSet; | |
10 | import org.mule.api.object.ObjectFactory; | |
11 | import org.mule.component.PooledJavaComponent; | |
12 | import org.mule.object.PrototypeObjectFactory; | |
13 | import org.mule.object.SingletonObjectFactory; | |
14 | ||
15 | import java.util.List; | |
16 | ||
17 | /** | |
18 | * <code>JavaComponent</code> is a Java {@link Component} implementation used to | |
19 | * invoke Java component implementations. A <code>JavaComponent</code> uses an | |
20 | * {@link ObjectFactory} to specify the object instance's source and allows for | |
21 | * singleton and prototype implementations to be used along with other custom | |
22 | * {@link ObjectFactory} that allow component instances to be obtained from | |
23 | * containers such as Spring. A <code>JavaComponent</code> uses a customizable | |
24 | * {@link EntryPointResolverSet} in order to resolve which method should be used for | |
25 | * invocation and allows java bindings to be configure. Java Component bindings, if | |
26 | * implemented by the JavaComponent implementation, uses a component instance proxy | |
27 | * to implement interface methods using calls to outbound endpoints. | |
28 | */ | |
29 | public interface JavaComponent extends Component | |
30 | { | |
31 | ||
32 | /** | |
33 | * A {@link JavaComponent} can have a custom entry-point resolver for its own | |
34 | * object. By default this is null. When set this resolver will override the | |
35 | * resolver on the model | |
36 | * | |
37 | * @return Null is a resolver set has not been set otherwise the resolver to use | |
38 | * on this service | |
39 | */ | |
40 | EntryPointResolverSet getEntryPointResolverSet(); | |
41 | ||
42 | /** | |
43 | * A {@link JavaComponent} can have a custom entry-point resolver for its own | |
44 | * object. By default this is null. When set this resolver will override the | |
45 | * resolver on the model | |
46 | */ | |
47 | void setEntryPointResolverSet(EntryPointResolverSet entryPointResolverSet); | |
48 | ||
49 | List<InterfaceBinding> getInterfaceBindings(); | |
50 | ||
51 | void setInterfaceBindings(List<InterfaceBinding> bindgins); | |
52 | ||
53 | /** | |
54 | * The object factory used to obtain the component object instance. Mule core | |
55 | * provides two implementations: {@link SingletonObjectFactory} and | |
56 | * {@link PrototypeObjectFactory}.<br/> The spring-config module provides an | |
57 | * {@link ObjectFactory} implementation that delegates to spring. There is no | |
58 | * PooledObjectFactory, the {@link PooledJavaComponent} should be used for | |
59 | * pooling. | |
60 | * | |
61 | * @param objectFactory | |
62 | */ | |
63 | void setObjectFactory(ObjectFactory objectFactory); | |
64 | ||
65 | ObjectFactory getObjectFactory(); | |
66 | ||
67 | Class<?> getObjectType(); | |
68 | ||
69 | /** | |
70 | * Returns the factory used create life-cycle adaptors that are used to wrap | |
71 | * component instance. | |
72 | */ | |
73 | LifecycleAdapterFactory getLifecycleAdapterFactory(); | |
74 | ||
75 | /** | |
76 | * Sets the factory used create life-cycle adaptors that are used to wrap | |
77 | * component instance. | |
78 | * | |
79 | * @param lifecycleAdaptor | |
80 | */ | |
81 | void setLifecycleAdapterFactory(LifecycleAdapterFactory lifecycleAdaptor); | |
82 | } |