JBoss Portal SVN: r7387 - trunk/cms/src/main/org/jboss/portal/cms/impl/jcr.
by portal-commits@lists.jboss.org
Author: sohil.shah(a)jboss.com
Date: 2007-06-06 10:29:23 -0400 (Wed, 06 Jun 2007)
New Revision: 7387
Modified:
trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java
Log:
Fix for JBoss Cache Logging - http://jira.jboss.com/jira/browse/JBPORTAL-1472
Modified: trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java
===================================================================
--- trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java 2007-06-06 14:25:15 UTC (rev 7386)
+++ trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java 2007-06-06 14:29:23 UTC (rev 7387)
@@ -307,13 +307,7 @@
String cacheVersion = Version.getVersionString(Version.getVersionShort());
log.info("JBossCache Version=" + cacheVersion);
- //set the proper logging level for JBossCache and JGroups
- /*Logger cacheLogger = Logger.getLogger("org.jboss.cache");
- cacheLogger.setLevel(Level.ERROR);
- Logger groupsLogger = Logger.getLogger("org.jgroups");
- groupsLogger.setLevel(Level.ERROR);*/
-
// See how long it takes us to start up
StopWatch watch = new StopWatch(true);
log.info("Starting JCR CMS");
18 years, 11 months
JBoss Portal SVN: r7386 - branches/JBoss_Portal_Branch_2_4/cms/src/main/org/jboss/portal/cms/impl/jcr.
by portal-commits@lists.jboss.org
Author: sohil.shah(a)jboss.com
Date: 2007-06-06 10:25:15 -0400 (Wed, 06 Jun 2007)
New Revision: 7386
Modified:
branches/JBoss_Portal_Branch_2_4/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java
Log:
Fix for JBoss Cache Logging - http://jira.jboss.com/jira/browse/JBPORTAL-1472
Modified: branches/JBoss_Portal_Branch_2_4/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java
===================================================================
--- branches/JBoss_Portal_Branch_2_4/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java 2007-06-05 21:37:47 UTC (rev 7385)
+++ branches/JBoss_Portal_Branch_2_4/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java 2007-06-06 14:25:15 UTC (rev 7386)
@@ -163,12 +163,6 @@
String cacheVersion = Version.getVersionString(Version.getVersionShort());
log.info("JBossCache Version=" + cacheVersion);
- //set the proper logging level for JBossCache and JGroups
- /*Logger cacheLogger = Logger.getLogger("org.jboss.cache");
- cacheLogger.setLevel(Level.ERROR);
- Logger groupsLogger = Logger.getLogger("org.jgroups");
- groupsLogger.setLevel(Level.ERROR);*/
-
// See how long it takes us to start up
StopWatch watch = new StopWatch(true);
log.info("Starting JCR CMS");
18 years, 11 months
JBoss Portal SVN: r7385 - branches/JBoss_Portal_Branch_2_4/cms/src/main/org/jboss/portal/cms/impl/jcr.
by portal-commits@lists.jboss.org
Author: sohil.shah(a)jboss.com
Date: 2007-06-05 17:37:47 -0400 (Tue, 05 Jun 2007)
New Revision: 7385
Modified:
branches/JBoss_Portal_Branch_2_4/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java
Log:
Fix for JBoss Cache Logging - http://jira.jboss.com/jira/browse/JBPORTAL-1472
Modified: branches/JBoss_Portal_Branch_2_4/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java
===================================================================
--- branches/JBoss_Portal_Branch_2_4/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java 2007-06-05 21:30:21 UTC (rev 7384)
+++ branches/JBoss_Portal_Branch_2_4/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java 2007-06-05 21:37:47 UTC (rev 7385)
@@ -164,10 +164,10 @@
log.info("JBossCache Version=" + cacheVersion);
//set the proper logging level for JBossCache and JGroups
- Logger cacheLogger = Logger.getLogger("org.jboss.cache");
+ /*Logger cacheLogger = Logger.getLogger("org.jboss.cache");
cacheLogger.setLevel(Level.ERROR);
Logger groupsLogger = Logger.getLogger("org.jgroups");
- groupsLogger.setLevel(Level.ERROR);
+ groupsLogger.setLevel(Level.ERROR);*/
// See how long it takes us to start up
StopWatch watch = new StopWatch(true);
18 years, 11 months
JBoss Portal SVN: r7384 - trunk/cms/src/main/org/jboss/portal/cms/impl/jcr.
by portal-commits@lists.jboss.org
Author: sohil.shah(a)jboss.com
Date: 2007-06-05 17:30:21 -0400 (Tue, 05 Jun 2007)
New Revision: 7384
Modified:
trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java
Log:
Fix for JBoss Cache Logging - http://jira.jboss.com/jira/browse/JBPORTAL-1472
Modified: trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java
===================================================================
--- trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java 2007-06-05 15:47:14 UTC (rev 7383)
+++ trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java 2007-06-05 21:30:21 UTC (rev 7384)
@@ -308,10 +308,10 @@
log.info("JBossCache Version=" + cacheVersion);
//set the proper logging level for JBossCache and JGroups
- Logger cacheLogger = Logger.getLogger("org.jboss.cache");
+ /*Logger cacheLogger = Logger.getLogger("org.jboss.cache");
cacheLogger.setLevel(Level.ERROR);
Logger groupsLogger = Logger.getLogger("org.jgroups");
- groupsLogger.setLevel(Level.ERROR);
+ groupsLogger.setLevel(Level.ERROR);*/
// See how long it takes us to start up
18 years, 11 months
JBoss Portal SVN: r7383 - trunk/wsrp/src/main/org/jboss/portal/test/wsrp/consumer.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-06-05 11:47:14 -0400 (Tue, 05 Jun 2007)
New Revision: 7383
Modified:
trunk/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/ConsumerRegistryTestCase.java
Log:
- Fixed testCRUD to check that the transaction is rolled back after an exception instead of stupidly trying to commit it!
Modified: trunk/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/ConsumerRegistryTestCase.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/ConsumerRegistryTestCase.java 2007-06-04 23:55:06 UTC (rev 7382)
+++ trunk/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/ConsumerRegistryTestCase.java 2007-06-05 15:47:14 UTC (rev 7383)
@@ -93,8 +93,9 @@
}
catch (ConsumerException expected)
{
+ // transaction should have been rolled back
+ TransactionAssert.rollbackTransaction();
}
- TransactionAssert.commitTransaction();
TransactionAssert.beginTransaction();
consumer = registry.getConsumer(id);
18 years, 11 months
JBoss Portal SVN: r7382 - in trunk/wsrp: src/main/org/jboss/portal/test/wsrp/consumer and 1 other directories.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-06-04 19:55:06 -0400 (Mon, 04 Jun 2007)
New Revision: 7382
Modified:
trunk/wsrp/build.xml
trunk/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/ConsumerRegistryTestCase.java
trunk/wsrp/src/resources/tests/test-consumer-jar/org/jboss/portal/test/wsrp/consumer/persistent-jboss-beans.xml
Log:
- Added dependencies for ConsumerRegistryTestCase.
- Activated ConsumerRegistryTestCase that correctly starts (but fails).
- Minor changes.
Modified: trunk/wsrp/build.xml
===================================================================
--- trunk/wsrp/build.xml 2007-06-04 00:41:03 UTC (rev 7381)
+++ trunk/wsrp/build.xml 2007-06-04 23:55:06 UTC (rev 7382)
@@ -762,31 +762,40 @@
<!-- Consumer-specific tests -->
<target name="consumer-test" depends="package-consumer-test">
<execute-tests>
+ <x-sysproperty>
+ <!--<jvmarg value="-Xdebug"/>
+ <jvmarg value="-Xnoagent"/>
+ <jvmarg value="-Djava.compiler=NONE"/>
+ <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787"/>-->
+ <sysproperty key="test.root" value="${build.lib}/tests"/>
+ <sysproperty
+ key="jboss.aop.path"
+ value="${build.resources}/portal-wsrp-sar/wsrp-aop.xml"/>
+ <sysproperty
+ key="jboss.aop.class.path"
+ value="${jbossas/core.libs.lib}/jboss-aspect-library.jar"/>
+ </x-sysproperty>
<x-test>
<test todir="${test.reports}"
name="org.jboss.portal.test.wsrp.consumer.ProducerSessionInformationTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.wsrp.consumer.EndpointConfigurationInfoTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.wsrp.consumer.ProducerInfoTestCase"/>
- <test todir="${test.reports}" name="org.jboss.portal.test.wsrp.consumer.RegistrationInfoTestCase"/>
- <!--<zest todir="${test.reports}" name="org.jboss.portal.test.wsrp.consumer.ConsumerRegistryTestCase"
+ <test todir="${test.reports}" name="org.jboss.portal.test.wsrp.consumer.RegistrationInfoTestCase"/>
+ <zest todir="${test.reports}" name="org.jboss.portal.test.wsrp.consumer.ConsumerRegistryTestCase"
outfile="TEST-ConsumerRegistryTestCase">
<parameter name="Config" value="persistent-jboss-beans.xml"/>
- </zest>-->
+ </zest>
</x-test>
- <x-sysproperty>
- <!--<jvmarg value="-Xdebug"/>
- <jvmarg value="-Xnoagent"/>
- <jvmarg value="-Djava.compiler=NONE"/>
- <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787"/>-->
- <sysproperty key="test.root" value="${build.lib}/tests"/>
- </x-sysproperty>
<x-classpath>
+ <!-- Access to conf/consumer/hibernate/domain.hbm.xml -->
<pathelement location="${build.lib}/portal-wsrp.sar"/>
- <!-- Access to conf/consumer/hibernate/domain.hbm.xml -->
+
<pathelement location="${build.lib}/portal-wsrp-lib.jar"/>
<pathelement location="${build.lib.test}/test-consumer-lib.jar"/>
+
+ <!-- Needed to access datasources.xml -->
<pathelement location="${jboss.portal-test.root}/etc"/>
- <!-- Needed to access datasources.xml -->
+
<path refid="jboss.microcontainer.classpath"/>
<!-- Required for test framework -->
@@ -794,6 +803,7 @@
<path refid="cglib.cglib.classpath"/>
<path refid="aop.classpath"/>
<path refid="asm.asm.classpath"/>
+ <path refid="antlr.antlr.classpath"/>
<path refid="library.classpath"/>
<path refid="dependentmodule.classpath"/>
Modified: trunk/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/ConsumerRegistryTestCase.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/ConsumerRegistryTestCase.java 2007-06-04 00:41:03 UTC (rev 7381)
+++ trunk/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/ConsumerRegistryTestCase.java 2007-06-04 23:55:06 UTC (rev 7382)
@@ -58,18 +58,6 @@
return "org/jboss/portal/test/wsrp/consumer/" + paramValue.get();
}
- protected void setUp() throws Exception
- {
- super.setUp();
-
- System.out.println("ConsumerRegistryTestCase.setUp");
- }
-
- protected void tearDown() throws Exception
- {
- super.tearDown();
- }
-
public ConsumerRegistry getRegistry()
{
return registry;
Modified: trunk/wsrp/src/resources/tests/test-consumer-jar/org/jboss/portal/test/wsrp/consumer/persistent-jboss-beans.xml
===================================================================
--- trunk/wsrp/src/resources/tests/test-consumer-jar/org/jboss/portal/test/wsrp/consumer/persistent-jboss-beans.xml 2007-06-04 00:41:03 UTC (rev 7381)
+++ trunk/wsrp/src/resources/tests/test-consumer-jar/org/jboss/portal/test/wsrp/consumer/persistent-jboss-beans.xml 2007-06-04 23:55:06 UTC (rev 7382)
@@ -41,11 +41,9 @@
</constructor>
</bean>
- <bean name="JNDISupport" class="org.jboss.portal.test.framework.embedded.JNDISupport">
- </bean>
+ <bean name="JNDISupport" class="org.jboss.portal.test.framework.embedded.JNDISupport"/>
- <bean name="TransactionManagerSupport" class="org.jboss.portal.test.framework.embedded.TransactionManagerSupport">
- </bean>
+ <bean name="TransactionManagerSupport" class="org.jboss.portal.test.framework.embedded.TransactionManagerSupport"/>
<bean name="ConnectionManagerSupport" class="org.jboss.portal.test.framework.embedded.ConnectionManagerSupport">
<property name="transactionManager"><inject bean="TransactionManagerSupport" property="transactionManager"/></property>
18 years, 11 months
JBoss Portal SVN: r7381 - trunk/workflow/src/main/org/jboss/portal/workflow/cms.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-06-03 20:41:03 -0400 (Sun, 03 Jun 2007)
New Revision: 7381
Modified:
trunk/workflow/src/main/org/jboss/portal/workflow/cms/ApprovePublishImpl.java
Log:
fix workflow build that was not properly refactored
Modified: trunk/workflow/src/main/org/jboss/portal/workflow/cms/ApprovePublishImpl.java
===================================================================
--- trunk/workflow/src/main/org/jboss/portal/workflow/cms/ApprovePublishImpl.java 2007-06-03 19:48:21 UTC (rev 7380)
+++ trunk/workflow/src/main/org/jboss/portal/workflow/cms/ApprovePublishImpl.java 2007-06-04 00:41:03 UTC (rev 7381)
@@ -157,7 +157,7 @@
finally
{
IOTools.safeClose(is);
- Tools.safeClose(jbpmContext);
+ IOTools.safeClose(jbpmContext);
}
//process managers that can serve as approvers/rejecters
@@ -362,7 +362,7 @@
jbpmContext.save(processInstance);
processId = processInstance.getId();
}
- Tools.safeClose(jbpmContext);
+ IOTools.safeClose(jbpmContext);
}
return processId;
}
@@ -444,7 +444,7 @@
WorkflowException we = new WorkflowException("You are not authorized to Approve/Deny content publish requests");
throw we;
}
- Tools.safeClose(jbpmContext);
+ IOTools.safeClose(jbpmContext);
}
}
@@ -495,7 +495,7 @@
}
finally
{
- Tools.safeClose(jbpmContext);
+ IOTools.safeClose(jbpmContext);
}
return pendingQueue;
}
@@ -540,7 +540,7 @@
}
finally
{
- Tools.safeClose(jbpmContext);
+ IOTools.safeClose(jbpmContext);
}
return pendingQueue;
}
18 years, 11 months
JBoss Portal SVN: r7380 - in trunk: cms/src/main/org/jboss/portal/cms/impl/jcr and 11 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-06-03 15:48:21 -0400 (Sun, 03 Jun 2007)
New Revision: 7380
Added:
trunk/common/src/main/org/jboss/portal/common/xml/NoSuchElementException.java
trunk/common/src/main/org/jboss/portal/common/xml/TooManyElementException.java
trunk/common/src/main/org/jboss/portal/common/xml/XMLTools.java
Removed:
trunk/common/src/main/org/jboss/portal/common/util/NoSuchElementException.java
trunk/common/src/main/org/jboss/portal/common/util/TooManyElementException.java
trunk/common/src/main/org/jboss/portal/common/util/XML.java
Modified:
trunk/cms/src/main/org/jboss/portal/cms/CMSMimeMappings.java
trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java
trunk/cms/src/main/org/jboss/portal/test/cms/commands/AbstractCommandTestCase.java
trunk/common/src/main/org/jboss/portal/common/util/LoaderResource.java
trunk/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeployment.java
trunk/core/src/main/org/jboss/portal/core/deployment/jboss/PortletAppDeployment.java
trunk/core/src/main/org/jboss/portal/core/model/instance/metadata/InstanceMetaData.java
trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/ContextMetaData.java
trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/PageMetaData.java
trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalMetaData.java
trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalObjectMetaData.java
trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/WindowMetaData.java
trunk/security/src/main/org/jboss/portal/security/metadata/SecurityConstraintsMetaData.java
trunk/server/src/main/org/jboss/portal/server/deployment/PortalWebApp.java
trunk/server/src/main/org/jboss/portal/server/deployment/WebAppEnhancer.java
trunk/server/src/main/org/jboss/portal/server/impl/xml/EntityResolverService.java
trunk/test/src/main/org/jboss/portal/test/framework/embedded/DSConfig.java
trunk/test/src/main/org/jboss/portal/test/framework/embedded/DataSourceSupport.java
trunk/test/src/main/org/jboss/portal/test/framework/embedded/HibernateSupport.java
trunk/widget/src/main/org/jboss/portal/widget/google/provider/GGWidgetBuilder.java
Log:
move XML related utils to the common.xml package
Modified: trunk/cms/src/main/org/jboss/portal/cms/CMSMimeMappings.java
===================================================================
--- trunk/cms/src/main/org/jboss/portal/cms/CMSMimeMappings.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/cms/src/main/org/jboss/portal/cms/CMSMimeMappings.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -22,7 +22,7 @@
******************************************************************************/
package org.jboss.portal.cms;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.common.io.IOTools;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -50,14 +50,14 @@
try
{
is = Thread.currentThread().getContextClassLoader().getResourceAsStream(MAPPINGS_FILE);
- Document dmt = XML.getDocumentBuilderFactory().newDocumentBuilder().parse(is);
+ Document dmt = XMLTools.getDocumentBuilderFactory().newDocumentBuilder().parse(is);
Element docElmt = dmt.getDocumentElement();
- List mappingsList = XML.getChildren(docElmt, "mime-mapping");
+ List mappingsList = XMLTools.getChildren(docElmt, "mime-mapping");
for (int i = 0; i < mappingsList.size(); i++)
{
Element mapping = (Element)mappingsList.get(i);
- String extension = XML.asString(XML.getUniqueChild(mapping, "extension", true));
- String mimeType = XML.asString(XML.getUniqueChild(mapping, "mime-type", true));
+ String extension = XMLTools.asString(XMLTools.getUniqueChild(mapping, "extension", true));
+ String mimeType = XMLTools.asString(XMLTools.getUniqueChild(mapping, "mime-type", true));
mappings.put(extension, mimeType);
}
}
Modified: trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java
===================================================================
--- trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -45,7 +45,7 @@
import org.jboss.portal.common.invocation.InvocationHandler;
import org.jboss.portal.common.net.URLNavigator;
import org.jboss.portal.common.net.URLVisitor;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.common.io.IOTools;
import org.jboss.portal.jems.as.JNDI;
import org.jboss.portal.identity.User;
@@ -345,7 +345,7 @@
Element copy = (Element)doc.importNode(config, true);
doc.removeChild(doc.getDocumentElement());
doc.appendChild(copy);
- String result = XML.toString(doc);
+ String result = XMLTools.toString(doc);
log.debug("Jackrabbit configuration : " + result);
//
Modified: trunk/cms/src/main/org/jboss/portal/test/cms/commands/AbstractCommandTestCase.java
===================================================================
--- trunk/cms/src/main/org/jboss/portal/test/cms/commands/AbstractCommandTestCase.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/cms/src/main/org/jboss/portal/test/cms/commands/AbstractCommandTestCase.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -25,7 +25,7 @@
import org.jboss.portal.cms.impl.jcr.JCRCMS;
import org.jboss.portal.common.util.CLResourceLoader;
import org.jboss.portal.common.util.LoaderResource;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.test.cms.AbstractCMSTestCase;
import org.w3c.dom.Document;
@@ -55,7 +55,7 @@
super.setUp();
LoaderResource res = new CLResourceLoader().getResource("jcr/repository.xml");
- Document config = res.asDocument(XML.getDocumentBuilderFactory().newDocumentBuilder());
+ Document config = res.asDocument(XMLTools.getDocumentBuilderFactory().newDocumentBuilder());
service = new JCRCMS();
service.setDoChecking(true);
Modified: trunk/common/src/main/org/jboss/portal/common/util/LoaderResource.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/util/LoaderResource.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/common/src/main/org/jboss/portal/common/util/LoaderResource.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -26,6 +26,7 @@
import org.xml.sax.SAXException;
import org.apache.log4j.Logger;
import org.jboss.portal.common.io.IOTools;
+import org.jboss.portal.common.xml.XMLTools;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
@@ -116,9 +117,9 @@
Properties props;
if (xml)
{
- DocumentBuilder builder = XML.getDocumentBuilderFactory().newDocumentBuilder();
+ DocumentBuilder builder = XMLTools.getDocumentBuilderFactory().newDocumentBuilder();
Document doc = asDocument(builder);
- props = XML.loadXMLProperties(doc);
+ props = XMLTools.loadXMLProperties(doc);
}
else
{
Deleted: trunk/common/src/main/org/jboss/portal/common/util/NoSuchElementException.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/util/NoSuchElementException.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/common/src/main/org/jboss/portal/common/util/NoSuchElementException.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -1,52 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software 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 *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.common.util;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision$
- */
-public class NoSuchElementException extends RuntimeException
-{
- /** The serialVersionUID */
- private static final long serialVersionUID = -393378187931491442L;
-
- public NoSuchElementException()
- {
- }
-
- public NoSuchElementException(String message)
- {
- super(message);
- }
-
- public NoSuchElementException(String message, Throwable cause)
- {
- super(message, cause);
- }
-
- public NoSuchElementException(Throwable cause)
- {
- super(cause);
- }
-}
Deleted: trunk/common/src/main/org/jboss/portal/common/util/TooManyElementException.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/util/TooManyElementException.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/common/src/main/org/jboss/portal/common/util/TooManyElementException.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -1,52 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software 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 *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.common.util;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision$
- */
-public class TooManyElementException extends RuntimeException
-{
- /** The serialVersionUID */
- private static final long serialVersionUID = -2381186243988987102L;
-
- public TooManyElementException()
- {
- }
-
- public TooManyElementException(String message)
- {
- super(message);
- }
-
- public TooManyElementException(String message, Throwable cause)
- {
- super(message, cause);
- }
-
- public TooManyElementException(Throwable cause)
- {
- super(cause);
- }
-}
Deleted: trunk/common/src/main/org/jboss/portal/common/util/XML.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/util/XML.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/common/src/main/org/jboss/portal/common/util/XML.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -1,409 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software 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 *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.common.util;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Text;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-
-/**
- * Utilities for dealing with XML.
- *
- * @author <a href="mailto:mholzner@novell.com">Martin Holzner</a>
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision$
- */
-public class XML
-{
-
- /** Namespace URI for XML lang. */
- public static final String XML_LANG_NAMESPACE_URI = "http://www.w3.org/XML/1998/namespace";
-
- /** Document builder factory. */
- private static final DocumentBuilderFactory buildFactory = DocumentBuilderFactory.newInstance();
-
- /** Transformer factory. */
- private static final TransformerFactory transformerFactory = TransformerFactory.newInstance();
-
- /** Default output format which is : no xml declaration, no document type, indent. */
- private static Properties DEFAULT_FORMAT = createFormat(true, false, true, "utf-8");
-
- /** . */
- public static final String PARAM_YES = "yes";
-
- /** . */
- public static final String PARAM_NO = "no";
-
- /** . */
- public static final String ATTRIB_OMIT_XML_DECLARATION = "omit-xml-declaration";
-
- /** . */
- public static final String ATTRIB_CDATA_SECTION_ELEMENTS = "cdata-section-elements";
-
- /** . */
- public static final String ATTRIB_METHOD = "method";
-
- /** . */
- public static final String ATTRIB_INDENT = "indent";
-
- /** . */
- public static final String ATTRIB_HREF = "href";
-
- /** . */
- public static final String DIRECTIVE_IMPORT = "xsl:import";
-
- /** . */
- public static final String DIRECTIVE_INCLUDE = "xsl:include";
-
- /** . */
- public static final boolean DEFAULT_NAMESPACE_AWARE = true;
-
- /** . */
- public static final boolean DEFAULT_VALIDATION = false;
-
- /** prevent instantiation */
- private XML()
- {
- }
-
- /** Return the builder factory. */
- public static DocumentBuilderFactory getDocumentBuilderFactory()
- {
- return buildFactory;
- }
-
- /**
- *
- */
- private static Properties createFormat(boolean omitXMLDeclaration, boolean standalone, boolean indented, String encoding)
- {
- Properties format = new Properties();
- format.setProperty(OutputKeys.OMIT_XML_DECLARATION, omitXMLDeclaration ? "yes" : "no");
- format.setProperty(OutputKeys.STANDALONE, standalone ? "yes" : "no");
- format.setProperty(OutputKeys.INDENT, indented ? "yes" : "no");
- format.setProperty(OutputKeys.ENCODING, encoding);
- return format;
- }
-
- /**
- *
- */
- public static String toString(Document doc, boolean omitXMLDeclaration, boolean standalone, boolean indented, String encoding) throws TransformerException
- {
- Properties format = createFormat(omitXMLDeclaration, standalone, indented, encoding);
- return toString(doc, format);
- }
-
- /**
- * Serialize the document with the default format : - No XML declaration - Indented - Encoding is UTF-8
- *
- * @see #toString(Document,Properties)
- */
- public static String toString(Document doc) throws TransformerException
- {
- return toString(doc, DEFAULT_FORMAT);
- }
-
- /** @see #toString(Document) */
- public static String toString(Element element) throws ParserConfigurationException, TransformerException
- {
- return toString(element, DEFAULT_FORMAT);
- }
-
- /** Converts an element to a String representation. */
- private static String toString(Element element, Properties properties) throws ParserConfigurationException, TransformerException
- {
- Document doc = buildFactory.newDocumentBuilder().newDocument();
- element = (Element)doc.importNode(element, true);
- doc.appendChild(element);
- return toString(doc, properties);
- }
-
- /** Converts an document to a String representation. */
- private static String toString(Document doc, Properties format) throws TransformerException
- {
- Transformer transformer = transformerFactory.newTransformer();
- transformer.setOutputProperties(format);
- StringWriter writer = new StringWriter();
- Source source = new DOMSource(doc);
- Result result = new StreamResult(writer);
- transformer.transform(source, result);
- return writer.toString();
- }
-
- /** Parse a string into a document. */
- public static Document toDocument(String text) throws ParserConfigurationException, SAXException, IOException
- {
- DocumentBuilder builder = buildFactory.newDocumentBuilder();
- StringReader reader = new StringReader(text);
- InputSource source = new InputSource();
- source.setCharacterStream(reader);
- return builder.parse(source);
- }
-
- /** Parse a string into an element. */
- public static Element toElement(String text) throws ParserConfigurationException, SAXException, IOException
- {
- Document doc = toDocument(text);
- return doc.getDocumentElement();
- }
-
- public static Document toDocument(Element element) throws ParserConfigurationException, SAXException, IOException
- {
- if (element == null)
- {
- throw new IllegalArgumentException();
- }
-
- //
- Document doc = buildFactory.newDocumentBuilder().newDocument();
- element = (Element)doc.importNode(element, true);
- doc.appendChild(element);
- return doc;
- }
-
- /**
- * Perform trimming by default
- *
- * @param element
- * @return
- * @throws IllegalArgumentException
- * @see #asString(org.w3c.dom.Element,boolean)
- */
- public static String asString(Element element) throws IllegalArgumentException
- {
- return asString(element, true);
- }
-
- /**
- * Get the element's content as a string.
- *
- * @param element the container
- * @param trim true if text should be trimmed before returning result
- * @throws IllegalArgumentException if the element content is mixed or null
- */
- public static String asString(Element element, boolean trim) throws IllegalArgumentException
- {
- if (element == null)
- {
- throw new IllegalArgumentException("No null element allowed");
- }
-
- //
- StringBuffer buffer = new StringBuffer();
- NodeList children = element.getChildNodes();
- for (int i = 0; i < children.getLength(); i++)
- {
- Node child = children.item(i);
- switch (child.getNodeType())
- {
- case Node.CDATA_SECTION_NODE:
- case Node.TEXT_NODE:
- buffer.append(((Text)child).getData());
- break;
- case Node.ELEMENT_NODE:
- throw new IllegalArgumentException("Mixed content not allowed");
- default:
- break;
- }
- }
- String result = buffer.toString();
- if (trim)
- {
- result = result.trim();
- }
- return result;
- }
-
- /**
- * Return the optional unique child of an element.
- *
- * @param element the parent element
- * @param strict true if the element must be present
- * @return the child element or null if it does not exist and strict is false
- * @throws IllegalArgumentException if an argument is null
- * @throws NoSuchElementException if strict is true and the element is not present
- * @throws TooManyElementException if more than one element is found
- */
- public static Element getUniqueChild(Element element, boolean strict) throws IllegalArgumentException,
- NoSuchElementException, TooManyElementException
- {
- if (element == null)
- {
- throw new IllegalArgumentException("No element specified");
- }
- Element childElt = null;
- NodeList list = element.getChildNodes();
- for (int i = 0; i < list.getLength(); i++)
- {
- Node childNode = list.item(i);
- if (childNode instanceof Element)
- {
- if (childElt == null)
- {
- childElt = (Element)childNode;
- }
- else
- {
- throw new TooManyElementException("More than one child element for element " + element.getNodeName());
- }
- }
- }
- if (strict && childElt == null)
- {
- throw new NoSuchElementException("No child element for element " + element.getNodeName());
- }
- return childElt;
- }
-
- /**
- * Return an optional child of an element with the specified name.
- *
- * @param element the parent element
- * @param name the child name
- * @param strict if the child must be present
- * @return the child element or null if it does not exist and strict is set to false
- * @throws IllegalArgumentException if an argument is null
- * @throws NoSuchElementException if strict is true and the element is not present
- * @throws TooManyElementException if more than one element is found
- */
- public static Element getUniqueChild(Element element, String name, boolean strict) throws IllegalArgumentException,
- NoSuchElementException, TooManyElementException
- {
- List list = getChildren(element, name);
- switch (list.size())
- {
- case 0:
- if (strict)
- {
- throw new NoSuchElementException("Missing child " + name + " of element " + element.getNodeName());
- }
- else
- {
- return null;
- }
- case 1:
- return (Element)list.get(0);
- default:
- throw new TooManyElementException("Too many children for element " + element.getNodeName());
- }
- }
-
- /**
- * Return an iterator for all the children of the given element having the specified name.
- *
- * @param element the parent element
- * @param name the child names
- * @return an iterator for the designated elements
- * @throws IllegalArgumentException if the element is null or the name is null
- */
- public static Iterator getChildrenIterator(Element element, String name) throws IllegalArgumentException
- {
- return getChildren(element, name).iterator();
- }
-
- /**
- * Return all the children of the given element having the specified name. The collection object can be modified.
- *
- * @param element the parent element
- * @param name the child names
- * @return a list of elements
- * @throws IllegalArgumentException if the element is null or the name is null
- */
- public static List getChildren(Element element, String name) throws IllegalArgumentException
- {
- if (element == null)
- {
- throw new IllegalArgumentException("No element found");
- }
- if (name == null)
- {
- throw new IllegalArgumentException("No name specified");
- }
- ArrayList result = new ArrayList();
- NodeList list = element.getChildNodes();
- for (int i = 0; i < list.getLength(); i++)
- {
- Node node = list.item(i);
- if (node.getNodeType() == Node.ELEMENT_NODE)
- {
- Element childElt = (Element)node;
- if (childElt.getTagName().equals(name))
- {
- result.add(childElt);
- }
- }
- }
- return result;
- }
-
- public static Properties loadXMLProperties(Element propertiesElt)
- {
- if (propertiesElt == null)
- {
- throw new IllegalArgumentException();
- }
- Properties props = new Properties();
- for (Iterator i = XML.getChildren(propertiesElt, "entry").iterator(); i.hasNext();)
- {
- Element entryElt = (Element)i.next();
- String key = entryElt.getAttribute("key");
- String value = XML.asString(entryElt);
- props.put(key, value);
- }
- return props;
- }
-
- public static Properties loadXMLProperties(Document doc)
- {
- if (doc == null)
- {
- throw new IllegalArgumentException();
- }
- return loadXMLProperties(doc.getDocumentElement());
- }
-
-}
Copied: trunk/common/src/main/org/jboss/portal/common/xml/NoSuchElementException.java (from rev 7371, trunk/common/src/main/org/jboss/portal/common/util/NoSuchElementException.java)
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/xml/NoSuchElementException.java (rev 0)
+++ trunk/common/src/main/org/jboss/portal/common/xml/NoSuchElementException.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -0,0 +1,52 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.common.xml;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision$
+ */
+public class NoSuchElementException extends RuntimeException
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -393378187931491442L;
+
+ public NoSuchElementException()
+ {
+ }
+
+ public NoSuchElementException(String message)
+ {
+ super(message);
+ }
+
+ public NoSuchElementException(String message, Throwable cause)
+ {
+ super(message, cause);
+ }
+
+ public NoSuchElementException(Throwable cause)
+ {
+ super(cause);
+ }
+}
Property changes on: trunk/common/src/main/org/jboss/portal/common/xml/NoSuchElementException.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Copied: trunk/common/src/main/org/jboss/portal/common/xml/TooManyElementException.java (from rev 7371, trunk/common/src/main/org/jboss/portal/common/util/TooManyElementException.java)
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/xml/TooManyElementException.java (rev 0)
+++ trunk/common/src/main/org/jboss/portal/common/xml/TooManyElementException.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -0,0 +1,52 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.common.xml;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision$
+ */
+public class TooManyElementException extends RuntimeException
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -2381186243988987102L;
+
+ public TooManyElementException()
+ {
+ }
+
+ public TooManyElementException(String message)
+ {
+ super(message);
+ }
+
+ public TooManyElementException(String message, Throwable cause)
+ {
+ super(message, cause);
+ }
+
+ public TooManyElementException(Throwable cause)
+ {
+ super(cause);
+ }
+}
Property changes on: trunk/common/src/main/org/jboss/portal/common/xml/TooManyElementException.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Copied: trunk/common/src/main/org/jboss/portal/common/xml/XMLTools.java (from rev 7371, trunk/common/src/main/org/jboss/portal/common/util/XML.java)
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/xml/XMLTools.java (rev 0)
+++ trunk/common/src/main/org/jboss/portal/common/xml/XMLTools.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -0,0 +1,409 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.common.xml;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
+
+/**
+ * Utilities for dealing with XML.
+ *
+ * @author <a href="mailto:mholzner@novell.com">Martin Holzner</a>
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision$
+ */
+public class XMLTools
+{
+
+ /** Namespace URI for XML lang. */
+ public static final String XML_LANG_NAMESPACE_URI = "http://www.w3.org/XML/1998/namespace";
+
+ /** Document builder factory. */
+ private static final DocumentBuilderFactory buildFactory = DocumentBuilderFactory.newInstance();
+
+ /** Transformer factory. */
+ private static final TransformerFactory transformerFactory = TransformerFactory.newInstance();
+
+ /** Default output format which is : no xml declaration, no document type, indent. */
+ private static Properties DEFAULT_FORMAT = createFormat(true, false, true, "utf-8");
+
+ /** . */
+ public static final String PARAM_YES = "yes";
+
+ /** . */
+ public static final String PARAM_NO = "no";
+
+ /** . */
+ public static final String ATTRIB_OMIT_XML_DECLARATION = "omit-xml-declaration";
+
+ /** . */
+ public static final String ATTRIB_CDATA_SECTION_ELEMENTS = "cdata-section-elements";
+
+ /** . */
+ public static final String ATTRIB_METHOD = "method";
+
+ /** . */
+ public static final String ATTRIB_INDENT = "indent";
+
+ /** . */
+ public static final String ATTRIB_HREF = "href";
+
+ /** . */
+ public static final String DIRECTIVE_IMPORT = "xsl:import";
+
+ /** . */
+ public static final String DIRECTIVE_INCLUDE = "xsl:include";
+
+ /** . */
+ public static final boolean DEFAULT_NAMESPACE_AWARE = true;
+
+ /** . */
+ public static final boolean DEFAULT_VALIDATION = false;
+
+ /** prevent instantiation */
+ private XMLTools()
+ {
+ }
+
+ /** Return the builder factory. */
+ public static DocumentBuilderFactory getDocumentBuilderFactory()
+ {
+ return buildFactory;
+ }
+
+ /**
+ *
+ */
+ private static Properties createFormat(boolean omitXMLDeclaration, boolean standalone, boolean indented, String encoding)
+ {
+ Properties format = new Properties();
+ format.setProperty(OutputKeys.OMIT_XML_DECLARATION, omitXMLDeclaration ? "yes" : "no");
+ format.setProperty(OutputKeys.STANDALONE, standalone ? "yes" : "no");
+ format.setProperty(OutputKeys.INDENT, indented ? "yes" : "no");
+ format.setProperty(OutputKeys.ENCODING, encoding);
+ return format;
+ }
+
+ /**
+ *
+ */
+ public static String toString(Document doc, boolean omitXMLDeclaration, boolean standalone, boolean indented, String encoding) throws TransformerException
+ {
+ Properties format = createFormat(omitXMLDeclaration, standalone, indented, encoding);
+ return toString(doc, format);
+ }
+
+ /**
+ * Serialize the document with the default format : - No XML declaration - Indented - Encoding is UTF-8
+ *
+ * @see #toString(Document,Properties)
+ */
+ public static String toString(Document doc) throws TransformerException
+ {
+ return toString(doc, DEFAULT_FORMAT);
+ }
+
+ /** @see #toString(Document) */
+ public static String toString(Element element) throws ParserConfigurationException, TransformerException
+ {
+ return toString(element, DEFAULT_FORMAT);
+ }
+
+ /** Converts an element to a String representation. */
+ private static String toString(Element element, Properties properties) throws ParserConfigurationException, TransformerException
+ {
+ Document doc = buildFactory.newDocumentBuilder().newDocument();
+ element = (Element)doc.importNode(element, true);
+ doc.appendChild(element);
+ return toString(doc, properties);
+ }
+
+ /** Converts an document to a String representation. */
+ private static String toString(Document doc, Properties format) throws TransformerException
+ {
+ Transformer transformer = transformerFactory.newTransformer();
+ transformer.setOutputProperties(format);
+ StringWriter writer = new StringWriter();
+ Source source = new DOMSource(doc);
+ Result result = new StreamResult(writer);
+ transformer.transform(source, result);
+ return writer.toString();
+ }
+
+ /** Parse a string into a document. */
+ public static Document toDocument(String text) throws ParserConfigurationException, SAXException, IOException
+ {
+ DocumentBuilder builder = buildFactory.newDocumentBuilder();
+ StringReader reader = new StringReader(text);
+ InputSource source = new InputSource();
+ source.setCharacterStream(reader);
+ return builder.parse(source);
+ }
+
+ /** Parse a string into an element. */
+ public static Element toElement(String text) throws ParserConfigurationException, SAXException, IOException
+ {
+ Document doc = toDocument(text);
+ return doc.getDocumentElement();
+ }
+
+ public static Document toDocument(Element element) throws ParserConfigurationException, SAXException, IOException
+ {
+ if (element == null)
+ {
+ throw new IllegalArgumentException();
+ }
+
+ //
+ Document doc = buildFactory.newDocumentBuilder().newDocument();
+ element = (Element)doc.importNode(element, true);
+ doc.appendChild(element);
+ return doc;
+ }
+
+ /**
+ * Perform trimming by default
+ *
+ * @param element
+ * @return
+ * @throws IllegalArgumentException
+ * @see #asString(org.w3c.dom.Element,boolean)
+ */
+ public static String asString(Element element) throws IllegalArgumentException
+ {
+ return asString(element, true);
+ }
+
+ /**
+ * Get the element's content as a string.
+ *
+ * @param element the container
+ * @param trim true if text should be trimmed before returning result
+ * @throws IllegalArgumentException if the element content is mixed or null
+ */
+ public static String asString(Element element, boolean trim) throws IllegalArgumentException
+ {
+ if (element == null)
+ {
+ throw new IllegalArgumentException("No null element allowed");
+ }
+
+ //
+ StringBuffer buffer = new StringBuffer();
+ NodeList children = element.getChildNodes();
+ for (int i = 0; i < children.getLength(); i++)
+ {
+ Node child = children.item(i);
+ switch (child.getNodeType())
+ {
+ case Node.CDATA_SECTION_NODE:
+ case Node.TEXT_NODE:
+ buffer.append(((Text)child).getData());
+ break;
+ case Node.ELEMENT_NODE:
+ throw new IllegalArgumentException("Mixed content not allowed");
+ default:
+ break;
+ }
+ }
+ String result = buffer.toString();
+ if (trim)
+ {
+ result = result.trim();
+ }
+ return result;
+ }
+
+ /**
+ * Return the optional unique child of an element.
+ *
+ * @param element the parent element
+ * @param strict true if the element must be present
+ * @return the child element or null if it does not exist and strict is false
+ * @throws IllegalArgumentException if an argument is null
+ * @throws NoSuchElementException if strict is true and the element is not present
+ * @throws TooManyElementException if more than one element is found
+ */
+ public static Element getUniqueChild(Element element, boolean strict) throws IllegalArgumentException,
+ NoSuchElementException, TooManyElementException
+ {
+ if (element == null)
+ {
+ throw new IllegalArgumentException("No element specified");
+ }
+ Element childElt = null;
+ NodeList list = element.getChildNodes();
+ for (int i = 0; i < list.getLength(); i++)
+ {
+ Node childNode = list.item(i);
+ if (childNode instanceof Element)
+ {
+ if (childElt == null)
+ {
+ childElt = (Element)childNode;
+ }
+ else
+ {
+ throw new TooManyElementException("More than one child element for element " + element.getNodeName());
+ }
+ }
+ }
+ if (strict && childElt == null)
+ {
+ throw new NoSuchElementException("No child element for element " + element.getNodeName());
+ }
+ return childElt;
+ }
+
+ /**
+ * Return an optional child of an element with the specified name.
+ *
+ * @param element the parent element
+ * @param name the child name
+ * @param strict if the child must be present
+ * @return the child element or null if it does not exist and strict is set to false
+ * @throws IllegalArgumentException if an argument is null
+ * @throws NoSuchElementException if strict is true and the element is not present
+ * @throws TooManyElementException if more than one element is found
+ */
+ public static Element getUniqueChild(Element element, String name, boolean strict) throws IllegalArgumentException,
+ NoSuchElementException, TooManyElementException
+ {
+ List list = getChildren(element, name);
+ switch (list.size())
+ {
+ case 0:
+ if (strict)
+ {
+ throw new NoSuchElementException("Missing child " + name + " of element " + element.getNodeName());
+ }
+ else
+ {
+ return null;
+ }
+ case 1:
+ return (Element)list.get(0);
+ default:
+ throw new TooManyElementException("Too many children for element " + element.getNodeName());
+ }
+ }
+
+ /**
+ * Return an iterator for all the children of the given element having the specified name.
+ *
+ * @param element the parent element
+ * @param name the child names
+ * @return an iterator for the designated elements
+ * @throws IllegalArgumentException if the element is null or the name is null
+ */
+ public static Iterator getChildrenIterator(Element element, String name) throws IllegalArgumentException
+ {
+ return getChildren(element, name).iterator();
+ }
+
+ /**
+ * Return all the children of the given element having the specified name. The collection object can be modified.
+ *
+ * @param element the parent element
+ * @param name the child names
+ * @return a list of elements
+ * @throws IllegalArgumentException if the element is null or the name is null
+ */
+ public static List getChildren(Element element, String name) throws IllegalArgumentException
+ {
+ if (element == null)
+ {
+ throw new IllegalArgumentException("No element found");
+ }
+ if (name == null)
+ {
+ throw new IllegalArgumentException("No name specified");
+ }
+ ArrayList result = new ArrayList();
+ NodeList list = element.getChildNodes();
+ for (int i = 0; i < list.getLength(); i++)
+ {
+ Node node = list.item(i);
+ if (node.getNodeType() == Node.ELEMENT_NODE)
+ {
+ Element childElt = (Element)node;
+ if (childElt.getTagName().equals(name))
+ {
+ result.add(childElt);
+ }
+ }
+ }
+ return result;
+ }
+
+ public static Properties loadXMLProperties(Element propertiesElt)
+ {
+ if (propertiesElt == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ Properties props = new Properties();
+ for (Iterator i = getChildren(propertiesElt, "entry").iterator(); i.hasNext();)
+ {
+ Element entryElt = (Element)i.next();
+ String key = entryElt.getAttribute("key");
+ String value = asString(entryElt);
+ props.put(key, value);
+ }
+ return props;
+ }
+
+ public static Properties loadXMLProperties(Document doc)
+ {
+ if (doc == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ return loadXMLProperties(doc.getDocumentElement());
+ }
+
+}
Property changes on: trunk/common/src/main/org/jboss/portal/common/xml/XMLTools.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Modified: trunk/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeployment.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeployment.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/core/src/main/org/jboss/portal/core/deployment/jboss/ObjectDeployment.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -24,7 +24,7 @@
import org.jboss.deployment.DeploymentException;
import org.jboss.logging.Logger;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.common.xml.NullEntityResolver;
import org.jboss.portal.common.io.IOTools;
import org.jboss.portal.core.model.portal.metadata.PortalObjectMetaData;
@@ -110,7 +110,7 @@
// Load xml document
log.debug("Loading portal metadata from " + url);
in = IOTools.safeBufferedWrapper(url.openStream());
- DocumentBuilder builder = XML.getDocumentBuilderFactory().newDocumentBuilder();
+ DocumentBuilder builder = XMLTools.getDocumentBuilderFactory().newDocumentBuilder();
EntityResolver entityResolver = factory.getPortalObjectEntityResolver();
if (entityResolver == null)
{
@@ -126,7 +126,7 @@
Element deploymentsElt = doc.getDocumentElement();
// Build the list of deployment units
- List deploymentElts = XML.getChildren(deploymentsElt, "deployment");
+ List deploymentElts = XMLTools.getChildren(deploymentsElt, "deployment");
units = new ArrayList(deploymentElts.size());
for (int i = 0; i < deploymentElts.size(); i++)
{
@@ -134,15 +134,15 @@
Unit unit = new Unit();
//
- Element parentRefElt = XML.getUniqueChild(deploymentElt, "parent-ref", false);
- unit.parentRef = parentRefElt == null ? null : PortalObjectId.parse(XML.asString(parentRefElt), PortalObjectPath.LEGACY_FORMAT);
+ Element parentRefElt = XMLTools.getUniqueChild(deploymentElt, "parent-ref", false);
+ unit.parentRef = parentRefElt == null ? null : PortalObjectId.parse(XMLTools.asString(parentRefElt), PortalObjectPath.LEGACY_FORMAT);
//
- Element ifExistsElt = XML.getUniqueChild(deploymentElt, "if-exists", false);
+ Element ifExistsElt = XMLTools.getUniqueChild(deploymentElt, "if-exists", false);
unit.ifExists = KEEP_IF_EXISTS;
if (ifExistsElt != null)
{
- String ifExists = XML.asString(ifExistsElt);
+ String ifExists = XMLTools.asString(ifExistsElt);
if ("overwrite".equals(ifExists))
{
unit.ifExists = OVERWRITE_IF_EXISTS;
@@ -157,16 +157,16 @@
Object metaData = null;
//
- Element metaDataElt = XML.getUniqueChild(deploymentElt, "portal", false);
+ Element metaDataElt = XMLTools.getUniqueChild(deploymentElt, "portal", false);
if (metaDataElt == null)
{
- metaDataElt = XML.getUniqueChild(deploymentElt, "page", false);
+ metaDataElt = XMLTools.getUniqueChild(deploymentElt, "page", false);
if (metaDataElt == null)
{
- metaDataElt = XML.getUniqueChild(deploymentElt, "window", false);
+ metaDataElt = XMLTools.getUniqueChild(deploymentElt, "window", false);
if (metaDataElt == null)
{
- metaDataElt = XML.getUniqueChild(deploymentElt, "context", false);
+ metaDataElt = XMLTools.getUniqueChild(deploymentElt, "context", false);
}
}
}
Modified: trunk/core/src/main/org/jboss/portal/core/deployment/jboss/PortletAppDeployment.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/deployment/jboss/PortletAppDeployment.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/core/src/main/org/jboss/portal/core/deployment/jboss/PortletAppDeployment.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -26,7 +26,7 @@
import org.jboss.mx.util.MBeanProxyExt;
import org.jboss.portal.common.net.URLNavigator;
import org.jboss.portal.common.net.URLVisitor;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.common.value.StringValue;
import org.jboss.portal.common.value.Value;
import org.jboss.portal.common.xml.NullEntityResolver;
@@ -174,7 +174,7 @@
try
{
in = IOTools.safeBufferedWrapper(url.openStream());
- DocumentBuilder builder = XML.getDocumentBuilderFactory().newDocumentBuilder();
+ DocumentBuilder builder = XMLTools.getDocumentBuilderFactory().newDocumentBuilder();
EntityResolver entityResolver = factory.getPortalObjectEntityResolver();
if (entityResolver == null)
{
@@ -188,12 +188,12 @@
builder.setEntityResolver(entityResolver);
Document doc = builder.parse(in);
Element deploymentsElt = doc.getDocumentElement();
- for (Iterator i = XML.getChildrenIterator(deploymentsElt, "deployment"); i.hasNext();)
+ for (Iterator i = XMLTools.getChildrenIterator(deploymentsElt, "deployment"); i.hasNext();)
{
Element deploymentElt = (Element)i.next();
//
- Element instanceElt = XML.getUniqueChild(deploymentElt, "instance", false);
+ Element instanceElt = XMLTools.getUniqueChild(deploymentElt, "instance", false);
//
if (instanceElt != null)
@@ -236,7 +236,7 @@
// Output legacy file on the console
if (metaDataCtxs.size() > 0)
{
- DocumentBuilder builder = XML.getDocumentBuilderFactory().newDocumentBuilder();
+ DocumentBuilder builder = XMLTools.getDocumentBuilderFactory().newDocumentBuilder();
Document doc = builder.newDocument();
Element deployments = (Element)doc.appendChild(doc.createElement("deployments"));
for (int i = 0; i < metaDataCtxs.size(); i++)
@@ -250,7 +250,7 @@
Element portletRefElt = (Element)instanceElt.appendChild(doc.createElement("portlet-ref"));
portletRefElt.appendChild(doc.createTextNode(instanceMD.getPortletRef()));
}
- String migratedContent = XML.toString(doc, false, true, true, "utf-8");
+ String migratedContent = XMLTools.toString(doc, false, true, true, "utf-8");
log.info("These instances have been found in -object.xml, you should put them in the file " + webInfPath + "/portlet-instances.xml");
log.info(migratedContent);
}
@@ -262,7 +262,7 @@
in = IOTools.safeBufferedWrapper(pwa.getServletContext().getResourceAsStream("/WEB-INF/portlet-instances.xml"));
if (in != null)
{
- DocumentBuilder builder = XML.getDocumentBuilderFactory().newDocumentBuilder();
+ DocumentBuilder builder = XMLTools.getDocumentBuilderFactory().newDocumentBuilder();
EntityResolver entityResolver = factory.getPortletInstancesEntityResolver();
if (entityResolver == null)
{
@@ -277,22 +277,22 @@
Document doc = builder.parse(in);
//
- for (Iterator i = XML.getChildrenIterator(doc.getDocumentElement(), "deployment"); i.hasNext();)
+ for (Iterator i = XMLTools.getChildrenIterator(doc.getDocumentElement(), "deployment"); i.hasNext();)
{
Element deploymentElt = (Element)i.next();
//
- Element instanceElt = XML.getUniqueChild(deploymentElt, "instance", true);
+ Element instanceElt = XMLTools.getUniqueChild(deploymentElt, "instance", true);
//
InstanceMetaData metaData = InstanceMetaData.buildMetaData(instanceElt);
//
- Element ifExistsElt = XML.getUniqueChild(deploymentElt, "if-exists", false);
+ Element ifExistsElt = XMLTools.getUniqueChild(deploymentElt, "if-exists", false);
int ifExists = KEEP_IF_EXISTS;
if (ifExistsElt != null)
{
- String tmp = XML.asString(ifExistsElt);
+ String tmp = XMLTools.asString(ifExistsElt);
if ("overwrite".equals(tmp))
{
ifExists = OVERWRITE_IF_EXISTS;
Modified: trunk/core/src/main/org/jboss/portal/core/model/instance/metadata/InstanceMetaData.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/model/instance/metadata/InstanceMetaData.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/core/src/main/org/jboss/portal/core/model/instance/metadata/InstanceMetaData.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -23,7 +23,7 @@
package org.jboss.portal.core.model.instance.metadata;
import org.apache.log4j.Logger;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.portlet.impl.jsr168.metadata.PreferenceMetaData;
import org.jboss.portal.security.metadata.SecurityConstraintsMetaData;
import org.w3c.dom.Element;
@@ -103,12 +103,12 @@
public static InstanceMetaData buildMetaData(Element instanceElt)
{
- String instanceName = XML.asString(XML.getUniqueChild(instanceElt, "instance-id", true));
- String componentRef = XML.asString(XML.getUniqueChild(instanceElt, "portlet-ref", true));
+ String instanceName = XMLTools.asString(XMLTools.getUniqueChild(instanceElt, "instance-id", true));
+ String componentRef = XMLTools.asString(XMLTools.getUniqueChild(instanceElt, "portlet-ref", true));
// Configure preferences override
PreferencesMetaData preferencesMD = new PreferencesMetaData();
- Element preferencesElt = XML.getUniqueChild(instanceElt, "preferences", false);
+ Element preferencesElt = XMLTools.getUniqueChild(instanceElt, "preferences", false);
if (preferencesElt != null)
{
for (Iterator i = buildPreferencesMetaData(preferencesElt).values().iterator(); i.hasNext();)
@@ -125,7 +125,7 @@
instanceMD.setPreferences(preferencesMD);
// Add the security constraints
- Element securityConstraintElt = XML.getUniqueChild(instanceElt, "security-constraint", false);
+ Element securityConstraintElt = XMLTools.getUniqueChild(instanceElt, "security-constraint", false);
if (securityConstraintElt != null)
{
SecurityConstraintsMetaData securityConstraintsMD = SecurityConstraintsMetaData.buildSecurityConstraintMetaData(securityConstraintElt);
@@ -142,12 +142,12 @@
*/
public static InstanceMetaData buildLegacyMetaData(Element instanceElt, String pwaId)
{
- Element instanceNameElt = XML.getUniqueChild(instanceElt, "instance-name", true);
- Element componentRefElt = XML.getUniqueChild(instanceElt, "component-ref", true);
+ Element instanceNameElt = XMLTools.getUniqueChild(instanceElt, "instance-name", true);
+ Element componentRefElt = XMLTools.getUniqueChild(instanceElt, "component-ref", true);
//
- String instanceName = XML.asString(instanceNameElt);
- String componentRef = XML.asString(componentRefElt);
+ String instanceName = XMLTools.asString(instanceNameElt);
+ String componentRef = XMLTools.asString(componentRefElt);
//
int dotIndex = componentRef.indexOf('.');
@@ -183,7 +183,7 @@
// Configure preferences
PreferencesMetaData preferencesMD = new PreferencesMetaData();
- Element preferencesElt = XML.getUniqueChild(instanceElt, "preferences", false);
+ Element preferencesElt = XMLTools.getUniqueChild(instanceElt, "preferences", false);
if (preferencesElt != null)
{
for (Iterator j = InstanceMetaData.buildPreferencesMetaData(preferencesElt).values().iterator(); j.hasNext();)
@@ -194,7 +194,7 @@
}
// Add the security constraints
- Element securityConstraintElt = XML.getUniqueChild(instanceElt, "security-constraint", false);
+ Element securityConstraintElt = XMLTools.getUniqueChild(instanceElt, "security-constraint", false);
if (securityConstraintElt != null)
{
SecurityConstraintsMetaData securityConstraintsMD = SecurityConstraintsMetaData.buildSecurityConstraintMetaData(securityConstraintElt);
@@ -214,7 +214,7 @@
public static Map buildPreferencesMetaData(Element portletPreferencesElt)
{
Map preferences = new HashMap();
- for (Iterator i = XML.getChildrenIterator(portletPreferencesElt, "preference"); i.hasNext();)
+ for (Iterator i = XMLTools.getChildrenIterator(portletPreferencesElt, "preference"); i.hasNext();)
{
Element preferenceElt = (Element)i.next();
PreferenceMetaData preference = buildPreferenceMetaData(preferenceElt);
@@ -226,17 +226,17 @@
public static PreferenceMetaData buildPreferenceMetaData(Element preferenceElt)
{
PreferenceMetaData preferenceMD = new PreferenceMetaData();
- List valuesElt = XML.getChildren(preferenceElt, "value");
+ List valuesElt = XMLTools.getChildren(preferenceElt, "value");
String[] values = new String[valuesElt.size()];
for (int i = 0; i < valuesElt.size(); i++)
{
- values[i] = XML.asString((Element)valuesElt.get(i));
+ values[i] = XMLTools.asString((Element)valuesElt.get(i));
}
- Element readOnlyElt = XML.getUniqueChild(preferenceElt, "read-only", false);
+ Element readOnlyElt = XMLTools.getUniqueChild(preferenceElt, "read-only", false);
boolean readOnly = false;
if (readOnlyElt != null)
{
- String value = XML.asString(readOnlyElt);
+ String value = XMLTools.asString(readOnlyElt);
if ("true".equals(value))
{
readOnly = true;
@@ -255,7 +255,7 @@
{
readOnly = false;
}
- preferenceMD.setName(XML.asString(XML.getUniqueChild(preferenceElt, "name", true)));
+ preferenceMD.setName(XMLTools.asString(XMLTools.getUniqueChild(preferenceElt, "name", true)));
preferenceMD.setReadOnly(readOnly);
preferenceMD.setValues(values);
return preferenceMD;
Modified: trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/ContextMetaData.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/ContextMetaData.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/ContextMetaData.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -23,10 +23,9 @@
package org.jboss.portal.core.model.portal.metadata;
import org.jboss.portal.core.model.portal.PortalObject;
-import org.jboss.portal.core.model.portal.PortalContainer;
import org.jboss.portal.core.model.portal.PortalObjectContainer;
import org.jboss.portal.core.model.content.spi.ContentProviderRegistry;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.w3c.dom.Element;
import java.util.List;
@@ -64,7 +63,7 @@
ContextMetaData contextMD = new ContextMetaData();
//
- String contextName = XML.asString(XML.getUniqueChild(contextElt, "context-name", true));
+ String contextName = XMLTools.asString(XMLTools.getUniqueChild(contextElt, "context-name", true));
if (contextName != null && contextName.indexOf(".") < 0 && contextName.indexOf(":") < 0)
{
contextMD.setName(contextName);
@@ -76,7 +75,7 @@
}
//
- List pageElts = XML.getChildren(contextElt, "portal");
+ List pageElts = XMLTools.getChildren(contextElt, "portal");
for (int i = 0; i < pageElts.size(); i++)
{
Element portalElt = (Element)pageElts.get(i);
Modified: trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/PageMetaData.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/PageMetaData.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/PageMetaData.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -22,7 +22,7 @@
******************************************************************************/
package org.jboss.portal.core.model.portal.metadata;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.core.model.portal.PageContainer;
import org.jboss.portal.core.model.portal.PortalObject;
import org.jboss.portal.core.model.content.spi.ContentProviderRegistry;
@@ -57,11 +57,11 @@
PageMetaData pageMD = new PageMetaData();
//
- String pageName = XML.asString(XML.getUniqueChild(pageElt, "page-name", true));
+ String pageName = XMLTools.asString(XMLTools.getUniqueChild(pageElt, "page-name", true));
pageMD.setName(pageName);
// Add the contained getWindows
- List windowElts = XML.getChildren(pageElt, "window");
+ List windowElts = XMLTools.getChildren(pageElt, "window");
for (int j = 0; j < windowElts.size(); j++)
{
Element windowElt = (Element)windowElts.get(j);
@@ -77,7 +77,7 @@
}
// Add the contained pages
- List pageElts = XML.getChildren(pageElt, "page");
+ List pageElts = XMLTools.getChildren(pageElt, "page");
for (int j = 0; j < pageElts.size(); j++)
{
Element childPageElt = (Element)pageElts.get(j);
Modified: trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalMetaData.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalMetaData.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalMetaData.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -24,7 +24,7 @@
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.core.model.portal.PortalContainer;
import org.jboss.portal.core.model.portal.Portal;
import org.jboss.portal.core.model.portal.PortalObject;
@@ -115,7 +115,7 @@
PortalMetaData portalMD = new PortalMetaData();
//
- String portalName = XML.asString(XML.getUniqueChild(portalElt, "portal-name", true));
+ String portalName = XMLTools.asString(XMLTools.getUniqueChild(portalElt, "portal-name", true));
if (portalName != null && portalName.length() > 0 && portalName.indexOf(".") < 0)
{
portalMD.setName(portalName);
@@ -127,21 +127,21 @@
}
//
- Element supportedModesElt = XML.getUniqueChild(portalElt, "supported-modes", false);
+ Element supportedModesElt = XMLTools.getUniqueChild(portalElt, "supported-modes", false);
if (supportedModesElt != null)
{
buildSupportedModes(portalMD, supportedModesElt);
}
//
- Element supportedWindowStatesElt = XML.getUniqueChild(portalElt, "supported-window-states", false);
+ Element supportedWindowStatesElt = XMLTools.getUniqueChild(portalElt, "supported-window-states", false);
if (supportedWindowStatesElt != null)
{
buildSupportedWindowStates(portalMD, supportedWindowStatesElt);
}
//
- List pageElts = XML.getChildren(portalElt, "page");
+ List pageElts = XMLTools.getChildren(portalElt, "page");
for (int i = 0; i < pageElts.size(); i++)
{
Element pageElt = (Element)pageElts.get(i);
@@ -156,11 +156,11 @@
public static void buildSupportedModes(PortalMetaData portalMD, Element supportedModesElt)
{
ModesMetaData modesMD = portalMD.getModes();
- List modeElts = XML.getChildren(supportedModesElt, "mode");
+ List modeElts = XMLTools.getChildren(supportedModesElt, "mode");
for (int i = 0; i < modeElts.size(); i++)
{
Element modeElt = (Element)modeElts.get(i);
- String modeAsString = XML.asString(modeElt);
+ String modeAsString = XMLTools.asString(modeElt);
modesMD.add(modeAsString);
}
}
@@ -168,11 +168,11 @@
public static void buildSupportedWindowStates(PortalMetaData portalMD, Element supportedWindowStatesElt)
{
WindowStatesMetaData windowStateMD = portalMD.getWindowStates();
- List windowState = XML.getChildren(supportedWindowStatesElt, "window-state");
+ List windowState = XMLTools.getChildren(supportedWindowStatesElt, "window-state");
for (int i = 0; i < windowState.size(); i++)
{
Element windowStateElt = (Element)windowState.get(i);
- String windowStateAsString = XML.asString(windowStateElt);
+ String windowStateAsString = XMLTools.asString(windowStateElt);
windowStateMD.add(windowStateAsString);
}
}
Modified: trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalObjectMetaData.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalObjectMetaData.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalObjectMetaData.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -24,7 +24,7 @@
import org.jboss.logging.Logger;
import org.jboss.portal.common.util.Tools;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.core.model.content.spi.ContentProviderRegistry;
import org.jboss.portal.core.model.portal.PortalObject;
import org.jboss.portal.core.model.portal.PortalObjectContainer;
@@ -221,7 +221,7 @@
if (portalObjectMD != null)
{
// Add the security constraints
- Element securityConstraintElt = XML.getUniqueChild(portalObjectElt, "security-constraint", false);
+ Element securityConstraintElt = XMLTools.getUniqueChild(portalObjectElt, "security-constraint", false);
if (securityConstraintElt != null)
{
SecurityConstraintsMetaData securityConstraintsMD = SecurityConstraintsMetaData.buildSecurityConstraintMetaData(securityConstraintElt);
@@ -229,14 +229,14 @@
}
// Configure properties
- Element propertiesElt = XML.getUniqueChild(portalObjectElt, "properties", false);
+ Element propertiesElt = XMLTools.getUniqueChild(portalObjectElt, "properties", false);
if (propertiesElt != null)
{
buildPropertiesMetaData(portalObjectMD, propertiesElt);
}
// Configure listener
- Element listenerElt = XML.getUniqueChild(portalObjectElt, "listener", false);
+ Element listenerElt = XMLTools.getUniqueChild(portalObjectElt, "listener", false);
if (listenerElt != null)
{
buildListenerMetaData(portalObjectMD, listenerElt);
@@ -247,14 +247,14 @@
public static void buildPropertiesMetaData(PortalObjectMetaData portalObjectMD, Element propertiesElt)
{
- List propertyElts = XML.getChildren(propertiesElt, "property");
+ List propertyElts = XMLTools.getChildren(propertiesElt, "property");
for (int i = 0; i < propertyElts.size(); i++)
{
Element propertyElt = (Element)propertyElts.get(i);
- Element nameElt = XML.getUniqueChild(propertyElt, "name", true);
- Element valueElt = XML.getUniqueChild(propertyElt, "value", true);
- String name = XML.asString(nameElt);
- String value = XML.asString(valueElt);
+ Element nameElt = XMLTools.getUniqueChild(propertyElt, "name", true);
+ Element valueElt = XMLTools.getUniqueChild(propertyElt, "value", true);
+ String name = XMLTools.asString(nameElt);
+ String value = XMLTools.asString(valueElt);
// log.debug("Found property " + name + " = " + value);
portalObjectMD.getProperties().put(name, value);
@@ -263,7 +263,7 @@
public static void buildListenerMetaData(PortalObjectMetaData portalObjectMD, Element listenerElt)
{
- String listener = XML.asString(listenerElt);
+ String listener = XMLTools.asString(listenerElt);
portalObjectMD.setListener(listener);
}
Modified: trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/WindowMetaData.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/WindowMetaData.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/core/src/main/org/jboss/portal/core/model/portal/metadata/WindowMetaData.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -28,7 +28,7 @@
import org.jboss.portal.core.model.content.ContentType;
import org.jboss.portal.core.model.content.spi.ContentProviderRegistry;
import org.jboss.portal.theme.ThemeConstants;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.w3c.dom.Element;
/**
@@ -113,35 +113,35 @@
WindowMetaData windowMD = new WindowMetaData();
//
- String windowName = XML.asString(XML.getUniqueChild(windowElt, "window-name", true));
+ String windowName = XMLTools.asString(XMLTools.getUniqueChild(windowElt, "window-name", true));
windowMD.setName(windowName);
// Get coordinates
- String region = XML.asString(XML.getUniqueChild(windowElt, "region", true));
+ String region = XMLTools.asString(XMLTools.getUniqueChild(windowElt, "region", true));
windowMD.setRegion(region);
//
- int height = Integer.parseInt(XML.asString(XML.getUniqueChild(windowElt, "height", true)));
+ int height = Integer.parseInt(XMLTools.asString(XMLTools.getUniqueChild(windowElt, "height", true)));
windowMD.setOrder(height);
//
ContentType contentType;
String contentURI;
- Element instanceRefElt = XML.getUniqueChild(windowElt, "instance-ref", false);
+ Element instanceRefElt = XMLTools.getUniqueChild(windowElt, "instance-ref", false);
if (instanceRefElt != null)
{
contentType = ContentType.PORTLET;
- contentURI = XML.asString(instanceRefElt);
+ contentURI = XMLTools.asString(instanceRefElt);
}
else
{
- Element contentElt = XML.getUniqueChild(windowElt, "content", true);
- Element contentTypeElt = XML.getUniqueChild(contentElt, "content-type", true);
- Element contentURIElt = XML.getUniqueChild(contentElt, "content-uri", true);
+ Element contentElt = XMLTools.getUniqueChild(windowElt, "content", true);
+ Element contentTypeElt = XMLTools.getUniqueChild(contentElt, "content-type", true);
+ Element contentURIElt = XMLTools.getUniqueChild(contentElt, "content-uri", true);
//
- contentType = ContentType.create(XML.asString(contentTypeElt));
- contentURI = XML.asString(contentURIElt);
+ contentType = ContentType.create(XMLTools.asString(contentTypeElt));
+ contentURI = XMLTools.asString(contentURIElt);
}
// Build content meta data
Modified: trunk/security/src/main/org/jboss/portal/security/metadata/SecurityConstraintsMetaData.java
===================================================================
--- trunk/security/src/main/org/jboss/portal/security/metadata/SecurityConstraintsMetaData.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/security/src/main/org/jboss/portal/security/metadata/SecurityConstraintsMetaData.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -22,7 +22,7 @@
******************************************************************************/
package org.jboss.portal.security.metadata;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.security.RoleSecurityBinding;
import org.jboss.portal.security.SecurityConstants;
import org.w3c.dom.Element;
@@ -54,15 +54,15 @@
public static SecurityConstraintsMetaData buildSecurityConstraintMetaData(Element securityConstraintElt)
{
SecurityConstraintsMetaData securityConstraint = new SecurityConstraintsMetaData();
- for (Iterator i = XML.getChildren(securityConstraintElt, "policy-permission").iterator(); i.hasNext();)
+ for (Iterator i = XMLTools.getChildren(securityConstraintElt, "policy-permission").iterator(); i.hasNext();)
{
Element policyPermissionElt = (Element)i.next();
- Element uncheckedElt = XML.getUniqueChild(policyPermissionElt, "unchecked", false);
+ Element uncheckedElt = XMLTools.getUniqueChild(policyPermissionElt, "unchecked", false);
Set actionNames = new HashSet();
- for (Iterator j = XML.getChildren(policyPermissionElt, "action-name").iterator(); j.hasNext();)
+ for (Iterator j = XMLTools.getChildren(policyPermissionElt, "action-name").iterator(); j.hasNext();)
{
Element actionNameElt = (Element)j.next();
- String actionName = XML.asString(actionNameElt);
+ String actionName = XMLTools.asString(actionNameElt);
actionNames.add(actionName);
}
if (uncheckedElt != null)
@@ -72,10 +72,10 @@
}
else
{
- for (Iterator j = XML.getChildren(policyPermissionElt, "role-name").iterator(); j.hasNext();)
+ for (Iterator j = XMLTools.getChildren(policyPermissionElt, "role-name").iterator(); j.hasNext();)
{
Element roleNameElt = (Element)j.next();
- String roleName = XML.asString(roleNameElt);
+ String roleName = XMLTools.asString(roleNameElt);
RoleSecurityBinding binding = new RoleSecurityBinding(actionNames, roleName);
securityConstraint.children.add(binding);
}
Modified: trunk/server/src/main/org/jboss/portal/server/deployment/PortalWebApp.java
===================================================================
--- trunk/server/src/main/org/jboss/portal/server/deployment/PortalWebApp.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/server/src/main/org/jboss/portal/server/deployment/PortalWebApp.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -23,7 +23,7 @@
package org.jboss.portal.server.deployment;
import org.apache.log4j.Logger;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.common.xml.NullEntityResolver;
import org.jboss.portal.common.io.IOTools;
import org.w3c.dom.Document;
@@ -193,10 +193,10 @@
if (descriptor != null)
{
Element jbossAppElt = descriptor.getDocumentElement();
- Element appNameElt = XML.getUniqueChild(jbossAppElt, "app-name", false);
+ Element appNameElt = XMLTools.getUniqueChild(jbossAppElt, "app-name", false);
if (appNameElt != null)
{
- id = XML.asString(appNameElt);
+ id = XMLTools.asString(appNameElt);
log.debug("Detected explicit app name = " + id + " for application under path " + getContextPath());
}
}
@@ -216,7 +216,7 @@
in = IOTools.safeBufferedWrapper(getServletContext().getResourceAsStream("/WEB-INF/jboss-app.xml"));
if (in != null)
{
- DocumentBuilder builder = XML.getDocumentBuilderFactory().newDocumentBuilder();
+ DocumentBuilder builder = XMLTools.getDocumentBuilderFactory().newDocumentBuilder();
if (jbossAppEntityResolver == null)
{
log.debug("Coult not obtain entity resolver for jboss-app.xml");
Modified: trunk/server/src/main/org/jboss/portal/server/deployment/WebAppEnhancer.java
===================================================================
--- trunk/server/src/main/org/jboss/portal/server/deployment/WebAppEnhancer.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/server/src/main/org/jboss/portal/server/deployment/WebAppEnhancer.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -23,7 +23,7 @@
package org.jboss.portal.server.deployment;
import org.jboss.mx.util.MBeanProxy;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.server.config.ServerConfig;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -65,7 +65,7 @@
if (desc != null)
{
Element jbossAppElt = desc.getDocumentElement();
- for (Iterator i = XML.getChildren(jbossAppElt, "service").iterator(); i.hasNext();)
+ for (Iterator i = XMLTools.getChildren(jbossAppElt, "service").iterator(); i.hasNext();)
{
Element serviceElt = (Element)i.next();
@@ -73,12 +73,12 @@
log.debug("About to inject a service in the servlet context of " + pwa.getURL());
//
- Element serviceNameElt = XML.getUniqueChild(serviceElt, "service-name", true);
- Element serviceClassElt = XML.getUniqueChild(serviceElt, "service-class", true);
- Element serviceRefElt = XML.getUniqueChild(serviceElt, "service-ref", true);
- String serviceName = XML.asString(serviceNameElt);
- String serviceClass = XML.asString(serviceClassElt);
- String serviceRef = XML.asString(serviceRefElt);
+ Element serviceNameElt = XMLTools.getUniqueChild(serviceElt, "service-name", true);
+ Element serviceClassElt = XMLTools.getUniqueChild(serviceElt, "service-class", true);
+ Element serviceRefElt = XMLTools.getUniqueChild(serviceElt, "service-ref", true);
+ String serviceName = XMLTools.asString(serviceNameElt);
+ String serviceClass = XMLTools.asString(serviceClassElt);
+ String serviceRef = XMLTools.asString(serviceRefElt);
//
if (serviceRef.startsWith(":"))
Modified: trunk/server/src/main/org/jboss/portal/server/impl/xml/EntityResolverService.java
===================================================================
--- trunk/server/src/main/org/jboss/portal/server/impl/xml/EntityResolverService.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/server/src/main/org/jboss/portal/server/impl/xml/EntityResolverService.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -23,7 +23,7 @@
package org.jboss.portal.server.impl.xml;
import org.jboss.portal.jems.as.system.AbstractJBossService;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -58,7 +58,7 @@
//
if (this.dtdMapping != null)
{
- dtdMappingProps = XML.loadXMLProperties(dtdMapping);
+ dtdMappingProps = XMLTools.loadXMLProperties(dtdMapping);
}
else
{
Modified: trunk/test/src/main/org/jboss/portal/test/framework/embedded/DSConfig.java
===================================================================
--- trunk/test/src/main/org/jboss/portal/test/framework/embedded/DSConfig.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/test/src/main/org/jboss/portal/test/framework/embedded/DSConfig.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -23,7 +23,7 @@
package org.jboss.portal.test.framework.embedded;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.common.test.MultiValuedTestParameterValue;
import org.jboss.portal.common.io.IOTools;
import org.w3c.dom.Document;
@@ -126,33 +126,33 @@
try
{
in = IOTools.safeBufferedWrapper(url.openStream());
- Document doc = XML.getDocumentBuilderFactory().newDocumentBuilder().parse(in);
- for (Iterator i = XML.getChildrenIterator(doc.getDocumentElement(), "directory"); i.hasNext();)
+ Document doc = XMLTools.getDocumentBuilderFactory().newDocumentBuilder().parse(in);
+ for (Iterator i = XMLTools.getChildrenIterator(doc.getDocumentElement(), "directory"); i.hasNext();)
{
Element childElt = (Element)i.next();
- Element nm = XML.getUniqueChild(childElt, "directory-name", true);
- Element desc = XML.getUniqueChild(childElt, "description", true);
- Element config = XML.getUniqueChild(childElt, "config-file", true);
- Element h = XML.getUniqueChild(childElt, "host", true);
- Element p = XML.getUniqueChild(childElt, "port", true);
- Element context = XML.getUniqueChild(childElt, "context-factory", true);
- Element admin = XML.getUniqueChild(childElt, "admin-dn", true);
- Element password = XML.getUniqueChild(childElt, "admin-password", true);
+ Element nm = XMLTools.getUniqueChild(childElt, "directory-name", true);
+ Element desc = XMLTools.getUniqueChild(childElt, "description", true);
+ Element config = XMLTools.getUniqueChild(childElt, "config-file", true);
+ Element h = XMLTools.getUniqueChild(childElt, "host", true);
+ Element p = XMLTools.getUniqueChild(childElt, "port", true);
+ Element context = XMLTools.getUniqueChild(childElt, "context-factory", true);
+ Element admin = XMLTools.getUniqueChild(childElt, "admin-dn", true);
+ Element password = XMLTools.getUniqueChild(childElt, "admin-password", true);
//Element embedded = XML.getUniqueChild(childElt, "use-embedded", true);
- Element populate = XML.getUniqueChild(childElt, "populate-ldif", true);
- Element cleanup = XML.getUniqueChild(childElt, "cleanup-dn", true);
+ Element populate = XMLTools.getUniqueChild(childElt, "populate-ldif", true);
+ Element cleanup = XMLTools.getUniqueChild(childElt, "cleanup-dn", true);
- String name = XML.asString(nm);
- String description = XML.asString(desc);
- String configFile = XML.asString(config);
- String host = XML.asString(h);
- String port = XML.asString(p);
- String contextFactory = XML.asString(context);
- String adminDN = XML.asString(admin);
- String adminPassword = XML.asString(password);
+ String name = XMLTools.asString(nm);
+ String description = XMLTools.asString(desc);
+ String configFile = XMLTools.asString(config);
+ String host = XMLTools.asString(h);
+ String port = XMLTools.asString(p);
+ String contextFactory = XMLTools.asString(context);
+ String adminDN = XMLTools.asString(admin);
+ String adminPassword = XMLTools.asString(password);
//boolean embedd = XML.asString(embedded).equals("true");
- String populateLdif = XML.asString(populate);
- String cleanUpDN = XML.asString(cleanup);
+ String populateLdif = XMLTools.asString(populate);
+ String cleanUpDN = XMLTools.asString(cleanup);
DSConfig dsCfg = new DSConfig(
name,
Modified: trunk/test/src/main/org/jboss/portal/test/framework/embedded/DataSourceSupport.java
===================================================================
--- trunk/test/src/main/org/jboss/portal/test/framework/embedded/DataSourceSupport.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/test/src/main/org/jboss/portal/test/framework/embedded/DataSourceSupport.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -23,7 +23,7 @@
package org.jboss.portal.test.framework.embedded;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.common.test.MultiValuedTestParameterValue;
import org.jboss.portal.common.io.IOTools;
import org.jboss.resource.adapter.jdbc.local.LocalTxDataSource;
@@ -268,29 +268,29 @@
try
{
in = IOTools.safeBufferedWrapper(url.openStream());
- Document doc = XML.getDocumentBuilderFactory().newDocumentBuilder().parse(in);
- for (Iterator i = XML.getChildrenIterator(doc.getDocumentElement(), "datasource"); i.hasNext();)
+ Document doc = XMLTools.getDocumentBuilderFactory().newDocumentBuilder().parse(in);
+ for (Iterator i = XMLTools.getChildrenIterator(doc.getDocumentElement(), "datasource"); i.hasNext();)
{
Element childElt = (Element)i.next();
// Parse the datasource name, taking in account the deprecated display-name element
- Element nameElt = XML.getUniqueChild(childElt, "datasource-name", false);
+ Element nameElt = XMLTools.getUniqueChild(childElt, "datasource-name", false);
if (nameElt == null)
{
System.out.println("XML element datasource-name is not present, trying deprecated display-name element instead, you should fix your datasources.xml");
- nameElt = XML.getUniqueChild(childElt, "display-name", true);
+ nameElt = XMLTools.getUniqueChild(childElt, "display-name", true);
}
// Parse the rest of the configuration
- Element connectionURLElt = XML.getUniqueChild(childElt, "connection-url", true);
- Element driverClassElt = XML.getUniqueChild(childElt, "driver-class", true);
- Element userNameElt = XML.getUniqueChild(childElt, "user-name", true);
- Element passwordElt = XML.getUniqueChild(childElt, "password", true);
- String name = XML.asString(nameElt);
- String connectionURL = XML.asString(connectionURLElt);
- String driverClass = XML.asString(driverClassElt);
- String userName = XML.asString(userNameElt);
- String password = XML.asString(passwordElt);
+ Element connectionURLElt = XMLTools.getUniqueChild(childElt, "connection-url", true);
+ Element driverClassElt = XMLTools.getUniqueChild(childElt, "driver-class", true);
+ Element userNameElt = XMLTools.getUniqueChild(childElt, "user-name", true);
+ Element passwordElt = XMLTools.getUniqueChild(childElt, "password", true);
+ String name = XMLTools.asString(nameElt);
+ String connectionURL = XMLTools.asString(connectionURLElt);
+ String driverClass = XMLTools.asString(driverClassElt);
+ String userName = XMLTools.asString(userNameElt);
+ String password = XMLTools.asString(passwordElt);
Config dsCfg = new Config(
name,
connectionURL,
Modified: trunk/test/src/main/org/jboss/portal/test/framework/embedded/HibernateSupport.java
===================================================================
--- trunk/test/src/main/org/jboss/portal/test/framework/embedded/HibernateSupport.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/test/src/main/org/jboss/portal/test/framework/embedded/HibernateSupport.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -31,7 +31,7 @@
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Settings;
import org.hibernate.tool.hbm2ddl.SchemaExport;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.common.io.IOTools;
import org.w3c.dom.Element;
import org.w3c.dom.Document;
@@ -351,27 +351,27 @@
try
{
in = IOTools.safeBufferedWrapper(url.openStream());
- Document doc = XML.getDocumentBuilderFactory().newDocumentBuilder().parse(in);
- for (Iterator i = XML.getChildrenIterator(doc.getDocumentElement(), "configuration"); i.hasNext();)
+ Document doc = XMLTools.getDocumentBuilderFactory().newDocumentBuilder().parse(in);
+ for (Iterator i = XMLTools.getChildrenIterator(doc.getDocumentElement(), "configuration"); i.hasNext();)
{
Element childElt = (Element)i.next();
//
- Element configurationNameElt = XML.getUniqueChild(childElt, "configuration-name", true);
- String configurationName = XML.asString(configurationNameElt);
+ Element configurationNameElt = XMLTools.getUniqueChild(childElt, "configuration-name", true);
+ String configurationName = XMLTools.asString(configurationNameElt);
//
Map properties = new HashMap();
- Element propertiesElt = XML.getUniqueChild(childElt, "properties", false);
+ Element propertiesElt = XMLTools.getUniqueChild(childElt, "properties", false);
if (propertiesElt != null)
{
- for (Iterator j = XML.getChildrenIterator(propertiesElt, "property");j.hasNext();)
+ for (Iterator j = XMLTools.getChildrenIterator(propertiesElt, "property");j.hasNext();)
{
Element propertyElt = (Element)j.next();
- Element nameElt = XML.getUniqueChild(propertyElt, "name", true);
- Element valueElt = XML.getUniqueChild(propertyElt, "value", true);
- String name = XML.asString(nameElt);
- String value = XML.asString(valueElt);
+ Element nameElt = XMLTools.getUniqueChild(propertyElt, "name", true);
+ Element valueElt = XMLTools.getUniqueChild(propertyElt, "value", true);
+ String name = XMLTools.asString(nameElt);
+ String value = XMLTools.asString(valueElt);
properties.put(name, value);
}
}
Modified: trunk/widget/src/main/org/jboss/portal/widget/google/provider/GGWidgetBuilder.java
===================================================================
--- trunk/widget/src/main/org/jboss/portal/widget/google/provider/GGWidgetBuilder.java 2007-06-03 19:44:21 UTC (rev 7379)
+++ trunk/widget/src/main/org/jboss/portal/widget/google/provider/GGWidgetBuilder.java 2007-06-03 19:48:21 UTC (rev 7380)
@@ -22,7 +22,7 @@
******************************************************************************/
package org.jboss.portal.widget.google.provider;
-import org.jboss.portal.common.util.XML;
+import org.jboss.portal.common.xml.XMLTools;
import org.jboss.portal.common.i18n.LocalizedString;
import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.common.concurrent.loader.ObjectLoader;
@@ -90,7 +90,7 @@
public GGWidget create() throws Exception
{
- DocumentBuilderFactory factory = XML.getDocumentBuilderFactory();
+ DocumentBuilderFactory factory = XMLTools.getDocumentBuilderFactory();
DocumentBuilder builder = factory.newDocumentBuilder();
byte[] bytes = obtainWidget(url);
if (bytes == null)
@@ -102,7 +102,7 @@
//
Collection tmp = null;
- Iterator userPrefsEltIterator = XML.getChildrenIterator(moduleElt, "UserPref");
+ Iterator userPrefsEltIterator = XMLTools.getChildrenIterator(moduleElt, "UserPref");
while (userPrefsEltIterator.hasNext())
{
Element userPref = (Element)userPrefsEltIterator.next();
@@ -140,7 +140,7 @@
break;
case DataType.ENUM:
Collection values = new ArrayList();
- for (Iterator i = XML.getChildrenIterator(userPref, "EnumValue");i.hasNext();)
+ for (Iterator i = XMLTools.getChildrenIterator(userPref, "EnumValue");i.hasNext();)
{
Element enumValueElt = (Element)i.next();
String valueAttr = enumValueElt.getAttribute("value");
@@ -179,7 +179,7 @@
}
//
- Iterator modulePrefsEltIterator = XML.getChildrenIterator(moduleElt, "ModulePrefs");
+ Iterator modulePrefsEltIterator = XMLTools.getChildrenIterator(moduleElt, "ModulePrefs");
if (modulePrefsEltIterator.hasNext())
{
Element modulePrefsElt = (Element)modulePrefsEltIterator.next();
18 years, 11 months
JBoss Portal SVN: r7379 - in trunk: common/src/main/org/jboss/portal/common/http and 21 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-06-03 15:44:21 -0400 (Sun, 03 Jun 2007)
New Revision: 7379
Added:
trunk/common/src/main/org/jboss/portal/common/net/URLStreamOpeningThread.java
trunk/common/src/main/org/jboss/portal/common/net/URLTools.java
trunk/common/src/main/org/jboss/portal/test/common/net/
trunk/common/src/main/org/jboss/portal/test/common/net/URLNavigatorTestCase.java
trunk/common/src/main/org/jboss/portal/test/common/net/URLToolsTestCase.java
Removed:
trunk/common/src/main/org/jboss/portal/common/util/URLStreamOpeningThread.java
trunk/common/src/main/org/jboss/portal/common/util/URLTools.java
trunk/common/src/main/org/jboss/portal/test/common/URLNavigatorTestCase.java
trunk/common/src/main/org/jboss/portal/test/common/URLToolsTestCase.java
Modified:
trunk/common/build.xml
trunk/common/src/main/org/jboss/portal/common/http/QueryStringParser.java
trunk/common/src/main/org/jboss/portal/common/util/CLResourceLoader.java
trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java
trunk/core/src/main/org/jboss/portal/test/core/deployment/JBossApplicationMetaDataFactoryTestCase.java
trunk/core/src/main/org/jboss/portlet/JBossActionResponse.java
trunk/jems/src/main/org/jboss/portal/jems/hibernate/SessionFactoryBinder.java
trunk/portlet-server/src/main/org/jboss/portal/portlet/test/PortletController.java
trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/ActionResponseImpl.java
trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortletInvocationContext.java
trunk/portlet/src/main/org/jboss/portal/test/portlet/deployment/UnmarshallerTestCase.java
trunk/server/src/main/org/jboss/portal/server/deployment/jboss/ServerDeployer.java
trunk/server/src/main/org/jboss/portal/server/servlet/PortalServlet.java
trunk/widget/src/main/org/jboss/portal/widget/google/provider/GGQueryResultBuilder.java
trunk/widget/src/main/org/jboss/portal/widget/google/provider/GGWidgetBuilder.java
trunk/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/RenderHandlerTestCase.java
trunk/wsrp/src/main/org/jboss/portal/wsrp/WSRPResourceURL.java
trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/RenderHandler.java
trunk/wsrp/src/main/org/jboss/portal/wsrp/invocation/WSRPPortletInvocationContext.java
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/config/impl/ProducerConfigurationServiceImpl.java
trunk/wsrp/src/main/org/jboss/portal/wsrp/services/RemoteSOAPInvokerServiceFactory.java
Log:
move URL related utils to the common.net package
Modified: trunk/common/build.xml
===================================================================
--- trunk/common/build.xml 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/common/build.xml 2007-06-03 19:44:21 UTC (rev 7379)
@@ -210,6 +210,8 @@
</x-sysproperty>
<x-test>
+ <test todir="${test.reports}" name="org.jboss.portal.test.common.net.URLNavigatorTestCase"/>
+ <test todir="${test.reports}" name="org.jboss.portal.test.common.net.URLToolsTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.common.io.IOToolsTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.common.reflect.ReflectionTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.common.reflect.ModifierTestCase"/>
@@ -235,7 +237,6 @@
<test todir="${test.reports}" name="org.jboss.portal.test.common.HexTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.common.StringTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.common.JarTestCase"/>
- <test todir="${test.reports}" name="org.jboss.portal.test.common.URLNavigatorTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.common.PathTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.common.JavaBeanModelMBeanBuilderTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.common.ParameterMapTestCase"/>
@@ -244,7 +245,6 @@
<test todir="${test.reports}" name="org.jboss.portal.test.common.BufferedStreamTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.common.CharBufferTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.common.CopyOnWriteRegistryTestCase"/>
- <test todir="${test.reports}" name="org.jboss.portal.test.common.URLToolsTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.common.ToolsTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.common.IteratorStatusTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.common.PathMapperTestCase"/>
Modified: trunk/common/src/main/org/jboss/portal/common/http/QueryStringParser.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/http/QueryStringParser.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/common/src/main/org/jboss/portal/common/http/QueryStringParser.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -22,7 +22,7 @@
******************************************************************************/
package org.jboss.portal.common.http;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import java.util.Collections;
import java.util.HashMap;
Copied: trunk/common/src/main/org/jboss/portal/common/net/URLStreamOpeningThread.java (from rev 7378, trunk/common/src/main/org/jboss/portal/common/util/URLStreamOpeningThread.java)
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/net/URLStreamOpeningThread.java (rev 0)
+++ trunk/common/src/main/org/jboss/portal/common/net/URLStreamOpeningThread.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -0,0 +1,99 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software 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
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+
+package org.jboss.portal.common.net;
+
+import org.jboss.portal.common.util.ParameterValidation;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+/**
+ * A class that opens an InputStream to a URL in a thread so that it doesn't block normal operations and can be timed
+ * out if needed.
+ *
+ * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
+ * @version $Revision$
+ * @since 2.4.2
+ */
+public class URLStreamOpeningThread extends Thread
+{
+
+ /** . */
+ private final URL url;
+
+ /** . */
+ private volatile InputStream inputStream;
+
+ /** Exception in the event a connection error occurs */
+ private volatile IOException exception;
+
+ public URLStreamOpeningThread(URL url)
+ {
+ ParameterValidation.throwIllegalArgExceptionIfNull(url, "URL");
+
+ //
+ this.url = url;
+ this.inputStream = null;
+ this.exception = null;
+ }
+
+ public void run()
+ {
+ try
+ {
+ InputStream in = url.openStream();
+ if (in == null)
+ {
+ throw new IllegalArgumentException("Cannot open stream from [" + url + "]");
+ }
+
+ //
+ inputStream = in;
+ }
+ catch (IOException e)
+ {
+ exception = e;
+ }
+ }
+
+ public boolean isConnected()
+ {
+ return inputStream != null;
+ }
+
+ public boolean isError()
+ {
+ return exception != null;
+ }
+
+ public InputStream getInputStream()
+ {
+ return inputStream;
+ }
+
+ public IOException getException()
+ {
+ return exception;
+ }
+}
Property changes on: trunk/common/src/main/org/jboss/portal/common/net/URLStreamOpeningThread.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Copied: trunk/common/src/main/org/jboss/portal/common/net/URLTools.java (from rev 7374, trunk/common/src/main/org/jboss/portal/common/util/URLTools.java)
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/net/URLTools.java (rev 0)
+++ trunk/common/src/main/org/jboss/portal/common/net/URLTools.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -0,0 +1,430 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.common.net;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpMethod;
+import org.apache.commons.httpclient.methods.GetMethod;
+import org.jboss.portal.common.io.IOTools;
+import org.jboss.portal.common.util.ParameterValidation;
+
+import java.io.UnsupportedEncodingException;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
+ * @version $Revision$
+ * @since 2.4 (May 26, 2006)
+ */
+public class URLTools
+{
+ public static final String RE_EMAIL_VALIDATION = "^([a-zA-Z0-9]+(([\\.\\-\\_]?[a-zA-Z0-9]+)+)?)\\(a)(([a-zA-Z0-9]+[\\.\\-\\_])+[a-zA-Z]{2,4})$";
+ private static final Pattern LINK = Pattern.compile("(?:href|action|src|location)\\s*=\\s*('|\")\\s*([^'\"]*)\\s*('|\")",
+ Pattern.CASE_INSENSITIVE);
+
+ public static final String HTTP_PREFIX = "http://";
+ public static final String HTTPS_PREFIX = "https://";
+ public static final String FTP_PREFIX = "ftp://";
+ public static final String FILE_PREFIX = "/";
+
+ public static boolean isURLAbsolute(String url)
+ {
+ return isNetworkURL(url) || url.startsWith(FILE_PREFIX);
+ }
+
+ /**
+ * Fetches content from an HTTP server performing a GET operation. If the status code is 200
+ * then it will return a byte array of the body otherwise returns null. The timeout values
+ * must not be negative integers, when it is equals to zero it means that it does not setup
+ * a timeout and use the default values.
+ *
+ * @param url the URL the URL of the resource
+ * @param soTimeoutMillis the socket connection timeout in millis
+ * @param connTimeoutMillis the connection timeout in millis
+ * @return
+ */
+ public static byte[] performGET(URL url, int soTimeoutMillis, int connTimeoutMillis) throws IllegalArgumentException, IOException
+ {
+ if (url == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ if (soTimeoutMillis < 0)
+ {
+ throw new IllegalArgumentException("No negative socket timeout");
+ }
+ if (connTimeoutMillis < 0)
+ {
+ throw new IllegalArgumentException("No negative connection timeout");
+ }
+ if ("http".equals(url.getProtocol()) || "https".equals(url.getProtocol()))
+ {
+ HttpClient client = new HttpClient();
+
+ // Yes deprecated but advocated way to do will not for with 2.0.2 which is what today JBoss AS ships
+ if (connTimeoutMillis > 0)
+ {
+ client.setConnectionTimeout(connTimeoutMillis);
+ }
+ if (soTimeoutMillis > 0)
+ {
+ client.setTimeout(soTimeoutMillis);
+ }
+
+ //
+ HttpMethod method = null;
+ try
+ {
+ method = new GetMethod(url.toString());
+ int statusCode = client.executeMethod(method);
+ if (statusCode == 200)
+ {
+ return method.getResponseBody();
+ }
+ }
+ finally
+ {
+ if (method != null)
+ {
+ method.releaseConnection();
+ }
+ }
+ }
+ throw new IllegalArgumentException("Protocol " + url.getProtocol() + " not accepted");
+ }
+
+ /**
+ * @param url
+ * @return
+ * @since 2.4.2
+ */
+ public static boolean isNetworkURL(String url)
+ {
+ if (url == null || url.length() == 0)
+ {
+ return false;
+ }
+
+ return url.startsWith(HTTP_PREFIX) || url.startsWith(HTTPS_PREFIX) || url.startsWith(FTP_PREFIX);
+ }
+
+ /**
+ * Enforces that the given URL is absolute
+ *
+ * @param url the String representation of the URL to be checked
+ * @throws IllegalArgumentException if the given URL is not absolute
+ */
+ public static void enforceAbsoluteURL(String url) throws IllegalArgumentException
+ {
+ if (!isURLAbsolute(url))
+ {
+ throw new IllegalArgumentException("URL must be absolute. Was: " + url);
+ }
+ }
+
+ public static String encodeXWWWFormURL(String s)
+ {
+ try
+ {
+ return URLEncoder.encode(s, "UTF-8");
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ throw new Error("UTF-8 encoding missing");
+ }
+ }
+
+ public static String decodeXWWWFormURL(String s)
+ {
+ try
+ {
+ return URLDecoder.decode(s, "UTF-8");
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ throw new Error("UTF-8 encoding missing");
+ }
+ }
+
+ /** Return true is the address is not null and matches the email validation regular expression. */
+ public static boolean isEmailValid(String address)
+ {
+ return address != null && Pattern.matches(RE_EMAIL_VALIDATION, address);
+ }
+
+ /**
+ * Determines that the specified URL corresponds to an existing resource by trying to open a stream from it. Same as
+ * <code>exists(url, 1000)</code>
+ *
+ * @param url
+ * @return
+ */
+ public static boolean exists(URL url)
+ {
+ ParameterValidation.throwIllegalArgExceptionIfNull(url, "URL");
+
+ return exists(url, 1000);
+ }
+
+ /**
+ * Determines if the specified URL corresponds to an existing resource by trying to open a stream from it. The
+ * connection attempt is made from a different thread on which we wait for the specified amount of time before timing
+ * out.
+ *
+ * @param url the URL to be tested
+ * @param waitForMillis the number of milliseconds to wait before timing out, 0 meaning never timing out.
+ * @return
+ * @since 2.4.2
+ */
+ public static boolean exists(URL url, long waitForMillis)
+ {
+ URLStreamOpeningThread thread = new URLStreamOpeningThread(url);
+ thread.start();
+
+ try
+ {
+ // Wait for the thread to finish but don't wait longer than the specified time
+ thread.join(waitForMillis);
+
+ if (thread.isAlive())
+ {
+ // Timeout occurred; thread has not finished
+ throw new RuntimeException("Couldn't connect to " + url + " within " + waitForMillis / 1000
+ + " seconds. Check your connection parameters or the URL.");
+ }
+ else
+ {
+ // Finished
+ return thread.isConnected() && !thread.isError();
+ }
+ }
+ catch (InterruptedException e)
+ {
+ // Thread was interrupted
+ throw new RuntimeException("Connection thread to " + url + " was interrupted!", e);
+ }
+ finally
+ {
+ IOTools.safeClose(thread.getInputStream());
+ }
+ }
+
+ /**
+ * @param urlAsString
+ * @param allowNull <code>true</code> if passing <code>null</code> will be ignored and just return
+ * <code>false</code>, <code>false</code> to throw an {@link IllegalArgumentException} is the
+ * given URL is <code>null</code>.
+ * @return
+ * @since 2.4.2
+ */
+ public static boolean exists(String urlAsString, boolean allowNull)
+ {
+ if (!allowNull)
+ {
+ ParameterValidation.throwIllegalArgExceptionIfNullOrEmpty(urlAsString, "URL", null);
+ }
+
+ try
+ {
+ URL url = new URL(urlAsString);
+ return exists(url);
+ }
+ catch (MalformedURLException e)
+ {
+ return false;
+ }
+ }
+
+ public static URLMatch[] extractURLsFrom(String markup)
+ {
+ // todo: will need to re-write without regex after 2.4
+ int length;
+ if (markup != null && (length = markup.length()) != 0)
+ {
+ Matcher matcher = LINK.matcher(markup);
+ int currentIndex = 0;
+ List links = new ArrayList();
+ while (matcher.find(currentIndex) && currentIndex < length)
+ {
+ links.add(new URLMatch(matcher.start(2), matcher.end(2), matcher.group(2)));
+ currentIndex = matcher.end();
+ }
+
+ return (URLMatch[])links.toArray(new URLMatch[0]);
+ }
+ throw new IllegalArgumentException("Cannot extract URLs from a null or empty markup string!");
+ }
+
+ public static int getURLCountIn(String markup)
+ {
+ int length;
+ if (markup != null && (length = markup.length()) != 0)
+ {
+ Matcher matcher = LINK.matcher(markup);
+ int count = 0;
+ int currentIndex = 0;
+ while (matcher.find(currentIndex) && currentIndex < length)
+ {
+ count++;
+ currentIndex = matcher.end();
+ }
+ return count;
+ }
+ return 0;
+ }
+
+ public static String replaceURLsBy(String markup, final String[] replacements)
+ {
+ if (replacements == null || replacements.length == 0)
+ {
+ return markup;
+ }
+
+ int urlCount = getURLCountIn(markup);
+ if (replacements.length != urlCount)
+ {
+ throw new IllegalArgumentException("Trying to replace " + urlCount + " URLs by " + replacements.length + " replacement(s).");
+ }
+
+ return replaceURLsBy(markup, new URLReplacementGenerator()
+ {
+ public String getReplacementFor(int currentIndex, URLMatch currentMatch)
+ {
+ return replacements[currentIndex];
+ }
+ });
+ }
+
+ public static String replaceURLsBy(String markup, URLReplacementGenerator generator)
+ {
+
+ URLMatch[] urls = extractURLsFrom(markup);
+ if (urls.length > 0)
+ {
+ StringBuffer newMarkup = new StringBuffer(markup.length());
+ int currentIndex = 0;
+ for (int i = 0; i < urls.length; i++)
+ {
+ URLMatch url = urls[i];
+ newMarkup.append(markup.substring(currentIndex, url.getStart())).append(generator.getReplacementFor(i, url));
+ currentIndex = url.getEnd();
+ }
+ newMarkup.append(markup.substring(currentIndex));
+ markup = newMarkup.toString();
+ }
+ return markup;
+ }
+
+ public static class URLMatch
+ {
+ private int start;
+ private int end;
+ private String urlAsString;
+
+ private URLMatch(int start, int end, String urlAsString)
+ {
+ this.start = start;
+ this.end = end;
+ this.urlAsString = urlAsString;
+ }
+
+ public int getStart()
+ {
+ return start;
+ }
+
+ public int getEnd()
+ {
+ return end;
+ }
+
+ public String getURLAsString()
+ {
+ return urlAsString;
+ }
+ }
+
+ /** @since 2.4.2 */
+ public abstract static class URLReplacementGenerator
+ {
+ public abstract String getReplacementFor(int currentIndex, URLMatch currentMatch);
+ }
+
+ public static class PortReplacementGenerator extends URLReplacementGenerator
+ {
+ private int replacementPort;
+
+ public PortReplacementGenerator(int replacementPort)
+ {
+ this.replacementPort = replacementPort;
+ }
+
+ public String getReplacementFor(int currentIndex, URLMatch currentMatch)
+ {
+ return replaceServerPortInURL(currentMatch.getURLAsString(), replacementPort);
+ }
+ }
+
+ /**
+ * @param url
+ * @param newPort
+ * @return
+ * @since 2.4.2
+ */
+ public static String replaceServerPortInURL(String url, int newPort)
+ {
+ if (!isNetworkURL(url))
+ {
+ return url;
+ }
+
+ StringBuffer buf = new StringBuffer(url);
+ int afterProtocol = url.indexOf("://") + 3;
+ int beforePort = url.indexOf(':', afterProtocol);
+ int afterPort;
+
+ if (beforePort != -1)
+ {
+ afterPort = url.indexOf('/', beforePort);
+ buf.delete(beforePort + 1, afterPort);
+ buf.insert(beforePort + 1, newPort);
+ }
+ else
+ {
+ // port number was not present
+ afterPort = url.indexOf('/', afterProtocol);
+ buf.insert(afterPort, ":" + newPort);
+ }
+
+ return buf.toString();
+ }
+
+}
Property changes on: trunk/common/src/main/org/jboss/portal/common/net/URLTools.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Modified: trunk/common/src/main/org/jboss/portal/common/util/CLResourceLoader.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/util/CLResourceLoader.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/common/src/main/org/jboss/portal/common/util/CLResourceLoader.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -22,6 +22,8 @@
******************************************************************************/
package org.jboss.portal.common.util;
+import org.jboss.portal.common.net.URLTools;
+
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
Deleted: trunk/common/src/main/org/jboss/portal/common/util/URLStreamOpeningThread.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/util/URLStreamOpeningThread.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/common/src/main/org/jboss/portal/common/util/URLStreamOpeningThread.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -1,97 +0,0 @@
-/*
-* JBoss, a division of Red Hat
-* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software 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
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-
-package org.jboss.portal.common.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-/**
- * A class that opens an InputStream to a URL in a thread so that it doesn't block normal operations and can be timed
- * out if needed.
- *
- * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
- * @version $Revision$
- * @since 2.4.2
- */
-public class URLStreamOpeningThread extends Thread
-{
-
- /** . */
- private final URL url;
-
- /** . */
- private volatile InputStream inputStream;
-
- /** Exception in the event a connection error occurs */
- private volatile IOException exception;
-
- public URLStreamOpeningThread(URL url)
- {
- ParameterValidation.throwIllegalArgExceptionIfNull(url, "URL");
-
- //
- this.url = url;
- this.inputStream = null;
- this.exception = null;
- }
-
- public void run()
- {
- try
- {
- InputStream in = url.openStream();
- if (in == null)
- {
- throw new IllegalArgumentException("Cannot open stream from [" + url + "]");
- }
-
- //
- inputStream = in;
- }
- catch (IOException e)
- {
- exception = e;
- }
- }
-
- public boolean isConnected()
- {
- return inputStream != null;
- }
-
- public boolean isError()
- {
- return exception != null;
- }
-
- public InputStream getInputStream()
- {
- return inputStream;
- }
-
- public IOException getException()
- {
- return exception;
- }
-}
Deleted: trunk/common/src/main/org/jboss/portal/common/util/URLTools.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/util/URLTools.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/common/src/main/org/jboss/portal/common/util/URLTools.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -1,429 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software 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 *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.common.util;
-
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpMethod;
-import org.apache.commons.httpclient.methods.GetMethod;
-import org.jboss.portal.common.io.IOTools;
-
-import java.io.UnsupportedEncodingException;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
- * @version $Revision$
- * @since 2.4 (May 26, 2006)
- */
-public class URLTools
-{
- public static final String RE_EMAIL_VALIDATION = "^([a-zA-Z0-9]+(([\\.\\-\\_]?[a-zA-Z0-9]+)+)?)\\(a)(([a-zA-Z0-9]+[\\.\\-\\_])+[a-zA-Z]{2,4})$";
- private static final Pattern LINK = Pattern.compile("(?:href|action|src|location)\\s*=\\s*('|\")\\s*([^'\"]*)\\s*('|\")",
- Pattern.CASE_INSENSITIVE);
-
- public static final String HTTP_PREFIX = "http://";
- public static final String HTTPS_PREFIX = "https://";
- public static final String FTP_PREFIX = "ftp://";
- public static final String FILE_PREFIX = "/";
-
- public static boolean isURLAbsolute(String url)
- {
- return isNetworkURL(url) || url.startsWith(FILE_PREFIX);
- }
-
- /**
- * Fetches content from an HTTP server performing a GET operation. If the status code is 200
- * then it will return a byte array of the body otherwise returns null. The timeout values
- * must not be negative integers, when it is equals to zero it means that it does not setup
- * a timeout and use the default values.
- *
- * @param url the URL the URL of the resource
- * @param soTimeoutMillis the socket connection timeout in millis
- * @param connTimeoutMillis the connection timeout in millis
- * @return
- */
- public static byte[] performGET(URL url, int soTimeoutMillis, int connTimeoutMillis) throws IllegalArgumentException, IOException
- {
- if (url == null)
- {
- throw new IllegalArgumentException();
- }
- if (soTimeoutMillis < 0)
- {
- throw new IllegalArgumentException("No negative socket timeout");
- }
- if (connTimeoutMillis < 0)
- {
- throw new IllegalArgumentException("No negative connection timeout");
- }
- if ("http".equals(url.getProtocol()) || "https".equals(url.getProtocol()))
- {
- HttpClient client = new HttpClient();
-
- // Yes deprecated but advocated way to do will not for with 2.0.2 which is what today JBoss AS ships
- if (connTimeoutMillis > 0)
- {
- client.setConnectionTimeout(connTimeoutMillis);
- }
- if (soTimeoutMillis > 0)
- {
- client.setTimeout(soTimeoutMillis);
- }
-
- //
- HttpMethod method = null;
- try
- {
- method = new GetMethod(url.toString());
- int statusCode = client.executeMethod(method);
- if (statusCode == 200)
- {
- return method.getResponseBody();
- }
- }
- finally
- {
- if (method != null)
- {
- method.releaseConnection();
- }
- }
- }
- throw new IllegalArgumentException("Protocol " + url.getProtocol() + " not accepted");
- }
-
- /**
- * @param url
- * @return
- * @since 2.4.2
- */
- public static boolean isNetworkURL(String url)
- {
- if (url == null || url.length() == 0)
- {
- return false;
- }
-
- return url.startsWith(HTTP_PREFIX) || url.startsWith(HTTPS_PREFIX) || url.startsWith(FTP_PREFIX);
- }
-
- /**
- * Enforces that the given URL is absolute
- *
- * @param url the String representation of the URL to be checked
- * @throws IllegalArgumentException if the given URL is not absolute
- */
- public static void enforceAbsoluteURL(String url) throws IllegalArgumentException
- {
- if (!isURLAbsolute(url))
- {
- throw new IllegalArgumentException("URL must be absolute. Was: " + url);
- }
- }
-
- public static String encodeXWWWFormURL(String s)
- {
- try
- {
- return URLEncoder.encode(s, "UTF-8");
- }
- catch (UnsupportedEncodingException e)
- {
- throw new Error("UTF-8 encoding missing");
- }
- }
-
- public static String decodeXWWWFormURL(String s)
- {
- try
- {
- return URLDecoder.decode(s, "UTF-8");
- }
- catch (UnsupportedEncodingException e)
- {
- throw new Error("UTF-8 encoding missing");
- }
- }
-
- /** Return true is the address is not null and matches the email validation regular expression. */
- public static boolean isEmailValid(String address)
- {
- return address != null && Pattern.matches(RE_EMAIL_VALIDATION, address);
- }
-
- /**
- * Determines that the specified URL corresponds to an existing resource by trying to open a stream from it. Same as
- * <code>exists(url, 1000)</code>
- *
- * @param url
- * @return
- */
- public static boolean exists(URL url)
- {
- ParameterValidation.throwIllegalArgExceptionIfNull(url, "URL");
-
- return exists(url, 1000);
- }
-
- /**
- * Determines if the specified URL corresponds to an existing resource by trying to open a stream from it. The
- * connection attempt is made from a different thread on which we wait for the specified amount of time before timing
- * out.
- *
- * @param url the URL to be tested
- * @param waitForMillis the number of milliseconds to wait before timing out, 0 meaning never timing out.
- * @return
- * @since 2.4.2
- */
- public static boolean exists(URL url, long waitForMillis)
- {
- URLStreamOpeningThread thread = new URLStreamOpeningThread(url);
- thread.start();
-
- try
- {
- // Wait for the thread to finish but don't wait longer than the specified time
- thread.join(waitForMillis);
-
- if (thread.isAlive())
- {
- // Timeout occurred; thread has not finished
- throw new RuntimeException("Couldn't connect to " + url + " within " + waitForMillis / 1000
- + " seconds. Check your connection parameters or the URL.");
- }
- else
- {
- // Finished
- return thread.isConnected() && !thread.isError();
- }
- }
- catch (InterruptedException e)
- {
- // Thread was interrupted
- throw new RuntimeException("Connection thread to " + url + " was interrupted!", e);
- }
- finally
- {
- IOTools.safeClose(thread.getInputStream());
- }
- }
-
- /**
- * @param urlAsString
- * @param allowNull <code>true</code> if passing <code>null</code> will be ignored and just return
- * <code>false</code>, <code>false</code> to throw an {@link IllegalArgumentException} is the
- * given URL is <code>null</code>.
- * @return
- * @since 2.4.2
- */
- public static boolean exists(String urlAsString, boolean allowNull)
- {
- if (!allowNull)
- {
- ParameterValidation.throwIllegalArgExceptionIfNullOrEmpty(urlAsString, "URL", null);
- }
-
- try
- {
- URL url = new URL(urlAsString);
- return exists(url);
- }
- catch (MalformedURLException e)
- {
- return false;
- }
- }
-
- public static URLMatch[] extractURLsFrom(String markup)
- {
- // todo: will need to re-write without regex after 2.4
- int length;
- if (markup != null && (length = markup.length()) != 0)
- {
- Matcher matcher = LINK.matcher(markup);
- int currentIndex = 0;
- List links = new ArrayList();
- while (matcher.find(currentIndex) && currentIndex < length)
- {
- links.add(new URLMatch(matcher.start(2), matcher.end(2), matcher.group(2)));
- currentIndex = matcher.end();
- }
-
- return (URLMatch[])links.toArray(new URLMatch[0]);
- }
- throw new IllegalArgumentException("Cannot extract URLs from a null or empty markup string!");
- }
-
- public static int getURLCountIn(String markup)
- {
- int length;
- if (markup != null && (length = markup.length()) != 0)
- {
- Matcher matcher = LINK.matcher(markup);
- int count = 0;
- int currentIndex = 0;
- while (matcher.find(currentIndex) && currentIndex < length)
- {
- count++;
- currentIndex = matcher.end();
- }
- return count;
- }
- return 0;
- }
-
- public static String replaceURLsBy(String markup, final String[] replacements)
- {
- if (replacements == null || replacements.length == 0)
- {
- return markup;
- }
-
- int urlCount = getURLCountIn(markup);
- if (replacements.length != urlCount)
- {
- throw new IllegalArgumentException("Trying to replace " + urlCount + " URLs by " + replacements.length + " replacement(s).");
- }
-
- return replaceURLsBy(markup, new URLReplacementGenerator()
- {
- public String getReplacementFor(int currentIndex, URLMatch currentMatch)
- {
- return replacements[currentIndex];
- }
- });
- }
-
- public static String replaceURLsBy(String markup, URLReplacementGenerator generator)
- {
-
- URLMatch[] urls = extractURLsFrom(markup);
- if (urls.length > 0)
- {
- StringBuffer newMarkup = new StringBuffer(markup.length());
- int currentIndex = 0;
- for (int i = 0; i < urls.length; i++)
- {
- URLMatch url = urls[i];
- newMarkup.append(markup.substring(currentIndex, url.getStart())).append(generator.getReplacementFor(i, url));
- currentIndex = url.getEnd();
- }
- newMarkup.append(markup.substring(currentIndex));
- markup = newMarkup.toString();
- }
- return markup;
- }
-
- public static class URLMatch
- {
- private int start;
- private int end;
- private String urlAsString;
-
- private URLMatch(int start, int end, String urlAsString)
- {
- this.start = start;
- this.end = end;
- this.urlAsString = urlAsString;
- }
-
- public int getStart()
- {
- return start;
- }
-
- public int getEnd()
- {
- return end;
- }
-
- public String getURLAsString()
- {
- return urlAsString;
- }
- }
-
- /** @since 2.4.2 */
- public abstract static class URLReplacementGenerator
- {
- public abstract String getReplacementFor(int currentIndex, URLMatch currentMatch);
- }
-
- public static class PortReplacementGenerator extends URLReplacementGenerator
- {
- private int replacementPort;
-
- public PortReplacementGenerator(int replacementPort)
- {
- this.replacementPort = replacementPort;
- }
-
- public String getReplacementFor(int currentIndex, URLMatch currentMatch)
- {
- return replaceServerPortInURL(currentMatch.getURLAsString(), replacementPort);
- }
- }
-
- /**
- * @param url
- * @param newPort
- * @return
- * @since 2.4.2
- */
- public static String replaceServerPortInURL(String url, int newPort)
- {
- if (!isNetworkURL(url))
- {
- return url;
- }
-
- StringBuffer buf = new StringBuffer(url);
- int afterProtocol = url.indexOf("://") + 3;
- int beforePort = url.indexOf(':', afterProtocol);
- int afterPort;
-
- if (beforePort != -1)
- {
- afterPort = url.indexOf('/', beforePort);
- buf.delete(beforePort + 1, afterPort);
- buf.insert(beforePort + 1, newPort);
- }
- else
- {
- // port number was not present
- afterPort = url.indexOf('/', afterProtocol);
- buf.insert(afterPort, ":" + newPort);
- }
-
- return buf.toString();
- }
-
-}
Deleted: trunk/common/src/main/org/jboss/portal/test/common/URLNavigatorTestCase.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/test/common/URLNavigatorTestCase.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/common/src/main/org/jboss/portal/test/common/URLNavigatorTestCase.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -1,322 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software 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 *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.test.common;
-
-import junit.framework.TestCase;
-
-import java.io.File;
-import java.net.URL;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.jboss.portal.common.net.URLVisitor;
-import org.jboss.portal.common.net.URLNavigator;
-import org.jboss.portal.common.net.URLFilter;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision$
- */
-public class URLNavigatorTestCase extends TestCase
-{
-
- public URLNavigatorTestCase(String name)
- {
- super(name);
- }
-
- private List expectedAtoms1;
- private List expectedAtoms2;
- private List expectedAtoms3;
- private List expectedAtoms4;
- private List expectedAtoms5;
- private List expectedAtoms6;
- private List expectedAtoms7;
-
- private List expectedURLs1;
- private List expectedURLs2;
- private List expectedURLs3;
- private List expectedURLs4;
- private List expectedURLs5;
- private List expectedURLs6;
- private List expectedURLs7;
-
- private List filterValues1;
- private List filterValues2;
- private List filterValues3;
- private List filterValues4;
- private List filterValues5;
- private List filterValues6;
- private List filterValues7;
-
- protected void setUp() throws Exception
- {
- expectedAtoms1 = new ArrayList();
- expectedAtoms1.add("<b1>");
- expectedAtoms1.add("<c1>");
- expectedAtoms1.add("d1.txt");
- expectedAtoms1.add("</c1>");
- expectedAtoms1.add("c1.txt");
- expectedAtoms1.add("</b1>");
- expectedURLs1 = new ArrayList();
- expectedURLs1.add("/a1/b1/");
- expectedURLs1.add("/a1/b1/c1/");
- expectedURLs1.add("/a1/b1/c1/d1.txt");
- expectedURLs1.add("/a1/b1/c1/");
- expectedURLs1.add("/a1/b1/c1.txt");
- expectedURLs1.add("/a1/b1/");
- filterValues1 = new ArrayList();
- filterValues1.add(Boolean.TRUE);
- filterValues1.add(Boolean.TRUE);
-
- //
- expectedAtoms2 = new ArrayList();
- expectedAtoms2.add("<a1>");
- expectedAtoms2.add("<b1>");
- expectedAtoms2.add("<c1>");
- expectedAtoms2.add("d1.txt");
- expectedAtoms2.add("</c1>");
- expectedAtoms2.add("c1.txt");
- expectedAtoms2.add("</b1>");
- expectedAtoms2.add("<b1->");
- expectedAtoms2.add("</b1->");
- expectedAtoms2.add("b1.txt");
- expectedAtoms2.add("b2.txt");
- expectedAtoms2.add("</a1>");
- expectedURLs2 = new ArrayList();
- expectedURLs2.add("/a1/");
- expectedURLs2.add("/a1/b1/");
- expectedURLs2.add("/a1/b1/c1/");
- expectedURLs2.add("/a1/b1/c1/d1.txt");
- expectedURLs2.add("/a1/b1/c1/");
- expectedURLs2.add("/a1/b1/c1.txt");
- expectedURLs2.add("/a1/b1/");
- expectedURLs2.add("/a1/b1-/");
- expectedURLs2.add("/a1/b1-/");
- expectedURLs2.add("/a1/b1.txt");
- expectedURLs2.add("/a1/b2.txt");
- expectedURLs2.add("/a1/");
- filterValues2 = new ArrayList();
- filterValues2.add(Boolean.TRUE);
- filterValues2.add(Boolean.TRUE);
- filterValues2.add(Boolean.TRUE);
- filterValues2.add(Boolean.TRUE);
-
- //
- expectedAtoms3 = new ArrayList();
- expectedAtoms3.add("d1.txt");
- expectedURLs3 = new ArrayList();
- expectedURLs3.add("/a1/b1/c1/d1.txt");
- filterValues3 = new ArrayList();
-
- //
- expectedAtoms4 = new ArrayList();
- expectedAtoms4.add("<b1>");
- expectedAtoms4.add("c1.txt");
- expectedAtoms4.add("</b1>");
- expectedURLs4 = new ArrayList();
- expectedURLs4.add("/a1/b1/");
- expectedURLs4.add("/a1/b1/c1.txt");
- expectedURLs4.add("/a1/b1/");
- filterValues4 = new ArrayList();
- filterValues4.add(Boolean.TRUE);
- filterValues4.add(Boolean.FALSE);
-
- //
- expectedAtoms5 = new ArrayList();
- expectedURLs5 = new ArrayList();
- filterValues5 = new ArrayList();
- filterValues5.add(Boolean.FALSE);
-
- //
- expectedAtoms6 = new ArrayList();
- expectedAtoms6.add("<a1>");
- expectedAtoms6.add("<b1>");
- expectedAtoms6.add("c1.txt");
- expectedAtoms6.add("</b1>");
- expectedAtoms6.add("<b1->");
- expectedAtoms6.add("</b1->");
- expectedAtoms6.add("b1.txt");
- expectedAtoms6.add("b2.txt");
- expectedAtoms6.add("</a1>");
- expectedURLs6 = new ArrayList();
- expectedURLs6.add("/a1/");
- expectedURLs6.add("/a1/b1/");
- expectedURLs6.add("/a1/b1/c1.txt");
- expectedURLs6.add("/a1/b1/");
- expectedURLs6.add("/a1/b1-/");
- expectedURLs6.add("/a1/b1-/");
- expectedURLs6.add("/a1/b1.txt");
- expectedURLs6.add("/a1/b2.txt");
- expectedURLs6.add("/a1/");
- filterValues6 = new ArrayList();
- filterValues6.add(Boolean.TRUE);
- filterValues6.add(Boolean.TRUE);
- filterValues6.add(Boolean.FALSE);
- filterValues6.add(Boolean.TRUE);
-
- //
- expectedAtoms7 = new ArrayList();
- expectedAtoms7.add("<a1>");
- expectedAtoms7.add("<b1->");
- expectedAtoms7.add("</b1->");
- expectedAtoms7.add("b1.txt");
- expectedAtoms7.add("b2.txt");
- expectedAtoms7.add("</a1>");
- expectedURLs7 = new ArrayList();
- expectedURLs7.add("/a1/");
- expectedURLs7.add("/a1/b1-/");
- expectedURLs7.add("/a1/b1-/");
- expectedURLs7.add("/a1/b1.txt");
- expectedURLs7.add("/a1/b2.txt");
- expectedURLs7.add("/a1/");
- filterValues7 = new ArrayList();
- filterValues7.add(Boolean.TRUE);
- filterValues7.add(Boolean.FALSE);
- filterValues7.add(Boolean.TRUE);
- }
-
- protected void tearDown() throws Exception
- {
- }
-
- public void testJar() throws Exception
- {
- String libPath = System.getProperty("build.lib");
- assertNotNull(libPath);
- File libDir = new File(libPath);
- assertTrue(libDir.exists());
- assertTrue(libDir.isDirectory());
- File jarFile = new File(libDir, "test.jar");
- assertTrue(jarFile.exists());
- jarFile.deleteOnExit();
- assertFalse(jarFile.isDirectory());
-
- //
- URL jarURL1 = new URL("jar", "", jarFile.toURL() + "!" + "/a1/b1/");
- doTest(jarURL1, expectedAtoms1, expectedURLs1, filterValues1.iterator());
- doTest(jarURL1, expectedAtoms4, expectedURLs4, filterValues4.iterator());
- doTest(jarURL1, expectedAtoms5, expectedURLs5, filterValues5.iterator());
-
- //
- URL jarURL2 = new URL("jar", "", jarFile.toURL() + "!" + "/a1/");
- doTest(jarURL2, expectedAtoms2, expectedURLs2, filterValues2.iterator());
- doTest(jarURL2, expectedAtoms6, expectedURLs6, filterValues6.iterator());
- doTest(jarURL2, expectedAtoms7, expectedURLs7, filterValues7.iterator());
-
- //
- URL jarURL3 = new URL("jar", "", jarFile.toURL() + "!" + "/a1/b1/c1/d1.txt");
- doTest(jarURL3, expectedAtoms3, expectedURLs3, filterValues3.iterator());
- }
-
- public void testFile() throws Exception
- {
- String resourcePath = System.getProperty("build.resources");
- File resourcesDir = new File(resourcePath);
- assertTrue(resourcesDir.exists());
- assertTrue(resourcesDir.isDirectory());
-
- //
- File f1 = new File(resourcesDir, "test/test-jar/a1/b1/");
- assertTrue(f1.exists());
- assertTrue(f1.isDirectory());
- URL dirURL1 = f1.toURL();
- doTest(dirURL1, expectedAtoms1, expectedURLs1, filterValues1.iterator());
- doTest(dirURL1, expectedAtoms4, expectedURLs4, filterValues4.iterator());
- doTest(dirURL1, expectedAtoms5, expectedURLs5, filterValues5.iterator());
-
- //
- File f2 = new File(resourcesDir, "test/test-jar/a1/");
- assertTrue(f2.exists());
- assertTrue(f2.isDirectory());
- URL dirURL2 = f2.toURL();
- doTest(dirURL2, expectedAtoms2, expectedURLs2, filterValues2.iterator());
- doTest(dirURL2, expectedAtoms6, expectedURLs6, filterValues6.iterator());
- doTest(dirURL2, expectedAtoms7, expectedURLs7, filterValues7.iterator());
-
- //
- File f3 = new File(resourcesDir, "test/test-jar/a1/b1/c1/d1.txt");
- assertTrue(f3.exists());
- assertFalse(f3.isDirectory());
- URL dirURL3 = f3.toURL();
- doTest(dirURL3, expectedAtoms3, expectedURLs3, filterValues3.iterator());
- }
-
- private void doTest(URL url, List expectedAtoms, List expectedURLs, final Iterator filterBehavior) throws Exception
- {
- final List atoms = new ArrayList();
- final List urls = new ArrayList();
- URLNavigator.visit(url, new URLVisitor()
- {
- public void startDir(URL url, String name)
- {
- atoms.add("<" + name + ">");
- urls.add(url);
- }
- public void endDir(URL url, String name)
- {
- atoms.add("</" + name + ">");
- urls.add(url);
- }
- public void file(URL url, String name)
- {
- atoms.add(name);
- urls.add(url);
- }
- }, new URLFilter()
- {
- public boolean acceptFile(URL url)
- {
- throw new UnsupportedOperationException();
- }
- public boolean acceptDir(URL url)
- {
- return Boolean.TRUE.equals(filterBehavior.next());
- }
- });
-
- //
- if (urls.size() != expectedURLs.size())
- {
- fail("URLs size does not match " + urls.size() + "!=" + expectedURLs.size());
- }
-
- //
- assertEquals(expectedAtoms, atoms);
-
- //
- for (int i = 0;i < urls.size();i++)
- {
- URL entryURL = (URL)urls.get(i);
- String suffix = (String)expectedURLs.get(i);
- if (!entryURL.getPath().endsWith(suffix))
- {
- fail("URL " + entryURL + " does not end with the suffix " + suffix + " at index " + i);
- }
- }
-
- //
- assertFalse(filterBehavior.hasNext());
- }
-}
Deleted: trunk/common/src/main/org/jboss/portal/test/common/URLToolsTestCase.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/test/common/URLToolsTestCase.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/common/src/main/org/jboss/portal/test/common/URLToolsTestCase.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -1,172 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software 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 *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.test.common;
-
-import junit.framework.TestCase;
-import org.jboss.portal.common.util.URLTools;
-import org.apache.log4j.net.SocketServer;
-
-import java.net.URL;
-
-/**
- * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
- * @version $Revision$
- * @since 2.4 (May 29, 2006)
- */
-public class URLToolsTestCase extends TestCase
-{
- private static final String MARKUP = "Hello, Anonymous!\n" +
- "Counter: 0<a href='wsrp_rewrite?wsrp-urlType=render&wsrp-navigationalState=rO0ABXNyACdvcmc" +
- "uamJvc3MucG9ydGFsLnNlcnZlci51dGlsLlBhcmFtZXRlcnOJoAlMQZGhngIAAUwAA21hcHQAD0xqYXZhL3V0aWwvTWFwO3hwc3IAEWphd" +
- "mEudXRpbC5IYXNoTWFwBQfawcMWYNEDAAJGAApsb2FkRmFjdG9ySQAJdGhyZXNob2xkeHA_QAAAAAAADHcIAAAAEAAAAAF0AARuYW1ldXI" +
- "AE1tMamF2YS5sYW5nLlN0cmluZzut0lbn6R17RwIAAHhwAAAAAXQABkp1bGllbng*/wsrp_rewrite'>My name is Julien</a><a hr" +
- "ef='wsrp_rewrite?wsrp-urlType=render&wsrp-navigationalState=rO0ABXNyACdvcmcuamJvc3MucG9ydGFsLnNlcnZlci" +
- "51dGlsLlBhcmFtZXRlcnOJoAlMQZGhngIAAUwAA21hcHQAD0xqYXZhL3V0aWwvTWFwO3hwc3IAEWphdmEudXRpbC5IYXNoTWFwBQfawcMW" +
- "YNEDAAJGAApsb2FkRmFjdG9ySQAJdGhyZXNob2xkeHA_QAAAAAAADHcIAAAAEAAAAAF0AARuYW1ldXIAE1tMamF2YS5sYW5nLlN0cmluZz" +
- "ut0lbn6R17RwIAAHhwAAAAAXQAA1JveXg*/wsrp_rewrite'>My name is Roy</a><action='wsrp_rewrite?wsrp-urlType=bloc" +
- "kingAction&wsrp-interactionState=rO0ABXNyACdvcmcuamJvc3MucG9ydGFsLnNlcnZlci51dGlsLlBhcmFtZXRlcnOJoAlMQ" +
- "ZGhngIAAUwAA21hcHQAD0xqYXZhL3V0aWwvTWFwO3hwc3IAEWphdmEudXRpbC5IYXNoTWFwBQfawcMWYNEDAAJGAApsb2FkRmFjdG9ySQA" +
- "JdGhyZXNob2xkeHA_QAAAAAAADHcIAAAAEAAAAAF0AAJvcHVyABNbTGphdmEubGFuZy5TdHJpbmc7rdJW5-kde0cCAAB4cAAAAAF0AAIrK" +
- "3g*/wsrp_rewrite'>counter++</a><a href='wsrp_rewrite?wsrp-urlType=blockingAction&wsrp-interactionState" +
- "=rO0ABXNyACdvcmcuamJvc3MucG9ydGFsLnNlcnZlci51dGlsLlBhcmFtZXRlcnOJoAlMQZGhngIAAUwAA21hcHQAD0xqYXZhL3V0aWwvT" +
- "WFwO3hwc3IAEWphdmEudXRpbC5IYXNoTWFwBQfawcMWYNEDAAJGAApsb2FkRmFjdG9ySQAJdGhyZXNob2xkeHA_QAAAAAAADHcIAAAAEAA" +
- "AAAF0AAJvcHVyABNbTGphdmEubGFuZy5TdHJpbmc7rdJW5-kde0cCAAB4cAAAAAF0AAItLXg*/wsrp_rewrite'>counter--</a>";
-
- public void testExtractURLs()
- {
- String markup = MARKUP;
-
- URLTools.URLMatch[] links = URLTools.extractURLsFrom(markup);
- assertEquals(4, links.length);
- URLTools.URLMatch link = links[0];
- assertEquals("wsrp_rewrite?wsrp-urlType=render&wsrp-navigationalState=rO0ABXNyACdvcmcuamJvc3MucG9ydGFsLnNl" +
- "cnZlci51dGlsLlBhcmFtZXRlcnOJoAlMQZGhngIAAUwAA21hcHQAD0xqYXZhL3V0aWwvTWFwO3hwc3IAEWphdmEudXRpbC5IYXNoTWFwBQ" +
- "fawcMWYNEDAAJGAApsb2FkRmFjdG9ySQAJdGhyZXNob2xkeHA_QAAAAAAADHcIAAAAEAAAAAF0AARuYW1ldXIAE1tMamF2YS5sYW5nLlN0" +
- "cmluZzut0lbn6R17RwIAAHhwAAAAAXQABkp1bGllbng*/wsrp_rewrite", link.getURLAsString());
- assertEquals("wsrp_rewrite?wsrp-urlType=blockingAction&wsrp-interactionState=rO0ABXNyACdvcmcuamJvc3MucG9yd" +
- "GFsLnNlcnZlci51dGlsLlBhcmFtZXRlcnOJoAlMQZGhngIAAUwAA21hcHQAD0xqYXZhL3V0aWwvTWFwO3hwc3IAEWphdmEudXRpbC5IYXN" +
- "oTWFwBQfawcMWYNEDAAJGAApsb2FkRmFjdG9ySQAJdGhyZXNob2xkeHA_QAAAAAAADHcIAAAAEAAAAAF0AAJvcHVyABNbTGphdmEubGFuZ" +
- "y5TdHJpbmc7rdJW5-kde0cCAAB4cAAAAAF0AAIrK3g*/wsrp_rewrite", links[2].getURLAsString());
-
- String url = "wsrp_rewrite?wsrp-urlType=render&wsrp-mode=help/wsrp_rewrite";
- markup = "12345href='" + url + "'76";
- links = URLTools.extractURLsFrom(markup);
- link = links[0];
- int startIndex = 11;
- assertEquals(startIndex, link.getStart());
- assertEquals(url.length() + startIndex, link.getEnd());
- assertEquals(url, markup.substring(link.getStart(), link.getEnd()));
- assertEquals(url, link.getURLAsString());
- }
-
- public void testReplaceURLs()
- {
- String markup = URLTools.replaceURLsBy(MARKUP, new String[]{"foo", "bar", "baz", "buz"});
- String replaced = "Hello, Anonymous!\nCounter: 0<a href='foo'>My name is Julien</a><a href='bar'>My name is Roy</a>" +
- "<action='baz'>counter++</a><a href='buz'>counter--</a>";
- assertEquals(replaced, markup);
- assertEquals(replaced, URLTools.replaceURLsBy(replaced, (String[])null));
-
- String mixed = "<a href='wsrp_rewrite?wsrp-urlType=render&wsrp-mode=help/wsrp_rewrite'>My name is Julien</a>" +
- "<a href='bar'>My name is Roy</a>";
- assertEquals("<a href='foo'>My name is Julien</a><a href='bar'>My name is Roy</a>",
- URLTools.replaceURLsBy(mixed, new URLTools.URLReplacementGenerator()
- {
- public String getReplacementFor(int currentIndex, URLTools.URLMatch currentMatch)
- {
- String urlAsString = currentMatch.getURLAsString();
- if (urlAsString.startsWith("wsrp_rewrite"))
- {
- return "foo";
- }
- return urlAsString;
- }
- }));
- }
-
- public void testReplaceAllPorts()
- {
- String original = "<wsdl:definitions targetNamespace='urn:oasis:names:tc:wsrp:v1:wsdl'\n" +
- " xmlns:bind='urn:oasis:names:tc:wsrp:v1:bind'\n" +
- " xmlns='http://schemas.xmlsoap.org/wsdl/'\n" +
- " xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'\n" +
- " xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'\n" +
- " xmlns:intf='urn:oasis:names:tc:wsrp:v1:intf'\n" +
- " xmlns:tns='urn:oasis:names:tc:wsrp:v1:wsdl'>\n" +
- " <import namespace='urn:oasis:names:tc:wsrp:v1:bind' location='wsrp_v1_bindings.wsdl'/>\n" +
- " <wsdl:service name='WSRPService'>\n" +
- " <wsdl:port binding='bind:WSRP_v1_Markup_Binding_SOAP' name='WSRPBaseService'>\n" +
- " <soap:address location='http://localhost/portal-wsrp/ServiceDescriptionService'/>\n" +
- " </wsdl:port>\n" +
- " <wsdl:port binding='bind:WSRP_v1_ServiceDescription_Binding_SOAP' name='WSRPServiceDescriptionService'>\n" +
- " <soap:address location='http://localhost/portal-wsrp/MarkupService'/>\n" +
- " </wsdl:port>\n" +
- " <wsdl:port binding='bind:WSRP_v1_Registration_Binding_SOAP' name='WSRPRegistrationService'>\n" +
- " <soap:address location='http://localhost/portal-wsrp/RegistrationService'/>\n" +
- " </wsdl:port>\n" +
- " <wsdl:port binding='bind:WSRP_v1_PortletManagement_Binding_SOAP' name='WSRPPortletManagementService'>\n" +
- " <soap:address location='http://localhost/portal-wsrp/PortletManagementService'/>\n" +
- " </wsdl:port>\n" +
- " </wsdl:service>\n" +
- "</wsdl:definitions>";
- String result = "<wsdl:definitions targetNamespace='urn:oasis:names:tc:wsrp:v1:wsdl'\n" +
- " xmlns:bind='urn:oasis:names:tc:wsrp:v1:bind'\n" +
- " xmlns='http://schemas.xmlsoap.org/wsdl/'\n" +
- " xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'\n" +
- " xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'\n" +
- " xmlns:intf='urn:oasis:names:tc:wsrp:v1:intf'\n" +
- " xmlns:tns='urn:oasis:names:tc:wsrp:v1:wsdl'>\n" +
- " <import namespace='urn:oasis:names:tc:wsrp:v1:bind' location='wsrp_v1_bindings.wsdl'/>\n" +
- " <wsdl:service name='WSRPService'>\n" +
- " <wsdl:port binding='bind:WSRP_v1_Markup_Binding_SOAP' name='WSRPBaseService'>\n" +
- " <soap:address location='http://localhost:8888/portal-wsrp/ServiceDescriptionService'/>\n" +
- " </wsdl:port>\n" +
- " <wsdl:port binding='bind:WSRP_v1_ServiceDescription_Binding_SOAP' name='WSRPServiceDescriptionService'>\n" +
- " <soap:address location='http://localhost:8888/portal-wsrp/MarkupService'/>\n" +
- " </wsdl:port>\n" +
- " <wsdl:port binding='bind:WSRP_v1_Registration_Binding_SOAP' name='WSRPRegistrationService'>\n" +
- " <soap:address location='http://localhost:8888/portal-wsrp/RegistrationService'/>\n" +
- " </wsdl:port>\n" +
- " <wsdl:port binding='bind:WSRP_v1_PortletManagement_Binding_SOAP' name='WSRPPortletManagementService'>\n" +
- " <soap:address location='http://localhost:8888/portal-wsrp/PortletManagementService'/>\n" +
- " </wsdl:port>\n" +
- " </wsdl:service>\n" +
- "</wsdl:definitions>";
-
- assertEquals(result, URLTools.replaceURLsBy(original, new URLTools.PortReplacementGenerator(8888)));
- }
-
- public void testReplaceServerPort()
- {
- assertEquals("http://hostname:8088/some/path", URLTools.replaceServerPortInURL("http://hostname:8080/some/path", 8088));
- assertEquals("https://hostname:8088/some/path", URLTools.replaceServerPortInURL("https://hostname:8080/some/path", 8088));
- assertEquals("http://hostname:8088/some/path", URLTools.replaceServerPortInURL("http://hostname/some/path", 8088));
- assertEquals("https://hostname:8088/some/path", URLTools.replaceServerPortInURL("https://hostname/some/path", 8088));
- }
-
- public void testExistsURL()
- {
- // todo: add more tests
- assertFalse(URLTools.exists(null, true));
- }
-}
Copied: trunk/common/src/main/org/jboss/portal/test/common/net/URLNavigatorTestCase.java (from rev 7371, trunk/common/src/main/org/jboss/portal/test/common/URLNavigatorTestCase.java)
===================================================================
--- trunk/common/src/main/org/jboss/portal/test/common/net/URLNavigatorTestCase.java (rev 0)
+++ trunk/common/src/main/org/jboss/portal/test/common/net/URLNavigatorTestCase.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -0,0 +1,322 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.common.net;
+
+import junit.framework.TestCase;
+
+import java.io.File;
+import java.net.URL;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.jboss.portal.common.net.URLVisitor;
+import org.jboss.portal.common.net.URLNavigator;
+import org.jboss.portal.common.net.URLFilter;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision$
+ */
+public class URLNavigatorTestCase extends TestCase
+{
+
+ public URLNavigatorTestCase(String name)
+ {
+ super(name);
+ }
+
+ private List expectedAtoms1;
+ private List expectedAtoms2;
+ private List expectedAtoms3;
+ private List expectedAtoms4;
+ private List expectedAtoms5;
+ private List expectedAtoms6;
+ private List expectedAtoms7;
+
+ private List expectedURLs1;
+ private List expectedURLs2;
+ private List expectedURLs3;
+ private List expectedURLs4;
+ private List expectedURLs5;
+ private List expectedURLs6;
+ private List expectedURLs7;
+
+ private List filterValues1;
+ private List filterValues2;
+ private List filterValues3;
+ private List filterValues4;
+ private List filterValues5;
+ private List filterValues6;
+ private List filterValues7;
+
+ protected void setUp() throws Exception
+ {
+ expectedAtoms1 = new ArrayList();
+ expectedAtoms1.add("<b1>");
+ expectedAtoms1.add("<c1>");
+ expectedAtoms1.add("d1.txt");
+ expectedAtoms1.add("</c1>");
+ expectedAtoms1.add("c1.txt");
+ expectedAtoms1.add("</b1>");
+ expectedURLs1 = new ArrayList();
+ expectedURLs1.add("/a1/b1/");
+ expectedURLs1.add("/a1/b1/c1/");
+ expectedURLs1.add("/a1/b1/c1/d1.txt");
+ expectedURLs1.add("/a1/b1/c1/");
+ expectedURLs1.add("/a1/b1/c1.txt");
+ expectedURLs1.add("/a1/b1/");
+ filterValues1 = new ArrayList();
+ filterValues1.add(Boolean.TRUE);
+ filterValues1.add(Boolean.TRUE);
+
+ //
+ expectedAtoms2 = new ArrayList();
+ expectedAtoms2.add("<a1>");
+ expectedAtoms2.add("<b1>");
+ expectedAtoms2.add("<c1>");
+ expectedAtoms2.add("d1.txt");
+ expectedAtoms2.add("</c1>");
+ expectedAtoms2.add("c1.txt");
+ expectedAtoms2.add("</b1>");
+ expectedAtoms2.add("<b1->");
+ expectedAtoms2.add("</b1->");
+ expectedAtoms2.add("b1.txt");
+ expectedAtoms2.add("b2.txt");
+ expectedAtoms2.add("</a1>");
+ expectedURLs2 = new ArrayList();
+ expectedURLs2.add("/a1/");
+ expectedURLs2.add("/a1/b1/");
+ expectedURLs2.add("/a1/b1/c1/");
+ expectedURLs2.add("/a1/b1/c1/d1.txt");
+ expectedURLs2.add("/a1/b1/c1/");
+ expectedURLs2.add("/a1/b1/c1.txt");
+ expectedURLs2.add("/a1/b1/");
+ expectedURLs2.add("/a1/b1-/");
+ expectedURLs2.add("/a1/b1-/");
+ expectedURLs2.add("/a1/b1.txt");
+ expectedURLs2.add("/a1/b2.txt");
+ expectedURLs2.add("/a1/");
+ filterValues2 = new ArrayList();
+ filterValues2.add(Boolean.TRUE);
+ filterValues2.add(Boolean.TRUE);
+ filterValues2.add(Boolean.TRUE);
+ filterValues2.add(Boolean.TRUE);
+
+ //
+ expectedAtoms3 = new ArrayList();
+ expectedAtoms3.add("d1.txt");
+ expectedURLs3 = new ArrayList();
+ expectedURLs3.add("/a1/b1/c1/d1.txt");
+ filterValues3 = new ArrayList();
+
+ //
+ expectedAtoms4 = new ArrayList();
+ expectedAtoms4.add("<b1>");
+ expectedAtoms4.add("c1.txt");
+ expectedAtoms4.add("</b1>");
+ expectedURLs4 = new ArrayList();
+ expectedURLs4.add("/a1/b1/");
+ expectedURLs4.add("/a1/b1/c1.txt");
+ expectedURLs4.add("/a1/b1/");
+ filterValues4 = new ArrayList();
+ filterValues4.add(Boolean.TRUE);
+ filterValues4.add(Boolean.FALSE);
+
+ //
+ expectedAtoms5 = new ArrayList();
+ expectedURLs5 = new ArrayList();
+ filterValues5 = new ArrayList();
+ filterValues5.add(Boolean.FALSE);
+
+ //
+ expectedAtoms6 = new ArrayList();
+ expectedAtoms6.add("<a1>");
+ expectedAtoms6.add("<b1>");
+ expectedAtoms6.add("c1.txt");
+ expectedAtoms6.add("</b1>");
+ expectedAtoms6.add("<b1->");
+ expectedAtoms6.add("</b1->");
+ expectedAtoms6.add("b1.txt");
+ expectedAtoms6.add("b2.txt");
+ expectedAtoms6.add("</a1>");
+ expectedURLs6 = new ArrayList();
+ expectedURLs6.add("/a1/");
+ expectedURLs6.add("/a1/b1/");
+ expectedURLs6.add("/a1/b1/c1.txt");
+ expectedURLs6.add("/a1/b1/");
+ expectedURLs6.add("/a1/b1-/");
+ expectedURLs6.add("/a1/b1-/");
+ expectedURLs6.add("/a1/b1.txt");
+ expectedURLs6.add("/a1/b2.txt");
+ expectedURLs6.add("/a1/");
+ filterValues6 = new ArrayList();
+ filterValues6.add(Boolean.TRUE);
+ filterValues6.add(Boolean.TRUE);
+ filterValues6.add(Boolean.FALSE);
+ filterValues6.add(Boolean.TRUE);
+
+ //
+ expectedAtoms7 = new ArrayList();
+ expectedAtoms7.add("<a1>");
+ expectedAtoms7.add("<b1->");
+ expectedAtoms7.add("</b1->");
+ expectedAtoms7.add("b1.txt");
+ expectedAtoms7.add("b2.txt");
+ expectedAtoms7.add("</a1>");
+ expectedURLs7 = new ArrayList();
+ expectedURLs7.add("/a1/");
+ expectedURLs7.add("/a1/b1-/");
+ expectedURLs7.add("/a1/b1-/");
+ expectedURLs7.add("/a1/b1.txt");
+ expectedURLs7.add("/a1/b2.txt");
+ expectedURLs7.add("/a1/");
+ filterValues7 = new ArrayList();
+ filterValues7.add(Boolean.TRUE);
+ filterValues7.add(Boolean.FALSE);
+ filterValues7.add(Boolean.TRUE);
+ }
+
+ protected void tearDown() throws Exception
+ {
+ }
+
+ public void testJar() throws Exception
+ {
+ String libPath = System.getProperty("build.lib");
+ assertNotNull(libPath);
+ File libDir = new File(libPath);
+ assertTrue(libDir.exists());
+ assertTrue(libDir.isDirectory());
+ File jarFile = new File(libDir, "test.jar");
+ assertTrue(jarFile.exists());
+ jarFile.deleteOnExit();
+ assertFalse(jarFile.isDirectory());
+
+ //
+ URL jarURL1 = new URL("jar", "", jarFile.toURL() + "!" + "/a1/b1/");
+ doTest(jarURL1, expectedAtoms1, expectedURLs1, filterValues1.iterator());
+ doTest(jarURL1, expectedAtoms4, expectedURLs4, filterValues4.iterator());
+ doTest(jarURL1, expectedAtoms5, expectedURLs5, filterValues5.iterator());
+
+ //
+ URL jarURL2 = new URL("jar", "", jarFile.toURL() + "!" + "/a1/");
+ doTest(jarURL2, expectedAtoms2, expectedURLs2, filterValues2.iterator());
+ doTest(jarURL2, expectedAtoms6, expectedURLs6, filterValues6.iterator());
+ doTest(jarURL2, expectedAtoms7, expectedURLs7, filterValues7.iterator());
+
+ //
+ URL jarURL3 = new URL("jar", "", jarFile.toURL() + "!" + "/a1/b1/c1/d1.txt");
+ doTest(jarURL3, expectedAtoms3, expectedURLs3, filterValues3.iterator());
+ }
+
+ public void testFile() throws Exception
+ {
+ String resourcePath = System.getProperty("build.resources");
+ File resourcesDir = new File(resourcePath);
+ assertTrue(resourcesDir.exists());
+ assertTrue(resourcesDir.isDirectory());
+
+ //
+ File f1 = new File(resourcesDir, "test/test-jar/a1/b1/");
+ assertTrue(f1.exists());
+ assertTrue(f1.isDirectory());
+ URL dirURL1 = f1.toURL();
+ doTest(dirURL1, expectedAtoms1, expectedURLs1, filterValues1.iterator());
+ doTest(dirURL1, expectedAtoms4, expectedURLs4, filterValues4.iterator());
+ doTest(dirURL1, expectedAtoms5, expectedURLs5, filterValues5.iterator());
+
+ //
+ File f2 = new File(resourcesDir, "test/test-jar/a1/");
+ assertTrue(f2.exists());
+ assertTrue(f2.isDirectory());
+ URL dirURL2 = f2.toURL();
+ doTest(dirURL2, expectedAtoms2, expectedURLs2, filterValues2.iterator());
+ doTest(dirURL2, expectedAtoms6, expectedURLs6, filterValues6.iterator());
+ doTest(dirURL2, expectedAtoms7, expectedURLs7, filterValues7.iterator());
+
+ //
+ File f3 = new File(resourcesDir, "test/test-jar/a1/b1/c1/d1.txt");
+ assertTrue(f3.exists());
+ assertFalse(f3.isDirectory());
+ URL dirURL3 = f3.toURL();
+ doTest(dirURL3, expectedAtoms3, expectedURLs3, filterValues3.iterator());
+ }
+
+ private void doTest(URL url, List expectedAtoms, List expectedURLs, final Iterator filterBehavior) throws Exception
+ {
+ final List atoms = new ArrayList();
+ final List urls = new ArrayList();
+ URLNavigator.visit(url, new URLVisitor()
+ {
+ public void startDir(URL url, String name)
+ {
+ atoms.add("<" + name + ">");
+ urls.add(url);
+ }
+ public void endDir(URL url, String name)
+ {
+ atoms.add("</" + name + ">");
+ urls.add(url);
+ }
+ public void file(URL url, String name)
+ {
+ atoms.add(name);
+ urls.add(url);
+ }
+ }, new URLFilter()
+ {
+ public boolean acceptFile(URL url)
+ {
+ throw new UnsupportedOperationException();
+ }
+ public boolean acceptDir(URL url)
+ {
+ return Boolean.TRUE.equals(filterBehavior.next());
+ }
+ });
+
+ //
+ if (urls.size() != expectedURLs.size())
+ {
+ fail("URLs size does not match " + urls.size() + "!=" + expectedURLs.size());
+ }
+
+ //
+ assertEquals(expectedAtoms, atoms);
+
+ //
+ for (int i = 0;i < urls.size();i++)
+ {
+ URL entryURL = (URL)urls.get(i);
+ String suffix = (String)expectedURLs.get(i);
+ if (!entryURL.getPath().endsWith(suffix))
+ {
+ fail("URL " + entryURL + " does not end with the suffix " + suffix + " at index " + i);
+ }
+ }
+
+ //
+ assertFalse(filterBehavior.hasNext());
+ }
+}
Property changes on: trunk/common/src/main/org/jboss/portal/test/common/net/URLNavigatorTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Copied: trunk/common/src/main/org/jboss/portal/test/common/net/URLToolsTestCase.java (from rev 7371, trunk/common/src/main/org/jboss/portal/test/common/URLToolsTestCase.java)
===================================================================
--- trunk/common/src/main/org/jboss/portal/test/common/net/URLToolsTestCase.java (rev 0)
+++ trunk/common/src/main/org/jboss/portal/test/common/net/URLToolsTestCase.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -0,0 +1,169 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software 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 *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.common.net;
+
+import junit.framework.TestCase;
+import org.jboss.portal.common.net.URLTools;
+
+/**
+ * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
+ * @version $Revision$
+ * @since 2.4 (May 29, 2006)
+ */
+public class URLToolsTestCase extends TestCase
+{
+ private static final String MARKUP = "Hello, Anonymous!\n" +
+ "Counter: 0<a href='wsrp_rewrite?wsrp-urlType=render&wsrp-navigationalState=rO0ABXNyACdvcmc" +
+ "uamJvc3MucG9ydGFsLnNlcnZlci51dGlsLlBhcmFtZXRlcnOJoAlMQZGhngIAAUwAA21hcHQAD0xqYXZhL3V0aWwvTWFwO3hwc3IAEWphd" +
+ "mEudXRpbC5IYXNoTWFwBQfawcMWYNEDAAJGAApsb2FkRmFjdG9ySQAJdGhyZXNob2xkeHA_QAAAAAAADHcIAAAAEAAAAAF0AARuYW1ldXI" +
+ "AE1tMamF2YS5sYW5nLlN0cmluZzut0lbn6R17RwIAAHhwAAAAAXQABkp1bGllbng*/wsrp_rewrite'>My name is Julien</a><a hr" +
+ "ef='wsrp_rewrite?wsrp-urlType=render&wsrp-navigationalState=rO0ABXNyACdvcmcuamJvc3MucG9ydGFsLnNlcnZlci" +
+ "51dGlsLlBhcmFtZXRlcnOJoAlMQZGhngIAAUwAA21hcHQAD0xqYXZhL3V0aWwvTWFwO3hwc3IAEWphdmEudXRpbC5IYXNoTWFwBQfawcMW" +
+ "YNEDAAJGAApsb2FkRmFjdG9ySQAJdGhyZXNob2xkeHA_QAAAAAAADHcIAAAAEAAAAAF0AARuYW1ldXIAE1tMamF2YS5sYW5nLlN0cmluZz" +
+ "ut0lbn6R17RwIAAHhwAAAAAXQAA1JveXg*/wsrp_rewrite'>My name is Roy</a><action='wsrp_rewrite?wsrp-urlType=bloc" +
+ "kingAction&wsrp-interactionState=rO0ABXNyACdvcmcuamJvc3MucG9ydGFsLnNlcnZlci51dGlsLlBhcmFtZXRlcnOJoAlMQ" +
+ "ZGhngIAAUwAA21hcHQAD0xqYXZhL3V0aWwvTWFwO3hwc3IAEWphdmEudXRpbC5IYXNoTWFwBQfawcMWYNEDAAJGAApsb2FkRmFjdG9ySQA" +
+ "JdGhyZXNob2xkeHA_QAAAAAAADHcIAAAAEAAAAAF0AAJvcHVyABNbTGphdmEubGFuZy5TdHJpbmc7rdJW5-kde0cCAAB4cAAAAAF0AAIrK" +
+ "3g*/wsrp_rewrite'>counter++</a><a href='wsrp_rewrite?wsrp-urlType=blockingAction&wsrp-interactionState" +
+ "=rO0ABXNyACdvcmcuamJvc3MucG9ydGFsLnNlcnZlci51dGlsLlBhcmFtZXRlcnOJoAlMQZGhngIAAUwAA21hcHQAD0xqYXZhL3V0aWwvT" +
+ "WFwO3hwc3IAEWphdmEudXRpbC5IYXNoTWFwBQfawcMWYNEDAAJGAApsb2FkRmFjdG9ySQAJdGhyZXNob2xkeHA_QAAAAAAADHcIAAAAEAA" +
+ "AAAF0AAJvcHVyABNbTGphdmEubGFuZy5TdHJpbmc7rdJW5-kde0cCAAB4cAAAAAF0AAItLXg*/wsrp_rewrite'>counter--</a>";
+
+ public void testExtractURLs()
+ {
+ String markup = MARKUP;
+
+ URLTools.URLMatch[] links = URLTools.extractURLsFrom(markup);
+ assertEquals(4, links.length);
+ URLTools.URLMatch link = links[0];
+ assertEquals("wsrp_rewrite?wsrp-urlType=render&wsrp-navigationalState=rO0ABXNyACdvcmcuamJvc3MucG9ydGFsLnNl" +
+ "cnZlci51dGlsLlBhcmFtZXRlcnOJoAlMQZGhngIAAUwAA21hcHQAD0xqYXZhL3V0aWwvTWFwO3hwc3IAEWphdmEudXRpbC5IYXNoTWFwBQ" +
+ "fawcMWYNEDAAJGAApsb2FkRmFjdG9ySQAJdGhyZXNob2xkeHA_QAAAAAAADHcIAAAAEAAAAAF0AARuYW1ldXIAE1tMamF2YS5sYW5nLlN0" +
+ "cmluZzut0lbn6R17RwIAAHhwAAAAAXQABkp1bGllbng*/wsrp_rewrite", link.getURLAsString());
+ assertEquals("wsrp_rewrite?wsrp-urlType=blockingAction&wsrp-interactionState=rO0ABXNyACdvcmcuamJvc3MucG9yd" +
+ "GFsLnNlcnZlci51dGlsLlBhcmFtZXRlcnOJoAlMQZGhngIAAUwAA21hcHQAD0xqYXZhL3V0aWwvTWFwO3hwc3IAEWphdmEudXRpbC5IYXN" +
+ "oTWFwBQfawcMWYNEDAAJGAApsb2FkRmFjdG9ySQAJdGhyZXNob2xkeHA_QAAAAAAADHcIAAAAEAAAAAF0AAJvcHVyABNbTGphdmEubGFuZ" +
+ "y5TdHJpbmc7rdJW5-kde0cCAAB4cAAAAAF0AAIrK3g*/wsrp_rewrite", links[2].getURLAsString());
+
+ String url = "wsrp_rewrite?wsrp-urlType=render&wsrp-mode=help/wsrp_rewrite";
+ markup = "12345href='" + url + "'76";
+ links = URLTools.extractURLsFrom(markup);
+ link = links[0];
+ int startIndex = 11;
+ assertEquals(startIndex, link.getStart());
+ assertEquals(url.length() + startIndex, link.getEnd());
+ assertEquals(url, markup.substring(link.getStart(), link.getEnd()));
+ assertEquals(url, link.getURLAsString());
+ }
+
+ public void testReplaceURLs()
+ {
+ String markup = URLTools.replaceURLsBy(MARKUP, new String[]{"foo", "bar", "baz", "buz"});
+ String replaced = "Hello, Anonymous!\nCounter: 0<a href='foo'>My name is Julien</a><a href='bar'>My name is Roy</a>" +
+ "<action='baz'>counter++</a><a href='buz'>counter--</a>";
+ assertEquals(replaced, markup);
+ assertEquals(replaced, URLTools.replaceURLsBy(replaced, (String[])null));
+
+ String mixed = "<a href='wsrp_rewrite?wsrp-urlType=render&wsrp-mode=help/wsrp_rewrite'>My name is Julien</a>" +
+ "<a href='bar'>My name is Roy</a>";
+ assertEquals("<a href='foo'>My name is Julien</a><a href='bar'>My name is Roy</a>",
+ URLTools.replaceURLsBy(mixed, new URLTools.URLReplacementGenerator()
+ {
+ public String getReplacementFor(int currentIndex, URLTools.URLMatch currentMatch)
+ {
+ String urlAsString = currentMatch.getURLAsString();
+ if (urlAsString.startsWith("wsrp_rewrite"))
+ {
+ return "foo";
+ }
+ return urlAsString;
+ }
+ }));
+ }
+
+ public void testReplaceAllPorts()
+ {
+ String original = "<wsdl:definitions targetNamespace='urn:oasis:names:tc:wsrp:v1:wsdl'\n" +
+ " xmlns:bind='urn:oasis:names:tc:wsrp:v1:bind'\n" +
+ " xmlns='http://schemas.xmlsoap.org/wsdl/'\n" +
+ " xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'\n" +
+ " xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'\n" +
+ " xmlns:intf='urn:oasis:names:tc:wsrp:v1:intf'\n" +
+ " xmlns:tns='urn:oasis:names:tc:wsrp:v1:wsdl'>\n" +
+ " <import namespace='urn:oasis:names:tc:wsrp:v1:bind' location='wsrp_v1_bindings.wsdl'/>\n" +
+ " <wsdl:service name='WSRPService'>\n" +
+ " <wsdl:port binding='bind:WSRP_v1_Markup_Binding_SOAP' name='WSRPBaseService'>\n" +
+ " <soap:address location='http://localhost/portal-wsrp/ServiceDescriptionService'/>\n" +
+ " </wsdl:port>\n" +
+ " <wsdl:port binding='bind:WSRP_v1_ServiceDescription_Binding_SOAP' name='WSRPServiceDescriptionService'>\n" +
+ " <soap:address location='http://localhost/portal-wsrp/MarkupService'/>\n" +
+ " </wsdl:port>\n" +
+ " <wsdl:port binding='bind:WSRP_v1_Registration_Binding_SOAP' name='WSRPRegistrationService'>\n" +
+ " <soap:address location='http://localhost/portal-wsrp/RegistrationService'/>\n" +
+ " </wsdl:port>\n" +
+ " <wsdl:port binding='bind:WSRP_v1_PortletManagement_Binding_SOAP' name='WSRPPortletManagementService'>\n" +
+ " <soap:address location='http://localhost/portal-wsrp/PortletManagementService'/>\n" +
+ " </wsdl:port>\n" +
+ " </wsdl:service>\n" +
+ "</wsdl:definitions>";
+ String result = "<wsdl:definitions targetNamespace='urn:oasis:names:tc:wsrp:v1:wsdl'\n" +
+ " xmlns:bind='urn:oasis:names:tc:wsrp:v1:bind'\n" +
+ " xmlns='http://schemas.xmlsoap.org/wsdl/'\n" +
+ " xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'\n" +
+ " xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'\n" +
+ " xmlns:intf='urn:oasis:names:tc:wsrp:v1:intf'\n" +
+ " xmlns:tns='urn:oasis:names:tc:wsrp:v1:wsdl'>\n" +
+ " <import namespace='urn:oasis:names:tc:wsrp:v1:bind' location='wsrp_v1_bindings.wsdl'/>\n" +
+ " <wsdl:service name='WSRPService'>\n" +
+ " <wsdl:port binding='bind:WSRP_v1_Markup_Binding_SOAP' name='WSRPBaseService'>\n" +
+ " <soap:address location='http://localhost:8888/portal-wsrp/ServiceDescriptionService'/>\n" +
+ " </wsdl:port>\n" +
+ " <wsdl:port binding='bind:WSRP_v1_ServiceDescription_Binding_SOAP' name='WSRPServiceDescriptionService'>\n" +
+ " <soap:address location='http://localhost:8888/portal-wsrp/MarkupService'/>\n" +
+ " </wsdl:port>\n" +
+ " <wsdl:port binding='bind:WSRP_v1_Registration_Binding_SOAP' name='WSRPRegistrationService'>\n" +
+ " <soap:address location='http://localhost:8888/portal-wsrp/RegistrationService'/>\n" +
+ " </wsdl:port>\n" +
+ " <wsdl:port binding='bind:WSRP_v1_PortletManagement_Binding_SOAP' name='WSRPPortletManagementService'>\n" +
+ " <soap:address location='http://localhost:8888/portal-wsrp/PortletManagementService'/>\n" +
+ " </wsdl:port>\n" +
+ " </wsdl:service>\n" +
+ "</wsdl:definitions>";
+
+ assertEquals(result, URLTools.replaceURLsBy(original, new URLTools.PortReplacementGenerator(8888)));
+ }
+
+ public void testReplaceServerPort()
+ {
+ assertEquals("http://hostname:8088/some/path", URLTools.replaceServerPortInURL("http://hostname:8080/some/path", 8088));
+ assertEquals("https://hostname:8088/some/path", URLTools.replaceServerPortInURL("https://hostname:8080/some/path", 8088));
+ assertEquals("http://hostname:8088/some/path", URLTools.replaceServerPortInURL("http://hostname/some/path", 8088));
+ assertEquals("https://hostname:8088/some/path", URLTools.replaceServerPortInURL("https://hostname/some/path", 8088));
+ }
+
+ public void testExistsURL()
+ {
+ // todo: add more tests
+ assertFalse(URLTools.exists(null, true));
+ }
+}
Property changes on: trunk/common/src/main/org/jboss/portal/test/common/net/URLToolsTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Modified: trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -30,7 +30,6 @@
import java.io.StringWriter;
import java.net.URL;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
@@ -56,7 +55,7 @@
import org.jboss.portal.api.node.PortalNodeURL;
import org.jboss.portal.common.p3p.P3PConstants;
import org.jboss.portal.common.util.Tools;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.common.util.ConversionException;
import org.jboss.portal.common.i18n.LocaleFormat;
import org.jboss.portal.common.i18n.LocaleManager;
Modified: trunk/core/src/main/org/jboss/portal/test/core/deployment/JBossApplicationMetaDataFactoryTestCase.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/test/core/deployment/JBossApplicationMetaDataFactoryTestCase.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/core/src/main/org/jboss/portal/test/core/deployment/JBossApplicationMetaDataFactoryTestCase.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -24,7 +24,7 @@
package org.jboss.portal.test.core.deployment;
import junit.framework.TestCase;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.core.deployment.JBossApplicationMetaDataFactory;
import org.jboss.portal.core.metadata.portlet.HeaderContentMetaData;
import org.jboss.portal.core.metadata.portlet.JBossApplicationMetaData;
Modified: trunk/core/src/main/org/jboss/portlet/JBossActionResponse.java
===================================================================
--- trunk/core/src/main/org/jboss/portlet/JBossActionResponse.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/core/src/main/org/jboss/portlet/JBossActionResponse.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -25,7 +25,7 @@
import org.jboss.portal.api.node.PortalNode;
import org.jboss.portal.api.node.PortalNodeURL;
import org.jboss.portal.api.PortalRuntimeContext;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.core.aspects.controller.node.Navigation;
import org.jboss.portal.core.controller.portlet.SignOutResponse;
import org.jboss.portal.portlet.impl.jsr168.api.ActionResponseImpl;
Modified: trunk/jems/src/main/org/jboss/portal/jems/hibernate/SessionFactoryBinder.java
===================================================================
--- trunk/jems/src/main/org/jboss/portal/jems/hibernate/SessionFactoryBinder.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/jems/src/main/org/jboss/portal/jems/hibernate/SessionFactoryBinder.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -35,7 +35,7 @@
import org.hibernate.tool.hbm2ddl.SchemaUpdate;
import org.jboss.portal.common.util.CLResourceLoader;
import org.jboss.portal.common.util.LoaderResource;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.common.io.IOTools;
import org.jboss.portal.jems.as.system.AbstractJBossService;
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/ActionResponseImpl.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/ActionResponseImpl.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/api/ActionResponseImpl.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -24,7 +24,7 @@
import org.apache.log4j.Logger;
import org.jboss.portal.Mode;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.portlet.PortletParametersStateString;
import org.jboss.portal.portlet.impl.jsr168.PortletUtils;
import org.jboss.portal.portlet.invocation.ActionInvocation;
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortletInvocationContext.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortletInvocationContext.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/impl/spi/AbstractPortletInvocationContext.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -23,7 +23,7 @@
package org.jboss.portal.portlet.impl.spi;
import org.jboss.portal.common.invocation.AbstractInvocationContext;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.common.util.MarkupInfo;
import org.jboss.portal.portlet.spi.PortletInvocationContext;
import org.jboss.portal.portlet.StateString;
Modified: trunk/portlet/src/main/org/jboss/portal/test/portlet/deployment/UnmarshallerTestCase.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/test/portlet/deployment/UnmarshallerTestCase.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/portlet/src/main/org/jboss/portal/test/portlet/deployment/UnmarshallerTestCase.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -24,8 +24,7 @@
import junit.framework.TestCase;
import org.jboss.portal.common.transaction.Transactions;
-import org.jboss.portal.common.util.CollectionBuilder;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.portlet.TransportGuarantee;
import org.jboss.portal.portlet.deployment.JBossApplicationMetaDataFactory;
import org.jboss.portal.portlet.deployment.PortletApplicationMetaDataFactory;
@@ -37,7 +36,6 @@
import org.jboss.portal.portlet.impl.jsr168.metadata.UserAttributeMetaData;
import org.jboss.portal.portlet.metadata.JBossApplicationMetaData;
import org.jboss.portal.portlet.metadata.JBossPortletMetaData;
-import org.jboss.portal.portlet.metadata.PolicyPermissionMetaData;
import org.jboss.xb.binding.Unmarshaller;
import org.jboss.xb.binding.UnmarshallerFactory;
Modified: trunk/portlet-server/src/main/org/jboss/portal/portlet/test/PortletController.java
===================================================================
--- trunk/portlet-server/src/main/org/jboss/portal/portlet/test/PortletController.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/portlet-server/src/main/org/jboss/portal/portlet/test/PortletController.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -31,7 +31,7 @@
import org.jboss.portal.common.invocation.Scope;
import org.jboss.portal.common.invocation.resolver.MapAttributeResolver;
import org.jboss.portal.common.util.Tools;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.common.util.MarkupInfo;
import org.jboss.portal.portlet.ActionURL;
import org.jboss.portal.portlet.PortletParameters;
Modified: trunk/server/src/main/org/jboss/portal/server/deployment/jboss/ServerDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/portal/server/deployment/jboss/ServerDeployer.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/server/src/main/org/jboss/portal/server/deployment/jboss/ServerDeployer.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -27,7 +27,7 @@
import org.jboss.deployment.DeploymentInfo;
import org.jboss.deployment.SubDeployerSupport;
import org.jboss.mx.loading.RepositoryClassLoader;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.common.net.URLFilter;
import org.jboss.portal.server.Server;
import org.jboss.portal.server.deployment.PortalWebApp;
Modified: trunk/server/src/main/org/jboss/portal/server/servlet/PortalServlet.java
===================================================================
--- trunk/server/src/main/org/jboss/portal/server/servlet/PortalServlet.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/server/src/main/org/jboss/portal/server/servlet/PortalServlet.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -28,7 +28,7 @@
import org.jboss.portal.common.invocation.InterceptorStackFactory;
import org.jboss.portal.common.invocation.InvocationException;
import org.jboss.portal.common.util.Exceptions;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.common.http.QueryStringParser;
import org.jboss.portal.server.PortalConstants;
import org.jboss.portal.server.RequestControllerDispatcher;
Modified: trunk/widget/src/main/org/jboss/portal/widget/google/provider/GGQueryResultBuilder.java
===================================================================
--- trunk/widget/src/main/org/jboss/portal/widget/google/provider/GGQueryResultBuilder.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/widget/src/main/org/jboss/portal/widget/google/provider/GGQueryResultBuilder.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -22,7 +22,7 @@
******************************************************************************/
package org.jboss.portal.widget.google.provider;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.HTML;
Modified: trunk/widget/src/main/org/jboss/portal/widget/google/provider/GGWidgetBuilder.java
===================================================================
--- trunk/widget/src/main/org/jboss/portal/widget/google/provider/GGWidgetBuilder.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/widget/src/main/org/jboss/portal/widget/google/provider/GGWidgetBuilder.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -24,7 +24,7 @@
import org.jboss.portal.common.util.XML;
import org.jboss.portal.common.i18n.LocalizedString;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.common.concurrent.loader.ObjectLoader;
import org.jboss.portal.widget.google.type.DataType;
import org.jboss.portal.widget.google.type.StringType;
Modified: trunk/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/RenderHandlerTestCase.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/RenderHandlerTestCase.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/RenderHandlerTestCase.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -24,7 +24,7 @@
package org.jboss.portal.test.wsrp.consumer;
import junit.framework.TestCase;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.wsrp.consumer.RenderHandler;
/**
Modified: trunk/wsrp/src/main/org/jboss/portal/wsrp/WSRPResourceURL.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/WSRPResourceURL.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/WSRPResourceURL.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -27,7 +27,7 @@
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
import org.jboss.portal.common.util.MediaType;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import javax.activation.MimeTypeParseException;
import java.net.MalformedURLException;
Modified: trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/RenderHandler.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/RenderHandler.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/RenderHandler.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -24,7 +24,7 @@
package org.jboss.portal.wsrp.consumer;
import org.jboss.portal.common.util.Tools;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.invocation.response.ErrorResponse;
import org.jboss.portal.portlet.invocation.response.FragmentResponse;
Modified: trunk/wsrp/src/main/org/jboss/portal/wsrp/invocation/WSRPPortletInvocationContext.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/invocation/WSRPPortletInvocationContext.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/invocation/WSRPPortletInvocationContext.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -25,7 +25,7 @@
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
import org.jboss.portal.common.invocation.EmptyAttributeResolver;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.common.util.MarkupInfo;
import org.jboss.portal.portlet.PortletURL;
import org.jboss.portal.portlet.StateString;
Modified: trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/config/impl/ProducerConfigurationServiceImpl.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/config/impl/ProducerConfigurationServiceImpl.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/config/impl/ProducerConfigurationServiceImpl.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -23,7 +23,7 @@
package org.jboss.portal.wsrp.producer.config.impl;
-import org.jboss.portal.common.util.URLTools;
+import org.jboss.portal.common.net.URLTools;
import org.jboss.portal.jems.as.system.AbstractJBossService;
import org.jboss.portal.wsrp.producer.config.ProducerConfiguration;
import org.jboss.portal.wsrp.producer.config.ProducerConfigurationFactory;
Modified: trunk/wsrp/src/main/org/jboss/portal/wsrp/services/RemoteSOAPInvokerServiceFactory.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/services/RemoteSOAPInvokerServiceFactory.java 2007-06-03 19:40:18 UTC (rev 7378)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/services/RemoteSOAPInvokerServiceFactory.java 2007-06-03 19:44:21 UTC (rev 7379)
@@ -25,7 +25,7 @@
import org.jboss.logging.Logger;
import org.jboss.portal.common.util.ParameterValidation;
-import org.jboss.portal.common.util.URLStreamOpeningThread;
+import org.jboss.portal.common.net.URLStreamOpeningThread;
import org.jboss.portal.common.io.IOTools;
import org.xml.sax.InputSource;
18 years, 11 months
JBoss Portal SVN: r7378 - trunk/common/src/main/org/jboss/portal/common/util.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-06-03 15:40:18 -0400 (Sun, 03 Jun 2007)
New Revision: 7378
Modified:
trunk/common/src/main/org/jboss/portal/common/util/URLStreamOpeningThread.java
Log:
thread safe
Modified: trunk/common/src/main/org/jboss/portal/common/util/URLStreamOpeningThread.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/util/URLStreamOpeningThread.java 2007-06-03 19:34:48 UTC (rev 7377)
+++ trunk/common/src/main/org/jboss/portal/common/util/URLStreamOpeningThread.java 2007-06-03 19:40:18 UTC (rev 7378)
@@ -22,7 +22,6 @@
package org.jboss.portal.common.util;
-
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
@@ -37,30 +36,38 @@
*/
public class URLStreamOpeningThread extends Thread
{
- volatile private URL url;
- /** */
- private InputStream inputStream;
+ /** . */
+ private final URL url;
+ /** . */
+ private volatile InputStream inputStream;
+
/** Exception in the event a connection error occurs */
- private IOException exception = null;
+ private volatile IOException exception;
public URLStreamOpeningThread(URL url)
{
ParameterValidation.throwIllegalArgExceptionIfNull(url, "URL");
+ //
this.url = url;
+ this.inputStream = null;
+ this.exception = null;
}
public void run()
{
try
{
- inputStream = url.openStream();
- if (inputStream == null)
+ InputStream in = url.openStream();
+ if (in == null)
{
throw new IllegalArgumentException("Cannot open stream from [" + url + "]");
}
+
+ //
+ inputStream = in;
}
catch (IOException e)
{
18 years, 11 months