net.sf.uadetector
Interface UserAgentStringParser

All Known Implementing Classes:
AbstractUserAgentStringParser, UpdatingUserAgentStringParserImpl, UserAgentStringParserImpl

public interface UserAgentStringParser

Basic interface for user agent string parsers.

Author:
André Rouél

Method Summary
 java.lang.String getDataVersion()
          Returns the current version information of the used UAS data.
 ReadableUserAgent parse(java.lang.String userAgent)
          Detects informations about a network client based on a user agent string.
 void shutdown()
          In environments where the JVM will never shut down while reinstalling UADetector, it is necessary to manually shutdown running threads of UserAgentStringParsers with updating functionality like UADetectorServiceFactory.getCachingAndUpdatingParser() or UADetectorServiceFactory.getOnlineUpdatingParser().
 

Method Detail

getDataVersion

java.lang.String getDataVersion()
Returns the current version information of the used UAS data.

The version will be set by the UAS data provider (http://user-agent-string.info/) and the version should look like this:

format: YYYYMMDD-counter (counter is two digits long)
example: 20120931-02

Returns:
version of the current UAS data

parse

ReadableUserAgent parse(java.lang.String userAgent)
Detects informations about a network client based on a user agent string.

Typically user agent string will be read by an instance of HttpServletRequest. With the method getHeader("User-Agent") you can get direct access to this string.

Parameters:
userAgent - user agent string
Returns:
the detected information of an user agent

shutdown

void shutdown()
In environments where the JVM will never shut down while reinstalling UADetector, it is necessary to manually shutdown running threads of UserAgentStringParsers with updating functionality like UADetectorServiceFactory.getCachingAndUpdatingParser() or UADetectorServiceFactory.getOnlineUpdatingParser().

For example, if a web application with UADetector will be re-deployed within an Apache Tomcat you must shutdown your self-created or via UADetectorServiceFactory retrieved updating UserAgentStringParser otherwise more and more threads will be registered.

An implementation of UserAgentStringParser has updating functionality if it works with a RefreshableDataStore.

If you call shutdown on a non-updating UserAgentStringParser implementation nothing will happen.

A number of Dependency Injection containers support the annotation PreDestroy which is be useful for indicating methods that should be called when the container is shutting down. This annotation is available by default in Java SE 7 and can be made available through the external library jsr250-api-1.0.jar for earlier versions of Java.

We recommend to annotate an implementation of shutdown() with PreDestroy to inform a container (for example Spring Framework) to trigger the shutdown method automatically by convention during the shutdown lifecycle. This saves developers to call explicitly the shutdown method.

To shutdown all managed ExecutorService by UADetector at once, you can call also ExecutorServices.shutdownAll().



Copyright © 2011-2014. All Rights Reserved.