You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2013/10/30 22:49:11 UTC
svn commit: r1537317 - in /manifoldcf/trunk/framework/core/src:
main/java/org/apache/manifoldcf/core/fuzzyml/TagParseState.java
test/java/org/apache/manifoldcf/core/fuzzyml/TestFuzzyML.java
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 “bläht” die Postfächer unnötig auf und führt zu ineffizienten Prozessen (“welche Version ist noch aktuell?”). 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 “bläht” die Postfächer unnötig auf und führt zu ineffizienten Prozessen (“welche Version ist noch aktuell?”). Die von den Endanwendern in Eigenverantwortung oft gewählte Cloud-Alternative â die Nutzung von Cloud-basierten File-Sharing-Diensten wie Dropbox, Google Drive & Co â ist und bleibt nicht erst seit #Prism ein “Schreckgespenst” 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 “bläht” die Postfächer unnötig auf und führt zu ineffizienten Prozessen (“welche Version ist noch aktuell?”). 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 “bläht” die Postfächer unnötig auf und führt zu ineffizienten Prozessen (“welche Version ist noch aktuell?”). Die von den Endanwendern in Eigenverantwortung oft gewählte Cloud-Alternative – die Nutzung von Cloud-basierten File-Sharing-Diensten wie Dropbox, Google Drive & Co – ist und bleibt nicht erst seit #Prism ein “Schreckgespenst” 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 & 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 & 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> </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- & 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>) & 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- & 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>) & 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 & 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&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 & 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&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> </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 & 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 & 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> </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> </p>\n"+
"<p><strong>Fazit</strong></p>\n"+
-"<p>Die Kombination von Alfresco, AngularJS & 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 & einfach erledigt.</p>\n"+
-"<p>Die Lösung zeigt einmal mehr, dass es neben der Konfiguration & Anpassung eines Standard-Clients immer auch eine zweite zu betrachtende Variante gibt:</p>\n"+
+"<p>Die Kombination von Alfresco, AngularJS & 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 & einfach erledigt.</p>\n"+
+"<p>Die Lösung zeigt einmal mehr, dass es neben der Konfiguration & 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> </p>\n"+
"]]></content:encoded>\n"+
@@ -141,24 +150,24 @@ public class TestFuzzyML
"<p>migration-center’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> </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 – 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 – 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> </p>\n"+
"<p> </p>\n"+
"<p> </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