You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2012/03/26 16:03:54 UTC

svn commit: r1305360 - /commons/proper/net/trunk/src/main/java/examples/nntp/ArticleReader.java

Author: sebb
Date: Mon Mar 26 14:03:53 2012
New Revision: 1305360

URL: http://svn.apache.org/viewvc?rev=1305360&view=rev
Log:
Add sample article reader

Added:
    commons/proper/net/trunk/src/main/java/examples/nntp/ArticleReader.java   (with props)

Added: commons/proper/net/trunk/src/main/java/examples/nntp/ArticleReader.java
URL: http://svn.apache.org/viewvc/commons/proper/net/trunk/src/main/java/examples/nntp/ArticleReader.java?rev=1305360&view=auto
==============================================================================
--- commons/proper/net/trunk/src/main/java/examples/nntp/ArticleReader.java (added)
+++ commons/proper/net/trunk/src/main/java/examples/nntp/ArticleReader.java Mon Mar 26 14:03:53 2012
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package examples.nntp;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.net.SocketException;
+
+import org.apache.commons.net.PrintCommandListener;
+import org.apache.commons.net.nntp.NNTPClient;
+import org.apache.commons.net.nntp.NewsgroupInfo;
+
+/**
+ * Sample program demonstrating the use of article header and body retrieval
+ */
+public class ArticleReader {
+
+    public static void main(String[] args) throws SocketException, IOException {
+
+        if (args.length != 2 && args.length != 3 && args.length != 5) {
+            System.out.println("Usage: MessageThreading <hostname> <groupname> [<article specifier> [<user> <password>]]");
+            return;
+        }
+
+        String hostname = args[0];
+        String newsgroup = args[1];
+        // Article specifier can be numeric or Id in form <m....@host>
+        String articleSpec = args.length >= 3 ? args[2] : null;
+
+        NNTPClient client = new NNTPClient();
+        client.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true));
+        client.connect(hostname);
+
+        if (args.length == 5) { // Optional auth
+            String user = args[3];
+            String password = args[4];
+            if(!client.authenticate(user, password)) {
+                System.out.println("Authentication failed for user " + user + "!");
+                System.exit(1);
+            }
+        }
+
+        NewsgroupInfo group = new NewsgroupInfo();
+        client.selectNewsgroup(newsgroup, group);
+
+        BufferedReader br;
+        String line;
+        if (articleSpec != null) {
+            br = (BufferedReader) client.retrieveArticleHeader(articleSpec);
+        } else {
+            long articleNum = group.getLastArticleLong();
+            br = client.retrieveArticleHeader(articleNum);
+        }
+        if (br != null) {
+            while((line=br.readLine()) != null) {
+                System.out.println(line);
+            }
+        }
+        if (articleSpec != null) {
+            br = (BufferedReader) client.retrieveArticleBody(articleSpec);
+        } else {
+            long articleNum = group.getLastArticleLong();
+            br = client.retrieveArticleBody(articleNum);
+        }
+        if (br != null) {
+            while((line=br.readLine()) != null) {
+                System.out.println(line);
+            }
+        }
+    }
+
+}

Propchange: commons/proper/net/trunk/src/main/java/examples/nntp/ArticleReader.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/proper/net/trunk/src/main/java/examples/nntp/ArticleReader.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision