docs: public ServiceTracker makeServletTracker(String alias, Dictionary<String, String> properties)
      {
  
  //?        dictionary.put(HttpServiceTracker.SERVICE_PID, getServicePid(context));
  //?        dictionary.put(HttpServiceTracker.SERVLET_CLASS, getServletClass(context));
          properties.put(BaseWebappServlet.ALIAS, alias); 
          
          Servlet servlet = null;
          HttpContext httpContext = null;
          HttpServiceTracker serviceTracker = null; 
          try {
              String servicePid = DBConstants.BLANK;
  
              if ((BaseServlet.IMAGES.equalsIgnoreCase(alias)) 
                      || (BaseServlet.LIB.equalsIgnoreCase(alias))
                      || (BaseServlet.COM.equalsIgnoreCase(alias))
                      || (BaseServlet.ORG.equalsIgnoreCase(alias))
                      || (BaseServlet.DOCS.equalsIgnoreCase(alias)))
              {
                  serviceTracker = new ResourceHttpServiceTracker(context, httpContext, properties);
              }
              if (BaseServlet.FAVICON.equalsIgnoreCase(alias))
              {
                  servlet = new BaseOsgiServlet();
                  properties.put(BaseOsgiServlet.BASE_PATH, BaseServlet.JBUNDLE_RESOURCES + "/images/icons/");    // Prepend this to the path
                  ((BaseWebappServlet)servlet).init(context, servicePid, properties);
                  httpContext = new org.jbundle.util.webapp.base.FileHttpContext(servlet, context.getBundle());
              }
              if ((BaseServlet.JBUNDLE_RESOURCES.equalsIgnoreCase(alias)) 
                  || (BaseServlet.TOURGEEK_RESOURCES.equalsIgnoreCase(alias)))
              {
                  servlet = new BaseOsgiServlet();
                  properties.put(BaseOsgiServlet.BASE_PATH, alias + '/');    // Prepend this to the path
                  ((BaseWebappServlet)servlet).init(context, servicePid, properties);
                  httpContext = new org.jbundle.util.webapp.base.FileHttpContext(servlet, context.getBundle());
              }
              if (BaseServlet.PROXY.equalsIgnoreCase(alias))
              {
                  servlet = new org.jbundle.base.remote.proxy.ProxyServlet();
                  properties.put("remotehost", "localhost");  // Default value
              }
              if ((BaseServlet.TABLE.equalsIgnoreCase(alias)) 
                      || (BaseServlet.IMAGE.equalsIgnoreCase(alias))
                      || (BaseServlet.JNLP.equalsIgnoreCase(alias))
                      || (BaseServlet.WSDL.equalsIgnoreCase(alias))
                      || (BaseServlet.TOURGEEK_WSDL.equalsIgnoreCase(alias))
                      || (BaseServlet.HTML.equalsIgnoreCase(alias))
                      || (BaseServlet.HTML2.equalsIgnoreCase(alias))
                      || (BaseServlet.TOURGEEK_JNLP.equalsIgnoreCase(alias))
                      || (BaseServlet.TOURGEEK.equalsIgnoreCase(alias)))
              {
                  servlet = new org.jbundle.base.screen.control.servlet.html.HTMLServlet();
                  properties.put("remotehost", "localhost");  // Default value
              }
              if (BaseServlet.XML.equalsIgnoreCase(alias))
              {
                  servlet = new org.jbundle.base.screen.control.servlet.xml.XMLServlet();
  //x             dictionary.put("stylesheet-path", "org/jbundle/res/docs/styles/xsl/flat/base/");    // Since stylesheets are in resources
                  properties.put("remotehost", "localhost");
              }
              if ((BaseServlet.XSL.equalsIgnoreCase(alias)) 
                  || (BaseServlet.XHTML.equalsIgnoreCase(alias)))
              {
                  servlet = new org.jbundle.base.screen.control.xslservlet.XSLServlet();
                  properties.put("remotehost", "localhost");
              }
              if (BaseServlet.JNLP_DOWNLOAD.equalsIgnoreCase(alias))
              {
                servlet = new jnlp.sample.servlet.JnlpDownloadServlet();
                httpContext = new JnlpHttpContext(context.getBundle());
              }
              if (BaseServlet.AJAX.equalsIgnoreCase(alias))
              {
                  servlet = new org.jbundle.base.remote.proxy.AjaxServlet();
                  properties.put("remotehost", "localhost");
                  properties.put("stylesheet-path", "org/jbundle/res/docs/styles/xsl/flat/base/");    // Since webkit still can't handle import
              }
              if ((BaseServlet.ROOT.equalsIgnoreCase(alias)) 
                      || (BaseServlet.INDEX.equalsIgnoreCase(alias)))
              {
                  // This redirects a www request to /demo/index.html
                  properties.put("regex", "www.+.tourgeek.com");
                  properties.put("regexTarget", "demo/index.html");
                  // This redirects non-matching requests to the proper servlet
                  properties.put(BaseWebappServlet.IE, BaseServlet.XSL);
                  properties.put(BaseWebappServlet.FIREFOX, BaseServlet.XSL);
                  //properties.put("chrome", "appxsl");
                  //properties.put("safari", "appxsl");
                  properties.put(BaseWebappServlet.WEBKIT, BaseServlet.XSL);
                  properties.put(BaseWebappServlet.MOBILE, BaseServlet.XHTML);
                  properties.put(BaseWebappServlet.JAVA, BaseServlet.XHTML);
                  servlet = new org.jbundle.util.webapp.redirect.RegexRedirectServlet();
              }
              if (BaseServlet.MESSAGE.equalsIgnoreCase(alias))
              {
                  servlet = new org.jbundle.base.screen.control.servlet.message.trx.transport.html.MessageServlet();
                  properties.put("remotehost", "localhost");
              }
              if (BaseServlet.WS.equalsIgnoreCase(alias))
              {
                  servlet = new org.jbundle.base.message.trx.transport.jaxm.MessageReceivingServlet();
                  properties.put("remotehost", "localhost");
              }
              if (BaseServlet.XMLWS.equalsIgnoreCase(alias))
              {
                  servlet = new org.jbundle.base.screen.control.servlet.message.trx.transport.xml.XMLMessageReceivingServlet();
                  properties.put("remotehost", "localhost");
              }
          } catch (Exception e) {
              e.printStackTrace();
          }
  
          if (httpContext == null)   
              httpContext = this.getHttpContext();
          if (serviceTracker == null)
              serviceTracker = this.createServiceTracker(context, httpContext, properties);
          serviceTracker.setServlet(servlet);
          return serviceTracker;
      }