X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.osgi%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fosgi%2Finternal%2FBundleDocumentationSource.java;fp=bundles%2Forg.simantics.scl.osgi%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fosgi%2Finternal%2FBundleDocumentationSource.java;h=1491b76b82fb72ef993394c163b40febe657a4e8;hp=0000000000000000000000000000000000000000;hb=969bd23cab98a79ca9101af33334000879fb60c5;hpb=866dba5cd5a3929bbeae85991796acb212338a08 diff --git a/bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/BundleDocumentationSource.java b/bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/BundleDocumentationSource.java new file mode 100644 index 000000000..1491b76b8 --- /dev/null +++ b/bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/BundleDocumentationSource.java @@ -0,0 +1,48 @@ +package org.simantics.scl.osgi.internal; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.nio.charset.Charset; +import java.util.Arrays; + +import org.osgi.framework.Bundle; + +public class BundleDocumentationSource { + public static final Charset UTF8 = Charset.forName("UTF-8"); + + public final String documentationName; + public final Bundle bundle; + public final URL url; + + public BundleDocumentationSource(String documentationName, Bundle bundle, + URL url) { + this.documentationName = documentationName; + this.bundle = bundle; + this.url = url; + } + + public String getText() { + try { + InputStream stream = url.openStream(); + try { + byte[] buffer = new byte[1024]; + int pos = 0; + while(true) { + int count = stream.read(buffer, pos, buffer.length-pos); + if(count <= 0) + break; + pos += count; + if(pos == buffer.length) + buffer = Arrays.copyOf(buffer, buffer.length*2); + } + return new String(buffer, 0, pos, UTF8); + } finally { + stream.close(); + } + } catch(IOException e) { + e.printStackTrace(); + return null; + } + } +}