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