Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

This commit was manufactured by cvs2svn to create tag

'rel-2-4-3-1-RC1'.

git-svn-id: https://source.jasig.org/uPortal/tags/rel-2-4-3-1-RC1@10751 f5dbab47-78f9-eb45-b975-e544023573eb
  • Loading branch information...
commit ab94582d3fc06d423bd7064cd3f61e1a2f828623 1 parent 880bb63
infrastructure@lists.ja-sig.org authored
Showing with 5,674 additions and 4,070 deletions.
  1. +30 −0 LICENSE.txt
  2. +111 −0 README.txt
  3. +92 −0 RELEASE_NOTES.txt
  4. +5 −4 build.properties
  5. +26 −37 build.xml
  6. +7 −0 docs/README
  7. BIN  docs/uPortal_architecture_overview.pdf
  8. +137 −0 docs/uPortal_properties_overview.txt
  9. +102 −0 docs/uPortal_tools_overview.txt
  10. +11 −8 docs/website/implementors/services/compositeGroupService.html
  11. +19 −16 docs/website/implementors/services/compositeGroupService_prt.html
  12. +122 −0 etc/quickstart/README.txt
  13. +2 −0  etc/quickstart/ant.bat
  14. +4 −0 etc/quickstart/ant.sh
  15. +77 −0 etc/quickstart/build.xml
  16. +5 −0 etc/quickstart/fix-unix-modes.sh
  17. +55 −0 etc/uportal-quickstart-dist.sh
  18. +64 −0 etc/uportal-source-dist.sh
  19. BIN  lib/backport-util-concurrent.jar
  20. BIN  lib/commons-collections-3.1.jar
  21. BIN  lib/commons-dbcp-1.2.1.jar
  22. BIN  lib/commons-pool-1.2.jar
  23. BIN  lib/{pluto-1.0.1.jar → pluto-1.0.1-rc1.jar}
  24. BIN  lib/pluto-1.0.1-rc2.jar
  25. BIN  lib/portlets/proxyportlet.war
  26. BIN  lib/portlets/testsuite.war
  27. BIN  lib/xalan-2-6-0.jar
  28. +3 −0  properties/Logger.properties
  29. +1 −1  properties/PersonDirs.xml
  30. +2 −2 properties/db/data.xml
  31. +4 −4 properties/db/tables.xml
  32. +15 −3 properties/security.properties
  33. +110 −2 properties/uPortal.xml
  34. +0 −119 scripts/createTables-hypersonic.script
  35. +0 −15 scripts/dropTables.script
  36. +0 −269 scripts/populateTables.script
  37. +1 −1  source/org/jasig/portal/ChannelDefinition.java
  38. +12 −6 source/org/jasig/portal/ChannelFactory.java
  39. +33 −4 source/org/jasig/portal/ChannelManager.java
  40. +145 −99 source/org/jasig/portal/ChannelRenderer.java
  41. +11 −14 source/org/jasig/portal/ChannelRendererFactoryImpl.java
  42. +20 −0 source/org/jasig/portal/ChannelRuntimeData.java
  43. +4 −4 source/org/jasig/portal/EntityTypes.java
  44. +88 −6 source/org/jasig/portal/ExceptionHelper.java
  45. +4 −1 source/org/jasig/portal/HttpProxyServlet.java
  46. +3 −3 source/org/jasig/portal/IChannelRenderer.java
  47. +12 −6 source/org/jasig/portal/LoginServlet.java
  48. +5 −7 source/org/jasig/portal/LogoutServlet.java
  49. +16 −2 source/org/jasig/portal/MediaManager.java
  50. +16 −7 source/org/jasig/portal/MultipartDataSource.java
  51. +5 −1 source/org/jasig/portal/PortalEvent.java
  52. +8 −3 source/org/jasig/portal/PortalSessionManager.java
  53. +7 −5 source/org/jasig/portal/RDBMChannelRegistryStore.java
  54. +2 −1  source/org/jasig/portal/RDBMPortletPreferencesStore.java
  55. +20 −15 source/org/jasig/portal/RDBMServices.java
  56. +249 −174 source/org/jasig/portal/RDBMUserLayoutStore.java
  57. +2 −1  source/org/jasig/portal/ReferenceSequenceGenerator.java
  58. +3 −7 source/org/jasig/portal/RequestParamWrapper.java
  59. +4 −3 source/org/jasig/portal/StandaloneChannelRenderer.java
  60. +1 −1  source/org/jasig/portal/StylesheetSet.java
  61. +14 −11 source/org/jasig/portal/UserInstance.java
  62. +6 −3 source/org/jasig/portal/UserPreferencesManager.java
  63. +2 −2 source/org/jasig/portal/Version.java
  64. +12 −4 source/org/jasig/portal/car/DatabaseTagHandler.java
  65. +1 −1  source/org/jasig/portal/channels/CApplet.java
  66. +29 −4 source/org/jasig/portal/channels/CChannelManager.java
  67. +24 −18 source/org/jasig/portal/channels/CError.java
  68. +140 −69 source/org/jasig/portal/channels/CGenericXSLT.java
  69. +2 −2 source/org/jasig/portal/channels/CHeader.java
  70. +1 −1  source/org/jasig/portal/channels/CImage.java
  71. +1 −1  source/org/jasig/portal/channels/CInlineFrame.java
  72. +9 −1 source/org/jasig/portal/channels/CSecureInfo.java
  73. +2 −2 source/org/jasig/portal/channels/UserPreferences/CUserPreferences.java
  74. +2 −2 source/org/jasig/portal/channels/UserPreferences/GPreferencesState.java
  75. +2 −2 source/org/jasig/portal/channels/UserPreferences/ManageProfilesState.java
  76. +6 −6 source/org/jasig/portal/channels/iccdemo/CHistory.java
  77. +4 −4 source/org/jasig/portal/channels/iccdemo/CURLSelector.java
  78. +6 −6 source/org/jasig/portal/channels/iccdemo/CViewer.java
  79. +12 −11 source/org/jasig/portal/channels/permissionsmanager/CPermissionsManager.java
  80. +1 −1  source/org/jasig/portal/channels/permissionsmanager/CPermissionsManagerServant.java
  81. +2 −2 source/org/jasig/portal/channels/permissionsmanager/CPermissionsManagerServantFactory.java
  82. +1 −1  source/org/jasig/portal/channels/permissionsmanager/CommandFactory.java
  83. +1 −1  source/org/jasig/portal/channels/permissionsmanager/PermissiblePublishChannels.java
  84. +1 −1  source/org/jasig/portal/channels/permissionsmanager/PermissibleSubscribeChannels.java
  85. +3 −3 source/org/jasig/portal/channels/permissionsmanager/PermissionsXML.java
  86. +3 −3 source/org/jasig/portal/channels/permissionsmanager/RDBMPermissibleRegistry.java
  87. +1 −1  source/org/jasig/portal/channels/permissionsmanager/commands/AssignPermissions.java
  88. +62 −25 source/org/jasig/portal/channels/portlet/CPortletAdapter.java
  89. +3 −0  source/org/jasig/portal/channels/portlet/ChannelData.java
  90. +297 −148 source/org/jasig/portal/channels/webproxy/CWebProxy.java
  91. +1 −2  source/org/jasig/portal/concurrency/caching/LRUCache.java
  92. +4 −4 source/org/jasig/portal/concurrency/caching/RDBMCachedEntityInvalidationStore.java
  93. +6 −2 source/org/jasig/portal/concurrency/caching/ReferenceEntityCache.java
  94. +10 −3 source/org/jasig/portal/concurrency/caching/ReferenceInvalidatingEntityCache.java
  95. +7 −3 source/org/jasig/portal/concurrency/locking/MemoryEntityLockStore.java
  96. +4 −4 source/org/jasig/portal/concurrency/locking/RDBMEntityLockStore.java
  97. +42 −14 source/org/jasig/portal/concurrency/locking/ReferenceEntityLockService.java
  98. +24 −6 source/org/jasig/portal/container/binding/PortletApplicationUnmarshaller.java
  99. +1 −1  source/org/jasig/portal/container/binding/WebApplicationMarshaller.java
  100. +5 −2 source/org/jasig/portal/container/om/common/LanguageImpl.java
  101. +49 −19 source/org/jasig/portal/container/om/common/LanguageSetImpl.java
  102. +3 −3 source/org/jasig/portal/container/om/entity/PortletEntityImpl.java
  103. +4 −2 source/org/jasig/portal/container/om/portlet/PortletDefinitionImpl.java
  104. +137 −107 source/org/jasig/portal/container/services/information/PortletStateManager.java
  105. +15 −2 source/org/jasig/portal/container/services/information/StaticInformationProviderImpl.java
  106. +86 −0 source/org/jasig/portal/container/servlet/DummyParameterRequestWrapper.java
  107. +0 −82 source/org/jasig/portal/container/servlet/EmptyRequestImpl.java
  108. +103 −0 source/org/jasig/portal/container/servlet/PortletParameterRequestWrapper.java
  109. +1 −1  source/org/jasig/portal/groups/EntityGroupNameFinder.java
  110. +46 −0 source/org/jasig/portal/groups/EntityTestingGroupImpl.java
  111. +5 −6 source/org/jasig/portal/groups/RDBMEntityGroupStore.java
  112. +1 −1  source/org/jasig/portal/groups/ReferenceChannelNameFinder.java
  113. +2 −2 source/org/jasig/portal/groups/ReferencePersonNameFinder.java
  114. +4 −7 source/org/jasig/portal/groups/ldap/LDAPGroupStore.java
  115. +2 −3 source/org/jasig/portal/groups/local/searchers/RDBMChannelDefSearcher.java
  116. +2 −3 source/org/jasig/portal/groups/local/searchers/RDBMPersonSearcher.java
  117. +5 −5 source/org/jasig/portal/groups/pags/PersonAttributesGroupStore.java
  118. +1 −1  source/org/jasig/portal/i18n/LocaleManager.java
  119. +1 −2  source/org/jasig/portal/jndi/JNDIManager.java
  120. +16 −12 source/org/jasig/portal/layout/AggregatedLayoutManager.java
  121. +24 −15 source/org/jasig/portal/layout/AggregatedUserLayoutStore.java
  122. +38 −15 source/org/jasig/portal/layout/channels/CContentSubscriber.java
  123. +2 −0  source/org/jasig/portal/layout/channels/CFragmentManager.java
  124. +10 −5 source/org/jasig/portal/layout/utils/FragmentLoader.java
  125. +3 −4 source/org/jasig/portal/ldap/LdapServices.java
  126. +155 −179 source/org/jasig/portal/security/InitialSecurityContextFactory.java
  127. +1 −1  source/org/jasig/portal/security/provider/CacheSecurityContext.java
  128. +10 −5 source/org/jasig/portal/security/provider/ChainingSecurityContext.java
  129. +12 −11 source/org/jasig/portal/security/provider/RDBMPermissionImpl.java
  130. +1 −1  source/org/jasig/portal/security/provider/RemoteUserPersonManager.java
  131. +18 −13 source/org/jasig/portal/security/provider/RestrictedPerson.java
  132. +61 −56 source/org/jasig/portal/security/provider/SimpleLdapSecurityContext.java
  133. +1 −1  source/org/jasig/portal/security/provider/SimplePersonManager.java
  134. +1 −1  source/org/jasig/portal/security/provider/SimpleSecurityContext.java
  135. +1 −1  source/org/jasig/portal/security/provider/TrustSecurityContext.java
  136. +1 −1  source/org/jasig/portal/serialize/HTMLSerializer.java
  137. +32 −17 source/org/jasig/portal/serialize/HTMLdtd.java
  138. +50 −19 source/org/jasig/portal/services/Authentication.java
  139. +4 −5 source/org/jasig/portal/services/AuthorizationService.java
  140. +7 −8 source/org/jasig/portal/services/EntityPropertyRegistry.java
  141. +17 −17 source/org/jasig/portal/services/ExternalServices.java
  142. +3 −1 source/org/jasig/portal/services/GroupService.java
  143. +15 −8 source/org/jasig/portal/services/LogService.java
  144. +171 −116 source/org/jasig/portal/services/PersonDirectory.java
  145. +3 −2 source/org/jasig/portal/services/SequenceGenerator.java
  146. +36 −45 source/org/jasig/portal/services/StatsRecorder.java
  147. +2 −4 source/org/jasig/portal/services/entityproperties/ChannelRegistryPropertyFinder.java
  148. +2 −1  source/org/jasig/portal/services/entityproperties/ContainingGroupsFinder.java
  149. +1 −1  source/org/jasig/portal/services/entityproperties/PersonDirPropertyFinder.java
  150. +4 −8 source/org/jasig/portal/services/entityproperties/RDBMPropertyStore.java
  151. +2 −2 source/org/jasig/portal/services/stats/RecordChannelAddedToLayoutWorkerTask.java
  152. +2 −2 source/org/jasig/portal/services/stats/RecordChannelDefinitionModifiedWorkerTask.java
  153. +2 −2 source/org/jasig/portal/services/stats/RecordChannelDefinitionPublishedWorkerTask.java
  154. +2 −2 source/org/jasig/portal/services/stats/RecordChannelDefinitionRemovedWorkerTask.java
  155. +2 −2 source/org/jasig/portal/services/stats/RecordChannelInstantiatedWorkerTask.java
  156. +2 −2 source/org/jasig/portal/services/stats/RecordChannelMovedInLayoutWorkerTask.java
  157. +2 −2 source/org/jasig/portal/services/stats/RecordChannelRemovedFromLayoutWorkerTask.java
  158. +2 −2 source/org/jasig/portal/services/stats/RecordChannelRenderedWorkerTask.java
  159. +2 −2 source/org/jasig/portal/services/stats/RecordChannelTargetedWorkerTask.java
  160. +2 −2 source/org/jasig/portal/services/stats/RecordChannelUpdatedInLayoutWorkerTask.java
  161. +2 −2 source/org/jasig/portal/services/stats/RecordFolderAddedToLayoutWorkerTask.java
  162. +2 −2 source/org/jasig/portal/services/stats/RecordFolderMovedInLayoutWorkerTask.java
  163. +2 −2 source/org/jasig/portal/services/stats/RecordFolderRemovedFromLayoutWorkerTask.java
  164. +2 −2 source/org/jasig/portal/services/stats/RecordFolderUpdatedInLayoutWorkerTask.java
  165. +2 −2 source/org/jasig/portal/services/stats/RecordLoginWorkerTask.java
  166. +2 −2 source/org/jasig/portal/services/stats/RecordLogoutWorkerTask.java
  167. +2 −2 source/org/jasig/portal/services/stats/RecordSessionCreatedWorkerTask.java
  168. +2 −2 source/org/jasig/portal/services/stats/RecordSessionDestroyedWorkerTask.java
  169. +1 −1  source/org/jasig/portal/services/stats/StatsRecorderSettings.java
  170. +3 −3 source/org/jasig/portal/services/stats/StatsRecorderWorkerTask.java
  171. +4 −3 source/org/jasig/portal/tools/ChannelServlet.java
  172. +38 −48 source/org/jasig/portal/tools/dbloader/Configuration.java
  173. +50 −53 source/org/jasig/portal/tools/dbloader/DbLoader.java
  174. +22 −47 source/org/jasig/portal/tools/dbloader/DbUtils.java
  175. +4 −4 source/org/jasig/portal/utils/DocumentFactory.java
  176. +27 −11 source/org/jasig/portal/utils/RDBMCounterStore.java
  177. +13 −0 source/org/jasig/portal/utils/SoftHashMap.java
  178. +4 −4 source/org/jasig/portal/utils/SqlTransaction.java
  179. +27 −10 source/org/jasig/portal/utils/SubstitutionIntegerFilter.java
  180. +10 −6 source/org/jasig/portal/utils/SubstitutionServletOutputStream.java
  181. +7 −4 source/org/jasig/portal/utils/SubstitutionWriter.java
  182. +1 −1  source/org/jasig/portal/utils/URLUtil.java
  183. +171 −0 source/org/jasig/portal/utils/WeakValueMap.java
  184. +0 −255 source/org/jasig/portal/utils/threading/AbstractPool.java
  185. +54 −0 source/org/jasig/portal/utils/threading/BaseTask.java
  186. +0 −151 source/org/jasig/portal/utils/threading/BoundedQueue.java
  187. +0 −115 source/org/jasig/portal/utils/threading/BoundedThreadPool.java
  188. +29 −0 source/org/jasig/portal/utils/threading/PriorityThreadFactory.java
  189. +0 −89 source/org/jasig/portal/utils/threading/Queue.java
  190. +38 −0 source/org/jasig/portal/utils/threading/RunnableTask.java
  191. +18 −0 source/org/jasig/portal/utils/threading/Task.java
  192. +0 −106 source/org/jasig/portal/utils/threading/ThreadPool.java
  193. +0 −125 source/org/jasig/portal/utils/threading/UnboundedQueue.java
  194. +0 −59 source/org/jasig/portal/utils/threading/UnboundedThreadPool.java
  195. +0 −172 source/org/jasig/portal/utils/threading/WorkTracker.java
  196. +0 −138 source/org/jasig/portal/utils/threading/Worker.java
  197. +0 −138 source/org/jasig/portal/utils/threading/WorkerTask.java
  198. +51 −0 source/org/jasig/portal/utils/uri/BlockedUriException.java
  199. +30 −0 source/org/jasig/portal/utils/uri/IUriScrutinizer.java
  200. +207 −0 source/org/jasig/portal/utils/uri/PrefixUriScrutinizer.java
  201. +3 −1 source/org/jasig/portal/wsrp/ChannelInstanceManager.java
  202. +2 −2 source/org/jasig/portal/wsrp/bind/WSRP_v1_ServiceDescription_Binding_SOAPImpl.java
  203. +217 −0 tests/org/jasig/portal/ExceptionHelperTest.java
  204. +42 −0 tests/org/jasig/portal/channels/CSecureInfoTest.java
  205. +74 −0 tests/org/jasig/portal/channels/EventRecordingChannel.java
  206. +3 −3 tests/org/jasig/portal/concurrency/locking/EntityLockTester.java
  207. +54 −0 tests/org/jasig/portal/container/services/information/StaticInformationProviderImplTest.java
  208. +72 −4 tests/org/jasig/portal/groups/GroupsTester.java
  209. +33 −19 tests/org/jasig/portal/lang/ChainedThrowable_Test.java
  210. +33 −33 tests/org/jasig/portal/lang/Resources_Test.java
  211. +33 −19 tests/org/jasig/portal/lang/StackTrace_Test.java
  212. +33 −19 tests/org/jasig/portal/lang/ThrowableHelper_Test.java
  213. +33 −19 tests/org/jasig/portal/lang/TypeConverter_Test.java
  214. +234 −0 tests/org/jasig/portal/security/provider/RestrictedPersonTest.java
  215. +5 −5 webpages/media/org/jasig/portal/channels/portlet/wsrp-consumer.cpd
  216. +0 −6 webpages/media/org/jasig/portal/layout/AL_TabColumn/integratedModes/cartoon/CVS/Entries
  217. +0 −1  webpages/media/org/jasig/portal/layout/AL_TabColumn/integratedModes/cartoon/CVS/Repository
  218. +0 −1  webpages/media/org/jasig/portal/layout/AL_TabColumn/integratedModes/cartoon/CVS/Root
  219. +10 −2 webpages/stylesheets/org/jasig/portal/channels/CChannelManager/html.xsl
  220. +10 −2 webpages/stylesheets/org/jasig/portal/channels/CChannelManager/html_en_US.xsl
  221. +10 −2 webpages/stylesheets/org/jasig/portal/channels/CChannelManager/html_it_IT.xsl
  222. +310 −302 webpages/stylesheets/org/jasig/portal/channels/CChannelManager/html_ja_JP.xsl
  223. +10 −2 webpages/stylesheets/org/jasig/portal/channels/CChannelManager/html_lv_LV.xsl
  224. +10 −2 webpages/stylesheets/org/jasig/portal/channels/CChannelManager/html_sv_SE.xsl
View
30 LICENSE.txt
@@ -0,0 +1,30 @@
+Copyright 2000-2005 The JA-SIG Collaborative. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the JA-SIG Collaborative
+ (http://www.jasig.org/)."
+
+THIS SOFTWARE IS PROVIDED BY THE JA-SIG COLLABORATIVE "AS IS" AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE JA-SIG COLLABORATIVE OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
View
111 README.txt
@@ -0,0 +1,111 @@
+$Id$
+
+uPortal Distribution
+--------------------------
+
+Purpose
+-------
+This distribution is targeted towards
+people who would like to install
+uPortal in a development or production
+environment. It contains uPortal source
+code and properties files, but not a servlet
+container, directory, or relational database,
+which are required. Use of this distribution
+requires knowledge of J2EE environments and the
+Ant tool from the Apache Jakarta project.
+
+
+Contents
+--------
+1) uPortal
+2) uPortal dependencies (Xalan, Pluto, etc).
+3) uPortal Architecture overview and JavaDoc API
+
+
+System requirements
+-------------------
+JDK 1.4 or higher
+JAVA_HOME environment variable must be set
+Installation of Ant from Jakarta:
+ http://ant.apache.org/
+
+
+Instructions
+------------
+Modify build.properties with local settings.
+
+Use the following ant targets:
+
+initportal - installs uPortal into a servlet container,
+ prepares a relational database with uPortal schema and data,
+ publishes channels and layout fragments,
+ deploys portlet applications
+dist - creates JavaDoc, uPortal jar, and uPortal WAR files.
+
+For descriptions of other Ant targets,
+see docs/uPortal_tools_overview.txt.
+
+Make sure the database and servlet container are running and
+access uPortal with http://localhost:8080/uPortal/
+Your URL may be different if you have configured a different port
+and/or context name.
+
+You can login to uPortal with the following user name/password
+combinations:
+
+demo, demo
+student, student
+faculty, faculty
+staff, staff
+developer, developer
+
+Each user may have a slightly different layout.
+
+
+Notes
+-----
+-Several properties files and one database table changed
+ since uPortal 2.3.x. If you are upgrading from this version,
+ you will need to see to it that your properties files and
+ database data are upgraded appropriately. The difficulty
+ of upgrading from 2.3.x to 2.4.x is expected to be much lower
+ than similar upgrades in past versions.
+
+-uPortal does not strictly require the use of connection
+ pooling, but it is highly recommended for production
+ installations. If your servlet container does not provide
+ connection pooling, try something like Yet Another Poolman.
+ For information about Yet Another Poolman,
+ see http://yapoolman.sourceforge.net/.
+
+-Bug fixes from 2.3.x releases have been implemented in 2.4.x
+ whenever they were appropriate
+
+-If you experience XML/XSLT-related errors, there is a good
+ chance that your environment is not using the version of
+ Xalan/Xerces that comes with this release. If you are using
+ Tomcat, try copying the following files into Tomcat's
+ common/endorsed directory: xalan.jar, xercesImpl.jar, xml-apis.jar.
+ Alternatively, you can specify the use of these jar files
+ via a java parameter when starting your servlet container:
+ -Xbootclasspath/p:xalan.jar;xercesImpl.jar;xml-apis.jar
+ For more information, see Version section of
+ http://xml.apache.org/xalan-j/faq.html
+
+-JSR 168 Portlets are supported in this version of uPortal.
+ For information on installing Portlets, see
+ http://www.uportal.org/implementors/portlets/workingWithPortlets.html.
+
+-WSRP functionality was included in uPortal as early as uPortal 2.2.
+ However, beginning with uPortal 2.4, the WSRP consumer has been replaced with
+ one based on WSRP4J. The WSRP producer has been deprecated but may
+ be reintroduced in a future release.
+
+Please report bugs and suggestions:
+
+ http://www.uportal.org/bugzilla/
+
+uPortal website:
+
+ http://www.uportal.org
View
92 RELEASE_NOTES.txt
@@ -0,0 +1,92 @@
+$Id$
+
+uPortal Release Notes
+---------------------
+Release Notes - uPortal - Version 2.4.3.1
+
+**Bug
+
+ * [UP-1253] - CWebProxy security exploit: proxies file system content
+
+
+----------------------------------------------------------------
+uPortal Release Notes
+---------------------
+Release Notes - uPortal - Version 2.4.3
+
+**Bug
+
+ * [UP-694] - NPE persists after publishing fragment with no name and description
+ * [UP-735] - Content Subscriber exception when searching for "what's"
+ * [UP-754] - Problem on deleting non-empty tabs
+ * [UP-818] - HttpProxyServlet ignores query string
+ * [UP-823] - MInesweeper codebase web site moved.
+ * [UP-849] - RDBMPortletPreferencesStore doesn't support MS-SQL
+ * [UP-865] - simple layout manager won't start
+ * [UP-921] - very long time to connect: AggregatedUserLayoutStore SQL
+ * [UP-931] - ChannelRenderer finalizer is causing lots of loitered objects in memory causing a serious memory leak.
+ * [UP-1016] - BoundedThreadPool infinite loop or deadlock [2-4-patches]
+ * [UP-1102] - Restore safety to channel rendering
+ * [UP-1119] - memory leak happens under stress when CPortletAdapter portlets are asked to clean themselves up when the session ends.
+ * [UP-1123] - PortletStateManager.clearState(PortletWindow) implementation is buggy and can lead to ConcurrentModificationException under stress.
+ * [UP-1145] - access to SoftHashMap systemCache across threads is not synchronized
+
+**Improvement
+
+ * [UP-734] - Make "Cannot start uPortal" message give HTTP 500 status code
+ * [UP-815] - ChannelFactory should log source exception on instantiation failure
+ * [UP-992] - MultipartDataSource.finalize( ) is not implemented properly.
+ * [UP-1079] - StaticInformationProvider.getPortletDefinition() should give helpful exception if portletGUID doesn't have a "."
+ * [UP-1146] - javadoc SoftHashMap to say it isn't synchronized
+ * [UP-1177] - org.jasig.portal.MultipartDataSource incorrectly implemented finalize ( ) method.
+ * [UP-1178] - HTMLdtd.fromChar(int) method creats un-necessary objects during the lookup.
+ * [UP-1179] - Debug statements in the codebase causes un-necessary creation of string objects.
+ * [UP-1180] - Reduce object creation in SubstitutionIntegerFilter.java
+ * [UP-1181] - Reduce number of MediaManager objects created
+ * [UP-1187] - Enhance ChannelRuntimeData by adding a new method that generates the functional-name-focusing URL for channels.
+
+----------------------------------------------------------------
+Release Notes - uPortal - Version 2.4.2
+
+** Bug
+ * [UP-338] - RENDERING_DONE Event never sent
+ * [UP-476] - User's LDAP groups not loaded if username contains uppercase
+ * [UP-512] - User agent too long for db column
+ * [UP-685] - wrong fname in fragment produces exception with no useful error
+ message
+ * [UP-744] - PersonDirectory has a memory leak related to caching IPersons in
+ a WeakHashMap
+ * [UP-745] - ChannelManager has a memory leak, when it swaps out a channel
+ for the CError channel, the end session events never progagate
+ to the original channel
+ * [UP-746] - CSecureInfo has a memory leak, when ChannelManager swaps out a
+ channel for the CSecureInfo channel, the to end session events
+ never propagate to the original channel
+ * [UP-747] - Change to portlet parameter encoding breaks download worker URLs
+ * [UP-748] - Infinite recursion in RestrictedPerson
+ * [UP-749] - render parameter does not survive refresh
+ * [UP-753] - ChannelFactory should not expose internal map of static channels,
+ not create more than one instance of a multithreaded channel
+ * [UP-758] - CContentSubscriber prints exception to stdout instead of log
+ * [UP-759] - Xalan jar should be deployed to endorsed directory
+ * [UP-760] - Entity locks not expired correctly
+ * [UP-761] - A lock owner is limited to single READ lock on an entity
+ * [UP-772] - Classpath resources not being copied to build
+ * [UP-775] - Duplicate read locks for a single owner not permitted.
+ * [UP-776] - WebApplicationMarshaller.java turns resource-ref into
+ resource-env-ref
+ * [UP-778] - AggregatedLayoutManager.loadUserLayout() fails to log stack
+ trace for exception
+ * [UP-779] - ChannelRenderer declares constants that are already declared
+ in its base class
+ * [UP-780] - Eliminate "unknown additional descriptor warning" when using
+ ChainingSecurityContext
+ * [UP-796] - contains() doesn't always work for PAGS groups
+ * [UP-798] - GroupService.isComposite always returns null
+ * [UP-811] - NPE when Data tag not present in DatabaseTagHandler
+
+** Improvement
+ * [UP-770] - Document hsqldb version included with uPortal
+ * [UP-800] - Add comment to clarify usage of Logger.properties
+ * [UP-809] - Move portlet request attribute configuration to helper method
+ * [UP-810] - Log logging implementation
View
9 build.properties
@@ -15,10 +15,10 @@
#==================== File and Directory Names ========================
app.name=uPortal
-app.version=2.4
+app.version=2.4.3.1
lib.path=lib
-server.home=/JavaClasses/jakarta-tomcat-5.0.25
+server.home=/JavaClasses/jakarta-tomcat-5.0.28
deploy.home=${server.home}/webapps/uPortal
@@ -49,7 +49,7 @@ wsdl4j.jar=${lib.path}/wsdl4j.jar
commons-discovery.jar=${lib.path}/commons-discovery.jar
commons-logging.jar=${lib.path}/commons-logging.jar
portlet-api.jar=${lib.path}/portlet-api-1.0.jar
-pluto.jar=${lib.path}/pluto-1.0.1.jar
+pluto.jar=${lib.path}/pluto-1.0.1-rc1.jar
wsrp4j-shared.jar=${lib.path}/wsrp4j-shared-0.3.jar
wsrp4j-consumer.jar=${lib.path}/wsrp4j-consumer-0.3.jar
proxyportlet.jar=${lib.path}/proxyportlet.jar
@@ -57,4 +57,5 @@ jdbc2_0-stdext.jar=${lib.path}/jdbc2_0-stdext.jar
jdbcDriver.jar=${lib.path}/hsqldb.jar
junit.jar=${lib.path}/junit.jar
servlet.jar=${lib.path}/servlet.jar
-
+backport.jar=${lib.path}/backport-util-concurrent.jar
+jaxp.lib=${lib.path}/jaxp
View
63 build.xml
@@ -237,20 +237,20 @@
URL: http://jakarta.apache.org/commons/logging.html
portlet-api.jar Portlet API based on JSR-168.
- Version: (from jakarta-pluto CVS on September 22, 2004)
+ Version: (from jakarta-pluto CVS on November 2, 2004)
URL: http://www.jcp.org/en/jsr/detail?id=168
pluto.jar Reference Implementation of the Java Portlet Specfication.
This Portlet container provides a runtime environment for
portlets implemented according to the Portlet API.
The project is still in the Apache Incubator.
- Version: (from jakarta-pluto CVS on September 22, 2004)
+ Version: (from jakarta-pluto CVS on November 2, 2004)
URL: http://portals.apache.org/pluto/
wsrp4j-shared.jar WSRP4J shared classes mostly derived from OASIS WSRP WSDL.
Comes with WSRP4J.
Use the version that comes with WSRP4J.
- Version: (from ws-wsrp4j CVS on July 9, 2004)
+ Version: (from ws-wsrp4j CVS on November 2, 2004)
URL: http://ws.apache.org/wsrp4j/
wsrp4j-consumer.jar WSRP4J consumer classes.
@@ -264,20 +264,6 @@
The following modifications were made to the
WSRP4J proxy portlet source:
-
- - org.apache.wsrp4j.consumer.portlet.impl.ProxyPortlet:
-
- IS: protected PortletKey getPortletKey(Map preferences)
- WAS: private PortletKey getPortletKey(Map preferences)
-
- IS: protected Producer getProducer(String producerID) throws WSRPException
- WAS: private Producer getProducer(String producerID) throws WSRPException
-
- Added new method
- protected ConsumerEnvironment getConsumerEnvironment()
- {
- return consumerEnv;
- }
- portlet.xml
@@ -286,7 +272,7 @@
IS: <value>org.jasig.portal.wsrp.consumer.portlet.ConsumerEnvironmentImpl</value>
WAS: <value>org.apache.wsrp4j.consumer.portlet.impl.ConsumerEnvironmentImpl</value>
-
+
- wsrp4j-logger.properties
IS: log4j.appender.A1.File=wsrp4j-consumer.log
@@ -322,7 +308,10 @@
by your servlet container.
Version: 2.2, 2.3, or 2.4
URL: http://jakarta.apache.org/tomcat/
-
+backport-util-concurrent.jar Backport of Doug Lea's Concurrency package. Similar
+ to the Java 1.5 java.util.concurrent package.
+ Version CVS_HEAD (4/18/2005)
+ URL: http://www.mathcs.emory.edu/dcl/util/backport-util-concurrent/
-->
<property name="xalan.jar" value="(set this in build.properties!)"/>
@@ -350,6 +339,7 @@
<property name="jdbcDriver.jar" value="(set this in build.properties!)"/>
<property name="junit.jar" value="(set this in build.properties!)"/>
<property name="servlet.jar" value="(set this in build.properties!)"/>
+ <property name="backport.jar" value="{set this in build.properties!)" />
@@ -393,7 +383,7 @@
<pathelement location="${jdbc2_0-stdext.jar}"/>
<pathelement location="${jdbcDriver.jar}"/>
<pathelement location="${servlet.jar}"/>
-
+ <pathelement location="${backport.jar}" />
</path>
@@ -469,6 +459,11 @@
<classpath refid="compile.classpath"/>
</javac>
+ <!-- Copy non-java resources -->
+ <copy todir="${build.home}/WEB-INF/classes">
+ <fileset dir="source" excludes="CVS,**/*.java"/>
+ </copy>
+
<!-- Copy associated resource files -->
<copy todir="${build.home}/WEB-INF/classes/properties">
<fileset dir="properties" includes="**/*"/>
@@ -477,11 +472,6 @@
<!-- Copy the Logger.properties file to the well-known location
log4j expects.-->
<copy file="properties/Logger.properties" tofile="${build.home}/WEB-INF/classes/log4j.properties"/>
-
- <!-- Copy serializer resources -->
- <copy todir="${build.home}/WEB-INF/classes/org/jasig/portal/serialize">
- <fileset dir="source/org/jasig/portal/serialize" includes="**/*.res"/>
- </copy>
<!-- Copy all stylesheets, stylesheet descriptions and stylesheet list files -->
<copy todir="${build.home}/WEB-INF/classes">
@@ -528,7 +518,6 @@
<!-- Copy external dependencies as required -->
<mkdir dir="${deploy.home}/WEB-INF/lib"/>
- <copy todir="${deploy.home}/WEB-INF/lib" file="${xalan.jar}"/>
<copy todir="${deploy.home}/WEB-INF/lib" file="${xercesImpl.jar}"/>
<copy todir="${deploy.home}/WEB-INF/lib" file="${xml-apis.jar}"/>
<copy todir="${deploy.home}/WEB-INF/lib" file="${tidy.jar}"/>
@@ -546,12 +535,14 @@
<copy todir="${deploy.home}/WEB-INF/lib" file="${commons-logging.jar}"/>
<copy todir="${deploy.home}/WEB-INF/lib" file="${jdbc2_0-stdext.jar}"/>
<copy todir="${deploy.home}/WEB-INF/lib" file="${jdbcDriver.jar}"/>
+ <copy todir="${deploy.home}/WEB-INF/lib" file="${backport.jar}" />
- <!-- This is Tomcat-specific! We need to think about a new property
+ <!-- There are Tomcat-specific! We need to think about a new property
that lets us specify the appropriate directory for other servers
-->
<copy todir="${server.home}/shared/lib" file="${portlet-api.jar}"/>
<copy todir="${server.home}/shared/lib" file="${pluto.jar}"/>
+ <copy todir="${server.home}/common/endorsed" file="${xalan.jar}"/>
<!-- This is Tomcat-specific and server name-specific!
We need to find out the best way to ensure cross-context
@@ -619,8 +610,7 @@
-->
- <target name="javadoc" depends="compile"
- description="Create Javadoc API documentation">
+ <target name="javadoc" description="Create Javadoc API documentation">
<mkdir dir="${dist.home}/docs/api"/>
<javadoc sourcepath="source"
@@ -908,7 +898,7 @@
The variable fragmentFile points to the XML file of the fragments definition
- ant fragment -DfragmentFile=/properties/al/fragments.xml
+ ant pubfragments -DfragmentFile=/properties/al/fragments.xml
-->
@@ -1280,24 +1270,23 @@
-->
-
+
<target name="pubchan" description="Publishes channels" depends="compile">
<echo message="Invoking Channel Publisher Tool"/>
-
+
<property name="channel" value=" "/>
<java fork="true" dir="${basedir}" classname="org.jasig.portal.tools.chanpub.ChannelPublisher">
- <classpath refid="compile.classpath"/>
<classpath>
- <pathelement path="${build.home}/WEB-INF/classes"/>
+ <pathelement path="${build.home}/WEB-INF/classes"/>
+ <path refid="compile.classpath"/>
</classpath>
<arg value="-n"/>
<arg value="${channel}"/>
</java>
</target>
-
-<!-- ===================== deployPortlet Target ========================= -->
+<!-- ===================== deployPortletApp Target ========================= -->
<!--
@@ -1318,9 +1307,9 @@
<property name="portletApp" value=" "/>
<java fork="true" dir="${basedir}" classname="org.jasig.portal.container.deploy.Deployer">
- <classpath refid="compile.classpath"/>
<classpath>
<pathelement path="${build.home}/WEB-INF/classes"/>
+ <path refid="compile.classpath"/>
</classpath>
<arg value="${deploy.home}/.."/>
<arg value="${portletApp}"/>
View
7 docs/README
@@ -53,6 +53,13 @@ The following ant command will deploy the documentation:
ant deploy
+About HSQLDB
+------------
+
+Using an older version of hsqldb.jar with another version of the HSQLDB server could cause uPortal to hang.
+See hsqldb.jar's entry in build.xml for documentation of exactly what version of hsqldb.jar is included with this release.
+
+
Copyright
---------
View
BIN  docs/uPortal_architecture_overview.pdf
Binary file not shown
View
137 docs/uPortal_properties_overview.txt
@@ -0,0 +1,137 @@
+uPortal Properties
+==================
+
+browser.mappings
+----------------
+Defines a system profile mapping for common browsers. Each properties line assignes a regular expression for the user agent string to a profile id. Note: order in which regexs are listed is important. The code will evaluate each regex from top to bottom, reporting a profile mapping as soon as something matches. That means, that something like Netscape's user agent should be matched last, since the regex for it is more general then that of IE. To optimize the matching process, describe most popular browsers first.
+
+
+EntityPropertyRegistry.xml
+--------------------------
+Defines property finders for portal entities.
+
+
+global_dictionary.properties
+----------------------------
+Translations for portal text.
+
+
+ldap.properties
+---------------
+Configuration for LDAP connection necessary for the use of the SimpleLdapSecuritycontext and CacheLdapSecurityContext security provider.
+
+
+ldap.xml
+--------
+Configuration file for LdapServices that describes multiple LDAP server configurations.
+
+
+Logger.properties
+-----------------
+Configuration file for logging engine. The log level (DEBUG, INFO, WARN, ERROR), log file location, logging syntax, etc. can be controlled.
+
+
+media.properties
+----------------
+Specifies a mapping rule between the value contained in the HTTP request's user-Agent field and a value to be scanned for in XSL stylesheet(s) associated with the XML data. This mapping enables relationships to be defined between client capabilities and stylesheets capable of acting on these capabilities. The rules defined are order-significant. In other words, if the first rule is unsuccessful, the second rule will be tried, etc. The media value "unknown" will be used when no rules are satisfied.
+
+
+mime.properties
+---------------
+Maps browser (media) types to their mime types.
+
+
+PersonDirs.xml
+--------------
+Makes possible a standard way for the uPortal framework and its installed channels to refer to particular person attributes. For example, if a channel wants to display a user's email address, it will look for an attribute called "mail", which appears as an alias in this file. This alias maps to the actual name of the field containing an email address in your data repository. Providing this level of indirection for attribute references makes it possible for organizations to share channels that refer to user's attributes.
+
+
+portal.properties
+-----------------
+This is the main configuration file for uPortal. It contains settings for...
+-caching of content and data structures for optimized performance
+-doctypes settings of markup documents produced by uPortal
+-formatting of markup documnets produced by uPortal
+-default layout templates for new users
+-implementations of uPortal data store interfaces
+-keys for groups service's distinguished groups
+-name finder factory implementations
+-profile management settings
+-method of obtaining database connections
+-default properties for CWebProxy and CGenericXSLT channels
+-object locking and caching settings
+-portal stats recorder implementation and settings
+-thread pool settings
+-permission policy implementation
+
+
+rdbm.properties
+---------------
+Sets the JDBC driver class, URL, user name, and password which is used by the reference implementation of uPortal data storage interfaces.
+
+
+resin.conf
+----------
+Only needed if Resin XSLT transformer is used. uPortal uses Xalan by default.
+
+
+sample-jaas.conf
+----------------
+Used in conjunction with JAASSecurityContext security provider.
+
+
+security.properties
+-------------------
+Defines the security provider or chain of providers that will establish the authentication of a portal user. Also specifies the default authorization implementation.
+
+
+serializer.properties
+---------------------
+Defines a mapping between client browser (media) types and serializer names that should be used with that media.
+So far, the following serializers are supported: XML, HTML, XHTML, WML, and HTML for PalmPilot.
+
+
+services.xml
+------------
+This list of services is processed by org.jasig.portal.services.ExternalServices. When uPortal is started, it will attempt to fire up all the services listed here. Each specification includes a class name, an optional description of initialization method and jndi binding name. External services will initialize each service (by either calling a constructor or an initialization method, if such is provided). If jndi binding name is provided either an instance of the specified class, or an object returned by the intialization method (if such method was specified) will be bound under the portal /services jndi context and distributed to the uPortal channels.
+
+
+worker.properties
+-----------------
+This file configures worker dispatch processors. Workers are used to implement functionality that requires complete control over the output stream, as well as access to the portal internal structures.
+
+
+al/fragments.xml
+-----------------
+Defines layout fragments and their restrictions to be published by the PublishFragment tool. These layout fragments will be incorporated into users' layouts via uPortal's aggregated layout manager.
+
+
+chanpub/*
+---------
+This directory holds the channel definition files which can be published by the ChannelPublisher tool. Each file should be named after the channel definition's fname. For example, if the file defines a channel with an fname equal to "my-channel", then the file should be called "my-channel.xml".
+
+
+db/dbloader.xml
+---------------
+Configuation file for DbLoader tool. Controls whether or not to drop/create/populate tables and whether or not to create a database script based on the SQL statements that are executed. Contains mappings for SQL data types which will override those specified by a jdbc driver.
+
+
+groups/compositeGroupsServices.xml
+----------------------------------
+Defines the sources of information from which the portal should load its groups.
+
+
+groups/LDAPGroupStoreConfig.xml
+-------------------------------
+Specifies the connection info, groups, and queries for the LDAP groups service.
+
+
+groups/PAGSGroupStoreConfig.xml
+-------------------------------
+Specifies the groups and group membership criteria for the Person Attributes Group Service (PAGS)
+
+
+groups/pags.properties
+----------------------
+Specifies the configuration implementation for the PAGS group store.
+
View
102 docs/uPortal_tools_overview.txt
@@ -0,0 +1,102 @@
+uPortal Tools
+=============
+
+Database Loading and Unloading
+------------------------------
+
+The reference implementation of uPortal's data storage interfaces requires a relational database. uPortal provides a tool, DbLoader, to load a relational database with the required uPortal tables and sample data. DbLoader performs the following tasks:
+
+1) Reads in properties/tables.xml file to determine the database schema
+2) Deletes existing tables specified in tables.xml.
+3) Creates the tables specified in tables.xml.
+4) Reads in properties/data.xml file to determine sample data.
+5) Inserts data from data.xml into the newly created tables.
+6) Creates a database script containing all the SQL statements previously executed.
+
+DbLoader can be configured by modifying properties/dbloader.xml. Because DbLoader relies on database metadata supplied by a JDBC driver, it may be necessary (for some combinations of drivers and databases) to supply a datatype mapping inside dbloader.xml. If this is necessary, DbLoader will print an error message with instructions.
+
+Another tool, DbUnload, can read an existing database table and serialize it into an xml file similar to tables.xml. This file can then be used in place of tables.xml to load another database.
+
+The tool DbTest prints out db metadata.
+
+To run DbLoader, type "ant db" from the uPortal base directory.
+To run DbUnload, type "ant dbunload" from the uPortal base directory.
+To run DbTest, type "ant dbtest" from the uPortal base directory.
+
+
+Adding users
+------------
+Data for new users is automatically created provided that the user can authenticate successfully to uPortal. The reference data store includes a table, UP_PERSON_DIR, that simulates a more robust directory store. A new user name and md5-encrypted password can be added to this table with the "md5passwd" tool. To run md5passwd, type "ant md5passwd -Dusername=someUserName" from the uPortal base directory. Then type the password at the prompt. Note that the user's first name, last name, and email address are not handled by md5passwd. These person attributes must be entered into the database with manual SQL statements.
+
+
+Deleting users
+--------------
+Data for portal users is stored in several database tables. User information can be deleted from the portal database using the "DeleteUser" tool. To run DeleteUser, type "ant deluser -Duser=someUserName" from the uPortal base directory.
+
+
+Register Channel Types
+----------------------
+The publishing process makes use of channel publishing documents (.cpd files) to determine what parameters and restrictions on parameters are necessary to collect for the use by a published channel. A set of serveral channel types, each of which references a channel publishing document, is supplied with uPortal. To add additional channel types, it is necessary to use the RegisterChannelTypes tool. To run this tool, type "ant regchantype" followed by a set of parameters. For example:
+
+ ant regchantype
+ -Dclass=org.jasig.portal.channels.CImage
+ -Dname="Image Channel"
+ -Ddescription="Displays image with optional title and subtitle"
+ -Duri=/org/jasig/portal/channels/CImage/CImage.cpd
+
+
+Register Stylesheets
+--------------------
+uPortal comes with a reference structure and theme stylesheet. To change the final rendering of a uPortal layout, it may be necessary to author and install new stylesheets. The RegisterStylesheet tool can be used to install new stylesheets and their accompanying stylesheet description files.
+
+Usage: registerStylesheet -(s|t) [-(u|d)] [stylesheetURI] [stylesheetDescriptionURI] [stylesheetId]
+The stylesheetId must be specified for update and delete operations.
+The URIs must be specified for add and update operations.
+The CLASSPATH environment variable should be set up to include both "uPortal/build" and "uPortal/build/WEB-INF/classes" dirs.
+
+For deployment all stylesheets are moved under the "/stylesheet/" directory, so the URI for a stylesheet will always begin with "/stylesheet/", unless you're specifying a global URL (which is not recommended).
+
+Stylesheet description files (.sdf) are moved to the same location, so their URI should be specified in the same manner. For example to specify a URI for a tab-column.xsl (part of the distribution), use "/stylesheets/org/jasig/portal/layout/tab-column/tab-column.xsl".
+
+Flag specification:
+ -s : process structure stylesheet (either "-t" or "-s" are required on the command line
+ -t : process theme stylesheet (either "-t" or "-s" are required on the command line
+ -u : update stylesheet definition
+ -u : remove stylesheet
+
+
+Publish Channels
+----------------
+As an alternative to using the publishing GUI inside uPortal, one can define, in XML format, a channel definition that represents a published channel. Then the channel publishing tool can publish the channel if it is new, or replace the existing channel if it already exists. The identifier used to determine if a channel has been previously published is the channel "fname" or functional name. To publish all the availabe channel definitions, run "ant pubchan -Dchannel=all". To publish just one channel, supply the channel definition file name: "ant pubchan -Dchannel=myChannel.xml".
+
+
+Layout Fragments Loader
+-----------------------
+With the advent of Aggregated Layouts, a tool is necessary to publish a defined layout fragment into the uPortal database. To run this tool, run "ant pubfragments -DfragmentFile=/properties/al/pushfragments.xml" from the uPortal base directory. The fragment file is an XML file that defines the pushed and pulled fragments and their restrictions.
+
+
+Deploy Portlet Applications
+---------------------------
+uPortal uses the Apache Pluto Portlet Container to manage Portlets. The Portlet Deployer tool deploys one or more Portlet applications, rewriting each application's web.xml file to suit the Pluto environment. To deploy multiple Portlet applications, place the Portlet application WAR files in the lib/portlets directory and run "ant deployPortletApp -DportletApp=all". To deploy just one Portlet application, supply the Portlet application WAR file location: "ant deployPortletApp -DporltetApp=C:/TEMP/myPortlet.war".
+
+
+XSLT Transformation
+-------------------
+Performs an XSLT transformation using uPortal XSLT libraries.
+
+ant RunXSLT -DXmlInput=input.xml -DoutputFile=output.xml -DXslfile=stylesheet.xsl
+
+where XmlInput is the file to be transformed,
+outputFile is where the result should saved and
+Xslfile is the URL of the xsl file to be used in the transform.
+
+
+uPortal 2.2.x and 2.3.x --> 2.4.x Upgrade Tool
+----------------------------------------------
+No upgrade tool is available to migrate a uPortal 2.2.x or 2.3.x installation to a uPortal 2.4 installation. Since the database changes are minimal, it should be relatively easy to perform this upgrade. See the README.txt file for information about database and properties files changes since 2.2.x or 2.3.x.
+
+
+uPortal 2.1.x --> 2.4.x Upgrade Tool
+------------------------------------
+See http://www.uportal.org/implementors/upgrade/upgrade21.html for instructions on using the included upgrade tools.
+
View
19 docs/website/implementors/services/compositeGroupService.html
@@ -298,21 +298,24 @@
is fully assembled.&nbsp; In the reference implementation, the service
name is built up node by node as the composite is composed.&nbsp; <br>
</p>
- <p><span style="font-style: italic;">Group Keys.</span>&nbsp; A
+ <p><span style="font-style: italic;">Group Keys.</span>&nbsp; A
group's composite service key is the concatenation of its
fully-qualified service name and its key in the local service.&nbsp; The
nodes of the service name, and the final node of the name and the local
key, are separated by a <span style="font-style: italic;">node separator</span>.&nbsp;
For example, a group with a local key of "English_Department" in a
-service named "ldap" with a node separator of "%" would have a key of
-"ldap%English_Department".&nbsp; <br>
+service named "ldap" with a node separator of "!" would have a key of
+"ldap!English_Department".&nbsp; <br>
</p>
<p><span style="font-style: italic;">Node Separators.</span>&nbsp;
-The default node separator is the period, or ".", but it can be any <code>String</code>
-not found within the nodes of a group key.&nbsp; For example, if local
-group keys include "Latin.101.Section01" and "chefs@columbia.edu", valid
-separators would include "$", "%", and "@@", but not "." or "@".&nbsp;
-For instructions on changing the node separator see <a
+The default node separator is a String containing a period, or ".", but
+it can be any String not found within the nodes of a group key.&nbsp;
+However, group keys can find their way into portal content and urls
+and are subject to xsl transformations. Therefore, the separator should not
+contain a character like '%' that has a special meaning and must be escaped
+to preserve its literal value. If local group keys include "Latin.101.Section01"
+and "chefs@columbia.edu", valid separators would include "$", and "_x", but not
+"." or "@".&nbsp; For instructions on changing the node separator see <a
href="#Configuring_the_Composite">Configuring the Composite</a>.&nbsp; <br>
</p>
<p><span style="font-style: italic;">Groups and their Service
View
35 docs/website/implementors/services/compositeGroupService_prt.html
@@ -1,4 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
@@ -259,23 +259,26 @@
reference implementation, the service name is built up node by node as
the composite is composed.&nbsp; <br>
</p>
-<p><span style="font-style: italic;">Group Keys.</span>&nbsp; A group's
-composite service key is the concatenation of its fully-qualified
-service name and its key in the local service.&nbsp; The nodes of the
-service name, and the final node of the name and the local key, are
-separated by a <span style="font-style: italic;">node separator</span>.&nbsp;
+ <p><span style="font-style: italic;">Group Keys.</span>&nbsp; A
+group's composite service key is the concatenation of its
+fully-qualified service name and its key in the local service.&nbsp; The
+nodes of the service name, and the final node of the name and the local
+key, are separated by a <span style="font-style: italic;">node separator</span>.&nbsp;
For example, a group with a local key of "English_Department" in a
-service named "ldap" with a node separator of "%" would have a key of
-"ldap%English_Department".&nbsp; <br>
-</p>
-<p><span style="font-style: italic;">Node Separators.</span>&nbsp; The
-default node separator is the period, or ".", but it can be any <code>String</code>
-not found within the nodes of a group key.&nbsp; For example, if local
-group keys include "Latin.101.Section01" and "chefs@columbia.edu", valid
-separators would include "$", "%", and "@@", but not "." or "@".&nbsp;
-For instructions on changing the node separator see <a
+service named "ldap" with a node separator of "!" would have a key of
+"ldap!English_Department".&nbsp; <br>
+ </p>
+ <p><span style="font-style: italic;">Node Separators.</span>&nbsp;
+The default node separator is a String containing a period, or ".", but
+it can be any String not found within the nodes of a group key.&nbsp;
+However, group keys can find their way into portal content and urls
+and are subject to xsl transformations. Therefore, the separator should not
+contain a character like '%' that has a special meaning and must be escaped
+to preserve its literal value. If local group keys include "Latin.101.Section01"
+and "chefs@columbia.edu", valid separators would include "$", and "_x", but not
+"." or "@".&nbsp; For instructions on changing the node separator see <a
href="#Configuring_the_Composite">Configuring the Composite</a>.&nbsp; <br>
-</p>
+ </p>
<p><span style="font-style: italic;">Groups and their Service Names.</span>&nbsp;
The significance of the service name in a group key is that it
directs us to the specific service that can answer the request for the
View
122 etc/quickstart/README.txt
@@ -0,0 +1,122 @@
+$Id$
+
+uPortal Quick-Start Distribution
+--------------------------------------
+
+Purpose
+-------
+This quick-start release distribution is provided
+for those who want to get familiar with uPortal
+quickly and easily, without having to compile and
+deploy code, and without having to set up a database.
+
+
+Contents
+--------
+1) uPortal 2.4.2
+2) Tomcat 5.0.28
+3) HSQLDB 1.7.2.4
+4) Ant 1.6.2
+
+
+System requirements
+-------------------
+JDK 1.4 or higher.
+JDK must include tools.jar.
+JAVA_HOME environment variable must be set to a path that does not contain spaces.
+Nothing else should be running on port 8005, 8080 and 8887.
+Path to uPortal_2-4-quick-start folder should not contain spaces.
+
+
+Instructions
+------------
+For the commands below, the 'ant' command depends on
+your operating system:
+Windows: ant.bat
+UNIX: ant.sh
+
+To start uPortal, you must first start HSQLDB by typing:
+
+ant hsql
+
+Next start Tomcat by typing:
+
+ant tomcatstart
+
+You may need to enter each command
+in a separate console window.
+
+Once HSQLDB and Tomcat are running, you can access
+uPortal with your browser by entering the following URL:
+
+http://localhost:8080/uPortal/
+
+You can login to uPortal with the following user name/password
+combinations:
+
+demo, demo
+student, student
+faculty, faculty
+staff, staff
+developer, developer
+
+To stop uPortal, first stop Tomcat by typing
+
+ant tomcatstop
+
+Then stop Hypersonic SQL by
+typing
+
+CTRL-C
+
+in the window in which it was started.
+
+
+Notes
+-----
+-uPortal binaries are included so there is no
+ need to compile any uPortal source code. Also, the
+ database is pre-loaded, so there is no need to run
+ any database scripts. A separate build.xml file
+ exists in the uPortal sub-directory which can be
+ used to deploy uPortal if you make any changes to
+ its source code or properties files. The included
+ binaries where compiled with JDK 1.4.2-b28.
+
+-Connection pooling is set up by Tomcat.
+ For more information about Tomcat's conneciton
+ pooling configuration, see
+ http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-datasource-examples-howto.html
+
+-Log messages for uPortal appear in
+ portal.log which appears in the current java working
+ directory which is typically the same directory that
+ this README.txt file is in.
+
+-If you are attempting to run uPortal in an environment
+ that requires a proxy server to make http requests outside
+ the firewall, you may need to configure the proxy host
+ and port for your JVM. This can be done by modifying the
+ build.xml file by adding the following lines in the
+ tomcatstart target element below the catalina.home
+ sysproperty element:
+ <sysproperty key="http.proxyHost" value="YOUR_PROXY_HOST"/>
+ <sysproperty key="http.proxyPort" value="YOUR_PROXY_PORT"/>
+
+
+Please report bugs and suggestions:
+
+ http://www.uportal.org/bugzilla/
+
+uPortal website:
+
+ http://www.uportal.org/
+
+
+Changes since last release
+-------------------------
+See ./uPortal_rel-X-X-X/README.txt
+
+This quick-start distribution now contains jta.jar
+so that certain tools will run without an available
+JNDI context.
View
2  etc/quickstart/ant.bat
@@ -0,0 +1,2 @@
+set ANT_HOME=./Ant_1-6-2
+./Ant_1-6-2/bin/ant.bat %1
View
4 etc/quickstart/ant.sh
@@ -0,0 +1,4 @@
+#! /bin/sh
+
+ANT_HOME=./Ant_1-6-2
+./Ant_1-6-2/bin/ant $@
View
77 etc/quickstart/build.xml
@@ -0,0 +1,77 @@
+<!--
+ $Id$
+ This build.xml contains targets for starting HSQLDB
+ (which listens on port 8887)
+ and starting and stopping Tomcat 5.0.28.
+-->
+
+<project name="uPortal_Quick_Start" default="help" basedir=".">
+
+ <property environment="env"/>
+
+
+<!--
+ The "hsql" target starts HSQLDB
+-->
+
+ <target name="hsql">
+ <echo message="Starting HSQLDB"/>
+ <java fork="true" dir="${basedir}" classname="org.hsqldb.Server">
+ <classpath>
+ <pathelement path="${basedir}/HSQLDB_1-7-2-4/lib/hsqldb.jar"/>
+ </classpath>
+ <arg value="-database"/>
+ <arg value="${basedir}/HSQLDB_1-7-2-4/demo/uPortal"/>
+ <arg value="-port"/>
+ <arg value="8887"/>
+ </java>
+ </target>
+
+<!--
+ The "tomcatstart" target starts Tomcat
+-->
+
+ <target name="tomcatstart">
+ <echo message="Starting Tomcat 5.0.28"/>
+ <java fork="true" dir="${basedir}" classname="org.apache.catalina.startup.Bootstrap">
+ <classpath>
+ <pathelement path="${basedir}/Tomcat_5-0-28/bin/bootstrap.jar"/>
+ <pathelement path="${env.JAVA_HOME}/lib/tools.jar"/>
+ </classpath>
+ <sysproperty key="catalina.home" value="${basedir}/Tomcat_5-0-28"/>
+ <arg value="start"/>
+ </java>
+ </target>
+
+<!-- ==================== tomcatstop Target ================================ -->
+
+<!--
+
+ The "tomcat" target stops Tomcat
+
+-->
+
+
+ <target name="tomcatstop">
+ <echo message="Stopping Tomcat 5.0.28"/>
+ <java fork="true" dir="${basedir}" classname="org.apache.catalina.startup.Bootstrap">
+ <classpath>
+ <pathelement path="${basedir}/Tomcat_5-0-28/bin/bootstrap.jar"/>
+ </classpath>
+ <sysproperty key="catalina.home" value="${basedir}/Tomcat_5-0-28"/>
+ <!--jvmarg value="-Dcatalina.home=${basedir}/Tomcat_5-0-28"/-->
+ <arg value="stop"/>
+ </java>
+ </target>
+
+<!--
+ The "help" target prints a help message
+-->
+
+ <target name="help">
+ <echo message="Please read the README file which explains how to operate this uPortal quick-start package"/>
+ <echo message="To see the possible ant targets, type 'ant -projecthelp'"/>
+ </target>
+
+
+</project>
View
5 etc/quickstart/fix-unix-modes.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+chmod 755 .
+find . -type d -exec chmod 755 {} \;
+find . -type f -exec chmod 644 {} \;
+find . -type f -name \*.sh -exec chmod 755 {} \;
View
55 etc/uportal-quickstart-dist.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+#
+# $Id$
+# This script will package up a uPortal quickstart distribution
+#
+
+if [ -z "$3" ]; then
+ echo usage: $0 release-tag uportal-src-dir old-quickstart-dir
+ exit
+fi
+
+RELEASE=uPortal_$1-quick-start
+SRC=$2
+QSDIR=$3
+
+#
+# Create root dir for quick-start distribution
+#
+echo $RELEASE
+mkdir $RELEASE
+cd $RELEASE
+
+#
+# Move in uPortal source distribution and quickstart scripts
+#
+#
+cp -r $SRC .
+cp $SRC/etc/quickstart/* .
+
+#
+# Move in quickstart resources from previously release
+# (is there a better way to do a quickstart?)
+#
+cp -r $QSDIR/Ant_1-6-2 .
+cp -r $QSDIR/HSQLDB_1-7-2-4 .
+cp -r $QSDIR/Tomcat_5-0-28 .
+
+
+echo "done!"
+echo "Now..."
+echo "update server.home in uPortal build.properties"
+echo "start hsqldb - ant hsql"
+echo "set getDatasourceFromJNDI in portal.properties to true
+echo "run ant deploy in uPortal home"
+echo "start tomcat, ant tomcatstart, and check for no errors in portal.log"
+echo "stop HSQL and Tomcat"
+echo "rm uPortal/build, and Tomcat work and logs, and portal.log"
+echo "run fix-unix-modes.sh"
+echo "zip -r uPortal_X-X-X-quick-start uPortal_X-X-X-quick-start"
+echo ""
+echo "scp the release to www.jasig.org:/var/www/html/ja-sig/uportaldist"
+echo "update download.html page."
+echo "update cvs.html page."
+echo "update index.html with news about releases."
+exit
View
64 etc/uportal-source-dist.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+#
+# $Id$
+# This script will package up a uPortal source distribution
+#
+
+
+if [ -z "$1" ]; then
+ echo usage: $0 release-tag
+ exit
+fi
+
+#
+# Export release tag
+#
+cvs -d:pserver:anonymous@mis105.mis.udel.edu:/home/cvs/jasig login
+cvs -d:pserver:anonymous@mis105.mis.udel.edu:/home/cvs/jasig export -r $1 portal
+
+#
+# Remove website directory, build.xml and README in ./docs
+# These are used to maintain the website and are not
+# needed in the distribution. Is there a better place for these?
+#
+rm -rf ./portal/docs/website
+rm ./portal/docs/build.xml
+rm ./portal/docs/README
+
+#
+# Remove .cvsignore files.
+#
+find . -name ".cvsignore" | xargs rm
+
+#
+# Remove .dict files. (should these be moved to the attic?)
+#
+find . -name "*.dict" | xargs rm
+
+#
+# Create JavaDoc
+#
+cd portal
+ant javadoc
+mv ./dist/docs/api ./docs/
+ant clean
+cd ../
+
+#
+# Rename model to uPortal_{release-tag}
+#
+mv portal uPortal_$1
+
+#
+# Zip up distribution
+#
+zip -r uPortal_$1 uPortal_$1
+
+echo "done!"
+echo "Now..."
+echo "scp the release to www.jasig.org:/var/www/html/ja-sig/uportaldist"
+echo "update download.html page."
+echo "update cvs.html page."
+echo "update index.html with news about releases."
+exit
View
BIN  lib/backport-util-concurrent.jar
Binary file not shown
View
BIN  lib/commons-collections-3.1.jar
Binary file not shown
View
BIN  lib/commons-dbcp-1.2.1.jar
Binary file not shown
View
BIN  lib/commons-pool-1.2.jar
Binary file not shown
View
BIN  lib/pluto-1.0.1.jar → lib/pluto-1.0.1-rc1.jar
Binary file not shown
View
BIN  lib/pluto-1.0.1-rc2.jar
Binary file not shown
View
BIN  lib/portlets/proxyportlet.war
Binary file not shown
View
BIN  lib/portlets/testsuite.war
Binary file not shown
View
BIN  lib/xalan-2-6-0.jar
Binary file not shown
View
3  properties/Logger.properties
@@ -1,6 +1,9 @@
###########################################################################
# Properties file for the log4j logger system
#
+# Note: During the uPortal build, the file at /properties/Logger.properties is copied
+# to the log4j standard location /WEB-INF/classes/log4j.properties . This means that editing the file
+# at /properties/Logger.properties in a deployed uPortal will have no effect.
#
# Please read the instructions for the Log4J logging system at
# http://jakarta.apache.org/log4j/ if you want to modify this.
View
2  properties/PersonDirs.xml
@@ -211,6 +211,7 @@
<url>ldap://yu.yale.edu:389/dc=itstp, dc=yale, dc=edu</url>
<logonid>cn=bogus,cn=Users,dc=itstp,dc=yale,dc=edu</logonid>
<logonpassword>foobar</logonpassword>
+ <usercontext>cn=Users</usercontext>
2) Specify the name of an LDAP server as set up in uPortal's ldap.xml. For example,
@@ -223,7 +224,6 @@
<ldap-ref-name>Main</ldap-ref-name>
<uidquery>(cn={0})</uidquery>
- <usercontext>cn=Users</usercontext>
<attributes>
View
4 properties/db/data.xml
@@ -10,7 +10,7 @@
<column><name>FNAME</name><value>UP_FRAMEWORK</value></column>
<column><name>MAJOR</name><value>2</value></column>
<column><name>MINOR</name><value>4</value></column>
- <column><name>MICRO</name><value>0</value></column>
+ <column><name>MICRO</name><value>3</value></column>
<column><name>DESCRIPTION</name><value>The uPortal Framework.</value></column>
</row>
</rows>
@@ -1257,7 +1257,7 @@
<column><name>CHAN_ID</name><value>9</value></column>
<column><name>CHAN_PARM_NM</name><value>codeBase</value></column>
<column><name>CHAN_PARM_DESC</name><value></value></column>
- <column><name>CHAN_PARM_VAL</name><value>http://www.nrr.co.uk/javamine</value></column>
+ <column><name>CHAN_PARM_VAL</name><value>http://nrr.dnsalias.net/javamine</value></column>
<column><name>CHAN_PARM_OVRD</name><value>N</value></column>
</row>
<row>
View
8 properties/db/tables.xml
@@ -60,12 +60,12 @@
<column>
<name>PREF_ID</name>
<type>INTEGER</type>
- <desc>Preference key forieg key for UP_PORTLET_PREF_VALUES</desc>
+ <desc>Preference key foreign key for UP_PORTLET_PREF_VALUES</desc>
</column>
</columns>
<primary-key>CHAN_ID</primary-key>
<primary-key>PREF_ID</primary-key>
- <not-null>PORTLET_PREFERENCES_NAME</not-null>
+ <not-null>PORTLET_PREF_NAME</not-null>
</table>
<table sinceMajor="2" sinceMinor="4">
@@ -103,7 +103,7 @@
<primary-key>LAYOUT_ID</primary-key>
<primary-key>CHAN_DESC_ID</primary-key>
<primary-key>PREF_ID</primary-key>
- <not-null>PORTLET_PREFERENCES_NAME</not-null>
+ <not-null>PORTLET_PREF_NAME</not-null>
</table>
<table sinceMajor="2" sinceMinor="4">
@@ -1273,8 +1273,8 @@
<primary-key>ENTITY_TYPE_ID</primary-key>
<primary-key>ENTITY_KEY</primary-key>
<primary-key>LOCK_OWNER</primary-key>
+ <primary-key>EXPIRATION_TIME</primary-key>
<not-null>LOCK_TYPE</not-null>
- <not-null>EXPIRATION_TIME</not-null>
</table>
<!-- Used by the EntityPropertyRegistry to store aribtrary properties. -->
View
18 properties/security.properties
@@ -40,6 +40,15 @@
# This is the factory that supplies the concrete authentication class
root=org.jasig.portal.security.provider.SimpleSecurityContextFactory
+
+# Sample security context chain that caches the authenticated user's password
+#root=org.jasig.portal.security.provider.UnionSecurityContextFactory
+#root.db=org.jasig.portal.security.provider.SimpleSecurityContextFactory
+#root.db.cache=org.jasig.portal.security.provider.CacheSecurityContextFactory
+#root.ldap=org.jasig.portal.security.provider.SimpleLdapSecurityContextFactory
+#root.ldap.cache=org.jasig.portal.security.provider.CacheSecurityContextFactory
+
+#root.ldap=org.jasig.portal.security.provider.CacheLdapSecurityContextFactory
#root.cas=edu.columbia.ais.portal.security.provider.CasSecurityContextFactory
#Configurable security context example
@@ -49,9 +58,12 @@ root=org.jasig.portal.security.provider.SimpleSecurityContextFactory
#root.ldap_stu=org.jasig.portal.security.provider.SimpleLdapSecurityContextFactory
#root.ldap_fac=org.jasig.portal.security.provider.SimpleLdapSecurityContextFactory
-#securityContextProperty.propName=this would be a root context property
-#securityContextProperty.ldap_stu.connection=Students
-#securityContextProperty.ldap_fac.connection=Faculty
+#!!!!! PLEASE NOTE, THE NAMING CONVENTION HAS CHANGED AS OF 2.4.1 !!!!!
+# A context property for the 'root' context
+#securityContextProperty.root.propName=this would be a context property for the 'root' context
+# A context property for the 'root.ldap_stu' context
+#securityContextProperty.root.ldap_stu.connection=Students
+#securityContextProperty.root.ldap_fac.connection=Faculty
# Answers what tokens are examined in the request for each context during authentication.
View
112 properties/uPortal.xml
@@ -1,6 +1,114 @@
+<!-- $Id$ -->
+<!-- This is a sample Servlet Context configuration used for the quickstart distribution -->
+
<Context path="/uPortal" docBase="uPortal" crossContext="true">
- <!-- Disables restart persistence of sessions -->
- <Manager pathname=""/>
+ <Resource name="jdbc/PortalDb" auth="Container" type="javax.sql.DataSource"/>
+ <Resource name="jdbc/PersonDb" auth="Container" type="javax.sql.DataSource"/>
+
+ <ResourceParams name="jdbc/PortalDb">
+ <parameter>
+ <name>factory</name>
+ <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
+ </parameter>
+
+ <!-- Maximum number of dB connections in pool. Set to 0 for no limit.-->
+ <parameter>
+ <name>maxActive</name>
+ <value>100</value>
+ </parameter>
+
+ <!-- Maximum number of idle dB connections to retain in pool. Set to 0 for no limit.-->
+ <parameter>
+ <name>maxIdle</name>
+ <value>30</value>
+ </parameter>
+
+ <!-- Maximum time to wait for a dB connection to become available
+ in ms, in this example 10 seconds. An Exception is thrown if
+ this timeout is exceeded. Set to -1 to wait indefinitely.
+ -->
+ <parameter>
+ <name>maxWait</name>
+ <value>10000</value>
+ </parameter>
+
+ <!-- Portal dB username and password for dB connections -->
+ <parameter>
+ <name>username</name>
+ <value>sa</value>
+ </parameter>
+ <parameter>
+ <name>password</name>
+ <value></value>
+ </parameter>
+
+ <!-- Class name JDBC driver -->
+ <parameter>
+ <name>driverClassName</name>
+ <value>org.hsqldb.jdbcDriver</value>
+ </parameter>
+
+ <!-- The JDBC connection url for connecting to your Portal dB.-->
+ <parameter>
+ <name>url</name>
+ <value>jdbc:hsqldb:hsql://localhost:8887</value>
+ </parameter>
+
+ </ResourceParams>
+
+ <ResourceParams name="jdbc/PersonDb">
+ <parameter>
+ <name>factory</name>
+ <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
+ </parameter>
+
+ <!-- Maximum number of dB connections in pool. Set to 0 for no limit.-->
+ <parameter>
+ <name>maxActive</name>
+ <value>100</value>
+ </parameter>
+
+ <!-- Maximum number of idle dB connections to retain in pool. Set to 0 for no limit.-->
+ <parameter>
+ <name>maxIdle</name>
+ <value>30</value>
+ </parameter>
+
+ <!-- Maximum time to wait for a dB connection to become available
+ in ms, in this example 10 seconds. An Exception is thrown if
+ this timeout is exceeded. Set to -1 to wait indefinitely.
+ -->
+ <parameter>
+ <name>maxWait</name>
+ <value>10000</value>
+ </parameter>
+
+ <!-- Person dB username and password for dB connections -->
+ <parameter>
+ <name>username</name>
+ <value>sa</value>
+ </parameter>
+ <parameter>
+ <name>password</name>
+ <value></value>
+ </parameter>
+
+ <!-- Class name for JDBC driver -->
+ <parameter>
+ <name>driverClassName</name>
+ <value>org.hsqldb.jdbcDriver</value>
+ </parameter>
+
+ <!-- The JDBC connection url for connecting to your Person dB.-->
+ <parameter>
+ <name>url</name>
+ <value>jdbc:hsqldb:hsql://localhost:8887</value>
+ </parameter>
+
+ </ResourceParams>
+
+ <!-- Disables restart persistence of sessions -->
+ <Manager pathname=""/>
</Context>
View
119 scripts/createTables-hypersonic.script
@@ -1,119 +0,0 @@
-CREATE TABLE UP_USERS
-(
- ID INTEGER,
- USER_NAME VARCHAR(15) NOT NULL,
- FIRST_NAME VARCHAR(15),
- LAST_NAME VARCHAR(15),
- USER_LAYOUT_XML LONGVARCHAR,
- PRIMARY KEY (ID)
-);
-
-CREATE TABLE UP_SHADOW
-(
- USER_NAME VARCHAR (64),
- PASSWORD VARCHAR (64)
-);
-
-CREATE INDEX PORTAL_SHADOW_PK ON
- UP_SHADOW(USER_NAME);
-
-CREATE TABLE UP_CHANNELS
-(
- CHAN_ID INTEGER NOT NULL,
- TITLE VARCHAR(256) NULL,
- PUB_EMAIL VARCHAR(100) NULL,
- APPROVED INTEGER NULL,
- CHANNEL_XML LONGVARCHAR NOT NULL,
- PRIMARY KEY (CHAN_ID)
-);
-
-CREATE TABLE UP_CHAN_TYPES (
- NAME VARCHAR(70) NOT NULL,
- TYPE VARCHAR(50) NOT NULL,
- DESCR LONGVARCHAR NOT NULL,
- DEF_URI LONGVARCHAR NOT NULL,
- PRIMARY KEY (NAME)
-);
-
-CREATE TABLE UP_CLASS
-(
- CLASS_ID INTEGER NOT NULL,
- NAME VARCHAR(100) NOT NULL,
- PRIMARY KEY (CLASS_ID)
-);
-
-CREATE TABLE UP_CHAN_CLASS
-(
- CLASS_ID INTEGER NOT NULL,
- CHAN_ID INTEGER NOT NULL
-);
-
-CREATE TABLE UP_USER_PREFS
-(
- USER_NAME VARCHAR(15) NOT NULL,
- MEDIA VARCHAR(15) NOT NULL,
- STRUCTURE_STYLESHEET_NAME VARCHAR(30) NOT NULL,
- THEME_STYLESHEET_NAME VARCHAR(30) NOT NULL,
- CSS_STYLESHEET_NAME VARCHAR(30) NOT NULL
-);
-
-CREATE TABLE UP_USER_SS_PREFS
-(
- USER_NAME VARCHAR(15) NOT NULL,
- STYLESHEET_NAME VARCHAR(30) NOT NULL,
- USER_PREFERENCES_XML LONGVARCHAR
-);
-
-CREATE TABLE UP_STRUCT_SS
-(
- STYLESHEET_NAME VARCHAR(30) NOT NULL,
- STYLESHEET_URI LONGVARCHAR NOT NULL,
- STYLESHEET_DESCRIPTION_URI LONGVARCHAR NOT NULL,
- STYLESHEET_DESCRIPTION_TEXT LONGVARCHAR,
- PRIMARY KEY (STYLESHEET_NAME)
-);
-
-CREATE TABLE UP_THEME_SS
-(
- STYLESHEET_NAME VARCHAR(30) NOT NULL,
- STYLESHEET_URI LONGVARCHAR NOT NULL,
- STYLESHEET_DESCRIPTION_URI LONGVARCHAR NOT NULL,
- STYLESHEET_DESCRIPTION_TEXT LONGVARCHAR,
- PRIMARY KEY (STYLESHEET_NAME)
-);
-
-CREATE TABLE UP_CSS_SS
-(
- STYLESHEET_NAME VARCHAR(30) NOT NULL,
- STYLESHEET_URI LONGVARCHAR NOT NULL,
- STYLESHEET_DESCRIPTION_URI LONGVARCHAR NOT NULL,
- STYLESHEET_DESCRIPTION_TEXT LONGVARCHAR,
- PRIMARY KEY (STYLESHEET_NAME)
-);
-
-CREATE TABLE UP_STRUCT_SS_MAP
-(
- MEDIA VARCHAR(15) NOT NULL,
- STRUCTURE_STYLESHEET_NAME VARCHAR(30) NOT NULL
-);
-
-CREATE TABLE UP_THEME_SS_MAP
-(
- THEME_STYLESHEET_NAME VARCHAR(30) NOT NULL,
- STRUCTURE_STYLESHEET_NAME VARCHAR(30) NOT NULL
-);
-
-CREATE TABLE UP_CSS_SS_MAP
-(
- CSS_STYLESHEET_NAME VARCHAR(30) NOT NULL,
- THEME_STYLESHEET_NAME VARCHAR(30) NOT NULL
-);
-
-CREATE TABLE UPC_BOOKMARKS
-(
- ID INTEGER,
- PORTAL_USER_ID INTEGER,
- BOOKMARK_XML LONGVARCHAR,
- PRIMARY KEY (ID)
-);
-
View
15 scripts/dropTables.script
@@ -1,15 +0,0 @@
-DROP TABLE UP_USERS;
-DROP TABLE UP_SHADOW;
-DROP TABLE UP_CHANNELS;
-DROP TABLE UP_CHAN_TYPES;
-DROP TABLE UP_CLASS;
-DROP TABLE UP_CHAN_CLASS;
-DROP TABLE UP_USER_PREFS;
-DROP TABLE UP_USER_SS_PREFS;
-DROP TABLE UP_STRUCT_SS;
-DROP TABLE UP_THEME_SS;
-DROP TABLE UP_CSS_SS;
-DROP TABLE UP_STRUCT_SS_MAP;
-DROP TABLE UP_THEME_SS_MAP;
-DROP TABLE UP_CSS_SS_map;
-DROP TABLE UPC_BOOKMARKS;
View
269 scripts/populateTables.script
@@ -1,269 +0,0 @@
-INSERT INTO UP_USERS (ID, USER_NAME, FIRST_NAME, LAST_NAME) values (0, 'guest', 'Guest', 'Guest');
-
-INSERT INTO UP_USERS (ID, USER_NAME, FIRST_NAME, LAST_NAME) VALUES (1, 'demo', 'Demo', 'User');
-INSERT INTO UP_SHADOW (USER_NAME, PASSWORD) VALUES ('demo', '{MD5}IAnYXaWGdqTkifNNwo0bfIIphj2NPvSG');
-
-UPDATE UP_USERS SET USER_LAYOUT_XML=
-'<?xml version="1.0"?>
-<!DOCTYPE layout SYSTEM "file:/userLayout.dtd">
-<layout>
- <folder ID="t01" priority="1" name="Main">
- <folder ID="col01" priority="0" width="40%" name="Column 1">
- <channel ID="chan00" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="true" removable="true" detachable="false" class="org.jasig.portal.channels.CLogin" name="Login">
- </channel>
- <channel ID="chan01" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="MozillaZine">
- <parameter value="webpages/rss/netscape.rss" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>
- <channel ID="chan02" priority="1" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="StockCharts.com">
- <parameter value="webpages/rss/stockcharts.rss" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>
- </folder>
- <folder ID="col02" priority="0" width="60%" name="Column 2">
- <channel ID="chan03" priority="0" timeout="5000" minimized="false" editable="true" hasHelp="true" removable="true" detachable="true" class="org.jasig.portal.channels.CBookmarks" name="Bookmarks">
- </channel>
- <channel ID="chan04" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="XML.com">
- <parameter value="webpages/rss/news.rss" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>
- </folder>
- </folder>
- <folder ID="t02" priority="0" name="uPortal Tools">
- <channel ID="chan90" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="false" detachable="false" class="org.jasig.portal.channels.CSubscriber" name="Subscribe">
- </channel>
- <channel ID="chan92" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="false" detachable="false" class="org.jasig.portal.channels.CPublisher" name="Publish">
- </channel>
- <channel ID="chan91" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="false" detachable="false" class="org.jasig.portal.channels.CUserPreferences" name="User Preferences">
- </channel>
- </folder>
- <folder ID="t03" priority="0" name="More">
- <folder ID="col03" priority="0" width="50%" name="Column 1">
- <channel ID="chan06" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="uPortal-Powered Sites">
- <parameter value="http://interactivebusiness.com/publish/jasigPortalDemos.rss" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>
- <channel ID="chan07" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="IBS News">
- <parameter value="http://interactivebusiness.com/publish/ibs.rss" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>
- </folder>
- <folder ID="col04" priority="0" width="50%" name="Column 2">
- <channel ID="chan08" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="uPortal Developers Reference">
- <parameter value="http://asigdev.princeton.edu:82/portal/rss/jasigdev.rss" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>
- <channel ID="chan09" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="Salon.com">
- <parameter value="http://www.salon.com/feed/RDF/salon_use.rdf" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>
- </folder>
- </folder>
-</layout>' WHERE USER_NAME='guest';
-
-UPDATE UP_USERS SET USER_LAYOUT_XML=
-'<?xml version="1.0"?>
-<!DOCTYPE layout SYSTEM "file:/userLayout.dtd">
-<layout>
- <folder ID="t01" priority="1" name="Main">
- <folder ID="col01" priority="0" width="40%" name="Column 1">
- <channel ID="chan00" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CNumberGuess" name="Number Guessing Game">
- <parameter value="1" name="minNum"/>
- <parameter value="100" name="maxNum"/>
- </channel>
- <channel ID="chan01" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="MozillaZine">
- <parameter value="webpages/rss/netscape.rss" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>
- <channel ID="chan02" priority="1" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="StockCharts.com">
- <parameter value="webpages/rss/stockcharts.rss" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>
- </folder>
- </folder>
- <folder ID="t02" priority="0" name="uPortal Tools">
- <channel ID="chan90" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="false" detachable="false" class="org.jasig.portal.channels.CSubscriber" name="Subscribe">
- </channel>
- <channel ID="chan91" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="false" detachable="false" class="org.jasig.portal.channels.CUserPreferences" name="User Preferences">
- </channel>
- </folder>
-</layout>' WHERE USER_NAME='demo';
-
-INSERT INTO UP_CHANNELS (CHAN_ID, TITLE, PUB_EMAIL, APPROVED, CHANNEL_XML) VALUES (1, 'Mozillazine', NULL, 0,
-'<channel ID="chan01" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="MozillaZine">
- <parameter value="webpages/rss/netscape.rss" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>')
-
-INSERT INTO UP_CHANNELS (CHAN_ID, TITLE, PUB_EMAIL, APPROVED, CHANNEL_XML) VALUES (2, 'Stockcharts', NULL, 0,
-'<channel ID="chan02" priority="1" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="StockCharts.com">
- <parameter value="webpages/rss/stockcharts.rss" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>')
-
-INSERT INTO UP_CHANNELS (CHAN_ID, TITLE, PUB_EMAIL, APPROVED, CHANNEL_XML) VALUES (3, 'Bookmarks', NULL, 0,
-'<channel ID="chan03" priority="0" timeout="5000" minimized="false" editable="true" hasHelp="true" removable="true" detachable="true" class="org.jasig.portal.channels.CBookmarks" name="Bookmarks">
- </channel>')
-
-INSERT INTO UP_CHANNELS (CHAN_ID, TITLE, PUB_EMAIL, APPROVED, CHANNEL_XML) VALUES (4, 'XML.com', NULL, 0,
-'<channel ID="chan04" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="XML.com">
- <parameter value="webpages/rss/news.rss" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>')
-
-INSERT INTO UP_CHANNELS (CHAN_ID, TITLE, PUB_EMAIL, APPROVED, CHANNEL_XML) VALUES (5, 'uPortal Demos', NULL, 0,
-'<channel ID="chan05" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="uPortal-Powered Sites">
- <parameter value="http://interactivebusiness.com/publish/jasigPortalDemos.rss" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>')
-
-INSERT INTO UP_CHANNELS (CHAN_ID, TITLE, PUB_EMAIL, APPROVED, CHANNEL_XML) VALUES (6, 'IBS News', NULL, 0,
-'<channel ID="chan06" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="IBS News">
- <parameter value="http://interactivebusiness.com/publish/ibs.rss" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>')
-
-INSERT INTO UP_CHANNELS (CHAN_ID, TITLE, PUB_EMAIL, APPROVED, CHANNEL_XML) VALUES (7, 'uPortal Developers Reference', NULL, 0,
-'<channel ID="chan07" priority="0" timeout="5000" minimized="false" editable="false" hasHelp="false" removable="true" detachable="true" class="org.jasig.portal.channels.CGenericXSLT" name="uPortal Developers Reference">
- <parameter value="http://asigdev.princeton.edu:82/portal/rss/jasigdev.rss" name="xml"/>
- <parameter value="webpages/stylesheets/org/jasig/portal/channels/CGenericXSLT/RSS.ssl" name="ssl"/>
- </channel>')
-
-INSERT INTO UP_CHAN_TYPES (NAME, TYPE, DESCR, DEF_URI)
-VALUES ('RSS Channel', 'org.jasig.portal.channels.CGenericXSLT',
-'RSS or Rich Site Summary, the most common channel format, is a channel which has its content defined through an XML document. Anyone may publish an RSS channel as long as the specification is adhered to and the file is stored on a publicly accessible web server. You will need to provide a URL for the RSS file.',
-'properties/channel_defs/RSS.xml');
-
-INSERT INTO UP_CHAN_TYPES (NAME, TYPE, DESCR, DEF_URI)
-VALUES ('XSL Channel', 'org.jasig.portal.channels.CGenericXSLT',
-'XSL renders XML to a particular style, is a channel which has its content defined through an XML document. Anyone may publish an XSL channel as long as the specification is adhered to and the file is stored on a publicly accessible web server. You will need to provide a URL or Path for the XML and XSL file.',
-'properties/channel_defs/XSL.xml');
-
-INSERT INTO UP_CLASS ( CLASS_ID, NAME ) VALUES (0, 'News');
-INSERT INTO UP_CLASS ( CLASS_ID, NAME ) VALUES (1, 'Development');
-INSERT INTO UP_CLASS ( CLASS_ID, NAME ) VALUES (2, 'Applications');
-
-INSERT INTO UP_CHAN_CLASS ( CLASS_ID, CHAN_ID ) VALUES(0, 1);
-INSERT INTO UP_CHAN_CLASS ( CLASS_ID, CHAN_ID ) VALUES(0, 2);
-INSERT INTO UP_CHAN_CLASS ( CLASS_ID, CHAN_ID ) VALUES(0, 6);
-INSERT INTO UP_CHAN_CLASS ( CLASS_ID, CHAN_ID ) VALUES(1, 4);
-INSERT INTO UP_CHAN_CLASS ( CLASS_ID, CHAN_ID ) VALUES(1, 5);
-INSERT INTO UP_CHAN_CLASS ( CLASS_ID, CHAN_ID ) VALUES(1, 7);
-INSERT INTO UP_CHAN_CLASS ( CLASS_ID, CHAN_ID ) VALUES(2, 3);
-
-INSERT INTO UP_USER_PREFS (USER_NAME, MEDIA, STRUCTURE_STYLESHEET_NAME, THEME_STYLESHEET_NAME, CSS_STYLESHEET_NAME)
-VALUES ('guest', 'netscape', 'Tab and Column layout', 'Nested tables', 'general CSS');
-
-INSERT INTO UP_USER_PREFS (USER_NAME, MEDIA, STRUCTURE_STYLESHEET_NAME, THEME_STYLESHEET_NAME, CSS_STYLESHEET_NAME)
-VALUES ('guest', 'explorer', 'Tab and Column layout', 'Nested tables', 'general CSS');
-
-INSERT INTO UP_USER_PREFS (USER_NAME, MEDIA, STRUCTURE_STYLESHEET_NAME, THEME_STYLESHEET_NAME, CSS_STYLESHEET_NAME)
-VALUES ('demo', 'netscape', 'Tab and Column layout', 'Nested tables', 'general CSS');
-
-INSERT INTO UP_USER_PREFS (USER_NAME, MEDIA, STRUCTURE_STYLESHEET_NAME, THEME_STYLESHEET_NAME, CSS_STYLESHEET_NAME)
-VALUES ('demo', 'explorer', 'Tab and Column layout', 'Nested tables', 'general CSS');
-
-INSERT INTO UP_USER_SS_PREFS (USER_NAME, STYLESHEET_NAME, USER_PREFERENCES_XML) VALUES ('guest', 'Tab and Column layout', '
-<structurestylesheetuserpreferences>
- <parameters>
- </parameters>
- <folderattributes>
- <attribute name="width">
- <folder folderid="col01" value="70%"/>
- <folder folderid="col02" value="30%"/>
- <folder folderid="col03" value="30%"/>
- <folder folderid="col04" value="70%"/>
- </attribute>
- </folderattributes>
- <channelattributes>
- </channelattributes>
-</structurestylesheetuserpreferences>
-');
-
-INSERT INTO UP_USER_SS_PREFS (USER_NAME, STYLESHEET_NAME, USER_PREFERENCES_XML) VALUES ('guest', 'Nested tables', '
-<themestylesheetuserpreferences>
- <parameters>
- <parameter name="activeTab">2</parameter>
- <parameter name="borderWidth">2</parameter>
- </parameters>
- <folderattributes>
- </folderattributes>
- <channelattributes>
- <attribute name="minimizable">
- <channel channelid="chan01" value="false"/>
- <channel channelid="chan02" value="false"/>
- </attribute>
- </channelattributes>
-</themestylesheetuserpreferences>
-');
-
-INSERT INTO UP_USER_SS_PREFS (USER_NAME, STYLESHEET_NAME, USER_PREFERENCES_XML) VALUES ('demo', 'Tab and Column layout', '
-<structurestylesheetuserpreferences>
- <parameters>
- </parameters>
- <folderattributes>
- <attribute name="width">
- <folder folderid="col01" value="70%"/>
- <folder folderid="col02" value="30%"/>
- <folder folderid="col03" value="30%"/>
- <folder folderid="col04" value="70%"/>
- </attribute>
- </folderattributes>
- <channelattributes>
- </channelattributes>
-</structurestylesheetuserpreferences>
-');
-
-INSERT INTO UP_USER_SS_PREFS (USER_NAME, STYLESHEET_NAME, USER_PREFERENCES_XML) VALUES ('demo', 'Nested tables', '
-<themestylesheetuserpreferences>
- <parameters>
- <parameter name="activeTab">1</parameter>
- <parameter name="borderWidth">1</parameter>
- </parameters>
- <folderattributes>
- </folderattributes>
- <channelattributes>
- <attribute name="minimizable">
- <channel channelid="chan01" value="false"/>
- <channel channelid="chan02" value="false"/>
- </attribute>
- </channelattributes>
-</themestylesheetuserpreferences>
-');
-
-INSERT INTO UP_STRUCT_SS (STYLESHEET_NAME, STYLESHEET_URI, STYLESHEET_DESCRIPTION_URI, STYLESHEET_DESCRIPTION_TEXT)
-VALUES ('Tab and Column layout', 'webpages/stylesheets/org/jasig/portal/LayoutBean/uLayout2sLayout.xsl', 'webpages/stylesheets/org/jasig/portal/LayoutBean/uLayout2sLayout.sdf', 'Presents the layout in terms of tabs and columns.');
-
-INSERT INTO UP_THEME_SS (STYLESHEET_NAME, STYLESHEET_URI, STYLESHEET_DESCRIPTION_URI, STYLESHEET_DESCRIPTION_TEXT)
-VALUES ('Nested tables', 'webpages/stylesheets/org/jasig/portal/LayoutBean/sLayout2html_full.xsl', 'webpages/stylesheets/org/jasig/portal/LayoutBean/sLayout2html_full.sdf', 'Renders tabs and columns as nested tables');
-
-INSERT INTO UP_CSS_SS (STYLESHEET_NAME, STYLESHEET_URI, STYLESHEET_DESCRIPTION_URI, STYLESHEET_DESCRIPTION_TEXT)
-VALUES ('general CSS', 'webpages/media/org/jasig/portal/layout/tabColumn/general.css', 'webpages/media/org/jasig/portal/layout/tabColumn/general.sdf', 'Body, channel tabs and link coloring and fonts');
-
-INSERT INTO UP_CSS_SS_MAP (CSS_STYLESHEET_NAME, THEME_STYLESHEET_NAME) VALUES ('general CSS', 'Nested tables');
-
-INSERT INTO UP_THEME_SS_MAP (THEME_STYLESHEET_NAME, STRUCTURE_STYLESHEET_NAME) VALUES ('Nested tables', 'Tab and Column layout');
-
-INSERT INTO UP_STRUCT_SS_MAP (MEDIA, STRUCTURE_STYLESHEET_NAME) VALUES ('netscape', 'Tab and Column layout');
-
-INSERT INTO UP_STRUCT_SS_MAP (MEDIA, STRUCTURE_STYLESHEET_NAME) VALUES ('explorer', 'Tab and Column layout');
-
-INSERT INTO UPC_BOOKMARKS (ID, PORTAL_USER_ID, BOOKMARK_XML) VALUES (0, 0,
-'<?xml version="1.0"?>
-<bookmarks>
- <bookmark url="http://www.jasig.org" name="JA-SIG" comments="Java in Administration Special Interest Group"/>
- <bookmark url="http://www.interactivebusiness.com" name="IBS" comments="provides uPortal Services"/>
- <bookmark url="http://www.paypal.com" name="PayPal" comments="Send and receive money online!"/>
- <bookmark url="http://google.com" name="Google" comments="great search engine"/>
-</bookmarks>
-');
-
-INSERT INTO UPC_BOOKMARKS (ID, PORTAL_USER_ID, BOOKMARK_XML) VALUES (1, 1,
-'<?xml version="1.0"?>
-<bookmarks>
- <bookmark url="http://www.jasig.org" name="JA-SIG" comments="Java in Administration Special Interest Group"/>
- <bookmark url="http://www.interactivebusiness.com" name="IBS" comments="provides uPortal Services"/>
- <bookmark url="http://www.paypal.com" name="PayPal" comments="Send and receive money online!"/>
- <bookmark url="http://google.com" name="Google" comments="great search engine"/>
-</bookmarks>
-');
View
2  source/org/jasig/portal/ChannelDefinition.java
@@ -199,7 +199,7 @@ public EntityIdentifier getEntityIdentifier() {
* @param parameter the channel parameter to add
*/
public void addParameter(ChannelParameter parameter) {
- addParameter(parameter.getName(), parameter.getValue(), String.valueOf(parameter.getOverride()));
+ parameters.put(parameter.getName(), parameter);
}
/**
View
18 source/org/jasig/portal/ChannelFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright © 2001 The JA-SIG Collaborative. All rights reserved.
+ * Copyright ? 2001 The JA-SIG Collaborative. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -35,18 +35,22 @@
package org.jasig.portal;
+import java.util.Hashtable;
import java.util.Map;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.jasig.portal.car.CarResources;
import org.jasig.portal.layout.IUserLayoutChannelDescription;
import org.jasig.portal.layout.IUserLayoutManager;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
/**
* A factory class that produces <code>IChannel</code> instances.
+ * This class maintains a lazily-loaded, but permanent
+ * cache of channels that implement one of uPortal's
+ * multithreaded interfaces, IMultithreadedChannel or one of its variants.
*
- * @author <a href="mailto:pkharchenko@interactivebusiness.com">Peter Kharchenko</a>
+ * @author <a href="mailto:pkharchenko@unicon.net">Peter Kharchenko</a>
* @version $Revision$
*/
public class ChannelFactory {
@@ -54,7 +58,7 @@
private static final Log log = LogFactory.getLog(ChannelFactory.class);
// table of multithreaded channels
- public static final java.util.Hashtable staticChannels=new java.util.Hashtable();
+ private static final Hashtable staticChannels = new Hashtable();
// create a CAR class loader object for loading channel classes from CARs
// Note that the current class loader is passed as the parent and is
@@ -114,7 +118,7 @@ private static IChannel instantiateChannel(String channelSubscribeId, String cha
* @param uid a unique ID for use with multithreaded channels
* @return an <code>IChannel</code> object
*/
- public static IChannel instantiateChannel(String className, String uid) throws PortalException {
+ public static synchronized IChannel instantiateChannel(String className, String uid) throws PortalException {
IChannel ch = null;
boolean exists = false;
// Avoid instantiating a multithreaded channel more than once
@@ -129,11 +133,13 @@ public static IChannel instantiateChannel(String className, String uid) throws P
// the default class loader before looking into the CARs
channelClass = classLoader.loadClass(className);
} catch (Exception e) {
+ log.error("Unable to load class '" + className + "'", e);
throw new PortalException("Unable to load class '" + className + "'", e);
}
try {
cobj = channelClass.newInstance();
} catch (Throwable t) {
+ log.error("Unable to instantiate class '" + className + "'", t);
throw new PortalException("Unable to instantiate class '" + className + "'", new Exception(t.getMessage()));
}
}
View
37 source/org/jasig/portal/ChannelManager.java
@@ -129,7 +129,8 @@
// global channel rendering cache
public static final int SYSTEM_CHANNEL_CACHE_MIN_SIZE=50; // this should be in a file somewhere
- public static final SoftHashMap systemCache=new SoftHashMap(SYSTEM_CHANNEL_CACHE_MIN_SIZE);
+
+ public static final Map systemCache = Collections.synchronizedMap(new SoftHashMap(SYSTEM_CHANNEL_CACHE_MIN_SIZE));