You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Jarek Gawor <jg...@gmail.com> on 2011/06/28 01:35:46 UTC
Re: svn commit: r1140360 - /geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/repository/RepositoryViewPortlet.java
Is this supposed to convert non-OSGI jar into OSGi bundle using the
"wrap" URL handler? This seems to want to convert an existing
bundle...
Jarek
On Mon, Jun 27, 2011 at 6:59 PM, <dj...@apache.org> wrote:
> Author: djencks
> Date: Mon Jun 27 22:59:07 2011
> New Revision: 1140360
>
> URL: http://svn.apache.org/viewvc?rev=1140360&view=rev
> Log:
> GERONIMO-5586 use wrap bundle from console add to repo for non-bundles
>
> Modified:
> geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/repository/RepositoryViewPortlet.java
>
> Modified: geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/repository/RepositoryViewPortlet.java
> URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/repository/RepositoryViewPortlet.java?rev=1140360&r1=1140359&r2=1140360&view=diff
> ==============================================================================
> --- geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/repository/RepositoryViewPortlet.java (original)
> +++ geronimo/server/trunk/plugins/console/console-base-portlets/src/main/java/org/apache/geronimo/console/repository/RepositoryViewPortlet.java Mon Jun 27 22:59:07 2011
> @@ -46,6 +46,8 @@ import javax.portlet.RenderResponse;
> import javax.portlet.WindowState;
> import java.io.File;
> import java.io.IOException;
> +import java.io.InputStream;
> +import java.net.URL;
> import java.util.ArrayList;
> import java.util.Arrays;
> import java.util.Collections;
> @@ -53,6 +55,9 @@ import java.util.Iterator;
> import java.util.List;
> import java.util.Properties;
> import java.util.SortedSet;
> +import java.util.jar.Attributes;
> +import java.util.jar.JarFile;
> +import java.util.jar.Manifest;
>
> /**
> * @version $Rev$ $Date$
> @@ -175,18 +180,52 @@ public class RepositoryViewPortlet exten
> set.put(jarName, group + "/" + artifact + "/" + version + "/" + fileType);
> instance.addAliases(set);
> }
> - repo.copyToRepository(file, new Artifact(group, artifact, version, fileType), new FileWriteMonitor() {
> - public void writeStarted(String fileDescription, int fileSize) {
> - log.info("Copying into repository " + fileDescription + "...");
> - }
>
> - public void writeProgress(int bytes) {
> - }
> + JarFile jar = new JarFile(file);
> + try {
> + // only handle non OSGi jar
> + Manifest manifest = jar.getManifest();
> + if (manifest != null &&
> + manifest.getMainAttributes().getValue(new Attributes.Name("Bundle-SymbolicName")) != null &&
> + manifest.getMainAttributes().getValue(new Attributes.Name("Bundle-Version")) != null) {
> +
> + URL wrap = new URL("wrap", null, file.toURI().toURL().toExternalForm() + "$Bundle-SymbolicName=" + artifact + "&Bundle-Version=" + version.replace("-", "."));
> + InputStream in = wrap.openStream();
> + try {
> + repo.copyToRepository(in, (int)file.getTotalSpace(), new Artifact(group, artifact, version, fileType), new FileWriteMonitor() {
> + public void writeStarted(String fileDescription, int fileSize) {
> + log.info("Copying into repository " + fileDescription + "...");
> + }
> +
> + public void writeProgress(int bytes) {
> + }
> +
> + public void writeComplete(int bytes) {
> + log.info("Finished.");
> + }
> + });
> + } finally {
> + in.close();
> + }
> + } else {
> + repo.copyToRepository(file, new Artifact(group, artifact, version, fileType), new FileWriteMonitor() {
> + public void writeStarted(String fileDescription, int fileSize) {
> + log.info("Copying into repository " + fileDescription + "...");
> + }
>
> - public void writeComplete(int bytes) {
> - log.info("Finished.");
> + public void writeProgress(int bytes) {
> + }
> +
> + public void writeComplete(int bytes) {
> + log.info("Finished.");
> + }
> + });
> }
> - });
> + } finally {
> + jar.close();
> + }
> +
> +
> } catch (FileUploadException e) {
> throw new PortletException(e);
> } catch (GBeanNotFoundException e) {
>
>
>