This a question on the Atom binding implementation in
java/sca/modules/binding-atom-abdera, but the answer might also be
interesting to general SCA users as well.
There is an SCA Consumer.composite that has this SCA component and
binding mentioned in it:
<component name="CustomerClient">
<implementation.java
class="org.apache.tuscany.sca.binding.atom.CustomerClientImpl"/>
<reference name="resourceCollection">
<tuscany:binding.atom uri="http://localhost:8084/customer"/>
</reference>
</component>
If I look into the CustomerClientImpl class, I see a reference to a
number of resources exposed as a Collection (this is an atom.collection,
not to be confused with a java.util.Collection) as such:
public class CustomerClientImpl implements CustomerClient {
@Reference
public Collection resourceCollection;
...
}
Can someone explain to be the accessibility of this implementation
field? Even if I expose this in the CustomerClient interface (e.g.
public Collection getCollection() ), I find that clients cannot access
this collection and use the Collection methods (get, put, post, delete,
...). I see this type of exception:
org.osoa.sca.ServiceRuntimeException: java.net.ConnectException:
Connection refused: connect
at
org.apache.tuscany.sca.binding.atom.provider.AtomBindingInvoker$PostInvoker.invoke(AtomBindingInvoker.java:207)
at
org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112)
Is there a limit to the visibility/usability fields of a binding? Or is
there another way to access this field from a client? Hints are appreciated.
--
Thanks, Dan Becker