portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dlest...@apache.org
Subject svn commit: r209328 [1/14] - in /portals/jetspeed-2/trunk/components/portal: src/ src/java/ src/java/org/ src/java/org/apache/ src/java/org/apache/jetspeed/ src/java/org/apache/jetspeed/aggregator/ src/java/org/apache/jetspeed/aggregator/impl/ src/java...
Date Tue, 05 Jul 2005 21:55:50 GMT
Author: dlestrat
Date: Tue Jul  5 14:55:37 2005
New Revision: 209328

URL: http://svn.apache.org/viewcvs?rev=209328&view=rev
Log:
http://issues.apache.org/jira/browse/JS2-304

Added:
    portals/jetspeed-2/trunk/components/portal/src/
    portals/jetspeed-2/trunk/components/portal/src/java/
    portals/jetspeed-2/trunk/components/portal/src/java/.cvsignore
    portals/jetspeed-2/trunk/components/portal/src/java/TEMP.xml
    portals/jetspeed-2/trunk/components/portal/src/java/commons-logging.properties
    portals/jetspeed-2/trunk/components/portal/src/java/org/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/Jetspeed.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/JetspeedPortalContext.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/PortalContext.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/AggregatorValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/PortletValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/BasicAggregator.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/ContentDispatcherImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HttpBufferedResponse.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletContentImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/RenderingJob.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/Worker.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/WorkerMonitor.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/ajax/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/ajax/AJAXFilter.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/ajax/AJAXRequestImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/ajax/AJAXResponseImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/ajax/AJAXServiceImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/ajax/AJAXValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/capabilities/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/capabilities/impl/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/capabilities/impl/CapabilityValveImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/ContainerValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/JetspeedPortletContainerWrapper.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/PortletContainerWrapper.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/invoker/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/invoker/JetspeedPortletInvoker.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/invoker/LocalPortletInvoker.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/invoker/PortletInvokerFactoryImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/invoker/ServletPortletInvoker.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/namespace/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/namespace/JetspeedNamespaceMapper.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/namespace/JetspeedNamespaceMapperFactory.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/namespace/JetspeedNamespaceMapperFactoryImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/namespace/JetspeedNamespaceMapperImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/services/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/services/log/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/services/log/ContainerLoggerAdaptor.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/services/log/PlutoLogService.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/AbstractNavigationalState.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/JetspeedNavigationalStateCodec.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/JetspeedNavigationalStateComponent.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/NavigationalStateCodec.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/PathNavigationalState.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/PortletWindowBaseNavigationalState.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/PortletWindowExtendedNavigationalState.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/PortletWindowRequestNavigationalState.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/PortletWindowRequestNavigationalStates.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/PortletWindowSessionNavigationalStates.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/SessionFullNavigationalState.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/state/impl/SessionNavigationalState.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/url/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/url/impl/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/url/impl/AbstractPortalURL.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/url/impl/JetspeedPortletURL.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/url/impl/PathInfoEncodingPortalURL.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/url/impl/PortalURLValveImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/url/impl/PortletURLFactoryImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/url/impl/QueryStringEncodingPortalURL.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/window/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/window/impl/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/container/window/impl/PortletWindowAccessorImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/impl/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/impl/DeployDecoratorEventListener.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/impl/DeployPortletAppEventListener.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/impl/DeploymentEventImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/impl/FileNotDeployableException.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/impl/JarExpander.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/impl/StandardDeploymentManager.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/impl/StandardDeploymentObject.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/simpleregistry/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/simpleregistry/Entry.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/simpleregistry/SimpleRegistry.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/simpleregistry/SimpleRegistryException.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/simpleregistry/impl/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/deployment/simpleregistry/impl/InMemoryRegistryImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/AbstractEngine.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/Engine.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedEngineConstants.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedServlet.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/SpringEngine.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/core/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/core/PortalContextImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/core/PortalContextProviderImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/core/PortletActionProviderImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/HttpSessionWrapper.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/NamespaceEncodedSession.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/ServletHelper.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/ServletObjectAccess.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/ServletRequestFactory.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/ServletRequestFactoryImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/ServletRequestImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/ServletResponseFactory.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/ServletResponseFactoryImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/ServletResponseImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/localization/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/localization/impl/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/localization/impl/LocalizationValveImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/login/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/login/LoginErrorServlet.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/login/LoginProxyServlet.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/login/LoginRedirectorServlet.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/login/LoginServlet.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/login/LogoutServlet.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/manager/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/manager/ManagerServlet.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/JetspeedPipeline.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/Pipeline.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/PipelineException.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/AbstractValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/ActionValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/AggregateValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/CapabilityValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/CleanupValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/ContainerValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/ContentValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/LayoutValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/LocalizationValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/LoginValidationValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/PageProfilerValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/PasswordCredentialValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/SecurityValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/UserProfilerValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/Valve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/ValveContext.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/impl/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/impl/ActionValveImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/impl/CleanupValveImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/impl/VerySimpleLayoutValveImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/profiler/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/profiler/impl/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/request/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/request/JetspeedRequestContext.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/request/JetspeedRequestContextComponent.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/security/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/security/impl/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/security/impl/AbstractSecurityValve.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/security/impl/LoginValidationValveImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/security/impl/PasswordCredentialValveImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/security/impl/SecurityValveImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/services/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/services/information/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/services/information/DynamicInformationProviderImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/services/information/InformationProviderServiceImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/services/information/PortletURLProviderImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/services/information/ResourceURLProviderImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/services/information/StaticInformationProviderImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/services/title/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/services/title/DynamicTitleServiceImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/PortletApplicationException.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/rules/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/rules/JetspeedServiceRule.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/rules/JetspeedServicesRuleSet.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/rules/LocalizedFieldRule.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/rules/MetadataRuleSet.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/rules/PortletRule.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/rules/UserAttributeRefRule.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/rules/UserAttributeRefRuleSet.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/servletcontainer/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/servletcontainer/JBossManager.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/servletcontainer/TomcatManager.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/servletcontainer/WeblogicManager.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/userinfo/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/userinfo/UserInfoManager.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/userinfo/impl/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/userinfo/impl/AbstractUserInfoManagerImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/userinfo/impl/UserInfoManagerImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/CloneUtil.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/DirectoryUtils.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/IsolatedLog4JLogger.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/MimeType.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/descriptor/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/descriptor/ExtendedPortletMetadata.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/descriptor/MetaDataException.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/descriptor/PortletApplicationDescriptor.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/descriptor/PortletApplicationRule.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/descriptor/PortletApplicationRuleSet.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/descriptor/PortletApplicationWar.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/descriptor/PortletPreferenceRule.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/descriptor/PortletPreferenceRuleSet.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/descriptor/PortletRule.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/descriptor/WebApplicationDescriptor.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/descriptor/web-app_2_2.dtd
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/descriptor/web-app_2_3.dtd
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/DecoratorAction.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/HtmlUtilTool.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerTool.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerToolFactory.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/PageActionAccess.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/RemoteContentTool.java
    portals/jetspeed-2/trunk/components/portal/src/test/
    portals/jetspeed-2/trunk/components/portal/src/test/org/
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/AbstractPortalContainerTestCase.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/PortalTestConstants.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/aggregator/
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/aggregator/TestAggregator.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/aggregator/TestRenderer.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/container/
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/container/TestPortletContainer.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/container/state/
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/container/state/TestNavigationalState.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/deployment/
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/deployment/TestSimpleDeployment.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/engine/
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/engine/AbstractEngineTest.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/engine/TestSpringEngine.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/pipeline/
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/pipeline/TestPipeline.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/test/
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/test/JetspeedTest.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/test/JetspeedTestSuite.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/tools/
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/tools/TestWebXML.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/tools/pamanager/
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/tools/pamanager/TestJetspeedPortletDescriptor.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/tools/pamanager/TestPortletDescriptor.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/tools/pamanager/TestPortletDescriptorSecurityRoles.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/userinfo/
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/userinfo/TestUserInfoManager.java
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/userinfo/user-info.xml
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/window/
    portals/jetspeed-2/trunk/components/portal/src/test/org/apache/jetspeed/window/TestWindows.java
    portals/jetspeed-2/trunk/components/portal/test/
    portals/jetspeed-2/trunk/components/portal/test/assembly/
    portals/jetspeed-2/trunk/components/portal/test/assembly/TestCastorXmlPageManager.groovy
    portals/jetspeed-2/trunk/components/portal/test/assembly/TestDatabasePageManager.groovy
    portals/jetspeed-2/trunk/components/portal/test/deployment/
    portals/jetspeed-2/trunk/components/portal/test/deployment/.cvsignore
    portals/jetspeed-2/trunk/components/portal/test/deployment/deploy/
    portals/jetspeed-2/trunk/components/portal/test/deployment/deploy/README.txt
    portals/jetspeed-2/trunk/components/portal/test/deployment/deploy/demo.war   (with props)
    portals/jetspeed-2/trunk/components/portal/test/deployment/deploy/jetspeed-layouts.war   (with props)
    portals/jetspeed-2/trunk/components/portal/test/deployment/deploy/portletstd.jar   (with props)
    portals/jetspeed-2/trunk/components/portal/test/deployment/deploy/security-app/
    portals/jetspeed-2/trunk/components/portal/test/deployment/deploy/security-app/WEB-INF/
    portals/jetspeed-2/trunk/components/portal/test/deployment/deploy/security-app/WEB-INF/portlet.xml
    portals/jetspeed-2/trunk/components/portal/test/deployment/deploy/security-app/WEB-INF/web.xml
    portals/jetspeed-2/trunk/components/portal/test/deployment/redeploy/
    portals/jetspeed-2/trunk/components/portal/test/deployment/redeploy/demo.war   (with props)
    portals/jetspeed-2/trunk/components/portal/test/deployment/webapps/
    portals/jetspeed-2/trunk/components/portal/test/deployment/webapps/.cvsignore
    portals/jetspeed-2/trunk/components/portal/test/jetspeed.jmx
    portals/jetspeed-2/trunk/components/portal/test/testdata/
    portals/jetspeed-2/trunk/components/portal/test/testdata/deploy/
    portals/jetspeed-2/trunk/components/portal/test/testdata/deploy/jetspeed-portlet.xml
    portals/jetspeed-2/trunk/components/portal/test/testdata/deploy/layout-portlets/
    portals/jetspeed-2/trunk/components/portal/test/testdata/deploy/layout-portlets/portlet.xml
    portals/jetspeed-2/trunk/components/portal/test/testdata/deploy/portlet.xml
    portals/jetspeed-2/trunk/components/portal/test/testdata/deploy/portlet2.xml
    portals/jetspeed-2/trunk/components/portal/test/testdata/deploy/security-roles/
    portals/jetspeed-2/trunk/components/portal/test/testdata/deploy/security-roles/portlet.xml
    portals/jetspeed-2/trunk/components/portal/test/testdata/deploy/security-roles/web.xml
    portals/jetspeed-2/trunk/components/portal/test/testdata/deploy/web.xml
    portals/jetspeed-2/trunk/components/portal/test/testdata/deploy/webapp/
    portals/jetspeed-2/trunk/components/portal/test/testdata/deploy/webapp/WEB-INF/
    portals/jetspeed-2/trunk/components/portal/test/testdata/deploy/webapp/WEB-INF/portlet.xml
    portals/jetspeed-2/trunk/components/portal/test/testdata/deploy/webapp/WEB-INF/web.xml

