You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2016/05/09 14:48:51 UTC

[32/35] karaf-boot git commit: Add META-INF to Private-Packages to add the persistence.xml

Add META-INF to Private-Packages to add the persistence.xml


Project: http://git-wip-us.apache.org/repos/asf/karaf-boot/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-boot/commit/4860b601
Tree: http://git-wip-us.apache.org/repos/asf/karaf-boot/tree/4860b601
Diff: http://git-wip-us.apache.org/repos/asf/karaf-boot/diff/4860b601

Branch: refs/heads/master
Commit: 4860b601478eed6a0dac8d4058ce37d329f7e1c4
Parents: a55895f
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Tue Apr 26 14:14:07 2016 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Tue Apr 26 14:14:07 2016 +0200

----------------------------------------------------------------------
 samples/jpa/pom.xml                             |  2 +-
 .../karaf/boot/jpa/impl/JpaProcessor.java       | 39 +++++++++++++++++++-
 2 files changed, 39 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf-boot/blob/4860b601/samples/jpa/pom.xml
----------------------------------------------------------------------
diff --git a/samples/jpa/pom.xml b/samples/jpa/pom.xml
index 1c51404..f745ab2 100644
--- a/samples/jpa/pom.xml
+++ b/samples/jpa/pom.xml
@@ -26,7 +26,7 @@
             <version>${project.version}</version>
         </dependency>
     </dependencies>
-
+    
     <build>
         <plugins>
             <plugin>

http://git-wip-us.apache.org/repos/asf/karaf-boot/blob/4860b601/starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/impl/JpaProcessor.java
----------------------------------------------------------------------
diff --git a/starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/impl/JpaProcessor.java b/starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/impl/JpaProcessor.java
index f257238..f160fec 100644
--- a/starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/impl/JpaProcessor.java
+++ b/starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/impl/JpaProcessor.java
@@ -1,6 +1,9 @@
 package org.apache.karaf.boot.jpa.impl;
 
+import java.io.CharArrayWriter;
 import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.Reader;
 import java.io.Writer;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -48,13 +51,18 @@ public class JpaProcessor extends AbstractProcessor {
         }
         if (!units.isEmpty()) {
             try {
-                FileObject o = processingEnv.getFiler().createResource(StandardLocation.CLASS_OUTPUT,
+                FileObject o = processingEnv.getFiler().createResource(StandardLocation.SOURCE_OUTPUT,
                                                                        "", "META-INF/persistence.xml");
                 process(o.openWriter(), units);
                 processingEnv.getMessager().printMessage(Kind.NOTE, "Generated META-INF/persistence.xml");
             } catch (Exception e) {
                 processingEnv.getMessager().printMessage(Kind.ERROR, "Error: " + e.getMessage());
             }
+            try (PrintWriter w = appendResource("META-INF/org.apache.karaf.boot.bnd")) {
+                w.println("Private-Package: META-INF");
+            } catch (Exception e) {
+                processingEnv.getMessager().printMessage(Kind.ERROR, "Error writing to META-INF/org.apache.karaf.boot.bnd: " + e.getMessage());
+            }
         }
         return true;
     }
@@ -168,4 +176,33 @@ public class JpaProcessor extends AbstractProcessor {
         }
     }
 
+    private PrintWriter appendResource(String resource) throws IOException {
+        try {
+            FileObject o = processingEnv.getFiler().createResource(StandardLocation.CLASS_OUTPUT, "",
+                                                                   resource);
+            return new PrintWriter(o.openWriter());
+        } catch (Exception e) {
+            try {
+                FileObject o = processingEnv.getFiler().getResource(StandardLocation.CLASS_OUTPUT, "",
+                                                                    resource);
+                CharArrayWriter baos = new CharArrayWriter();
+                try (Reader r = o.openReader(true)) {
+                    char[] buf = new char[4096];
+                    int l;
+                    while ((l = r.read(buf)) > 0) {
+                        baos.write(buf, 0, l);
+                    }
+                }
+                o.delete();
+                o = processingEnv.getFiler().createResource(StandardLocation.CLASS_OUTPUT, "", resource);
+                Writer w = o.openWriter();
+                w.write(baos.toCharArray());
+                return new PrintWriter(w);
+            } catch (Exception e2) {
+                e2.addSuppressed(e);
+                e2.printStackTrace();
+                throw e2;
+            }
+        }
+    }
 }