Documentation

Trace: Analyzer factory

(jvxmobile)

Analyzer factory

The analyzer factory creates the default analyzers like:

  • StartupAnalyzer
  • LoginAnalyzer
  • MenuAnalyzer
  • WorkScreenAnalyzer
  • ErrorAnalyzer
  • DownloadUploadAnalyzer

Every analyzer handles the request from the mobile app and adds one or more responses like:

  • StartupAnalyzer adds ApplicationMetaData
  • LoginAnalyzer adds AuthenticationData (if connected) or LoginView (if not connected) and an optional InformationView (if not connected and change password was detected)

The project uses the DefaultAnalyzerFactory but it's possible to use your own factory. To change the default factory, simply set the init parameter in your deployment descriptor: analyzerfactory

Set a full qualified java class and be sure that your class extends DefaultAnalyzerFactory.

<servlet>  
  <servlet-name>MobileServlet</servlet-name>  
  <servlet-class>com.sibvisions.rad.server.http.rest.ServerServlet</servlet-class>
 
  <init-param>
    <!-- Application class name -->
    <param-name>org.restlet.application</param-name>
    <param-value>com.sibvisions.rad.server.http.rest.ApplicationAdapter</param-value>
  </init-param>
 
  <init-param>
    <param-name>session-timeout</param-name>
    <param-value>10</param-value>
  </init-param>
 
  <init-param>
    <param-name>analyzerfactory</param-name>
    <param-value>com.sibvisions.demo.MyAnalyzerFactory</param-value>
  </init-param>
 
</servlet>  
 
<servlet-mapping>  
  <servlet-name>MobileServlet</servlet-name>  
  <url-pattern>/services/mobile/*</url-pattern>  
</servlet-mapping> 

In your own analyzer, simply override the specific method, e.g.

public LoginAnalyzer createLoginAnalyzer(CommandRouter pRouter, ApplicationRequest pRequest)
{
    return MyLoginAnalyzer(pRouter, pRequest);
}

The analyzer itself could look like this example:

public class MyLoginAnalyzer extends LoginAnalyzer
{
    protected MyLoginAnalyzer(ApplicationResource pResource, ApplicationRequest pRequest)
    {
	super(pResource, pRequest);
    }
 
    @Override
    public void analyze(List<ApplicationResponse> pResponse) throws Throwable
    {
        super.analyze(pResponse);
 
        //your code here
    }
}
This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information