How To use gnip4j

For more information refer to the Gnip4j Reference Guide. Available formats:

Maven Integration

Add to your dependency Managment:

<dependencyManagement>
  <dependencies>
   <dependency>
      <groupId>com.zaubersoftware.gnip4j</groupId>
      <artifactId>gnip4j-core</artifactId>
      <version>${gnip4j.version}</version>
   </dependency>
   <dependency>
      <groupId>com.zaubersoftware.gnip4j</groupId>
      <artifactId>gnip4j-http</artifactId>
      <version>${gnip4j.version}</version>
   </dependency>
 </dependencies>
</dependencyManagement>
...
<properties>
    <gnip4j.version>0.1</gnip4j.version>
</properties> 

and add to your project:

<dependencies>
   <dependency>
    <groupId>com.zaubersoftware.gnip4j</groupId>
    <artifactId>gnip4j-core</artifactId>
   </dependency>
</dependencies>

If you need logging adding slf4j as a dependency.

Code Snippet

Consuming ten Activities from the stream

final String domain = "acme-powertrack";
final String username = "acme";
final String password = "password";

final GnipFacade gnip = new DefaultGnipFacade(
        new JRERemoteResourceProvider(
                new InmutableGnipAuthentication(username, password)));

System.out.println("-- Creating stream");
final AtomicInteger counter = new AtomicInteger();
final StreamNotificationAdapter observer = new StreamNotificationAdapter() {
    @Override
    public void notify(final Activity activity, final GnipStream stream) {
        final int i = counter.getAndIncrement();
        if (i >= 10) {
            System.out.println("-- Closing stream.");
            stream.close();
        }
        System.out.println(i + "-" + activity.getBody() 
                             + " " + activity.getGnip().getMatchingRules());
    }
};
final GnipStream stream = gnip.createStream(domain, 1, observer);
System.out.println("-- Awaiting for stream to terminate");
stream.await();
System.out.println("-- Shutting down");