Package com.jamonapi

Examples of com.jamonapi.Monitor


      super();
    }
   
    public SpagoBiDataSet getDataSet(String token, String user, String documentId){
      logger.debug("IN");
      Monitor monitor = MonitorFactory.start("spagobi.service.dataset.getDataSet");
      try {
          validateTicket(token, user);
          return supplier.getDataSet(documentId);
      } catch (SecurityException e) {
          logger.error("SecurityException", e);
          return null;
      } finally {
          monitor.stop();
          logger.debug("OUT");
     
    }
View Full Code Here


    }
   
   
    public SpagoBiDataSet getDataSetByLabel(String token,String user,String label){
      logger.debug("IN");
      Monitor monitor = MonitorFactory.start("spagobi.service.dataset.getDataSetByLabel");
      try {
          validateTicket(token, user);
          return supplier.getDataSetByLabel(label);
      } catch (SecurityException e) {
          logger.error("SecurityException", e);
          return null;
      } finally {
          monitor.stop();
          logger.debug("OUT");
     
    }
View Full Code Here

     * @param user String
     * @return SpagoBiDataSet[]
     */
    public SpagoBiDataSet[] getAllDataSet(String token,String user){
      logger.debug("IN");
      Monitor monitor =MonitorFactory.start("spagobi.service.dataset.getAllDataSet");
      try {
          validateTicket(token, user);
          return supplier.getAllDataSet();
      } catch (SecurityException e) {
          logger.error("SecurityException", e);
          return null;
      } finally {
          monitor.stop();
          logger.debug("OUT");
     
    }
View Full Code Here

     * @throws ServletException the servlet exception
     */
    public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
     
  logger.debug("Start processing a new request...");
    Monitor monitor =MonitorFactory.start("JasperReportServlet.service");
  HttpSession session = request.getSession();
  logger.debug("documentId IN Session:"+(String)session.getAttribute("document"));
  // USER PROFILE
  String documentId = (String) request.getParameter("document");
  if (documentId==null){
      documentId=(String)session.getAttribute("document");
      logger.debug("documentId From Session:"+documentId);
  }
  logger.debug("documentId:"+documentId);
 
  String requestConnectionName = (String) request.getParameter(CONNECTION_NAME);
  if (requestConnectionName==null) logger.debug("requestConnectionName is NULL");
  else logger.debug("requestConnectionName:"+requestConnectionName);
 
  //  operazioni fatte dal filtro OUT
  IEngUserProfile profile = (IEngUserProfile) session.getAttribute(IEngUserProfile.ENG_USER_PROFILE);
  logger.debug("profile from session: " + profile);
  Map params = new HashMap();
  Enumeration enumer = request.getParameterNames();
  String parName = null;
  String parValue = null;
  logger.debug("Reading request parameters...");
  while (enumer.hasMoreElements()) {
      parName = (String) enumer.nextElement();
      parValue = request.getParameter(parName);
      addParToParMap(params, parName, parValue);
      logger.debug("Read parameter [" + parName + "] with value ["+ parValue + "] from request");
  }
  logger.debug("Request parameters read sucesfully" + params);
 
  // AUDIT UPDATE
  String auditId = request.getParameter("SPAGOBI_AUDIT_ID");
  AuditAccessUtils auditAccessUtils = (AuditAccessUtils) request.getSession().getAttribute("SPAGOBI_AUDIT_UTILS");
  if (auditAccessUtils != null)
      auditAccessUtils.updateAudit(session,(String) profile.getUserUniqueIdentifier(), auditId, new Long(System
        .currentTimeMillis()), null, "EXECUTION_STARTED", null, null);
 
  logger.debug("GetConnection...");
  JasperReportRunner jasperReportRunner = new JasperReportRunner(session);
  logger.debug("GetConnection...");
  Connection con = getConnection(requestConnectionName,session,profile,documentId);

  if (con == null) {
      logger.error("Cannot obtain" + " connection for engine ["
        + this.getClass().getName() + "] control document configurations");
      // AUDIT UPDATE
      if (auditAccessUtils != null)
    auditAccessUtils.updateAudit(session,(String) profile.getUserUniqueIdentifier(), auditId, null, new Long(System
      .currentTimeMillis()), "EXECUTION_FAILED", "No connection available", null);
      return;
  }
  try {
      String outputType = (params.get(PARAM_OUTPUT_FORMAT) == null)?"html":(String) params.get(PARAM_OUTPUT_FORMAT);
      String tmpdir = (String) EnginConf.getInstance().getConfig().getAttribute("GENERALSETTINGS.tmpdir");
      if (!tmpdir.startsWith("/")) {
    String contRealPath = getServletContext().getRealPath("/");
    if (contRealPath.endsWith("\\") || contRealPath.endsWith("/")) {
        contRealPath = contRealPath.substring(0, contRealPath.length() - 1);
    }
    tmpdir = contRealPath + "/" + tmpdir;
      }
      tmpdir = tmpdir + System.getProperty("file.separator") + "reports";
      File dir = new File(tmpdir);
      dir.mkdirs();
      File tmpFile = File.createTempFile("report", "." + outputType, dir);
      OutputStream out = new FileOutputStream(tmpFile);
      jasperReportRunner.runReport(con, params, out, getServletContext(), response, request);
      out.flush();
      out.close();

     // if (outputType == null)  outputType = "html";
    //outputType = ExporterFactory.getDefaultType();
     
      response.setHeader("Content-Disposition", "filename=\"report." + outputType + "\";");
      // response.setContentType((String)extensions.get(outputType));
      response.setContentLength((int) tmpFile.length());

      BufferedInputStream in = new BufferedInputStream(new FileInputStream(tmpFile));
      int b = -1;
      while ((b = in.read()) != -1) {
        response.getOutputStream().write(b);
      }
      response.getOutputStream().flush();
      in.close();
      // instant cleaning
      tmpFile.delete();

      // AUDIT UPDATE
      if (auditAccessUtils != null)
    auditAccessUtils.updateAudit(session,(String) profile.getUserUniqueIdentifier(), auditId, null, new Long(System
      .currentTimeMillis()), "EXECUTION_PERFORMED", null, null);
  } catch (Exception e) {
      logger.error( "Error during report production \n\n " + e);
      // AUDIT UPDATE
      if (auditAccessUtils != null)
    auditAccessUtils.updateAudit(session,(String) profile.getUserUniqueIdentifier(), auditId, null, new Long(System
      .currentTimeMillis()), "EXECUTION_FAILED", e.getMessage(), null);
      return;
  } finally {
    try {     
      if (con != null && !con.isClosed())
          con.close();
    } catch (SQLException sqle) {
      logger.error("Error closing connection",sqle);
    }
    monitor.stop();
    logger.debug("OUT: Request processed");
  }


    }
View Full Code Here

    }   
  }
 
  private void runReport(OutputStream out, HttpServletRequest httpServletRequest)  {
    logger.debug("IN");
    Monitor monitor = MonitorFactory.start("JasperReportRunner.service");
    String prefixDirTemplate= null;
    Connection connection = null;
    try {   
      Assert.assertNotNull(exporter, "exporter cannot be null");
     
     
      setJRProperties();
      setJRBuiltinParameters();

      prefixDirTemplate = (String)getEnv().get("prefixName");
      logger.debug("prefixDirTemplate:"+prefixDirTemplate);
      InputStream is = template.open( getCacheDir(prefixDirTemplate) );

      logger.debug("Getting Jasper Design from template file ...");
      JasperDesign  jasperDesign = JRXmlLoader.load(is);
     
      // get datasets
      List<JRDesignDataset> datasets = jasperDesign.getDatasetsList();

      for (int h =0; h< datasets.size(); h++){
        JRDesignDataset designDataset = datasets.get(h);
        String datasetName = designDataset.getName();
        //get document's dataset
        IDataSet dataset = this.dsProxy.getDataSetByLabel(datasetName);
       
        if (dataset != null) {
          logger.debug("Found SpagoBI dataset "+datasetName);
          //get parameter of type JRDataSource
            for(int y=0; y< jasperDesign.getParametersList().size(); y++){
              JRParameter parameter = (JRParameter)jasperDesign.getParametersList().get(y);
              String paramName = parameter.getName();
              if(parameter.getValueClassName().equals("net.sf.jasperreports.engine.JRDataSource")&& paramName.equals(datasetName)){//&& parameter.getName().equals(dataset.getLabel()
                //set dataset query value
                dataset.loadData();
                IDataStore dstore = dataset.getDataStore();
              JRSpagoBIDataStoreDataSource dataSource = new JRSpagoBIDataStoreDataSource( dstore );
               
                getEnv().put(paramName, dataSource);
                logger.debug("set parameter"+ paramName+" value");
              }
            }
        }
      }

      logger.debug("Compiling template file ...");
      Monitor monitorCompileTemplate =MonitorFactory.start("JasperReportRunner.compileTemplate");
      JasperReport report  = JasperCompileManager.compileReport(jasperDesign)
 
     
      monitorCompileTemplate.stop();
      logger.debug("Template file compiled  succesfully");

      adaptReportParams(report);
      setupLocale();
     

      Monitor monitorSubReport = MonitorFactory.start("JasperReportRunner.compileSubReport");
      File[] compiledSubreports = compileSubreports();
      monitorSubReport.stop();   
      ClassLoader previous = Thread.currentThread().getContextClassLoader();
      ClassLoader current = URLClassLoader.newInstance(new URL[]{getCacheDir(prefixDirTemplate).toURL()}, previous);
      Thread.currentThread().setContextClassLoader(current);
     

      logger.debug("Filling report ...");
      Monitor monitorFillingReport =MonitorFactory.start("JasperReportRunner.FillingReport");
      JasperPrint jasperPrint = null;
      if( getDataSet() != null) {
        logger.debug("... using dataset [" + getDataSet().getName() + "]");
        getDataSet().setParamsMap(getEnv());
        getDataSet().loadData();
        for(int i = 0; i < getDataSet().getDataStore().getMetaData().getFieldCount(); i++) {
          logger.debug("Dataset column [" + (i+1) + "] name is equal to [" + getDataSet().getDataStore().getMetaData().getFieldName(i) + "]");
        }
       
        JRSpagoBIDataStoreDataSource dataSource = new JRSpagoBIDataStoreDataSource( getDataSet().getDataStore() );
        jasperPrint = JasperFillManager.fillReport(report, getEnv(), dataSource);
      } else {
        logger.debug("... using datasource [" + getDataSource().getLabel() + "]");
        connection = getConnection();
        jasperPrint = JasperFillManager.fillReport(report, getEnv(), connection);
      }
     
      monitorFillingReport.stop();
      logger.debug("Report filled succesfully");

      logger.debug("Exporting report ...");
      Monitor monitorExportReport =MonitorFactory.start("JasperReportRunner.ExportReport");
     
      if (outputType.equalsIgnoreCase("html")) {
        exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
        exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, "");
        HashMap m_imagesMap = new HashMap();
        UUIDGenerator uuidGen  = UUIDGenerator.getInstance();
        UUID uuid_local = uuidGen.generateTimeBasedUUID();
        String mapName = uuid_local.toString();
        httpServletRequest.getSession().setAttribute(mapName, m_imagesMap);
        exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, m_imagesMap)
        exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "JRImageServlet?mapname="+mapName+"&image=");   
      } else if (outputType.equalsIgnoreCase("txt")) {
        exporter.setParameter(JRTextExporterParameter.PAGE_HEIGHT,new Integer(100));
        exporter.setParameter(JRTextExporterParameter.PAGE_WIDTH,new Integer(100));
      } else if (outputType.equalsIgnoreCase("JPG"))  { 
        exporter.setParameter(JRImageExporterParameter.JASPER_REPORT, report);
      } else if (outputType.equalsIgnoreCase("JPGBASE64")){ 
        exporter.setParameter(JRImageExporterParameter.JASPER_REPORT, report);
      }
     
      exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
      exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out);
      exporter.exportReport();
     
      monitorExportReport.stop();
      logger.debug("Report exported succesfully");
     
    } catch(Throwable e) {
      throw new JasperReportEngineRuntimeException("Impossible to run report", e);
    } finally {
View Full Code Here

     * @throws IOException Signals that an I/O exception has occurred.
     */
    public void processService(PortletRequest request, PortletResponse response) throws PortletException, IOException {
    //**************** END MODFIFICATION ZERBETTO 09-10-2006 ****************
     
      Monitor monitor = null;
      PortletTracer.info(Constants.NOME_MODULO, "AdapterPortlet", "processService", "Invocato");
        try {
            SourceBean serviceRequest = null;
            EMFErrorHandler emfErrorHandler = null;
           
            RequestContainer requestContainer = new RequestContainer();
            RequestContainer.setRequestContainer(requestContainer);
            ResponseContainer responseContainer = new ResponseContainer();
            ResponseContainer.setResponseContainer(responseContainer);
            RequestContextIFace requestContext = new DefaultRequestContext(requestContainer,
                    responseContainer);
           
            // try to get from the request the loopback attribute. If present the method has to serve
            // a loopback request (the method has been called from the doRenderService)
            // if not present is a normal request
            boolean isLoop = request.getAttribute(Constants.PUBLISHING_MODE_LOOPBACK) != null;
            if(isLoop) {
              // remove from the request the loopback attribute
              request.removeAttribute(Constants.PUBLISHING_MODE_LOOPBACK);
              //String responseContainerName = (String)request.getAttribute(Constants.RESPONSE_CONTAINER);
             
              //**************** START MODFIFICATION ZERBETTO 09-10-2006 ****************
              // get from the session the previous response container name
              //String responseContainerName = (String)request.getPortletSession().getAttribute(RESPONSE_CONTAINER_NAME);
              // get from the session the previous response container
              //ResponseContainer loopbackResponseContainer = (ResponseContainer)request.getPortletSession().getAttribute(responseContainerName);
              ResponseContainer loopbackResponseContainer = (ResponseContainer)request.getPortletSession().getAttribute(Constants.RESPONSE_CONTAINER);
              //**************** END MODFIFICATION ZERBETTO 09-10-2006 ****************
             
                TracerSingleton.log(
                    Constants.NOME_MODULO,
                    TracerSingleton.DEBUG,
                    "AdapterPortlet::service: loop-back rilevato");
                serviceRequest =
                    loopbackResponseContainer.getLoopbackServiceRequest();
                if (serviceRequest == null)
                    serviceRequest = new SourceBean(Constants.SERVICE_REQUEST);
                else {
                    Object newServiceRequest =
                        serviceRequest.getAttribute(Constants.SERVICE_REQUEST);
                    if ((newServiceRequest != null)
                        && (newServiceRequest instanceof SourceBean))
                        serviceRequest = (SourceBean) newServiceRequest;
                } // if (serviceRequest == null)
                emfErrorHandler = loopbackResponseContainer.getErrorHandler();
                if (emfErrorHandler == null)
                    emfErrorHandler = new EMFErrorHandler();
            } // if (isLoop)
            else {
              monitor = MonitorFactory.start("controller.adapter.portlet");
              serviceRequest = new SourceBean(Constants.SERVICE_REQUEST);
              requestContainer.setServiceRequest(serviceRequest);
             
                boolean isMultipart = false;
               
                // only an ActionRequest can have a multipart content
                if (request instanceof ActionRequest && PortletFileUpload.isMultipartContent((ActionRequest) request)) {
                  isMultipart = true;
                }
               
                if (isMultipart) {
                  handleMultipartForm((ActionRequest) request, requestContext);
                } else {
                  handleSimpleForm(request, requestContext);
                }
             
              // ***************** START SERVICE ***********************************************
              String actionName = (String) request.getAttribute("ACTION_NAME");
              if(actionName!=null) {
                request.removeAttribute("ACTION_NAME");
                serviceRequest.setAttribute("ACTION_NAME", actionName);
                serviceRequest.setAttribute(NEW_SESSION, "TRUE");
              }
              String page = (String)request.getAttribute("PAGE");
              if(page!=null) {
                request.removeAttribute("PAGE");
                serviceRequest.setAttribute("PAGE", page);
                serviceRequest.setAttribute(NEW_SESSION, "TRUE");
             
            // *******************************************************************************************
              emfErrorHandler = new EMFErrorHandler();
            }
           
            //***************** NAVIGATION CONTROL *******************************************************
            String navigation = getInitParameter("light_navigation");
            if ("enabled".equalsIgnoreCase(navigation)) {
              serviceRequest = LightNavigationManager.controlLightNavigation(request, serviceRequest);
            }
            //updates service request after LightNavigationManager control
            requestContainer.setServiceRequest(serviceRequest);
            //********************************************************************************************
           
            boolean isRequestedSessionIdValid = true;
            PortletSession session = request.getPortletSession(true);
            /*
            if (session.isNew()) {
                String newSessionString =
                    (String) (serviceRequest.getAttribute(NEW_SESSION));
                isRequestedSessionIdValid =
                    ((newSessionString != null)
                        && (newSessionString.equalsIgnoreCase("TRUE")));
            } // if (session.isNew())
            */
            synchronized (session) {
               
              // try to get the previous request container. Download from the session the previous
              // request container name and if it isn't null (it's null only formthe first invocation)
              //use it for download the request container object
              RequestContainer parentRequestContainer = null;
             
              //**************** START MODFIFICATION ZERBETTO 09-10-2006 ****************
              //String parentRequestContainerName =
              //  (String) session.getAttribute(REQUEST_CONTAINER_NAME);
              //if(parentRequestContainerName != null) {
              //  parentRequestContainer = (RequestContainer) session.getAttribute(parentRequestContainerName);
              //}
              parentRequestContainer = (RequestContainer) session.getAttribute(Constants.REQUEST_CONTAINER);
              //**************** END MODFIFICATION ZERBETTO 09-10-2006 ****************

                if (!Navigator.isNavigatorEnabled()) {
                    if (parentRequestContainer == null)
                        requestContainer.setSessionContainer(
                            new PortletSessionContainer(true));
                    else
                        requestContainer.setSessionContainer(
                            parentRequestContainer.getSessionContainer());
                }
                else {
                    if (parentRequestContainer == null)
                        requestContainer.setSessionContainer(
                            new PortletSessionContainer(true));
                    else {
                        requestContainer.setSessionContainer(
                            new PortletSessionContainer(false));
                        requestContainer.setParent(parentRequestContainer);
                    } // if (parentRequestContainer == null) else
                } // if (!Navigator.isNavigatorEnabled())
               
                //**************** START MODFIFICATION ZERBETTO 09-10-2006 ****************
                //session.setAttribute(Constants.REQUEST_CONTAINER, requestContainer);
                //**************** END MODFIFICATION ZERBETTO 09-10-2006 ****************
               
            } // synchronized (session)
            if (!isRequestedSessionIdValid) {
                TracerSingleton.log(
                    Constants.NOME_MODULO,
                    TracerSingleton.WARNING,
                    "AdapterPortlet::processAction: sessione scaduta !");
                SessionExpiredUtility.setSessionExpiredAction(serviceRequest);
            } // if (!isRequestedSessionIdValid)
           
            requestContainer.setAttribute(
                    HTTP_SESSION_ID,
                    request.getPortletSession().getId());
            String channelType = "PORTLET";
            String channelTypeParameter =
                (String) (serviceRequest.getAttribute(Constants.CHANNEL_TYPE));
            String channelTypeHeader =
                (String) (requestContainer.getAttribute(HTTP_ACCEPT_HEADER));
            if (((channelTypeParameter != null)
                && channelTypeParameter.equalsIgnoreCase(Constants.WAP_CHANNEL))
                || ((channelTypeHeader != null)
                    && (channelTypeHeader.indexOf(WAP_MIME_TYPE) != -1)))
                channelType = Constants.WAP_CHANNEL;
            requestContainer.setChannelType(channelType);


            TracerSingleton.log(
                Constants.NOME_MODULO,
                TracerSingleton.DEBUG,
                "AdapterPortlet::processAction: requestContainer",
                requestContainer);
            TracerSingleton.log(
                Constants.NOME_MODULO,
                TracerSingleton.DEBUG,
                "AdapterPortlet::processAction: sessionContainer",
                requestContainer.getSessionContainer());

            responseContainer.setErrorHandler(emfErrorHandler);
            SourceBean serviceResponse =
                new SourceBean(Constants.SERVICE_RESPONSE);
            responseContainer.setServiceResponse(serviceResponse);
            try {
                Navigator.checkNavigation(requestContainer);
            } // try
            catch (NavigationException ne) {
                TracerSingleton.log(
                    Constants.NOME_MODULO,
                    TracerSingleton.CRITICAL,
                    "AdapterPortlet::processAction: ",
                    ne);
                requestContainer.setServiceRequest(
                    NavigationErrorUtility.getNavigationErrorServiceRequest());
            } // catch (NavigationException ne)
            serviceRequest = requestContainer.getServiceRequest();

            CoordinatorIFace coordinator =
                DispatcherManager.getCoordinator(requestContext);
            Exception serviceException = null;
            if (coordinator == null) {
                TracerSingleton.log(
                    Constants.NOME_MODULO,
                    TracerSingleton.WARNING,
                    "AdapterPortlet::processAction: coordinator nullo !");
                serviceException = new Exception("Coordinatore non trovato");
                emfErrorHandler.addError(
                    new EMFInternalError(
                        EMFErrorSeverity.ERROR,
                        "Coordinatore non trovato !"));
            } // if (coordinator == null)
            else {
                ((RequestContextIFace) coordinator).setRequestContext(
                    requestContext);
                responseContainer.setBusinessType(
                        coordinator.getBusinessType());
                    responseContainer.setBusinessName(
                        coordinator.getBusinessName());
                try {
                    coordinator.service(serviceRequest, serviceResponse);
                } // try
                catch (Exception ex) {
                    TracerSingleton.log(
                        Constants.NOME_MODULO,
                        TracerSingleton.CRITICAL,
                        "AdapterPortlet::processAction:",
                        ex);
                    serviceException = ex;
                    emfErrorHandler.addError(
                        new EMFInternalError(EMFErrorSeverity.ERROR, ex));
                    responseContainer.setAttribute(PORTLET_EXCEPTION, serviceException);
                } // catch (Exception ex)
                 ((RequestContextIFace) coordinator).setRequestContext(null);
            } // if (coordinator == null) else
           
            //**************** START MODFIFICATION ZERBETTO 09-10-2006 ****************
            //synchronized (session) {
            //    session.setAttribute(
            //        Constants.REQUEST_CONTAINER,
            //        session.getAttribute(Constants.REQUEST_CONTAINER));
            //} // synchronized (session)
            //**************** END MODFIFICATION ZERBETTO 09-10-2006 ****************
           
            TracerSingleton.log(
                Constants.NOME_MODULO,
                TracerSingleton.DEBUG,
                "AdapterPortlet::processAction: responseContainer",
                responseContainer);
            TracerSingleton.log(
                Constants.NOME_MODULO,
                TracerSingleton.DEBUG,
                "AdapterPortlet::processAction: sessionContainer",
                requestContainer.getSessionContainer());
               
      if (serializeSession) {
        TracerSingleton.log(
          Constants.NOME_MODULO,
          TracerSingleton.DEBUG,
          "AdapterPortlet::processAction: sessionContainer size ["
            + Serializer.serialize(
              requestContainer.getSessionContainer()).length
            + "]");
      }
     
      //**************** START MODFIFICATION ZERBETTO 09-10-2006 ****************
            //String requestContainerName =
            //    Constants.REQUEST_CONTAINER
            //        + requestContainer.hashCode();
            //String responseContainerName =
            //    Constants.RESPONSE_CONTAINER
            //        + responseContainer.hashCode();                          

            // set into the session new request and response container produced
            //session.setAttribute(requestContainerName, requestContainer);
            //session.setAttribute(responseContainerName, responseContainer);
            // set into the session the name of the new request and response container produced
            //session.setAttribute(REQUEST_CONTAINER_NAME, requestContainerName);
            //session.setAttribute(RESPONSE_CONTAINER_NAME, responseContainerName);
            // if the response is of type ActionResponse (the method has been called from the container)
            // set the name of the container like parameter of the request for the render method
            //if(response instanceof ActionResponse) {
            //  ((ActionResponse)response).setRenderParameter(REQUEST_CONTAINER_NAME, requestContainerName);
            //  ((ActionResponse)response).setRenderParameter(RESPONSE_CONTAINER_NAME, responseContainerName);
            //}
            // if the response is of type RenderResponse the method has been called from the doRenderService
            // method and the container names must be returned to the method into an hashmap (it's not possible
            // to set them like parameters because the container will not call automatically the render service)
            //else if(response instanceof RenderResponse){
            //  map.put(REQUEST_CONTAINER_NAME, requestContainerName);
            //  map.put(RESPONSE_CONTAINER_NAME, responseContainerName);
            //}
            session.setAttribute(Constants.REQUEST_CONTAINER, requestContainer);
            session.setAttribute(Constants.RESPONSE_CONTAINER, responseContainer);
            //**************** END MODFIFICATION ZERBETTO 09-10-2006 ****************
           
        } // try
        catch (Exception ex) {
            TracerSingleton.log(
                Constants.NOME_MODULO,
                TracerSingleton.CRITICAL,
                "AdapterPortlet::processAction: ",
                ex);
        } // catch (Excpetion ex) try
        finally {   
          RequestContainer.delRequestContainer();
            ResponseContainer.delResponseContainer();
            if (monitor != null)
                monitor.stop();
        } // finally
       
        //**************** START MODFIFICATION ZERBETTO 09-10-2006 ****************
        //return map;
        //**************** END MODFIFICATION ZERBETTO 09-10-2006 ****************
 
View Full Code Here

              } // if (publisherType.equalsIgnoreCase(Constants.LOOP_PUBLISHER_TYPE)
                // || publisherType.equalsIgnoreCase(SERVLET_PUBLISHER_TYPE) ||
                // publisherType.equalsIgnoreCase(JSP_PUBLISHER_TYPE))
              else {
                  response.setContentType(HTTP_CONTENT_TYPE);
                  Monitor renderingMonitor =
                          MonitorFactory.start(
                              "view.portlet."
                                  + publisherType.toLowerCase()
                                  + "."
                                  + publisher.getName().toLowerCase());
                  try {
                      response.getWriter().print(
                          PresentationRendering.render(
                              responseContainer,
                              resources));
                      response.getWriter().flush();
                  } // try
                  catch (Exception ex) {
                    TracerSingleton.log(
                              Constants.NOME_MODULO,
                              TracerSingleton.DEBUG,
                              "AdapterPortlet::doView:eccezzione", ex);
                  } // catch (Exception ex)
                  finally {
                    // Allow better garbage collection
                    publisher.release();
                    // Stop performance measurement
                      renderingMonitor.stop();
                  } // finally
              } // if (publisherType.equalsIgnoreCase(AF_PUBLISHER_TYPE)
              // || publisherType.equalsIgnoreCase(SERVLET_PUBLISHER_TYPE) ||
              // publisherType.equalsIgnoreCase(JSP_PUBLISHER_TYPE)) else
          } //if (requestContainer == null && responseContainer == null) else
View Full Code Here

   
    Integer maxSize = null;
    Integer resultNumber = null;
    CrosstabDefinition crosstabDefinition = null;
   
    Monitor totalTimeMonitor = null;
    Monitor errorHitsMonitor = null;
         
    logger.debug("IN");
   
    try {
   
      super.service(request, response)
     
      totalTimeMonitor = MonitorFactory.start("QbeEngine.executeCrosstabQueryAction.totalTime");
     
      JSONObject crosstabDefinitionJSON = getAttributeAsJSONObject( QbeEngineStaticVariables.CROSSTAB_DEFINITION );
      jsonFormState = loadSmartFilterFormValues();
      logger.debug("Form state retrieved as a string: " + jsonFormState);
     
      Assert.assertNotNull(crosstabDefinitionJSON, "Parameter [" + QbeEngineStaticVariables.CROSSTAB_DEFINITION + "] cannot be null in oder to execute " + this.getActionName() + " service");
      logger.debug("Parameter [" + crosstabDefinitionJSON + "] is equals to [" + crosstabDefinitionJSON.toString() + "]");
      //crosstabDefinition = SerializerFactory.getDeserializer("application/json").deserializeCrosstabDefinition(crosstabDefinitionJSON);;
      crosstabDefinition = (CrosstabDefinition)SerializationManager.deserialize(crosstabDefinitionJSON, "application/json", CrosstabDefinition.class);
      crosstabDefinition.setCellLimit( new Integer((String)ConfigSingleton.getInstance().getAttribute("QBE.QBE-CROSSTAB-CELLS-LIMIT.value")) );
      maxSize = QbeEngineConfig.getInstance().getResultLimit();     
      logger.debug("Configuration setting  [" + "QBE.QBE-SQL-RESULT-LIMIT.value" + "] is equals to [" + (maxSize != null? maxSize: "none") + "]");
     
      Assert.assertNotNull(getEngineInstance(), "It's not possible to execute " + this.getActionName() + " service before having properly created an instance of EngineInstance class");
     
      // retrieving first QbE query and setting it as active query
      query = getEngineInstance().getQueryCatalogue().getFirstQuery();
     
      //build the query filtered for the smart filter
      if (jsonFormState != null) {
        query = getFilteredQuery(query, jsonFormState);
      }
     
      getEngineInstance().setActiveQuery(query);
     
      statement = getEngineInstance().getStatment()
      statement.setParameters( getEnv() );
     

      String sqlQuery = statement.getSqlQueryString();
      UserProfile userProfile = (UserProfile)getEnv().get(EngineConstants.ENV_USER_PROFILE);
     
      ConnectionDescriptor connection = (ConnectionDescriptor)getDataSource().getConfiguration().loadDataSourceProperties().get("connection");
      DataSource dataSource = getDataSource(connection);
     
      String sqlStatement = buildSqlStatement(crosstabDefinition, query, sqlQuery, statement);
      logger.debug("Querying temporary table: user [" + userProfile.getUserId() + "] (SQL): [" + sqlStatement + "]");
     
      if (!TemporaryTableManager.isEnabled()) {
        logger.warn("TEMPORARY TABLE STRATEGY IS DISABLED!!! " +
            "Using inline view construct, therefore performance will be very low");
        int beginIndex = sqlStatement.toUpperCase().indexOf(" FROM ") + " FROM ".length();
        int endIndex = sqlStatement.indexOf(" ", beginIndex);
        String inlineSQLQuery = sqlStatement.substring(0, beginIndex) + " ( " + sqlQuery + " ) TEMP " + sqlStatement.substring(endIndex);
        logger.debug("Executable query for user [" + userProfile.getUserId() + "] (SQL): [" + inlineSQLQuery + "]");
        auditlogger.info("[" + userProfile.getUserId() + "]:: SQL: " + inlineSQLQuery);
        JDBCDataSet dataSet = new JDBCDataSet();
        dataSet.setDataSource(dataSource);
        dataSet.setQuery(inlineSQLQuery);
        dataSet.loadData();
        dataStore = (DataStore) dataSet.getDataStore();
      } else {
        logger.debug("Using temporary table strategy....");
   
        logger.debug("Temporary table definition for user [" + userProfile.getUserId() + "] (SQL): [" + sqlQuery + "]");
   
        auditlogger.info("Temporary table definition for user [" + userProfile.getUserId() + "]:: SQL: " + sqlQuery);
        auditlogger.info("Querying temporary table: user [" + userProfile.getUserId() + "] (SQL): [" + sqlStatement + "]");

        try {
          dataStore = TemporaryTableManager.queryTemporaryTable(userProfile, sqlStatement, sqlQuery, dataSource);
        } catch (Exception e) {
          logger.debug("Query execution aborted because of an internal exception");
          String message = "An error occurred in " + getActionName() + " service while querying temporary table";       
          SpagoBIEngineServiceException exception = new SpagoBIEngineServiceException(getActionName(), message, e);
          exception.addHint("Check if the base query is properly formed: [" + statement.getQueryString() + "]");
          exception.addHint("Check if the crosstab's query is properly formed: [" + sqlStatement + "]");
          exception.addHint("Check connection configuration: connection's user must have DROP and CREATE privileges");
         
          throw exception;
        }
      }

      Assert.assertNotNull(dataStore, "The dataStore cannot be null");
      logger.debug("Query executed succesfully");
     
      resultNumber = (Integer)dataStore.getMetaData().getProperty("resultNumber");
      Assert.assertNotNull(resultNumber, "property [resultNumber] of the dataStore returned by queryTemporaryTable method of the class [" + TemporaryTableManager.class.getName()+ "] cannot be null");
      logger.debug("Total records: " + resultNumber);     
     
     
      boolean overflow = maxSize != null && resultNumber >= maxSize;
      if (overflow) {
        logger.warn("Query results number [" + resultNumber + "] exceeds max result limit that is [" + maxSize + "]");
        auditlogger.info("[" + userProfile.getUserId() + "]:: max result limit [" + maxSize + "] exceeded with SQL: " + sqlQuery);
      }
     
      CrossTab crossTab = new CrossTab(dataStore, crosstabDefinition);
      JSONObject crossTabDefinition = crossTab.getJSONCrossTab();
     
      try {
        writeBackToClient( new JSONSuccess(crossTabDefinition) );
      } catch (IOException e) {
        String message = "Impossible to write back the responce to the client";
        throw new SpagoBIEngineServiceException(getActionName(), message, e);
      }
     
    } catch(Throwable t) {
      errorHitsMonitor = MonitorFactory.start("QbeEngine.errorHits");
      errorHitsMonitor.stop();
      throw SpagoBIEngineServiceExceptionHandler.getInstance().getWrappedException(getActionName(), getEngineInstance(), t);
    } finally {
      if (totalTimeMonitor != null) totalTimeMonitor.stop();
      logger.debug("OUT");
   
View Full Code Here

     */
    public String publishTemplate(String token, String user, HashMap attributes) {
  // TODO IMPLEMENTARE I CONTROLLI
  PublishImpl helper = new PublishImpl();
  logger.debug("IN");
  Monitor monitor =MonitorFactory.start("spagobi.service.content.publishTemplate");
  try {
      validateTicket(token, user);
      return helper.publishTemplate(user, attributes);
  } catch (SecurityException e) {
      logger.error("SecurityException", e);
      return null;
  } finally {
      monitor.stop();
      logger.debug("OUT");
  }

    }
View Full Code Here

  }

  private boolean checkParametersErrors(IEngUserProfile profile, Integer biobjectId, String roleName, Map parameters) {
      logger.debug("IN: user = [" + profile.getUserUniqueIdentifier() + "], biobjectid = [" + biobjectId + "], " +
          "roleName = [" + roleName + "], parameters = [" + parameters + "]");
      Monitor monitor =MonitorFactory.start("spagobi.service.ContentSupplier.checkParametersErrors");
    try {
      ExecutionInstance instance = new ExecutionInstance(profile, "", "", biobjectId, roleName, "", true, true);
      instance.refreshParametersValues(parameters, true);
      List errors = instance.getParametersErrors();
      if (errors != null && errors.size() > 0) {
        return false;
      } else {
        return true;
      }
    } catch (Exception e) {
      logger.error(e);
      return false;
    } finally {
        logger.debug("OUT");
        monitor.stop();
    }
    }
View Full Code Here

TOP

Related Classes of com.jamonapi.Monitor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.