Added: portals/jetspeed-2/trunk/components/portal/src/java/.cvsignore
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/.cvsignore?rev=209328&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/.cvsignore (added)
+++ portals/jetspeed-2/trunk/components/portal/src/java/.cvsignore Tue Jul  5 14:55:37 2005
@@ -0,0 +1,2 @@
+repository_registry.xml
+repository_security.xml

Added: portals/jetspeed-2/trunk/components/portal/src/java/TEMP.xml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/TEMP.xml?rev=209328&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/TEMP.xml (added)
+++ portals/jetspeed-2/trunk/components/portal/src/java/TEMP.xml Tue Jul  5 14:55:37 2005
@@ -0,0 +1,123 @@
+<!--
+Copyright 2004 The Apache Software Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<!--
+   - P A G E
+-->	
+ 
+<class-descriptor
+    class="org.apache.jetspeed.om.page.impl.PageImpl"
+    table="PAGE"
+>     
+    <field-descriptor
+     name="id"
+     column="ID"
+     jdbc-type="VARCHAR"
+     primarykey="true"
+     autoincrement="false"         
+    />
+    <field-descriptor
+     name="title"
+     column="TITLE"
+     jdbc-type="VARCHAR"
+    />
+    <field-descriptor
+     name="defaultSkin"
+     column="DEFAULT_SKIN"
+     jdbc-type="VARCHAR"
+    />
+    <field-descriptor
+     name="defaultDecorator"
+     column="DEFAULT_DECORATOR"
+     jdbc-type="VARCHAR"
+    /> 
+    <field-descriptor
+     name="defaultPortletDecorator"
+     column="DEFAULT_PORTLET_DECORATOR"
+     jdbc-type="VARCHAR"
+    /> 
+    <field-descriptor
+     name="acl"
+     column="ACL"
+     jdbc-type="VARCHAR"
+    />              
+    <collection-descriptor
+      name="pageFragments" 
+      element-class-ref="org.apache.jetspeed.om.page.impl.FragmentImpl" 
+      indirection-table="PAGE_FRAGMENTS">
+      <fk-pointing-to-this-class column="PAGE_ID"/>
+      <fk-pointing-to-element-class column="FRAGMENT_ID"/>
+    </collection-descriptor>              
+</class-descriptor>
+   
+<!--
+   - F R A G M E N T
+-->	
+ 
+<class-descriptor
+   	  class="org.apache.jetspeed.om.page.impl.FragmentImpl"
+   	  table="FRAGMENT"
+>     
+    <field-descriptor
+     name="id"
+     column="ID"
+     jdbc-type="VARCHAR"
+     primarykey="true"
+     autoincrement="false"         
+    />
+    <field-descriptor
+     name="title"
+     column="TITLE"
+     jdbc-type="VARCHAR"
+    />
+    <field-descriptor
+     name="component"
+     column="Component"
+     jdbc-type="VARCHAR"
+    />
+    <field-descriptor
+     name="Skin"
+     column="SKIN"
+     jdbc-type="VARCHAR"
+    />
+    <field-descriptor
+     name="decorator"
+     column="DECORATOR"
+     jdbc-type="VARCHAR"
+    /> 
+    <field-descriptor
+     name="acl"
+     column="ACL"
+     jdbc-type="VARCHAR"
+    />              
+    <field-descriptor
+     name="type"
+     column="TYPE"
+     jdbc-type="VARCHAR"
+    />              
+    <field-descriptor
+     name="state"
+     column="STATE"
+     jdbc-type="VARCHAR"
+    />              
+    
+    <collection-descriptor
+      name="subFragments" 
+      element-class-ref="org.apache.jetspeed.om.page.impl.FragmentImpl" 
+      indirection-table="FRAGMENTS">
+      <fk-pointing-to-this-class column="FRAGMENT_ID"/>
+      <fk-pointing-to-element-class column="SUB_FRAGMENT_ID"/>
+    </collection-descriptor>              
+</class-descriptor>

