Merge pull request #75 from RefuX/master

Export Packages for Automatic Modules
diff --git a/atomos/src/main/java/org/apache/felix/atomos/impl/modules/AtomosModules.java b/atomos/src/main/java/org/apache/felix/atomos/impl/modules/AtomosModules.java
index e6adf68..30d60f5 100644
--- a/atomos/src/main/java/org/apache/felix/atomos/impl/modules/AtomosModules.java
+++ b/atomos/src/main/java/org/apache/felix/atomos/impl/modules/AtomosModules.java
@@ -527,14 +527,28 @@
                 // only do exports for non bundle modules
                 // real OSGi bundles already have good export capabilities
                 StringBuilder exportPackageHeader = new StringBuilder();
-                desc.exports().stream().sorted().forEach((exports) -> {
-                    if (exportPackageHeader.length() > 0)
-                    {
-                        exportPackageHeader.append(", ");
-                    }
-                    exportPackageHeader.append(exports.source());
-                    // TODO map targets to x-friends directive?
-                });
+
+                // ModuleDescriptor.exports() is empty for an automatic module, which is different from
+                // JPMS at runtime where all packages in the automatic module are exported
+                if (desc.isAutomatic()) {
+                    desc.packages().stream().sorted().forEach((packageName) -> {
+                        if (exportPackageHeader.length() > 0)
+                        {
+                            exportPackageHeader.append(", ");
+                        }
+                        exportPackageHeader.append(packageName);
+                    });
+                }
+                else {
+                    desc.exports().stream().sorted().forEach((exported) -> {
+                        if (exportPackageHeader.length() > 0)
+                        {
+                            exportPackageHeader.append(", ");
+                        }
+                        exportPackageHeader.append(exported.source());
+                        // TODO map targets to x-friends directive?
+                    });
+                }
                 if (exportPackageHeader.length() > 0)
                 {
                     headers.put(Constants.EXPORT_PACKAGE, exportPackageHeader.toString());