This is my first message to this list and I would like to say Hi to every one.
I am trying to distribute a service via RMI and have the following question. Consider a Bundle B1 in device D1 offering a remote service S1. In its manifest, B1 declares a dependency on a package that is provided by another bundle B2. Assume that S1 is distributed through RMI so that it becomes accessible from a remote device D2. With the exception of S1's interface, assume that neither B1 nor B2 are installed in D2 which means that the RMI system will automatically and dynamically download required classes from both B1 and B2 residing in D1 (is this true? should the RMI system only download classes defined in B1 ?). I think that downloading missing classes from B2 of D1 violates the OSGi application model because B2 is considered as an environment dependency. For example, let us consider D1 in isolation. Inside D1, B1 would not have resolved and subsequently activated until that dependency on B2 is satisfied i.e., B2 is installed. Applying the same analogy to D2, S1 should not be accessible unless B2 is also installed in D2. My question is: what is the correct/appropriate RMI behaviour. The first option is for RMI to download all required classes irrespective of which bundle they are defined in? but if this is the case, then there might be too many downloads when the original bundle B1 has too many dependnecies on other bundles. The other option is for RMI to only download required classes from B1 and assume that other dependencies are avialable in D2. If these dependencies are missing from D2, then B1 should fail to resolve and activate. your feedback is much appreciated _______________________________________________ OSGi Developer Mail List [email protected] http://www2.osgi.org/mailman/listinfo/osgi-dev