Added: portals/jetspeed-2/trunk/components/portal/src/java/commons-logging.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/commons-logging.properties?rev=209328&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/commons-logging.properties (added)
+++ portals/jetspeed-2/trunk/components/portal/src/java/commons-logging.properties Tue Jul  5 14:55:37 2005
@@ -0,0 +1 @@
+org.apache.commons.logging.Log=org.apache.jetspeed.util.IsolatedLog4JLogger
\ No newline at end of file

Added: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/Jetspeed.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/Jetspeed.java?rev=209328&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/Jetspeed.java (added)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/Jetspeed.java Tue Jul  5 14:55:37 2005
@@ -0,0 +1,141 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed;
+
+import java.util.Locale;
+
+import javax.servlet.ServletConfig;
+
+import org.apache.commons.configuration.Configuration;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.components.ComponentManager;
+import org.apache.jetspeed.engine.Engine;
+import org.apache.jetspeed.exception.JetspeedException;
+import org.apache.jetspeed.request.RequestContext;
+
+/**
+ * Jetspeed environment
+ * <br/>
+ * Provides an easy way to access the current running environment 
+ * of jetspeed.
+ *
+ * @author <a href="mailto:david@bluesunrise.com">David Sean Taylor</a>
+ * @version $Id: Jetspeed.java 187280 2004-08-17 05:53:37Z taylor $
+ */
+public class Jetspeed
+{
+    private static Engine engine = null;
+    private static final Log log = LogFactory.getLog(Jetspeed.class);
+
+    /**
+     * Creates a Jetspeed Engine
+     * 
+     * @param configuration a configuration associated with this Jetspeed instance
+     * @param applicationRoot the root of the servlet application
+     * @param config the servlet configuration, this parameter can be null for unit tests or utilities
+     * @return the newly created Engine
+     * @throws JetspeedException
+     */
+    public static Engine createEngine(Configuration configuration, String applicationRoot, ServletConfig config, Class engineClass)
+        throws JetspeedException
+    {
+        try
+        {
+            synchronized(Jetspeed.class)
+            {
+                if(engine == null)
+                {
+                    log.info("Jetspeed environment attempting to initialize portal Engine...");
+                    engine = (Engine) engineClass.newInstance();
+                    engine.init(configuration, applicationRoot, config);
+                    log.info("JetspeedEngine successfuly intialized.");
+                    log.info("Jetspeed environment successfuly intialized.");
+                }
+                return engine;
+            }
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+            String msg = "Unable to create Engine";
+            log.error(msg, e);
+            throw new JetspeedException(msg, e);
+        }
+    }
+
+    /**
+     * Shuts down the currently running instance of the portal
+     * Engine.
+     * @throws JetspeedException
+     */
+    public static void shutdown() throws JetspeedException
+    {
+        engine.shutdown();
+    }
+
+    public static Engine getEngine()
+    {
+        return engine;
+    }
+
+    public static PortalContext getContext()
+    {
+        if (engine == null)
+        {
+            throw new NullPointerException("The engine is null, have you called createEgine() yet?");
+        }
+        return engine.getContext();
+    }
+
+    /**
+     * Given a application relative path, returns the real path relative to the application root
+     *
+     */
+    public static String getRealPath(String path)
+    {
+        if (engine == null)
+        {
+            return null;
+        }
+        return engine.getRealPath(path);
+    }
+
+    /**
+     * Delegtes to the current Engine to retreive the RequestContext
+     * appropriate for the current thread.
+     * 
+     * @see org.apache.jetspeed.engine.Engine#getCurrentRequestContext()
+     * 
+     * @return The RequestContext for this current Thread.
+     */
+    public static RequestContext getCurrentRequestContext()
+    {
+        return engine.getCurrentRequestContext();
+    }
+
+    // TODO We need to get this from the Engine and the engine should get it from the configuration. 
+
+    public static Locale getDefaultLocale()
+    {
+        return Locale.getDefault();
+    }
+
+    public static ComponentManager getComponentManager()
+    {
+        return engine.getComponentManager();
+    }
+}
\ No newline at end of file

