Browse Source

2009-04-28 Tatsuhiro Tsujikawa <[email protected]>

	Removed MetalinkProcessorFactory. Since we don't use both
	libxml2 and expat simultaneously, MetalinkProcessor is now not
	base class and it is directly implemented in
	XML2SAXMetalinkProcessor and ExpatMetalinkProcessor.	
	* src/ExpatMetalinkProcessor.cc
	* src/ExpatMetalinkProcessor.h
	* src/Makefile.am
	* src/MetalinkHelper.cc
	* src/MetalinkProcessor.h
	* src/MetalinkProcessorFactory.cc: Removed.
	* src/MetalinkProcessorFactory.h: Removed
	* src/XML2SAXMetalinkProcessor.cc
	* src/XML2SAXMetalinkProcessor.h
	* test/MetalinkProcessorTest.cc
Tatsuhiro Tsujikawa 16 years ago
parent
commit
16f5ebcfcd

+ 17 - 0
ChangeLog

@@ -1,3 +1,20 @@
+2009-04-28  Tatsuhiro Tsujikawa  <[email protected]>
+
+	Removed MetalinkProcessorFactory. Since we don't use both libxml2
+	and expat simultaneously, MetalinkProcessor is now not base class
+	and it is directly implemented in XML2SAXMetalinkProcessor and
+	ExpatMetalinkProcessor.	
+	* src/ExpatMetalinkProcessor.cc
+	* src/ExpatMetalinkProcessor.h
+	* src/Makefile.am
+	* src/MetalinkHelper.cc
+	* src/MetalinkProcessor.h
+	* src/MetalinkProcessorFactory.cc: Removed.
+	* src/MetalinkProcessorFactory.h: Removed
+	* src/XML2SAXMetalinkProcessor.cc
+	* src/XML2SAXMetalinkProcessor.h
+	* test/MetalinkProcessorTest.cc
+
 2009-04-27  Tatsuhiro Tsujikawa  <[email protected]>
 
 	Bump up version number to 1.3.2

+ 2 - 4
src/ExpatMetalinkProcessor.cc

@@ -93,10 +93,8 @@ static void mlCharacters(void* userData, const char* ch, int len)
   }
 }
 
-ExpatMetalinkProcessor::ExpatMetalinkProcessor() {}
-	 
 SharedHandle<Metalinker>
-ExpatMetalinkProcessor::parseFile(const std::string& filename)
+MetalinkProcessor::parseFile(const std::string& filename)
 {
   SharedHandle<DefaultDiskWriter> dw(new DefaultDiskWriter());
   dw->openExistingFile(filename);
@@ -105,7 +103,7 @@ ExpatMetalinkProcessor::parseFile(const std::string& filename)
 }
 	 
 SharedHandle<Metalinker>
-ExpatMetalinkProcessor::parseFromBinaryStream(const SharedHandle<BinaryStream>& binaryStream)
+MetalinkProcessor::parseFromBinaryStream(const SharedHandle<BinaryStream>& binaryStream)
 {
   _stm.reset(new MetalinkParserStateMachine());
   ssize_t bufSize = 4096;

+ 12 - 10
src/ExpatMetalinkProcessor.h

@@ -35,26 +35,28 @@
 #ifndef _D_EXPAT_METALINK_PROCESSOR_H_
 #define _D_EXPAT_METALINK_PROCESSOR_H_
 
-#include "MetalinkProcessor.h"
-#include <expat.h>
+#include "common.h"
+
 #include <string>
 
+#include <expat.h>
+
+#include "SharedHandle.h"
+
 namespace aria2 {
 
+class Metalinker;
+class BinaryStream;
 class MetalinkParserStateMachine;
 
-class ExpatMetalinkProcessor:public MetalinkProcessor {
+class MetalinkProcessor {
 private:
   SharedHandle<MetalinkParserStateMachine> _stm;
-
 public:
-  ExpatMetalinkProcessor();
-
-  virtual ~ExpatMetalinkProcessor() {}
-
-  virtual SharedHandle<Metalinker> parseFile(const std::string& filename);
+  SharedHandle<Metalinker> parseFile(const std::string& filename);
 
-  virtual SharedHandle<Metalinker> parseFromBinaryStream(const SharedHandle<BinaryStream>& binaryStream);
+  SharedHandle<Metalinker> parseFromBinaryStream
+  (const SharedHandle<BinaryStream>& binaryStream);
 };
 
 } // namespace aria2

+ 0 - 1
src/Makefile.am

@@ -419,7 +419,6 @@ SRCS += Metalinker.cc Metalinker.h\
 	MetalinkEntry.cc MetalinkEntry.h\
 	MetalinkResource.cc MetalinkResource.h\
 	MetalinkProcessor.h\
-	MetalinkProcessorFactory.cc MetalinkProcessorFactory.h\
 	MetalinkParserController.cc MetalinkParserController.h\
 	MetalinkParserStateMachine.cc MetalinkParserStateMachine.h\
 	MetalinkParserState.h\

+ 0 - 4
src/Makefile.in

@@ -217,7 +217,6 @@ bin_PROGRAMS = aria2c$(EXEEXT)
 @ENABLE_METALINK_TRUE@	MetalinkEntry.cc MetalinkEntry.h\
 @ENABLE_METALINK_TRUE@	MetalinkResource.cc MetalinkResource.h\
 @ENABLE_METALINK_TRUE@	MetalinkProcessor.h\
-@ENABLE_METALINK_TRUE@	MetalinkProcessorFactory.cc MetalinkProcessorFactory.h\
 @ENABLE_METALINK_TRUE@	MetalinkParserController.cc MetalinkParserController.h\
 @ENABLE_METALINK_TRUE@	MetalinkParserStateMachine.cc MetalinkParserStateMachine.h\
 @ENABLE_METALINK_TRUE@	MetalinkParserState.h\
@@ -535,7 +534,6 @@ am__libaria2c_a_SOURCES_DIST = Socket.h SocketCore.cc SocketCore.h \
 	IndexBtMessageValidator.h ExtensionMessageRegistry.h \
 	Metalinker.cc Metalinker.h MetalinkEntry.cc MetalinkEntry.h \
 	MetalinkResource.cc MetalinkResource.h MetalinkProcessor.h \
-	MetalinkProcessorFactory.cc MetalinkProcessorFactory.h \
 	MetalinkParserController.cc MetalinkParserController.h \
 	MetalinkParserStateMachine.cc MetalinkParserStateMachine.h \
 	MetalinkParserState.h InitialMetalinkParserState.cc \
@@ -691,7 +689,6 @@ am__objects_3 =
 @ENABLE_METALINK_TRUE@am__objects_11 = Metalinker.$(OBJEXT) \
 @ENABLE_METALINK_TRUE@	MetalinkEntry.$(OBJEXT) \
 @ENABLE_METALINK_TRUE@	MetalinkResource.$(OBJEXT) \
-@ENABLE_METALINK_TRUE@	MetalinkProcessorFactory.$(OBJEXT) \
 @ENABLE_METALINK_TRUE@	MetalinkParserController.$(OBJEXT) \
 @ENABLE_METALINK_TRUE@	MetalinkParserStateMachine.$(OBJEXT) \
 @ENABLE_METALINK_TRUE@	InitialMetalinkParserState.$(OBJEXT) \
@@ -1438,7 +1435,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetalinkParserController.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetalinkParserStateMachine.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetalinkPostDownloadHandler.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetalinkProcessorFactory.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetalinkResource.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Metalinker.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MultiDiskAdaptor.Po@am__quote@

+ 4 - 8
src/MetalinkHelper.cc

@@ -35,11 +35,9 @@
 #include "MetalinkHelper.h"
 #include "Option.h"
 #include "MetalinkEntry.h"
-#include "MetalinkProcessorFactory.h"
 #include "MetalinkParserStateMachine.h"
 #include "Metalinker.h"
 #include "MetalinkProcessor.h"
-#include "MetalinkProcessorFactory.h"
 #include "prefs.h"
 #include "DlAbortEx.h"
 #include "BinaryStream.h"
@@ -54,9 +52,8 @@ void MetalinkHelper::parseAndQuery
 (std::deque<SharedHandle<MetalinkEntry> >& result,
  const std::string& filename, const Option* option)
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
-
-  SharedHandle<Metalinker> metalinker = proc->parseFile(filename);
+  MetalinkProcessor proc;
+  SharedHandle<Metalinker> metalinker = proc.parseFile(filename);
   query(result, metalinker, option);
 }
 
@@ -64,9 +61,8 @@ void MetalinkHelper::parseAndQuery
 (std::deque<SharedHandle<MetalinkEntry> >& result,
  const SharedHandle<BinaryStream>& binaryStream, const Option* option)
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
-
-  SharedHandle<Metalinker> metalinker = proc->parseFromBinaryStream(binaryStream);
+  MetalinkProcessor proc;
+  SharedHandle<Metalinker> metalinker =proc.parseFromBinaryStream(binaryStream);
   query(result, metalinker, option);
 }
 

+ 5 - 17
src/MetalinkProcessor.h

@@ -36,23 +36,11 @@
 #define _D_METALINK_PROCESSOR_H_
 
 #include "common.h"
-#include "SharedHandle.h"
-#include <string>
 
-namespace aria2 {
-
-class Metalinker;
-class BinaryStream;
-
-class MetalinkProcessor {
-public:
-  virtual ~MetalinkProcessor() {}
-
-  virtual SharedHandle<Metalinker> parseFile(const std::string& filename) = 0;
-
-  virtual SharedHandle<Metalinker> parseFromBinaryStream(const SharedHandle<BinaryStream>& binaryStream) = 0;
-};
-
-} // namespace aria2
+#ifdef HAVE_LIBXML2
+# include "XML2SAXMetalinkProcessor.h"
+#elif HAVE_LIBEXPAT
+# include "ExpatMetalinkProcessor.h"
+#endif
 
 #endif // _D_METALINK_PROCESSOR_H_

+ 0 - 56
src/MetalinkProcessorFactory.cc

@@ -1,56 +0,0 @@
-/* <!-- copyright */
-/*
- * aria2 - The high speed download utility
- *
- * Copyright (C) 2006 Tatsuhiro Tsujikawa
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * In addition, as a special exception, the copyright holders give
- * permission to link the code of portions of this program with the
- * OpenSSL library under certain conditions as described in each
- * individual source file, and distribute linked combinations
- * including the two.
- * You must obey the GNU General Public License in all respects
- * for all of the code used other than OpenSSL.  If you modify
- * file(s) with this exception, you may extend this exception to your
- * version of the file(s), but you are not obligated to do so.  If you
- * do not wish to do so, delete this exception statement from your
- * version.  If you delete this exception statement from all source
- * files in the program, then also delete it here.
- */
-/* copyright --> */
-#include "MetalinkProcessorFactory.h"
-#ifdef HAVE_LIBXML2
-# include "XML2SAXMetalinkProcessor.h"
-#elif HAVE_LIBEXPAT
-# include "ExpatMetalinkProcessor.h"
-#endif
-#include "MetalinkParserStateMachine.h"
-
-namespace aria2 {
-
-SharedHandle<MetalinkProcessor> MetalinkProcessorFactory::newInstance()
-{
-#ifdef HAVE_LIBXML2
-  return SharedHandle<MetalinkProcessor>(new XML2SAXMetalinkProcessor());
-#elif HAVE_LIBEXPAT
-  return SharedHandle<MetalinkProcessor>(new ExpatMetalinkProcessor());
-#else
-  return SharedHandle<MetalinkProcessor>();
-#endif
-}
-
-} // namespace aria2

+ 0 - 54
src/MetalinkProcessorFactory.h

@@ -1,54 +0,0 @@
-/* <!-- copyright */
-/*
- * aria2 - The high speed download utility
- *
- * Copyright (C) 2006 Tatsuhiro Tsujikawa
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * In addition, as a special exception, the copyright holders give
- * permission to link the code of portions of this program with the
- * OpenSSL library under certain conditions as described in each
- * individual source file, and distribute linked combinations
- * including the two.
- * You must obey the GNU General Public License in all respects
- * for all of the code used other than OpenSSL.  If you modify
- * file(s) with this exception, you may extend this exception to your
- * version of the file(s), but you are not obligated to do so.  If you
- * do not wish to do so, delete this exception statement from your
- * version.  If you delete this exception statement from all source
- * files in the program, then also delete it here.
- */
-/* copyright --> */
-#ifndef _D_METALINK_PROCESSOR_FACTORY_H_
-#define _D_METALINK_PROCESSOR_FACTORY_H_
-
-#include "common.h"
-#include "SharedHandle.h"
-
-namespace aria2 {
-
-class MetalinkProcessor;
-
-class MetalinkProcessorFactory {
-private:
-  MetalinkProcessorFactory() {}
-public:
-  static SharedHandle<MetalinkProcessor> newInstance(); 
-};
-
-} // namespace aria2
-
-#endif // _D_METALINK_PROCESSOR_FACTORY_H__

+ 2 - 4
src/XML2SAXMetalinkProcessor.cc

@@ -128,10 +128,8 @@ static xmlSAXHandler mySAXHandler =
   0, //   xmlStructuredErrorFunc
 };
 
-XML2SAXMetalinkProcessor::XML2SAXMetalinkProcessor() {}
-
 SharedHandle<Metalinker>
-XML2SAXMetalinkProcessor::parseFile(const std::string& filename)
+MetalinkProcessor::parseFile(const std::string& filename)
 {
   _stm.reset(new MetalinkParserStateMachine());
   SharedHandle<SessionData> sessionData(new SessionData(_stm));
@@ -144,7 +142,7 @@ XML2SAXMetalinkProcessor::parseFile(const std::string& filename)
 }
 	 
 SharedHandle<Metalinker>
-XML2SAXMetalinkProcessor::parseFromBinaryStream(const SharedHandle<BinaryStream>& binaryStream)
+MetalinkProcessor::parseFromBinaryStream(const SharedHandle<BinaryStream>& binaryStream)
 {
   _stm.reset(new MetalinkParserStateMachine());
   size_t bufSize = 4096;

+ 12 - 10
src/XML2SAXMetalinkProcessor.h

@@ -35,27 +35,29 @@
 #ifndef _D_XML2_SAX_METALINK_PROCESSOR_H_
 #define _D_XML2_SAX_METALINK_PROCESSOR_H_
 
-#include "MetalinkProcessor.h"
+#include "common.h"
+
+#include <string>
+
 #include <libxml/parser.h>
 #include <libxml/xpath.h>
-#include <string>
+
+#include "SharedHandle.h"
 
 namespace aria2 {
 
+class Metalinker;
+class BinaryStream;
 class MetalinkParserStateMachine;
 
-class XML2SAXMetalinkProcessor:public MetalinkProcessor {
+class MetalinkProcessor {
 private:
   SharedHandle<MetalinkParserStateMachine> _stm;
-
 public:
-  XML2SAXMetalinkProcessor();
-
-  virtual ~XML2SAXMetalinkProcessor() {}
-
-  virtual SharedHandle<Metalinker> parseFile(const std::string& filename);
+  SharedHandle<Metalinker> parseFile(const std::string& filename);
 
-  virtual SharedHandle<Metalinker> parseFromBinaryStream(const SharedHandle<BinaryStream>& binaryStream);
+  SharedHandle<Metalinker> parseFromBinaryStream
+  (const SharedHandle<BinaryStream>& binaryStream);
 };
 
 } // namespace aria2

+ 31 - 32
test/MetalinkProcessorTest.cc

@@ -1,4 +1,4 @@
-#include "MetalinkProcessorFactory.h"
+#include "MetalinkProcessor.h"
 
 #include <iostream>
 
@@ -8,7 +8,6 @@
 #include "Exception.h"
 #include "DefaultDiskWriter.h"
 #include "ByteArrayDiskWriter.h"
-#include "MetalinkProcessor.h"
 #include "Metalinker.h"
 #include "MetalinkEntry.h"
 #include "MetalinkResource.h"
@@ -68,9 +67,9 @@ CPPUNIT_TEST_SUITE_REGISTRATION( MetalinkProcessorTest );
 
 void MetalinkProcessorTest::testParseFile()
 {
-  SharedHandle<MetalinkProcessor> proc(MetalinkProcessorFactory::newInstance());
+  MetalinkProcessor proc;
   try {
-    SharedHandle<Metalinker> metalinker = proc->parseFile("test.xml");
+    SharedHandle<Metalinker> metalinker = proc.parseFile("test.xml");
 
     std::deque<SharedHandle<MetalinkEntry> >::iterator entryItr = metalinker->entries.begin();
 
@@ -175,12 +174,12 @@ void MetalinkProcessorTest::testParseFile()
 
 void MetalinkProcessorTest::testParseFromBinaryStream()
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
+  MetalinkProcessor proc;
   DefaultDiskWriterHandle dw(new DefaultDiskWriter());
   dw->openExistingFile("test.xml");
   
   try {
-    SharedHandle<Metalinker> m = proc->parseFromBinaryStream(dw);
+    SharedHandle<Metalinker> m = proc.parseFromBinaryStream(dw);
 
     std::deque<SharedHandle<MetalinkEntry> >::iterator entryItr = m->entries.begin();
     SharedHandle<MetalinkEntry> entry1 = *entryItr;
@@ -192,12 +191,12 @@ void MetalinkProcessorTest::testParseFromBinaryStream()
 
 void MetalinkProcessorTest::testMalformedXML()
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
+  MetalinkProcessor proc;
   SharedHandle<ByteArrayDiskWriter> dw(new ByteArrayDiskWriter());
   dw->setString("<metalink><files></file></metalink>");
 
   try {
-    SharedHandle<Metalinker> m = proc->parseFromBinaryStream(dw);
+    SharedHandle<Metalinker> m = proc.parseFromBinaryStream(dw);
     CPPUNIT_FAIL("exception must be thrown.");
   } catch(Exception& e) {
     std::cerr << e.stackTrace() << std::endl;
@@ -206,12 +205,12 @@ void MetalinkProcessorTest::testMalformedXML()
 
 void MetalinkProcessorTest::testMalformedXML2()
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
+  MetalinkProcessor proc;
   SharedHandle<ByteArrayDiskWriter> dw(new ByteArrayDiskWriter());
   dw->setString("<metalink><files></files>");
 
   try {
-    SharedHandle<Metalinker> m = proc->parseFromBinaryStream(dw);
+    SharedHandle<Metalinker> m = proc.parseFromBinaryStream(dw);
     CPPUNIT_FAIL("exception must be thrown.");
   } catch(Exception& e) {
     std::cerr << e.stackTrace() << std::endl;
@@ -220,7 +219,7 @@ void MetalinkProcessorTest::testMalformedXML2()
 
 void MetalinkProcessorTest::testBadSize()
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
+  MetalinkProcessor proc;
   SharedHandle<ByteArrayDiskWriter> dw(new ByteArrayDiskWriter());
   dw->setString("<metalink>"
 		"<files>"
@@ -234,7 +233,7 @@ void MetalinkProcessorTest::testBadSize()
 		"</metalink>");
 
   try {
-    SharedHandle<Metalinker> m = proc->parseFromBinaryStream(dw);
+    SharedHandle<Metalinker> m = proc.parseFromBinaryStream(dw);
 
     std::deque<SharedHandle<MetalinkEntry> >::iterator entryItr = m->entries.begin();
     SharedHandle<MetalinkEntry> e = *entryItr;
@@ -251,7 +250,7 @@ void MetalinkProcessorTest::testBadSize()
 
 void MetalinkProcessorTest::testBadMaxConn()
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
+  MetalinkProcessor proc;
   SharedHandle<ByteArrayDiskWriter> dw(new ByteArrayDiskWriter());
   dw->setString("<metalink>"
 		"<files>"
@@ -266,7 +265,7 @@ void MetalinkProcessorTest::testBadMaxConn()
 		"</metalink>");
 
   try {
-    SharedHandle<Metalinker> m = proc->parseFromBinaryStream(dw);
+    SharedHandle<Metalinker> m = proc.parseFromBinaryStream(dw);
 
     std::deque<SharedHandle<MetalinkEntry> >::iterator entryItr = m->entries.begin();
     SharedHandle<MetalinkEntry> e = *entryItr;
@@ -278,7 +277,7 @@ void MetalinkProcessorTest::testBadMaxConn()
 
 void MetalinkProcessorTest::testNoName()
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
+  MetalinkProcessor proc;
   SharedHandle<ByteArrayDiskWriter> dw(new ByteArrayDiskWriter());
   dw->setString("<metalink>"
 		"<files>"
@@ -298,7 +297,7 @@ void MetalinkProcessorTest::testNoName()
 		"</metalink>");
 
   try {
-    SharedHandle<Metalinker> m = proc->parseFromBinaryStream(dw);
+    SharedHandle<Metalinker> m = proc.parseFromBinaryStream(dw);
     CPPUNIT_ASSERT_EQUAL((size_t)1, m->entries.size());
     std::deque<SharedHandle<MetalinkEntry> >::iterator entryItr = m->entries.begin();
     SharedHandle<MetalinkEntry> e = *entryItr;
@@ -310,7 +309,7 @@ void MetalinkProcessorTest::testNoName()
 
 void MetalinkProcessorTest::testBadURLPrefs()
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
+  MetalinkProcessor proc;
   SharedHandle<ByteArrayDiskWriter> dw(new ByteArrayDiskWriter());
   dw->setString("<metalink>"
 		"<files>"
@@ -327,7 +326,7 @@ void MetalinkProcessorTest::testBadURLPrefs()
 		"</metalink>");
 
   try {
-    SharedHandle<Metalinker> m = proc->parseFromBinaryStream(dw);
+    SharedHandle<Metalinker> m = proc.parseFromBinaryStream(dw);
     SharedHandle<MetalinkEntry> e = m->entries[0];
     SharedHandle<MetalinkResource> r = e->resources[0];
     CPPUNIT_ASSERT_EQUAL(MetalinkResource::TYPE_FTP, r->type);
@@ -341,7 +340,7 @@ void MetalinkProcessorTest::testBadURLPrefs()
 
 void MetalinkProcessorTest::testBadURLMaxConn()
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
+  MetalinkProcessor proc;
   SharedHandle<ByteArrayDiskWriter> dw(new ByteArrayDiskWriter());
   dw->setString("<metalink>"
 		"<files>"
@@ -358,7 +357,7 @@ void MetalinkProcessorTest::testBadURLMaxConn()
 		"</metalink>");
 
   try {
-    SharedHandle<Metalinker> m = proc->parseFromBinaryStream(dw);
+    SharedHandle<Metalinker> m = proc.parseFromBinaryStream(dw);
     SharedHandle<MetalinkEntry> e = m->entries[0];
     SharedHandle<MetalinkResource> r = e->resources[0];
     CPPUNIT_ASSERT_EQUAL(MetalinkResource::TYPE_FTP, r->type);
@@ -373,7 +372,7 @@ void MetalinkProcessorTest::testBadURLMaxConn()
 #ifdef ENABLE_MESSAGE_DIGEST
 void MetalinkProcessorTest::testUnsupportedType()
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
+  MetalinkProcessor proc;
   SharedHandle<ByteArrayDiskWriter> dw(new ByteArrayDiskWriter());
   dw->setString("<metalink>"
 		"<files>"
@@ -392,7 +391,7 @@ void MetalinkProcessorTest::testUnsupportedType()
 		"</metalink>");
 
   try {
-    SharedHandle<Metalinker> m = proc->parseFromBinaryStream(dw);
+    SharedHandle<Metalinker> m = proc.parseFromBinaryStream(dw);
     SharedHandle<MetalinkEntry> e = m->entries[0];
     CPPUNIT_ASSERT_EQUAL((size_t)3, e->resources.size());
     SharedHandle<MetalinkResource> r1 = e->resources[0];
@@ -408,7 +407,7 @@ void MetalinkProcessorTest::testUnsupportedType()
 
 void MetalinkProcessorTest::testMultiplePieces()
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
+  MetalinkProcessor proc;
   SharedHandle<ByteArrayDiskWriter> dw(new ByteArrayDiskWriter());
   dw->setString("<metalink>"
 		"<files>"
@@ -425,7 +424,7 @@ void MetalinkProcessorTest::testMultiplePieces()
 
   try {
     // aria2 prefers sha1
-    SharedHandle<Metalinker> m = proc->parseFromBinaryStream(dw);
+    SharedHandle<Metalinker> m = proc.parseFromBinaryStream(dw);
     SharedHandle<MetalinkEntry> e = m->entries[0];
     SharedHandle<ChunkChecksum> c = e->chunkChecksum;
  
@@ -438,7 +437,7 @@ void MetalinkProcessorTest::testMultiplePieces()
 
 void MetalinkProcessorTest::testBadPieceNo()
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
+  MetalinkProcessor proc;
   SharedHandle<ByteArrayDiskWriter> dw(new ByteArrayDiskWriter());
   dw->setString("<metalink>"
 		"<files>"
@@ -457,7 +456,7 @@ void MetalinkProcessorTest::testBadPieceNo()
 		"</metalink>");
 
   try {
-    SharedHandle<Metalinker> m = proc->parseFromBinaryStream(dw);
+    SharedHandle<Metalinker> m = proc.parseFromBinaryStream(dw);
     SharedHandle<MetalinkEntry> e = m->entries[0];
     SharedHandle<ChunkChecksum> c = e->chunkChecksum;
 
@@ -471,7 +470,7 @@ void MetalinkProcessorTest::testBadPieceNo()
 
 void MetalinkProcessorTest::testBadPieceLength()
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
+  MetalinkProcessor proc;
   SharedHandle<ByteArrayDiskWriter> dw(new ByteArrayDiskWriter());
   dw->setString("<metalink>"
 		"<files>"
@@ -489,7 +488,7 @@ void MetalinkProcessorTest::testBadPieceLength()
 		"</metalink>");
 
   try {
-    SharedHandle<Metalinker> m = proc->parseFromBinaryStream(dw);
+    SharedHandle<Metalinker> m = proc.parseFromBinaryStream(dw);
     CPPUNIT_ASSERT_EQUAL((size_t)1, m->entries.size());
      SharedHandle<MetalinkEntry> e = m->entries[0];
      SharedHandle<ChunkChecksum> c = e->chunkChecksum;
@@ -503,7 +502,7 @@ void MetalinkProcessorTest::testBadPieceLength()
 
 void MetalinkProcessorTest::testUnsupportedType_piece()
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
+  MetalinkProcessor proc;
   SharedHandle<ByteArrayDiskWriter> dw(new ByteArrayDiskWriter());
   dw->setString("<metalink>"
 		"<files>"
@@ -521,7 +520,7 @@ void MetalinkProcessorTest::testUnsupportedType_piece()
 		"</metalink>");
 
   try {
-    SharedHandle<Metalinker> m = proc->parseFromBinaryStream(dw);
+    SharedHandle<Metalinker> m = proc.parseFromBinaryStream(dw);
     SharedHandle<MetalinkEntry> e = m->entries[0];
     SharedHandle<ChunkChecksum> c = e->chunkChecksum;
  
@@ -536,7 +535,7 @@ void MetalinkProcessorTest::testUnsupportedType_piece()
 
 void MetalinkProcessorTest::testLargeFileSize()
 {
-  SharedHandle<MetalinkProcessor> proc = MetalinkProcessorFactory::newInstance();
+  MetalinkProcessor proc;
   SharedHandle<ByteArrayDiskWriter> dw(new ByteArrayDiskWriter());
   dw->setString("<metalink>"
 		"<files>"
@@ -550,7 +549,7 @@ void MetalinkProcessorTest::testLargeFileSize()
 		"</metalink>");
 
   try {
-    SharedHandle<Metalinker> m = proc->parseFromBinaryStream(dw);
+    SharedHandle<Metalinker> m = proc.parseFromBinaryStream(dw);
     SharedHandle<MetalinkEntry> e = m->entries[0];
     CPPUNIT_ASSERT_EQUAL((uint64_t)9223372036854775807ULL, e->getLength());
   } catch(Exception& e) {