title: Is it safe to OSGi export API containing reference to implementation code?
body: <p>Let's imagine I implement the following:</p>
  
  <pre><code>public enum ExportAPIForOSGi {
      ;
      public static SpecialObject newSpecialObject() {
          return new SpecialObjectImplv1();
      }
  }
  
  public abstract class SpecialObject {
      public abstract String specialMethod(String s);
  }
  
  public class SpecialObjectImplv1 extends SpecialObject {
      @Override
      public String specialMethod(String s) {
          return "33" + s;
      }
  }
  </code></pre>
  
  <p>Each class is declared in its own separate file. Only <code>ExportAPIForOSGi</code> and <code>SpecialObject</code> are to be OSGi exported. </p>
  
  <p>My question: is it safe to export <code>ExportAPIForOSGi</code> since it contains an explicit reference to implementation code (i.e., <code>SpecialObjectImplv1</code>)? Is the implementation code going to be exposed?</p>
  
  <p>Let's imagine that later, I use <code>SpecialObjectImplv2</code> in <code>ExportAPIForOSGi</code> instead of v1? Is this going to be an issue?</p>