Added: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/JetspeedPortalContext.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/JetspeedPortalContext.java?rev=209328&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/JetspeedPortalContext.java (added)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/JetspeedPortalContext.java Tue Jul  5 14:55:37 2005
@@ -0,0 +1,209 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed;
+
+import java.util.Enumeration;
+import java.util.HashMap;
+import org.apache.commons.configuration.Configuration;
+import org.apache.jetspeed.engine.Engine;
+import org.apache.jetspeed.engine.core.PortalContextProviderImpl;
+import org.apache.pluto.services.information.PortalContextProvider;
+import org.apache.pluto.util.Enumerator;
+
+/**
+ * Implementation of Portal Context associated with running thread of the engine
+ *
+ * @author <a href="mailto:david@bluesunrise.com">David Sean Taylor</a>
+ * @version $Id: JetspeedPortalContext.java 185962 2004-03-08 01:03:33Z jford $
+ */
+public class JetspeedPortalContext implements PortalContext
+{
+    /**
+     * The engine associated with this context.
+     */
+    private Engine engine = null;
+
+    /**
+     * Runtime attributes.
+     */
+    private HashMap attributes = new HashMap();
+
+    /**
+     * Configuration state
+     */
+    private Configuration configuration = null;
+
+    /**
+     * The base from which the Jetspped application will operate.
+     */
+    private String applicationRoot;
+
+
+    public JetspeedPortalContext(Engine engine)
+    {
+        this.engine = engine;
+    }
+
+    private JetspeedPortalContext()
+    {
+    }
+
+    // ------------------------------------------------------------------------
+    //  A C C E S S O R S
+    // ------------------------------------------------------------------------
+
+    /**
+     * Returns the configuration properties for this Jetspeed engine context.
+     *
+     * @return a <code>Configuration</code> containing the configuration properties for this Jetspeed context.
+     */
+    public Configuration getConfiguration()
+    {
+        return configuration;
+    }
+
+    public String getConfigurationProperty(String key)
+    {
+        return configuration.getString(key);
+    }
+
+    public String getConfigurationProperty(String key, String defaultValue)
+    {
+        return configuration.getString(key, defaultValue);
+    }
+
+    /**
+     * Set the configuration properties for this Jetspeed engine context.
+     *
+     * @param configuration - the configuration properties
+     */
+    public void setConfiguration(Configuration configuration)
+    {
+        this.configuration = configuration;
+    }
+
+    /**
+     * Returns the application root for this Jetspeed engine context.
+     *
+     * @return a <code>String</code> containing the application root path for this Jetspeed context.
+     */
+    public String getApplicationRoot()
+    {
+        return applicationRoot;
+    }
+
+    /**
+     * Sets the application root path for this Jetspeed engine context.
+     *
+     * @param applicationRoot - the applicationRoot path on the file system.
+     */
+    public void setApplicationRoot(String applicationRoot)
+    {
+        this.applicationRoot = applicationRoot;
+    }
+
+    /**
+     * Returns the engine associated with this context.
+     *
+     * @return an <code>Engine</code> associated with this context
+     */
+    public Engine getEngine()
+    {
+        return this.engine;
+    }
+
+    /**
+     * Returns the engine attribute with the given name, or null if there is no attribute by that name.
+     *
+     * @return an <code>Object</code> containing the value of the attribute, or null if no attribute exists matching the given name
+     */
+    public Object getAttribute(String name)
+    {
+        return attributes.get(name);
+    }
+
+
+    /**
+     * Binds an object to a given attribute name in this servlet context.
+     *
+     * @param  name - a <code>String</code> specifying the name of the attribute
+     * @param value - an <code>Object</code> representing the attribute to be bound
+     */
+    public void setAttribute(String name, Object value)
+    {
+        attributes.put(name, value);
+    }
+
+    /* (non-Javadoc)
+     * @see javax.portlet.PortalContext#getProperty(java.lang.String)
+     */
+    public String getProperty(String name)
+    {
+        return getPortalContextProvider().getProperty(name);
+    }
+
+    /* (non-Javadoc)
+     * @see javax.portlet.PortalContext#getPropertyNames()
+     */
+    public Enumeration getPropertyNames()
+    {
+        return new Enumerator(getPortalContextProvider().getPropertyNames());
+    }
+
+    /* (non-Javadoc)
+     * @see javax.portlet.PortalContext#getSupportedPortletModes()
+     */
+    public Enumeration getSupportedPortletModes()
+    {
+        return new Enumerator(getPortalContextProvider().getSupportedPortletModes());
+    }
+
+    /* (non-Javadoc)
+     * @see javax.portlet.PortalContext#getSupportedWindowStates()
+     */
+    public Enumeration getSupportedWindowStates()
+    {
+        return new Enumerator(getPortalContextProvider().getSupportedWindowStates());
+    }
+
+    /* (non-Javadoc)
+     * @see javax.portlet.PortalContext#getPortalInfo()
+     */
+    public String getPortalInfo()
+    {
+        return getPortalContextProvider().getPortalInfo();
+    }
+
+    /**
+     * TODO: need to refactor context provider, move implementation directly into here since it comes back here anyway
+     * @return
+     */
+    private PortalContextProvider getPortalContextProvider()
+    {
+        javax.servlet.ServletContext context = engine.getServletConfig().getServletContext();
+
+        PortalContextProvider provider =
+            (PortalContextProvider) context.getAttribute("org.apache.jetspeed.engine.core.PortalContextProvider");
+
+        if (provider == null)
+        {
+            provider = new PortalContextProviderImpl();
+            context.setAttribute("org.apache.jetspeed.engine.core.PortalContextProvider", provider);
+        }
+
+        return provider;
+    }
+}
\ No newline at end of file

Added: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/PortalContext.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/PortalContext.java?rev=209328&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/PortalContext.java (added)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/PortalContext.java Tue Jul  5 14:55:37 2005
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed;
+
+import org.apache.commons.configuration.Configuration;
+import org.apache.jetspeed.engine.Engine;
+
+/**
+ * Portal Context associated with running thread of the engine
+ *
+ * @author <a href="mailto:david@bluesunrise.com">David Sean Taylor</a>
+ * @version $Id: PortalContext.java 185962 2004-03-08 01:03:33Z jford $
+ */
+public interface PortalContext extends javax.portlet.PortalContext
+{
+    public Engine getEngine();
+
+    public Configuration getConfiguration();
+    public void setConfiguration(Configuration configuration);
+
+    public String getConfigurationProperty(String key);
+    public String getConfigurationProperty(String key, String defaultValue);
+
+    public void setAttribute(String name, Object value);
+    public Object getAttribute(String name);
+
+    /**
+     * Returns the application root for this Jetspeed engine context.
+     *
+     * @return a <code>String</code> containing the application root path for this Jetspeed context.
+     */
+    public String getApplicationRoot();
+
+    /**
+     * Sets the application root path for this Jetspeed engine context.
+     *
+     * @param applicationRoot - the applicationRoot path on the file system.
+     */
+    public void setApplicationRoot(String applicationRoot);
+
+}

Added: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/AggregatorValve.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/AggregatorValve.java?rev=209328&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/AggregatorValve.java (added)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/AggregatorValve.java Tue Jul  5 14:55:37 2005
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jetspeed.aggregator;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.pipeline.PipelineException;
+import org.apache.jetspeed.pipeline.valve.AbstractValve;
+import org.apache.jetspeed.pipeline.valve.ValveContext;
+import org.apache.jetspeed.request.RequestContext;
+
+/**
+ * Invokes the aggregator service in the request pipeline
+ *
+ * @author <a href="mailto:david@bluesunrise.com">David Sean Taylor</a>
+ * @version $Id: AggregatorValve.java 187179 2004-08-02 19:00:34Z weaver $
+ */
+public class AggregatorValve
+       extends AbstractValve
+{
+    private static final Log log = LogFactory.getLog( AggregatorValve.class );
+    private Aggregator aggregator;
+    
+    public AggregatorValve(Aggregator aggregator)
+    {
+        this.aggregator = aggregator;
+    }
+        
+    public void invoke( RequestContext request, ValveContext context )
+        throws PipelineException
+    {
+        try
+        {
+            aggregator.build(request);
+        }
+        catch (Exception e)
+        {
+            throw new PipelineException(e.toString(), e);
+        }
+        // Pass control to the next Valve in the Pipeline
+        context.invokeNext( request );
+    }
+
+    public String toString()
+    {
+        return "AggregatorValve";
+    }
+}
\ No newline at end of file

Added: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/PortletValve.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/PortletValve.java?rev=209328&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/PortletValve.java (added)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/PortletValve.java Tue Jul  5 14:55:37 2005
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.aggregator;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.pipeline.PipelineException;
+import org.apache.jetspeed.pipeline.valve.AbstractValve;
+import org.apache.jetspeed.pipeline.valve.ValveContext;
+import org.apache.jetspeed.request.RequestContext;
+
+/**
+ * PortletValve
+ *
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @version $Id: PortletValve.java 187179 2004-08-02 19:00:34Z weaver $
+ */
+public class PortletValve extends AbstractValve
+{
+    private static final Log log = LogFactory.getLog( PortletValve.class );
+    private PortletAggregator aggregator;
+    
+    public PortletValve(PortletAggregator aggregator)
+    {
+        this.aggregator = aggregator;
+    }
+        
+    public void invoke( RequestContext request, ValveContext context )
+        throws PipelineException
+    {
+        try
+        {              
+            aggregator.build(request);
+        }
+        catch (Exception e)
+        {
+            throw new PipelineException(e);
+        }
+        // Pass control to the next Valve in the Pipeline
+        context.invokeNext( request );
+    }
+
+    public String toString()
+    {
+        return "PortletValve";
+    }
+}

Added: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/BasicAggregator.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/BasicAggregator.java?rev=209328&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/BasicAggregator.java (added)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/BasicAggregator.java Tue Jul  5 14:55:37 2005
@@ -0,0 +1,149 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.aggregator.impl;
+
+import java.util.Iterator;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.aggregator.Aggregator;
+import org.apache.jetspeed.components.portletregistry.PortletRegistry;
+import org.apache.jetspeed.container.window.PortletWindowAccessor;
+import org.apache.jetspeed.exception.JetspeedException;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.ContentPage;
+import org.apache.jetspeed.request.RequestContext;
+import org.apache.pluto.PortletContainer;
+import org.apache.pluto.om.portlet.PortletDefinition;
+import org.apache.pluto.om.window.PortletWindow;
+
+/**
+ * Basic Aggregator, nothing complicated. 
+ *
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @version $Id: BasicAggregator.java 188558 2005-04-29 14:02:35Z weaver $
+ */
+public class BasicAggregator implements Aggregator
+{
+    private final static Log log = LogFactory.getLog(BasicAggregator.class);
+
+    public final static int STRATEGY_SEQUENTIAL = 0;
+    public final static int STRATEGY_PARALLEL = 1;
+    private int strategy = STRATEGY_SEQUENTIAL;
+    
+    private PortletRegistry registry;
+    private PortletWindowAccessor windowAccessor;
+    private PortletContainer portletContainer;
+
+    public BasicAggregator(PortletRegistry registry, 
+                           PortletWindowAccessor windowAccessor,
+                           PortletContainer portletContainer,
+                           int strategy)
+    {
+        this.registry = registry;
+        this.windowAccessor = windowAccessor;
+        this.strategy = strategy;
+        this.portletContainer = portletContainer;
+    }
+    
+    public BasicAggregator(PortletRegistry registry, 
+                           PortletWindowAccessor windowAccessor,
+                           PortletContainer portletContainer)            
+    {
+        this(registry, windowAccessor, portletContainer, STRATEGY_SEQUENTIAL);
+    }
+    
+    public void start()
+    {
+    }
+    
+    public void stop()
+    {
+        
+    }
+    
+    /**
+     * Builds the portlet set defined in the context into a portlet tree.
+     *
+     * @return Unique Portlet Entity ID
+     */
+    public void build(RequestContext request) throws JetspeedException
+    {
+        ContentPage page = request.getPage();
+        if (null == page)
+        {
+            throw new JetspeedException("Failed to find PSML Pin BasicAggregator.build");
+        }
+
+        ContentFragment root = page.getRootContentFragment();
+        render(portletContainer, root, request);
+        
+        for (Iterator fit = root.getFragments().iterator(); fit.hasNext();)
+        {
+            ContentFragment fragment = (ContentFragment)fit.next();
+            
+            if (fragment.getType().equals(ContentFragment.LAYOUT))
+            {
+                // skip layouts for now
+                // continue;
+            }
+            render(portletContainer, fragment, request);
+        }
+    }
+
+    /**
+     * Render a portlet by calling the container's renderPortlet.
+     * 
+     * @param container
+     * @param fragment
+     * @param request
+     */
+    private void render(PortletContainer container, ContentFragment fragment, RequestContext request)
+    {
+
+        //
+        // create the portlet window and render the portlet
+        //
+        try
+        {
+            // 
+            // Load Portlet from registry
+            // 
+            System.out.println("*** Getting portlet from registry: " + fragment.getName());
+            PortletDefinition portletDefinition = registry.getPortletDefinitionByUniqueName(fragment.getName());
+            if (portletDefinition == null)
+            {
+                throw new JetspeedException("Failed to load: " + fragment.getName() + " from registry");
+            }
+                        
+            PortletWindow portletWindow = windowAccessor.getPortletWindow(fragment);
+
+            HttpServletRequest servletRequest = request.getRequestForWindow(portletWindow);
+            HttpServletResponse servletResponse = request.getResponseForWindow(portletWindow);
+
+            container.renderPortlet(portletWindow, servletRequest, servletResponse);
+        }
+        catch (Throwable t)
+        {
+            t.printStackTrace();
+            log.error("Failed to service portlet, portlet exception: " + t);
+        }
+        
+    }
+}

Added: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/ContentDispatcherImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/ContentDispatcherImpl.java?rev=209328&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/ContentDispatcherImpl.java (added)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/ContentDispatcherImpl.java Tue Jul  5 14:55:37 2005
@@ -0,0 +1,129 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.aggregator.impl;
+
+import java.util.Hashtable;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.aggregator.ContentDispatcher;
+import org.apache.jetspeed.aggregator.ContentDispatcherCtrl;
+import org.apache.jetspeed.aggregator.PortletContent;
+import org.apache.jetspeed.om.page.Fragment;
+import org.apache.jetspeed.request.RequestContext;
+import org.apache.jetspeed.util.JetspeedObjectID;
+import org.apache.pluto.om.common.ObjectID;
+import org.apache.pluto.om.window.PortletWindow;
+
+/**
+ * <p>
+ * The ContentDispatcher allows customer classes to retrieved rendered content
+ * for a specific fragment
+ * </p>
+ * 
+ * @author <a href="mailto:raphael@apache.org">Rapha�l Luta </a>
+ * @version $Id: ContentDispatcherImpl.java 188181 2005-01-11 20:02:17Z weaver $
+ */
+public class ContentDispatcherImpl implements ContentDispatcher, ContentDispatcherCtrl
+{
+    /** Commons logging */
+    protected final static Log log = LogFactory.getLog(ContentDispatcherImpl.class);
+
+    private Map contents = new Hashtable();
+
+    private boolean isParallel = true;
+
+    private static int debugLevel = 1;
+
+    
+
+    public ContentDispatcherImpl( boolean isParallel )
+    {        
+        this.isParallel = isParallel;
+    }
+
+//    public void notify( ObjectID oid )
+//    {
+//        PortletContentImpl content = (PortletContentImpl) contents.get(oid);
+//
+//        if (content != null)
+//        {
+//            synchronized (content)
+//            {
+//                if ((debugLevel > 0) && log.isDebugEnabled())
+//                {
+//                    log.debug("Notifying complete OID " + oid);
+//                }
+//                content.complete();
+//                content.notifyAll();
+//            }
+//        }
+//    }
+
+    public HttpServletResponse getResponseForWindow( PortletWindow window, RequestContext request )
+    {
+        PortletContentImpl myContent = new PortletContentImpl();
+
+        return getResponseForId(request, myContent, window.getId());
+    }
+    
+    public HttpServletResponse getResponseForFragment( Fragment fragment, RequestContext request )
+    {
+        PortletContentImpl myContent = new PortletContentImpl();
+        ObjectID oid = JetspeedObjectID.createFromString(fragment.getId());
+        
+        return getResponseForId(request, myContent, oid);
+    }
+
+    /**
+     * <p>
+     * getResponseForId
+     * </p>
+     *
+     * @param request
+     * @param myContent
+     * @param oid
+     * @return
+     */
+    protected HttpServletResponse getResponseForId( RequestContext request, PortletContentImpl myContent, ObjectID oid )
+    {
+        synchronized (contents)
+        {
+            contents.put(oid, myContent);
+        }
+
+        return new HttpBufferedResponse(request.getResponse(), myContent.getWriter());
+    }
+
+    /**
+     * <p>
+     * getPortletContent
+     * </p>
+     *
+     * @see org.apache.jetspeed.aggregator.ContentDispatcher#getPortletContent(org.apache.jetspeed.om.page.Fragment)
+     * @param fragment
+     * @return
+     */
+    public PortletContent getPortletContent( Fragment fragment )
+    {       
+        ObjectID oid = JetspeedObjectID.createFromString(fragment.getId());
+        PortletContentImpl content = (PortletContentImpl) contents.get(oid);
+        return content;
+    }
+}

Added: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HttpBufferedResponse.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HttpBufferedResponse.java?rev=209328&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HttpBufferedResponse.java (added)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/HttpBufferedResponse.java Tue Jul  5 14:55:37 2005
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.aggregator.impl;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import org.apache.pluto.util.PrintWriterServletOutputStream;
+
+public class HttpBufferedResponse extends javax.servlet.http.HttpServletResponseWrapper
+{
+    private boolean usingWriter;
+    private boolean usingStream;
+
+    /** Commons logging */
+    protected final static Log log = LogFactory.getLog(HttpBufferedResponse.class);
+
+    private ServletOutputStream wrappedStream;
+    private PrintWriter writer;
+
+    public HttpBufferedResponse(HttpServletResponse servletResponse,
+                                PrintWriter writer)
+    {
+        super(servletResponse);
+        this.writer = writer;
+    }
+
+    public ServletOutputStream getOutputStream() throws IllegalStateException, IOException
+    {
+        if (usingWriter)
+        {
+            throw new IllegalStateException("getOutputStream can't be used after getWriter was invoked");
+        }
+
+        if (wrappedStream == null)
+        {            
+            wrappedStream = new PrintWriterServletOutputStream(writer, getResponse().getCharacterEncoding());                                                               
+        }
+
+        usingStream = true;
+
+        return wrappedStream;
+    }
+
+    public PrintWriter getWriter() throws UnsupportedEncodingException, IllegalStateException, IOException {
+
+        if (usingStream)
+        {
+            throw new IllegalStateException("getWriter can't be used after getOutputStream was invoked");
+        }
+
+        usingWriter = true;
+
+        return writer;
+    }
+
+
+    public void setBufferSize(int size)
+    {
+        // ignore
+    }
+
+    public int getBufferSize()
+    {
+        return 0;
+    }
+
+    public void flushBuffer() throws IOException
+    {
+        writer.flush();
+    }
+
+    public boolean isCommitted()
+    {
+        return false;
+    }
+
+    public void reset()
+    {
+        // ignore right now
+    }
+}

Added: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java?rev=209328&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java (added)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java Tue Jul  5 14:55:37 2005
@@ -0,0 +1,287 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.aggregator.impl;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.PortalReservedParameters;
+import org.apache.jetspeed.aggregator.ContentDispatcher;
+import org.apache.jetspeed.aggregator.FailedToRenderFragmentException;
+import org.apache.jetspeed.aggregator.PageAggregator;
+import org.apache.jetspeed.aggregator.PortletRenderer;
+import org.apache.jetspeed.container.state.NavigationalState;
+import org.apache.jetspeed.contentserver.ContentFilter;
+import org.apache.jetspeed.exception.JetspeedException;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.ContentPage;
+import org.apache.jetspeed.request.RequestContext;
+import org.apache.pluto.om.window.PortletWindow;
+
+/**
+ * ContentPageAggregator builds the content required to render a page of portlets.
+ * 
+ * @author <a href="mailto:raphael@apache.org">Rapha�l Luta </a>
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor </a>
+ * @version $Id: PageAggregatorImpl.java 193057 2005-06-23 02:59:27Z taylor $
+ */
+public class PageAggregatorImpl implements PageAggregator
+{
+    private final static Log log = LogFactory.getLog(PageAggregatorImpl.class);
+
+    public final static int STRATEGY_SEQUENTIAL = 0;
+    public final static int STRATEGY_PARALLEL = 1;
+
+    private int strategy = STRATEGY_SEQUENTIAL;
+    private PortletRenderer renderer;
+
+    private List fallBackContentPathes;
+
+    public PageAggregatorImpl( PortletRenderer renderer, int strategy, List fallBackContentPathes )
+    {
+        this.renderer = renderer;
+        this.strategy = strategy;
+        this.fallBackContentPathes = fallBackContentPathes;
+    }
+
+    public PageAggregatorImpl( PortletRenderer renderer, List fallBackContentPathes )
+    {
+        this(renderer, STRATEGY_SEQUENTIAL, fallBackContentPathes);
+    }
+
+    /**
+     * Builds the portlet set defined in the context into a portlet tree.
+     * 
+     * @return Unique Portlet Entity ID
+     */
+    public void build( RequestContext context ) throws JetspeedException, IOException
+    {
+        ContentPage page = context.getPage();
+        if (null == page)
+        {
+            throw new JetspeedException("Failed to find PSML Pin ContentPageAggregator.build");
+        }
+
+        ContentFragment root = page.getRootContentFragment();
+
+        if (root == null)
+        {
+            throw new JetspeedException("No root ContentFragment found in ContentPage");
+        }
+
+        String layoutDecorator = root.getDecorator();
+        if (layoutDecorator == null)
+        {
+            layoutDecorator = page.getDefaultDecorator(root.getType());
+        }
+
+        String defaultPortletDecorator = page.getDefaultDecorator(ContentFragment.PORTLET);
+
+        ///////////////////////////////////////////////////////////////////////////////////////////////
+        //TODO: Remove hard coding of locations and use CM + TL
+        //      DST: Im going to encapsulate this into a class, which can be accessed
+        // by
+        //           the PowerTool when aggregating content, and make sure to modify the
+        // search path
+        //           according to the current decorator. Assigned issue to JiRa JS2-24
+        List contentPathes = (List) context.getSessionAttribute(ContentFilter.SESSION_CONTENT_PATH_ATTR);
+
+        if (contentPathes == null)
+        {
+            contentPathes = new ArrayList(2);
+            context.setSessionAttribute(ContentFilter.SESSION_CONTENT_PATH_ATTR, contentPathes);
+        }
+        String mediaType = context.getCapabilityMap().getPreferredMediaType().getName();
+        if (contentPathes.size() < 1)
+        {
+            // define the lookup order
+
+            contentPathes.add(root.getType() + "/" + mediaType + "/" + layoutDecorator);
+            // Start added by jamesliao, 27-05-2005
+            contentPathes.add(ContentFragment.PORTLET + "/" + mediaType + "/" + defaultPortletDecorator);
+            // End
+            
+            Iterator defaults = fallBackContentPathes.iterator();
+            while (defaults.hasNext())
+            {
+                String path = (String) defaults.next();
+                contentPathes.add(path.replaceAll("\\{mediaType\\}", mediaType));
+            }
+
+        }
+        else
+        {
+            contentPathes.set(0, root.getType() + "/" + mediaType + "/" + layoutDecorator);
+            // Start added by jamesliao, 27-05-2005, override the previous portlet-decorator
+            contentPathes.set(1, ContentFragment.PORTLET + "/" + mediaType + "/" + defaultPortletDecorator);
+            // End
+        }
+
+        if (layoutDecorator != null)
+        {
+            addStyle(context, layoutDecorator, ContentFragment.LAYOUT);
+        }
+
+        ///////////////////////////////////////////////////////////////////////////////////////////////
+        ContentDispatcher dispatcher = renderer.getDispatcher(context, (strategy == STRATEGY_PARALLEL));
+        // handle maximized state
+        NavigationalState nav = context.getPortalURL().getNavigationalState();
+        PortletWindow window = nav.getMaximizedWindow();
+        if (null != window)
+        {
+            renderMaximizedWindow(context, page, root, window);
+        }
+        else
+        {
+            aggregateAndRender(root, context, page);
+        }
+        
+        //dispatcher.include(root);
+        context.getResponse().getWriter().write(root.getRenderedContent());
+
+        if (null != window)
+        {
+            context.getRequest().removeAttribute(PortalReservedParameters.MAXIMIZED_FRAGMENT_ATTRIBUTE);
+            context.getRequest().removeAttribute(PortalReservedParameters.MAXIMIZED_LAYOUT_ATTRIBUTE);
+        }
+    }
+
+    /**
+     * <p>
+     * renderMaximizedWindow
+     * </p>
+     * 
+     * @param context
+     * @param page
+     * @param layoutContentFragment
+     * @param defaultPortletDecorator
+     * @param dispatcher
+     * @param window
+     * @throws FailedToRenderContentFragmentException
+     */
+    protected void renderMaximizedWindow( RequestContext context, ContentPage page, ContentFragment layoutContentFragment,
+            PortletWindow window ) throws FailedToRenderFragmentException
+    {
+        String defaultPortletDecorator = page.getDefaultDecorator(ContentFragment.PORTLET);
+        ContentFragment maxedContentFragment = page.getContentFragmentById(window.getId().toString());
+        if (maxedContentFragment != null)
+        {
+            context.getRequest().setAttribute(PortalReservedParameters.MAXIMIZED_FRAGMENT_ATTRIBUTE, maxedContentFragment);
+            context.getRequest().setAttribute(PortalReservedParameters.FRAGMENT_ATTRIBUTE, maxedContentFragment);
+            context.getRequest().setAttribute(PortalReservedParameters.MAXIMIZED_LAYOUT_ATTRIBUTE, page.getRootContentFragment());
+
+            if (maxedContentFragment.getDecorator() != null)
+            {
+                log.debug("decorator=" + layoutContentFragment.getDecorator());
+                addStyle(context, maxedContentFragment.getDecorator(), ContentFragment.PORTLET);
+            }
+            else
+            {
+                log.debug("no decorator for defined for portlet fragement," + layoutContentFragment.getId()
+                        + ".  So using page default, " + defaultPortletDecorator);
+                addStyle(context, defaultPortletDecorator, ContentFragment.PORTLET);
+            }
+            try
+            {
+                renderer.renderNow(maxedContentFragment, context);
+                renderer.renderNow(layoutContentFragment, context);              
+                
+            }
+            catch (Exception e)
+            {
+                log.error(e.getMessage(), e);
+                maxedContentFragment.overrideRenderedContent("Sorry, but we were unable access the requested portlet.  Send the following message to your portal admin:  "+  e.getMessage());
+            }
+
+
+        }
+    }
+
+    private void addStyle( RequestContext context, String decoratorName, String decoratorType )
+    {
+        Set cssUrls = (Set) context.getAttribute("cssUrls");
+
+        if (cssUrls == null)
+        {
+            cssUrls = new HashSet();
+            context.setAttribute("cssUrls", cssUrls);
+        }
+
+        if (decoratorType.equals(ContentFragment.LAYOUT))
+        {
+            cssUrls.add("content/css/styles.css");
+        }
+        else
+        {
+            cssUrls.add("content/" + decoratorName + "/css/styles.css");
+        }
+    }
+
+    protected void aggregateAndRender( ContentFragment f, RequestContext context, ContentPage page )
+            throws FailedToRenderFragmentException
+    {
+
+        if (f.getContentFragments() != null && f.getContentFragments().size() > 0)
+        {
+            Iterator children = f.getContentFragments().iterator();
+            while (children.hasNext())
+            {
+                ContentFragment child = (ContentFragment) children.next();
+                if (!"hidden".equals(f.getState()))
+                {
+                    aggregateAndRender(child, context, page);
+                }
+            }
+        }
+
+        // Start the actual rendering process
+        String defaultPortletDecorator = page.getDefaultDecorator(ContentFragment.PORTLET);
+        if (log.isDebugEnabled())
+        {
+            log.debug("Rendering portlet fragment: [[name, " + f.getName() + "], [id, " + f.getId() + "]]");
+        }
+        
+       
+
+        
+        if (strategy == STRATEGY_SEQUENTIAL)
+        {
+            renderer.renderNow(f, context);
+        }
+        else
+        {
+            renderer.render(f, context);
+        }
+
+        if (f.getDecorator() != null && f.getType().equals(ContentFragment.PORTLET))
+        {
+            log.debug("decorator=" + f.getDecorator());
+            addStyle(context, f.getDecorator(), ContentFragment.PORTLET);
+        }
+        else if (f.getDecorator() == null && f.getType().equals(ContentFragment.PORTLET))
+        {
+            log.debug("no decorator for defined for portlet fragement," + f.getId() + ".  So using page default, "
+                    + defaultPortletDecorator);
+            addStyle(context, defaultPortletDecorator, ContentFragment.PORTLET);
+        }
+    }
+}

