Hi, Sorry, I was not asking about corrupted jars, asking about non-OSGi jars. Was wondering why you said "no *other *file(s) will be written to the bundles.info file of the particular profile, thus will not be picked up by the Carbon server". Does this means, if I have one non-OSGi jar in dropins some other OSGi jars will not get picked up?
On Thu, Apr 28, 2016 at 1:13 AM, Chiranga Alwis <chira...@wso2.com> wrote: > Hi Manuranga, > > in addition to the above checks in relation with filtering out non-OSGi > bundles, in order to access the JAR file Manifest to retrieve the required > Manifest headers, I am using java.util.jar.JarFile > <https://docs.oracle.com/javase/7/docs/api/java/util/jar/JarFile.html> > class. The code fragment within the getNewBundleInfo method, for retrieving > the Manifest information is as follows: > > try (JarFile jarFile = new JarFile(bundlePath.toString())) { > Manifest manifest = jarFile.getManifest(); > if ((manifest == null) || (manifest.getMainAttributes() == null)) { > throw new IOException("Invalid OSGi bundle found in the " + > Constants.DROPINS + > " directory: " + jarFile.toString()); > } else { > String bundleSymbolicName = > manifest.getMainAttributes().getValue("Bundle-SymbolicName"); > String bundleVersion = > manifest.getMainAttributes().getValue("Bundle-Version"); > > if (bundleSymbolicName == null || bundleVersion == null) { > throw new IOException( > "Required bundle manifest headers do not exist in " + > jarFile.toString()); > } else { > if (bundleSymbolicName.contains(";")) { > bundleSymbolicName = bundleSymbolicName.split(";")[0]; > } > } > > // checks whether this bundle is a fragment or not > boolean isFragment = > (manifest.getMainAttributes().getValue("Fragment-Host") != null); > int defaultBundleStartLevel = 4; > BundleInfo generated = new BundleInfo(bundleSymbolicName, > bundleVersion, > "../../" + Constants.DROPINS + "/" + fileName, > defaultBundleStartLevel, isFragment); > return Optional.of(generated); > } > } > > The above code fragment will be executed for every file path within the > dropins directory, which has a .jar extension. Since we are using the above > mentioned class, I believe that during the creation of the JarFile > <https://docs.oracle.com/javase/7/docs/api/java/util/jar/JarFile.html> > instance (for each file with a .jar extension) will be checked for a > corrupted JAR. > > The complete implementation of the above functionality can be accessed > from here > <https://github.com/wso2/carbon-kernel/tree/master/launcher/src/main/java/org/wso2/carbon/launcher/extensions> > . > > > On Wed, Apr 27, 2016 at 7:45 PM, Manuranga Perera <m...@wso2.com> wrote: > >> no *other *file(s) will be written to the bundles.info file of the >>> particular profile, thus will not be picked up by the Carbon server. >>> >> >> Any reason why not only faulty bundle is ignored ? >> >> -- >> With regards, >> *Manu*ranga Perera. >> >> phone : 071 7 70 20 50 >> mail : m...@wso2.com >> > > > > -- > Chiranga Alwis, > Software Engineering Intern, > +94 77 5930497 > +94 77 6368208 > -- With regards, *Manu*ranga Perera. phone : 071 7 70 20 50 mail : m...@wso2.com
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev