Author: kwright
Date: Wed Oct 30 21:49:10 2013
New Revision: 1537317

URL: http://svn.apache.org/r1537317
Log:
Finish CONNECTORS-796

Modified:
    
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/fuzzyml/TagParseState.java
    
manifoldcf/trunk/framework/core/src/test/java/org/apache/manifoldcf/core/fuzzyml/TestFuzzyML.java
   (contents, props changed)

Modified: 
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/fuzzyml/TagParseState.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/fuzzyml/TagParseState.java?rev=1537317&r1=1537316&r2=1537317&view=diff
==============================================================================
--- 
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/fuzzyml/TagParseState.java
 (original)
+++ 
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/fuzzyml/TagParseState.java
 Wed Oct 30 21:49:10 2013
@@ -238,6 +238,7 @@ public class TagParseState extends Singl
         currentState = TAGPARSESTATE_SAWSECONDRIGHTBRACKET;
       else
       {
+        currentState = TAGPARSESTATE_IN_CDATA_BODY;
         if (noteEscapedCharacter(']'))
           return true;
         if (noteEscapedCharacter(thisChar))
@@ -248,8 +249,15 @@ public class TagParseState extends Singl
     case TAGPARSESTATE_SAWSECONDRIGHTBRACKET:
       if (thisChar == '>')
         currentState = TAGPARSESTATE_NORMAL;
+      else if (thisChar == ']')
+      {
+        // currentstate unchanged; emit the first bracket
+        if (noteEscapedCharacter(']'))
+          return true;
+      }
       else
       {
+        currentState = TAGPARSESTATE_IN_CDATA_BODY;
         if (noteEscapedCharacter(']'))
           return true;
         if (noteEscapedCharacter(']'))

Modified: 
manifoldcf/trunk/framework/core/src/test/java/org/apache/manifoldcf/core/fuzzyml/TestFuzzyML.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/framework/core/src/test/java/org/apache/manifoldcf/core/fuzzyml/TestFuzzyML.java?rev=1537317&r1=1537316&r2=1537317&view=diff
==============================================================================
--- 
manifoldcf/trunk/framework/core/src/test/java/org/apache/manifoldcf/core/fuzzyml/TestFuzzyML.java
 [iso-8859-1] (original)
+++ 
manifoldcf/trunk/framework/core/src/test/java/org/apache/manifoldcf/core/fuzzyml/TestFuzzyML.java
 [UTF-8] Wed Oct 30 21:49:10 2013
@@ -30,8 +30,17 @@ public class TestFuzzyML
 {
   
   protected final static String fuzzyTestString = 
+"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+
+"<rss version=\"2.0\"\n"+
+"      xmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\n"+
+"      xmlns:wfw=\"http://wellformedweb.org/CommentAPI/\"\n"+
+"      xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n"+
+"      xmlns:atom=\"http://www.w3.org/2005/Atom\"\n"+
+"      xmlns:sy=\"http://purl.org/rss/1.0/modules/syndication/\"\n"+
+"      xmlns:slash=\"http://purl.org/rss/1.0/modules/slash/\"\n"+
+"      >\n"+
 "              <item>\n"+
-"              <title>fme File Exchange Plattform – Austausch mit Externen 
leichtgemacht</title>\n"+
+"              <title>fme File Exchange Plattform – Austausch mit Externen 
leichtgemacht</title>\n"+
 "              
<link>http://blog.fme.de/allgemein/2013-07/fme-file-exchange-plattform-austausch-mit-externen-leichtgemacht</link>\n"+
 "              
<comments>http://blog.fme.de/allgemein/2013-07/fme-file-exchange-plattform-austausch-mit-externen-leichtgemacht#comments</comments>\n"+
 "              <pubDate>Thu, 18 Jul 2013 07:39:03 +0000</pubDate>\n"+
@@ -45,63 +54,63 @@ public class TestFuzzyML
 "              <category><![CDATA[Webtechnologien]]></category>\n"+
 "\n"+
 "              <guid 
isPermaLink=\"false\">http://blog.fme.de/?p=1806</guid>\n"+
-"              <description><![CDATA[Der Austausch von Dokumenten mit 
Partnern, Agenturen oder auch Kunden ist aus Sicht der Unternehmens-IT immer 
noch ein oft problematisches Feld. Der Austausch von großen Dateimengen per 
Mail &#8220;bläht&#8221; die Postfächer unnötig auf und führt zu 
ineffizienten Prozessen (&#8220;welche Version ist noch aktuell?&#8221;). Die 
von den Endanwendern in Eigenverantwortung oft gewählte Cloud-Alternative – 
die Nutzung [...]]]></description>\n"+
-"                      <content:encoded><![CDATA[<p><strong>Der Austausch von 
Dokumenten mit Partnern, Agenturen oder auch Kunden ist aus Sicht der 
Unternehmens-IT immer noch ein oft problematisches Feld. Der Austausch von 
großen Dateimengen per Mail &#8220;bläht&#8221; die Postfächer unnötig auf 
und führt zu ineffizienten Prozessen (&#8220;welche Version ist noch 
aktuell?&#8221;). Die von den Endanwendern in Eigenverantwortung oft gewählte 
Cloud-Alternative – die Nutzung von Cloud-basierten File-Sharing-Diensten wie 
Dropbox, Google Drive &amp; Co – ist und bleibt nicht erst seit #Prism ein 
&#8220;Schreckgespenst&#8221; für viele CIOs. Die fme file Exchange Plattform 
bietet eine compliance- und integrationsfähige Alternative.</strong></p>\n"+
+"              <description><![CDATA[Der Austausch von Dokumenten mit 
Partnern, Agenturen oder auch Kunden ist aus Sicht der Unternehmens-IT immer 
noch ein oft problematisches Feld. Der Austausch von großen Dateimengen per 
Mail &#8220;bläht&#8221; die Postfächer unnötig auf und führt zu ineffizienten 
Prozessen (&#8220;welche Version ist noch aktuell?&#8221;). Die von den 
Endanwendern in Eigenverantwortung oft gewählte Cloud-Alternative – die Nutzung 
[...]]]></description>\n"+
+"                      <content:encoded><![CDATA[<p><strong>Der Austausch von 
Dokumenten mit Partnern, Agenturen oder auch Kunden ist aus Sicht der 
Unternehmens-IT immer noch ein oft problematisches Feld. Der Austausch von 
großen Dateimengen per Mail &#8220;bläht&#8221; die Postfächer unnötig auf und 
führt zu ineffizienten Prozessen (&#8220;welche Version ist noch 
aktuell?&#8221;). Die von den Endanwendern in Eigenverantwortung oft gewählte 
Cloud-Alternative – die Nutzung von Cloud-basierten File-Sharing-Diensten wie 
Dropbox, Google Drive &amp; Co – ist und bleibt nicht erst seit #Prism ein 
&#8220;Schreckgespenst&#8221; für viele CIOs. Die fme file Exchange Plattform 
bietet eine compliance- und integrationsfähige Alternative.</strong></p>\n"+
 "<p>Die typischen Anforderungen an eine Dateiaustauschplattform lassen sich in 
der folgenden Form zusammenfassen:</p>\n"+
-"<p><strong>Als Mitarbeiter des Unternehmens möchte ich…</strong></p>\n"+
+"<p><strong>Als Mitarbeiter des Unternehmens möchte ich…</strong></p>\n"+
 "<ul>\n"+
-"<li>mich mit meinem Standard-Unternehmens-Account anmelden können, am besten 
per SSO,</li>\n"+
+"<li>mich mit meinem Standard-Unternehmens-Account anmelden können, am besten 
per SSO,</li>\n"+
 "<li>Sammlungen von Dateien mit externen Benutzern austauschen,</li>\n"+
-"<li>angeben können, welche Benutzer lesend oder schreibend auf die Dateien 
zugreifen können,</li>\n"+
-"<li>Dokumente vom lokalen PC oder dem internen Dokumenten-Management-System 
hochladen/auswählen können,</li>\n"+
-"<li>weitere Dateien zu einer Dateisammlung hinzufügen und vorhandene 
aktualisieren oder löschen können und</li>\n"+
-"<li>die Benutzer automatisch benachrichtigen, wenn neue oder geänderte 
Dateien vorhanden sind.</li>\n"+
+"<li>angeben können, welche Benutzer lesend oder schreibend auf die Dateien 
zugreifen können,</li>\n"+
+"<li>Dokumente vom lokalen PC oder dem internen Dokumenten-Management-System 
hochladen/auswählen können,</li>\n"+
+"<li>weitere Dateien zu einer Dateisammlung hinzufügen und vorhandene 
aktualisieren oder löschen können und</li>\n"+
+"<li>die Benutzer automatisch benachrichtigen, wenn neue oder geänderte 
Dateien vorhanden sind.</li>\n"+
 "</ul>\n"+
 "<p><span id=\"more-1806\"></span></p>\n"+
-"<p><strong>Als externer Benutzer möchte ich…</strong></p>\n"+
+"<p><strong>Als externer Benutzer möchte ich…</strong></p>\n"+
 "<ul>\n"+
-"<li>mich einfach im System registrieren können,</li>\n"+
-"<li>vom System benachrichtigt werden, wenn ein anderer Benutzer neue Dateien 
für mich bereitgestellt hat und</li>\n"+
-"<li>auf die für mich freigegeben Dateisammlungen einfach zugreifen 
können.</li>\n"+
+"<li>mich einfach im System registrieren können,</li>\n"+
+"<li>vom System benachrichtigt werden, wenn ein anderer Benutzer neue Dateien 
für mich bereitgestellt hat und</li>\n"+
+"<li>auf die für mich freigegeben Dateisammlungen einfach zugreifen 
können.</li>\n"+
 "</ul>\n"+
-"<p><strong>Als IT-Verantwortlicher möchte ich …</strong></p>\n"+
+"<p><strong>Als IT-Verantwortlicher möchte ich …</strong></p>\n"+
 "<ul>\n"+
 "<li>dass das System in der eigenen DMZ betrieben werden kann,</li>\n"+
-"<li>dass jede Registrierung von einem Mitarbeiter meines Unternehmens – der 
Kontaktperson des Externen – freigeschaltet werden muss,</li>\n"+
-"<li>eine Übersicht über alle registrierten Benutzer und deren 
Dateisammlungen haben und dort jederzeit einzelne Dateien oder ganze Sammlungen 
löschen können,</li>\n"+
-"<li>dass freigebende Dateisammlungen nach einer konfigurierbaren Zeitspanne 
gelöscht werden und</li>\n"+
+"<li>dass jede Registrierung von einem Mitarbeiter meines Unternehmens – der 
Kontaktperson des Externen – freigeschaltet werden muss,</li>\n"+
+"<li>eine Übersicht über alle registrierten Benutzer und deren Dateisammlungen 
haben und dort jederzeit einzelne Dateien oder ganze Sammlungen löschen 
können,</li>\n"+
+"<li>dass freigebende Dateisammlungen nach einer konfigurierbaren Zeitspanne 
gelöscht werden und</li>\n"+
 "<li>verhindern, dass registrierte externe Benutzer das System missbrauchen, 
indem sie Dateien ohne Beteiligung eines Mitarbeiters austauschen.</li>\n"+
 "</ul>\n"+
-"<p>Anhand dieser primären Anforderungen eines unserer Kunden haben wir auf 
Basis von Alfresco und einiger modernen Webtechnologien wie Bootstrap &amp; 
AngularJS  die fme File Exchange Plattform entwickelt:</p>\n"+
+"<p>Anhand dieser primären Anforderungen eines unserer Kunden haben wir auf 
Basis von Alfresco und einiger modernen Webtechnologien wie Bootstrap &amp; 
AngularJS  die fme File Exchange Plattform entwickelt:</p>\n"+
 "<p style=\"text-align: center;\"><a 
href=\"http://blog.fme.de/wp-content/uploads/2013/07/File-Exchange-Plattform.png\";
 rel=\"lightbox[1806]\"><img class=\"aligncenter  wp-image-1819\" title=\"File 
Exchange Plattform\" 
src=\"http://blog.fme.de/wp-content/uploads/2013/07/File-Exchange-Plattform.png\";
 alt=\"\" width=\"405\" height=\"240\" /></a></p>\n"+
 "<p>&nbsp;</p>\n"+
-"<p>Alfresco dient in dieser Lösung vor allem als Content Repository inkl. 
der benötigten Basis -Funktionen wie Berechtigungen, Versionierung, 
Mailbenachrichtigungen, Dokumentenvorschau sowie Gruppen- &amp; 
Benutzerverwaltung. Außerdem wird der Registrierungsmechanismus für die 
externen Benutzer über die in Alfresco integrierte Workflow-Engine Activiti 
umgesetzt.</p>\n"+
-"<p>Die Benutzungsoberfläche der Applikation ist in Form einer Single Page 
Webapplikation auf Basis der beiden Frameworks AngularJS (<a 
href=\"http://angularjs.org/\";>http://angularjs.org/</a>) &amp; Bootstrap (<a 
href=\"http://twitter.github.io/bootstrap/\";>http://twitter.github.io/bootstrap/</a>)
 implementiert.</p>\n"+
-"<p>Die Kommunikation zwischen diesem JavaScript-Frontend und dem 
Alfresco-Backend ist mittels sog. Alfresco WebScripts umgesetzt. Das Alfresco 
WebScript-Framework ist eines der größten Vorteile von Alfresco und 
ermöglicht die Implementierung einer eigenen auf Anwendungsfall angepassten 
REST API.</p>\n"+
+"<p>Alfresco dient in dieser Lösung vor allem als Content Repository inkl. der 
benötigten Basis -Funktionen wie Berechtigungen, Versionierung, 
Mailbenachrichtigungen, Dokumentenvorschau sowie Gruppen- &amp; 
Benutzerverwaltung. Außerdem wird der Registrierungsmechanismus für die 
externen Benutzer über die in Alfresco integrierte Workflow-Engine Activiti 
umgesetzt.</p>\n"+
+"<p>Die Benutzungsoberfläche der Applikation ist in Form einer Single Page 
Webapplikation auf Basis der beiden Frameworks AngularJS (<a 
href=\"http://angularjs.org/\";>http://angularjs.org/</a>) &amp; Bootstrap (<a 
href=\"http://twitter.github.io/bootstrap/\";>http://twitter.github.io/bootstrap/</a>)
 implementiert.</p>\n"+
+"<p>Die Kommunikation zwischen diesem JavaScript-Frontend und dem 
Alfresco-Backend ist mittels sog. Alfresco WebScripts umgesetzt. Das Alfresco 
WebScript-Framework ist eines der größten Vorteile von Alfresco und ermöglicht 
die Implementierung einer eigenen auf Anwendungsfall angepassten REST 
API.</p>\n"+
 "<p>Aus der Sicht des Anwenders teilt sich die Applikation in die folgenden, 
beiden Komponenten:</p>\n"+
 "<p><strong>New File Collection</strong></p>\n"+
-"<p>Hier haben die Mitarbeiter des Unternehmens die Möglichkeit, eine neue 
Dateisammlung zum Austausch zu erstellen. Zur Erstellung einer neuen 
Dateisammlung sind lediglich die folgenden Informationen notwendig:</p>\n"+
+"<p>Hier haben die Mitarbeiter des Unternehmens die Möglichkeit, eine neue 
Dateisammlung zum Austausch zu erstellen. Zur Erstellung einer neuen 
Dateisammlung sind lediglich die folgenden Informationen notwendig:</p>\n"+
 "<ol>\n"+
 "<li>Name der Dateisammlung.</li>\n"+
-"<li>Berechtigte Benutzer – lesend oder schreibend</li>\n"+
+"<li>Berechtigte Benutzer – lesend oder schreibend</li>\n"+
 "<li>Die Dateien, die hochgeladen werden sollen</li>\n"+
 "</ol>\n"+
-"<p>Um diesen Erstellungsprozess so intuitiv &amp; komfortabel wie möglich zu 
halten, wurde zur Benutzerauswahl ein Eingabefeld inkl. einer 
Autovervollständigung anhand der vorhandenen Benutzerkonten eingesetzt.</p>\n"+
-"<p>Zum einfachen Hinzufügen von Dateien vom PC des Benutzers wird neben der 
üblichen Dateiauswahl auch ein direktes Drag&amp;Drop unterstützt.</p>\n"+
-"<p>Während des Hochladevorgangs der Dateien ist der Benutzer durch den 
Einsatz von Fortschrittsbalken jederzeit über den aktuellen Fortschritt des 
Uploads informiert.</p>\n"+
-"<p>Mit Abschluss des Hochladevorgangs werden die berechtigten Benutzer vom 
System per Mail über die neue Dateisammlung informiert.</p>\n"+
+"<p>Um diesen Erstellungsprozess so intuitiv &amp; komfortabel wie möglich zu 
halten, wurde zur Benutzerauswahl ein Eingabefeld inkl. einer 
Autovervollständigung anhand der vorhandenen Benutzerkonten eingesetzt.</p>\n"+
+"<p>Zum einfachen Hinzufügen von Dateien vom PC des Benutzers wird neben der 
üblichen Dateiauswahl auch ein direktes Drag&amp;Drop unterstützt.</p>\n"+
+"<p>Während des Hochladevorgangs der Dateien ist der Benutzer durch den 
Einsatz von Fortschrittsbalken jederzeit über den aktuellen Fortschritt des 
Uploads informiert.</p>\n"+
+"<p>Mit Abschluss des Hochladevorgangs werden die berechtigten Benutzer vom 
System per Mail über die neue Dateisammlung informiert.</p>\n"+
 "<p style=\"text-align: center;\"><a 
href=\"http://blog.fme.de/wp-content/uploads/2013/07/New-File-Collection1.png\"; 
rel=\"lightbox[1806]\"><img class=\"aligncenter  wp-image-1827\" title=\"New 
File Collection\" 
src=\"http://blog.fme.de/wp-content/uploads/2013/07/New-File-Collection1.png\"; 
alt=\"\" width=\"456\" height=\"377\" /></a></p>\n"+
 "<p>&nbsp;</p>\n"+
 "<p><strong>My File Collections</strong></p>\n"+
-"<p>Im Bereich „My File Collection” hat der angemeldete Benutzer einen 
direkten und einfachen Zugriff auf die Dateisammlungen, für die er berechtigt 
ist. Je nach vergebener Berechtigung kann der Benutzer die  enthaltenen Dateien 
herunterladen, aktualisieren &amp; löschen oder aber auch neue Dokumente 
hochladen und  Ordner erstellen.</p>\n"+
-"<p>Zudem  kann der Ersteller einer Dateisammlung oder ein Administrator die 
Sammlung für weitere Benutzer freigeben bzw. Freigaben zurücknehmen und die 
automatische Ablauffrist einer Dateisammlung aktivieren bzw. 
deaktivieren.</p>\n"+
+"<p>Im Bereich „My File Collection” hat der angemeldete Benutzer einen 
direkten und einfachen Zugriff auf die Dateisammlungen, für die er berechtigt 
ist. Je nach vergebener Berechtigung kann der Benutzer die  enthaltenen Dateien 
herunterladen, aktualisieren &amp; löschen oder aber auch neue Dokumente 
hochladen und  Ordner erstellen.</p>\n"+
+"<p>Zudem  kann der Ersteller einer Dateisammlung oder ein Administrator die 
Sammlung für weitere Benutzer freigeben bzw. Freigaben zurücknehmen und die 
automatische Ablauffrist einer Dateisammlung aktivieren bzw. 
deaktivieren.</p>\n"+
 "<p>&nbsp;</p>\n"+
 "<p style=\"text-align: center;\"><a 
href=\"http://blog.fme.de/wp-content/uploads/2013/07/My-File-Collections.png\"; 
rel=\"lightbox[1806]\"><img class=\"aligncenter  wp-image-1828\" title=\"My 
File Collections\" 
src=\"http://blog.fme.de/wp-content/uploads/2013/07/My-File-Collections.png\"; 
alt=\"\" width=\"492\" height=\"377\" /></a></p>\n"+
 "<p>&nbsp;</p>\n"+
 "<p><strong>Fazit</strong></p>\n"+
-"<p>Die Kombination von Alfresco, AngularJS &amp; Bootstrap hat sich während 
der Lösungsentwicklung als wunderbar harmonierende und sehr produktive 
Kombination zur Entwicklung von eigenen dokumentenorientieren Webapplikationen 
erwiesen.</p>\n"+
-"<p>Die Nutzung dieser erprobten Werkzeuge bringt zudem die Unterstützung von 
Webbrowsers mobiler Geräte nahezu zum Nulltarif mit. So ist die Bedienung der 
Anwendung mit einem iPad oder iPhone problemlos möglich und bspw.  das 
einfache Bereitstellen der Fotografien vom Flipchart aus dem gerade beendeten 
Workshop  schnell &amp; einfach erledigt.</p>\n"+
-"<p>Die Lösung zeigt einmal mehr, dass es neben der Konfiguration &amp; 
Anpassung eines Standard-Clients immer auch eine zweite zu betrachtende 
Variante gibt:</p>\n"+
+"<p>Die Kombination von Alfresco, AngularJS &amp; Bootstrap hat sich während 
der Lösungsentwicklung als wunderbar harmonierende und sehr produktive 
Kombination zur Entwicklung von eigenen dokumentenorientieren Webapplikationen 
erwiesen.</p>\n"+
+"<p>Die Nutzung dieser erprobten Werkzeuge bringt zudem die Unterstützung von 
Webbrowsers mobiler Geräte nahezu zum Nulltarif mit. So ist die Bedienung der 
Anwendung mit einem iPad oder iPhone problemlos möglich und bspw.  das einfache 
Bereitstellen der Fotografien vom Flipchart aus dem gerade beendeten Workshop  
schnell &amp; einfach erledigt.</p>\n"+
+"<p>Die Lösung zeigt einmal mehr, dass es neben der Konfiguration &amp; 
Anpassung eines Standard-Clients immer auch eine zweite zu betrachtende 
Variante gibt:</p>\n"+
 "<p>Die Implementierung eines eigenen Clients anhand von best-of-breed 
Technologien, wie in diesem Beispiel zur vollsten Kundenzufriedenheit 
gezeigt.</p>\n"+
 "<p>&nbsp;</p>\n"+
 "]]></content:encoded>\n"+
@@ -141,24 +150,24 @@ public class TestFuzzyML
 "<p>migration-center&#8217;s abilities will make a positive difference in your 
business if you are challenged with migrating enterprise content. Convince 
yourself and let us demonstrate your data working within migration-center in 
just a couple of days before you lease or buy the whole product.</p>\n"+
 "<p>&nbsp;</p>\n"+
 "<p><strong>Benefits of using migration-center instead of EMA</strong></p>\n"+
-"<p>•  No service engagement with EMC IIG Services required</p>\n"+
-"<p>•  migration-center is a proven product since 2005 and was used in more 
than 130 projects around the world</p>\n"+
-"<p>•  It is a full function, out-of-the-box software, fully documented, 
easy to deploy, with an excellent graphical user interface</p>\n"+
-"<p>•  Product and migration project support available</p>\n"+
-"<p>•  NO DOWNTIME &#8211; It works without interrupting any of your normal 
business operations because of the delta migration capability</p>\n"+
-"<p>•  The software is designed to efficiently move and classify large 
volumes of documents into the chosen target repository (up to 1 million 
documents per day with just a single process)</p>\n"+
-"<p>•  A large variety of algorithms and commands are available to create a 
very specific mapping and transformation logic, covering every migration 
requirement possible and all this without additional programming or scripting 
effort</p>\n"+
-"<p>•  migration-center is able to apply the business logic of highly 
customized applications (e.g. D2, TBOs, server methods etc.)</p>\n"+
-"<p>•  Complete rule simulation and error handling are provided, allowing in 
depth testing of transformation rules before committing content to the actual 
repository import</p>\n"+
-"<p>•  The migration-center grants more than 55 out-of-the-box connections 
from various source to various target systems</p>\n"+
-"<p>•  migration-center supports Documentum versions from 4i to D7</p>\n"+
-"<p>•  migration-center reflects proven migration methodology in its 
step-by-step processes</p>\n"+
-"<p>•  migration-center has been validated and approved by many companies in 
regulated environments, e.g. international pharmaceutical players</p>\n"+
-"<p>•  The migration-center pricing model is simple and very flexible</p>\n"+
-"<p>•  Through its enormous flexibility the migration-center may be deployed 
for a variety of migration scenarios</p>\n"+
-"<p>•  With our international partners we offer customer product training as 
well as complete implementation by highly competent professionals</p>\n"+
-"<p>•  migration-center is much more them a simple ETL tool</p>\n"+
-"<p>•  migration-center offers a variety of proven pre-confugure 
services</p>\n"+
+"<p>•  No service engagement with EMC IIG Services required</p>\n"+
+"<p>•  migration-center is a proven product since 2005 and was used in more 
than 130 projects around the world</p>\n"+
+"<p>•  It is a full function, out-of-the-box software, fully documented, easy 
to deploy, with an excellent graphical user interface</p>\n"+
+"<p>•  Product and migration project support available</p>\n"+
+"<p>•  NO DOWNTIME &#8211; It works without interrupting any of your normal 
business operations because of the delta migration capability</p>\n"+
+"<p>•  The software is designed to efficiently move and classify large volumes 
of documents into the chosen target repository (up to 1 million documents per 
day with just a single process)</p>\n"+
+"<p>•  A large variety of algorithms and commands are available to create a 
very specific mapping and transformation logic, covering every migration 
requirement possible and all this without additional programming or scripting 
effort</p>\n"+
+"<p>•  migration-center is able to apply the business logic of highly 
customized applications (e.g. D2, TBOs, server methods etc.)</p>\n"+
+"<p>•  Complete rule simulation and error handling are provided, allowing in 
depth testing of transformation rules before committing content to the actual 
repository import</p>\n"+
+"<p>•  The migration-center grants more than 55 out-of-the-box connections 
from various source to various target systems</p>\n"+
+"<p>•  migration-center supports Documentum versions from 4i to D7</p>\n"+
+"<p>•  migration-center reflects proven migration methodology in its 
step-by-step processes</p>\n"+
+"<p>•  migration-center has been validated and approved by many companies in 
regulated environments, e.g. international pharmaceutical players</p>\n"+
+"<p>•  The migration-center pricing model is simple and very flexible</p>\n"+
+"<p>•  Through its enormous flexibility the migration-center may be deployed 
for a variety of migration scenarios</p>\n"+
+"<p>•  With our international partners we offer customer product training as 
well as complete implementation by highly competent professionals</p>\n"+
+"<p>•  migration-center is much more them a simple ETL tool</p>\n"+
+"<p>•  migration-center offers a variety of proven pre-confugure 
services</p>\n"+
 "<p>&nbsp;</p>\n"+
 "<p>&nbsp;</p>\n"+
 "<p>&nbsp;</p>\n"+
@@ -174,12 +183,12 @@ public class TestFuzzyML
   public void testFailure()
     throws IOException, ManifoldCFException
   {
+    org.apache.manifoldcf.core.system.Logging.misc = 
org.apache.log4j.Logger.getLogger("test");
     InputStream is = new 
ByteArrayInputStream(fuzzyTestString.getBytes("utf-8"));
     Parser p = new Parser();
     // Parse the document.  This will cause various things to occur, within 
the instantiated XMLParsingContext class.
     XMLFuzzyHierarchicalParseState x = new XMLFuzzyHierarchicalParseState();
-    //OuterContextClass c = new 
OuterContextClass(x,documentIdentifier,activities,filter);
-    //x.setContext(c);
+    x.setContext(new TestParsingContext(x));
     try
     {
       // Believe it or not, there are no parsing errors we can get back now.
@@ -191,4 +200,35 @@ public class TestFuzzyML
     }
   }
 
+  protected static class TestParsingContext extends XMLParsingContext
+  {
+    protected String thisTag = null;
+    
+    public TestParsingContext(XMLFuzzyHierarchicalParseState theStream)
+    {
+      super(theStream);
+    }
+    
+    public TestParsingContext(XMLFuzzyHierarchicalParseState theStream, String 
namespace, String localname, String qname, Map<String,String> theseAttributes)
+    {
+      super(theStream,namespace,localname,qname,theseAttributes);
+    }
+    
+    @Override
+    protected XMLParsingContext beginTag(String namespace, String localName, 
String qName, Map<String,String> atts)
+      throws ManifoldCFException
+    {
+      thisTag = qName;
+      return new TestParsingContext(theStream,namespace,localName,qName,atts);
+    }
+
+    @Override
+    protected void endTag()
+      throws ManifoldCFException
+    {
+      super.endTag();
+    }
+
+  }
+  
 }

Propchange: 
manifoldcf/trunk/framework/core/src/test/java/org/apache/manifoldcf/core/fuzzyml/TestFuzzyML.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain; charset=UTF-8


Reply via email to