Added: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java?rev=209328&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java (added)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java Tue Jul  5 14:55:37 2005
@@ -0,0 +1,107 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.aggregator.impl;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.PortalReservedParameters;
+import org.apache.jetspeed.aggregator.ContentDispatcher;
+import org.apache.jetspeed.aggregator.PortletAggregator;
+import org.apache.jetspeed.aggregator.PortletRenderer;
+import org.apache.jetspeed.exception.JetspeedException;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.Fragment;
+import org.apache.jetspeed.om.page.psml.ContentFragmentImpl;
+import org.apache.jetspeed.om.page.psml.FragmentImpl;
+import org.apache.jetspeed.request.RequestContext;
+
+/**
+ * PortletAggregator builds the content required to render a single portlet.
+ *
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @version $Id: PortletAggregatorImpl.java 188558 2005-04-29 14:02:35Z weaver $
+ */
+public class PortletAggregatorImpl implements PortletAggregator
+{
+    private final static Log log = LogFactory.getLog(PortletAggregatorImpl.class);    
+    
+    private PortletRenderer renderer;
+
+    public PortletAggregatorImpl(PortletRenderer renderer) 
+    {
+        this.renderer = renderer;
+    }
+    
+    
+    
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.aggregator.Aggregator#build(org.apache.jetspeed.request.RequestContext)
+     */
+    public void build(RequestContext context) throws JetspeedException, IOException
+    {
+        ContentFragment fragment = new ContentFragmentImpl(new FragmentImpl(), new HashMap()); // TODO: fragment factory
+        fragment.setType(Fragment.PORTLET);
+        fragment.setName(context.getRequestParameter(PortalReservedParameters.PORTLET));
+        String entity = context.getRequestParameter(PortalReservedParameters.PORTLET_ENTITY);
+        if (entity == null)
+        {
+            entity = (String)context.getAttribute(PortalReservedParameters.PORTLET_ENTITY);          
+        }
+        fragment.setId(entity);  
+         
+        String decorator = fragment.getDecorator();
+        if( decorator == null)
+        {
+           // decorator = context.getPage().getDefaultDecorator(fragment.getType());
+            log.debug("No sepecific decorator portlet so using page default: "+decorator);
+        }
+        
+
+        ContentDispatcher dispatcher = renderer.getDispatcher(context, false);
+        renderer.renderNow(fragment, context);
+ //       dispatcher.include(fragment);
+        context.getResponse().getWriter().write(fragment.getRenderedContent());
+        
+    }
+    
+    private void addStyle(RequestContext context, String decoratorName, String decoratorType) 
+    {
+        log.debug("addStyle: decoratorName=" + decoratorName + ", decoratorType=" + decoratorType );
+        Set cssUrls = (Set) context.getAttribute("cssUrls");
+
+        if (cssUrls == null)
+        {
+            cssUrls = new HashSet();
+            context.setAttribute("cssUrls", cssUrls);
+        }
+        
+        //cssUrls.add("/WEB-INF/decorations/" + decoratorType + "/html/" + decoratorName + "/css/styles.css");
+        
+        if(decoratorType.equals(Fragment.LAYOUT))
+        {
+            cssUrls.add("content/css/styles.css");
+        }
+        else
+        {
+            cssUrls.add("content/"+decoratorName+"/css/styles.css");
+        }
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org


Mime
View raw message