Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.apache.felix.webconsole.internal.deppack;
 
 
 import java.util.Map;
 
 
 import  org.apache.commons.fileupload.FileItem;
 import  org.osgi.service.component.ComponentContext;
 import  org.osgi.service.deploymentadmin.DeploymentAdmin;
 import  org.osgi.service.deploymentadmin.DeploymentException;
 import  org.osgi.service.deploymentadmin.DeploymentPackage;
 
 
 public class DepPackServlet extends BaseWebConsolePlugin
 {
 
     public static final String LABEL = "deppack";
 
     public static final String TITLE = "Deployment Packages";
 
     private static final String ACTION_DEPLOY = "deploydp";
 
     private static final String ACTION_UNINSTALL = "uninstalldp";
 
     private static final String PARAMETER_PCK_FILE = "pckfile";
 
 
     public String getLabel()
     {
         return ;
     }
 
 
     public String getTitle()
     {
         return ;
     }
 
 
     protected void activate( ComponentContext context )
     {
         this.activatecontext.getBundleContext() );
     }
 
 
     protected void deactivate( ComponentContext context )
     {
         this.deactivate();
     }
 
 
     protected void doPostHttpServletRequest reqHttpServletResponse resp ) throws ServletExceptionIOException
     {
         // get the uploaded data
         final String action = getParameterreq. );
         if ( .equalsaction ) )
         {
             Map params = ( Map ) req.getAttribute. );
             if ( params != null )
             {
                 final FileItem pck = getFileItemparamsfalse );
                 final DeploymentAdmin admin = ( DeploymentAdmin ) this.getService( DeploymentAdmin.class.getName() );
                 if ( admin != null )
                 {
                     try
                     {
                         admin.installDeploymentPackage( pck.getInputStream() );
 
                         final String uri = req.getRequestURI();
                         resp.sendRedirecturi );
                         return;
                     }
                    catch ( DeploymentException e )
                    {
                        throw new ServletException"Unable to deploy package."e );
                    }
                }
            }
            throw new ServletException"Upload file or deployment admin missing." );
        }
        else if ( .equalsaction ) )
        {
            final String pckId = req.getPathInfo().substringreq.getPathInfo().lastIndexOf'/' ) + 1 );
            if ( pckId != null && pckId.length() > 0 )
            {
                final DeploymentAdmin admin = ( DeploymentAdmin ) this.getService( DeploymentAdmin.class.getName() );
                if ( admin != null )
                {
                    try
                    {
                        final DeploymentPackage pck = admin.getDeploymentPackage( pckId );
                        if ( pck != null )
                        {
                            pck.uninstall();
                        }
                    }
                    catch ( DeploymentException e )
                    {
                        throw new ServletException"Unable to undeploy package."e );
                    }
                }
            }
            final PrintWriter pw = resp.getWriter();
            pw.println"{ \"reload\":true }" );
            return;
        }
        throw new ServletException"Unknown action: " + action );
    }
    private FileItem getFileItemMap paramsString nameboolean isFormField )
    {
        FileItem[] items = ( FileItem[] ) params.getname );
        if ( items != null )
        {
            for ( int i = 0; i < items.length; i++ )
            {
                if ( items[i].isFormField() == isFormField )
                {
                    return items[i];
                }
            }
        }
        // nothing found, fail
        return null;
    }
    protected void renderContentHttpServletRequest requestHttpServletResponse response ) throws ServletException,
        IOException
    {
        PrintWriter pw = response.getWriter();
        String appRoot = ( String ) request.getAttribute. );
        pw.println"<script src='" + appRoot + "/res/ui/packages.js' language='JavaScript'></script>" );
        pw.println"<h1>Deployment Admin</h1>" );
        final DeploymentAdmin admin = ( DeploymentAdmin ) this.getService( DeploymentAdmin.class.getName() );
        if ( admin == null )
        {
            pw.println"<p><em>Deployment Admin is not installed.</em></p>" );
            return;
        }
        final DeploymentPackage[] packages = admin.listDeploymentPackages();
        Util.startScriptpw );
        pw.println"var packageListData = " );
        JSONWriter jw = new JSONWriterpw );
        try
        {
            jw.object();
            jw.key"data" );
            jw.array();
            for ( int i = 0; i < packages.length; i++ )
            {
                packageInfoJsonjwpackages[i] );
            }
            jw.endArray();
            jw.endObject();
        }
        catch ( JSONException je )
        {
            throw new IOExceptionje.toString() );
        }
        pw.println";" );
        pw.println"renderPackage( packageListData );" );
        Util.endScriptpw );
    }
    private void packageInfoJsonJSONWriter jw, DeploymentPackage pack ) throws JSONException
    {
        jw.object();
        jw.key"id" );
        jw.valuepack.getName() );
        jw.key"name" );
        jw.valuepack.getName() );
        jw.key"state" );
        jw.valuepack.getVersion() );
        jw.key"actions" );
        jw.array();
        jw.object();
        jw.key"enabled" );
        jw.valuetrue );
        jw.key"name" );
        jw.value"Uninstall" );
        jw.key"link" );
        jw.value );
        jw.endObject();
        jw.endArray();
        jw.key"props" );
        jw.array();
        keyValjw"Package Name"pack.getName() );
        keyValjw"Version"pack.getVersion() );
        final StringBuffer buffer = new StringBuffer();
        for ( int i = 0; i < pack.getBundleInfos().length; i++ )
        {
            buffer.appendpack.getBundleInfos()[i].getSymbolicName() );
            buffer.append" - " );
            buffer.appendpack.getBundleInfos()[i].getVersion() );
            buffer.append"<br/>" );
        }
        keyValjw"Bundles"buffer.toString() );
        jw.endArray();
        jw.endObject();
    }
    private void keyValJSONWriter jwString keyObject value ) throws JSONException
    {
        if ( key != null && value != null )
        {
            jw.object();
            jw.key"key" );
            jw.valuekey );
            jw.key"value" );
            jw.valuevalue );
            jw.endObject();
        }
    }
New to GrepCode? Check out our FAQ X