Einchecken ccm-zes-aplaws (ZeS Integrationsschicht)

git-svn-id: https://svn.libreccm.org/ccm/trunk@81 8810af33-2d31-482b-a856-94f89814c4df
master
pb 2009-02-08 12:37:05 +00:00
parent 43ab4f38c0
commit 134939fb65
330 changed files with 38011 additions and 0 deletions

View File

@ -0,0 +1,6 @@
2007-08-06:
./ccm-shp-aplaws/src/WEB-INF/content-types/c...types/aplaws-mparticle-item.jsp
<define:page name="itemPage" application="content changed to
<define:page name="itemPage" application="content-section"
as is all other contenttyp jsp pages. Requires corresponding modification
in the theme!

View File

@ -0,0 +1,45 @@
<?xml version="1.0"?>
<ccm:application xmlns:ccm="http://ccm.redhat.com/ccm-project"
name="ccm-zes-aplaws"
prettyName="ZeS-APLAWS"
version="6.5.0"
release="1"
webapp="ROOT">
<ccm:dependencies>
<ccm:requires name="ccm-core" version="6.3.3" relation="ge"/>
<ccm:requires name="ccm-cms" version="6.2.0" relation="ge"/>
<ccm:requires name="ccm-ldn-subsite" version="6.2.0" relation="ge"/>
<ccm:requires name="ccm-ldn-portal" version="6.2.0" relation="ge"/>
<ccm:requires name="ccm-ldn-terms" version="6.3.1" relation="ge"/>
<ccm:requires name="ccm-ldn-navigation" version="6.2.0" relation="ge"/>
<ccm:requires name="ccm-ldn-search" version="6.3.0" relation="ge"/>
</ccm:dependencies>
<ccm:directories>
<ccm:directory name="pdl"/>
<ccm:directory name="src"/>
</ccm:directories>
<ccm:contacts>
<ccm:contact uri="http://www.redhat.com/software/rhea" type="website"/>
<ccm:contact uri="mailto:rhea@redhat.com" type="support"/>
</ccm:contacts>
<ccm:description>
Service module which tailors the aplaws software to a specific purpose
and/or a specific site.
- setting up a categorization / terms system (cf. load.java)
- integrate custom spezific jsp's
- setting up custom specific configuration parameters (cf. the bundles)
- overwrite default classes by custom specific ones (cf. src/.../aplaws)
- provide a default theme, which meets accessibility requirements and
overwrites the default, table based design (cf. web/.../themes)
This modules tailors APLAWS for use at the Centre for Social Policy
Research (Zentrum fuer Sozialpolitik - ZeS), University of Bremen, Germany.
APLAWS is a collaboration and content management system which is based upon
the Red Hat Web Application Framework, which is a platform for writing
database-backed web applications in Java.
</ccm:description>
</ccm:application>

View File

@ -0,0 +1,9 @@
* Thu Sep 22 2005 Alan Pevec <apevec@redhat.com>
- Build all APLAWS+ bundles from the common set of templates.
* Mon Feb 21 2005 Alan Pevec <apevec@redhat.com>
- Requires applications.
* Mon Jan 26 2004 Daniel Berrange <berrange@redhat.com>
- Initial build.

View File

View File

@ -0,0 +1,4 @@
BUNDLE_NAME=aplaws-plus-devel
BUNDLE_PRETTY_NAME="APLAWS+ Devel Bundle"
VERSION=1.0.5devel
RELEASE=1

View File

@ -0,0 +1,37 @@
# Main apps
ccm-core
ccm-cms
# Content assets
ccm-cms-assets-relatedlink
ccm-ldn-dublin
# Content types
ccm-cms-types-contact
ccm-cms-types-esdservice
ccm-cms-types-article
ccm-cms-types-filestorageitem
ccm-cms-types-mparticle
ccm-cms-types-newsitem
ccm-cms-types-pressrelease
ccm-cms-types-formitem
ccm-cms-types-formsectionitem
ccm-cms-types-inlinesite
ccm-ldn-xmlfeed
# Applications
ccm-ldn-util
ccm-ldn-atoz
ccm-ldn-rss
ccm-ldn-portal
ccm-ldn-navigation
ccm-ldn-search
ccm-ldn-shortcuts
ccm-ldn-subsite
ccm-ldn-terms
ccm-ldn-aplaws
# Extra apps
ccm-forum
ccm-ldn-importer
ccm-ldn-theme

View File

@ -0,0 +1,47 @@
waf.templating.stylesheet_resolver=com.arsdigita.templating.PatternStylesheetResolver
waf.templating.stylesheet_paths=/WEB-INF/resources/aplaws-stylesheet-paths.txt
waf.kernel.data_permission_check_enabled=false
waf.dispatcher.default_expiry=3600
waf.bebop.base_page=com.arsdigita.aplaws.ui.SimplePage
waf.pagemap.root=portal/
waf.pagemap.workspace=portal/
waf.pagemap.login_redirect=content/content-center-redirect.jsp
com.arsdigita.cms.default_item_template_path=/default/aplaws-item.jsp
com.arsdigita.cms.default_folder_template_path=/default/aplaws-folder.jsp
com.arsdigita.cms.default_template_resolver_class=com.arsdigita.london.subsite.dispatcher.SubsiteItemTemplateResolver
com.arsdigita.cms.disable_item_pfs=true
com.arsdigita.cms.use_section_categories=false
com.arsdigita.cms.use_streamlined_creation=true
com.arsdigita.cms.hide_templates_tab=true
com.arsdigita.cms.hide_admin_tabs=true
com.arsdigita.cms.hide_timezone=true
com.arsdigita.cms.hide_launch_date=true
com.arsdigita.cms.dhtml_editor_config=HTMLArea.Config.CMSStyled,/assets/htmlarea/config/Styled.js
com.arsdigita.cms.dhtml_editor_plugins=TableOperations,CSS
com.arsdigita.cms.category_authoring_add_form=com.arsdigita.aplaws.ui.ItemCategoryPicker
com.arsdigita.cms.contenttypes.newsitem.hide_homepage=true
com.arsdigita.cms.contenttypes.mparticle.template=resource:WEB-INF/content-types/com/arsdigita/cms/contenttypes/aplaws-mparticle-item.jsp
com.arsdigita.cms.hide_udct_ui=true
com.arsdigita.cms.hide_folder_index_checkbox=true
com.arsdigita.london.atoz.root_category_picker=com.arsdigita.london.terms.ui.RootCategoryPicker
com.arsdigita.london.subsite.root_category_picker=com.arsdigita.london.terms.ui.RootCategoryPicker
com.arsdigita.london.theme.default_theme_path=__ccm__/themes/aplaws
com.arsdigita.london.theme.default_theme_context=
com.arsdigita.london.theme.default_theme_manifest=ccm-ldn-aplaws.web.mf
com.arsdigita.london.search.show_sponsored_links=true
com.arsdigita.london.cms.dublin.audience_domain=LGAL
waf.admin.email=admin@example.com
waf.admin.name.given=Administrator
waf.admin.name.family=Account
waf.admin.password=123456
waf.admin.password.question=12345
waf.admin.password.answer=6
com.arsdigita.aplaws.lite_load=true
waf.debug=true
waf.bebop.fancy_xsl_errors=true

View File

@ -0,0 +1,304 @@
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
<filter>
<filter-name>shortcuts</filter-name>
<filter-class>com.arsdigita.london.shortcuts.ShortcutFilter</filter-class>
</filter>
<filter>
<filter-name>subsite</filter-name>
<filter-class>com.arsdigita.london.subsite.SubsiteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>subsite</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>shortcuts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- The Context Listener is required and used for initializing the runtime
environment before any other task is performed or any servlet initialized. -->
<listener>
<listener-class>com.arsdigita.web.CCMApplicationContextListener</listener-class>
</listener>
<servlet>
<servlet-name>reg</servlet-name>
<servlet-class>com.arsdigita.web.ContextRegistrationServlet</servlet-class>
<init-param>
<param-name>uri</param-name>
<param-value>/</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>legacy-dispatcher</servlet-name>
<servlet-class>com.arsdigita.sitenode.SiteNodeDispatcher</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet>
<servlet-name>ccm-dispatcher</servlet-name>
<servlet-class>com.arsdigita.web.DispatcherServlet</servlet-class>
<init-param>
<param-name>fallback-servlet</param-name>
<param-value>legacy-dispatcher</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>legacy-adapter</servlet-name>
<servlet-class>com.arsdigita.web.LegacyAdapterServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>cache-manager</servlet-name>
<servlet-class>com.arsdigita.caching.CacheServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>db-test</servlet-name>
<servlet-class>com.arsdigita.web.monitoring.DBTestServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>versioning-log</servlet-name>
<servlet-class>com.arsdigita.versioning.VersioningServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>oid-redirect</servlet-name>
<servlet-class>com.arsdigita.web.OIDRedirectServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>resource-resolver</servlet-name>
<servlet-class>com.arsdigita.web.ResourceServlet</servlet-class>
</servlet>
<!-- ADDITIONAL SERVLET DECLARATIONS -->
<servlet>
<servlet-name>content-section</servlet-name>
<servlet-class>com.arsdigita.cms.ContentSectionServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>content-type-xsl</servlet-name>
<servlet-class>com.arsdigita.cms.dispatcher.ContentTypeXSLServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>content-item-xsl</servlet-name>
<servlet-class>com.arsdigita.cms.dispatcher.ContentItemXSLServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>template-xsl</servlet-name>
<servlet-class>com.arsdigita.cms.dispatcher.TemplateXSLServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>TextOnlyServlet</servlet-name>
<display-name>Text Only Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/text</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>PrintFriendlyServlet</servlet-name>
<display-name>Printer Friendly Output Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/print</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>ThemePreviewServlet</servlet-name>
<display-name>Servlet to allow admins to preview look/feel</display-name>
<servlet-class>
com.arsdigita.london.theme.dispatcher.InternalThemePrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/theme</param-value>
</init-param>
</servlet>
<!-- XXX hack -->
<servlet>
<servlet-name>portal-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-ldn-portal</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>navigation-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-ldn-navigation</param-value>
</init-param>
<init-param>
<param-name>file-resolver</param-name>
<param-value>com.arsdigita.london.navigation.NavigationFileResolver</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>portlet-type-xsl</servlet-name>
<servlet-class>com.arsdigita.dispatcher.PortletTypeXSLServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>portlet-type-xsl</servlet-name>
<url-pattern>/__ccm__/servlet/portlet-type/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>reg</servlet-name>
<url-pattern>/__ccm__/null/reg/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>portal-files</servlet-name>
<url-pattern>/ccm-ldn-portal/files/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>navigation-files</servlet-name>
<url-pattern>/ccm-ldn-navigation/files/*</url-pattern>
</servlet-mapping>
<!-- /ADDITIONAL SERVLET DECLARATIONS -->
<servlet-mapping>
<servlet-name>ccm-dispatcher</servlet-name>
<url-pattern>/ccm/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>legacy-adapter</servlet-name>
<url-pattern>/__ccm__/servlet/legacy-adapter/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cache-manager</servlet-name>
<url-pattern>/expireCache/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>db-test</servlet-name>
<url-pattern>/dbtest</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>versioning-log</servlet-name>
<url-pattern>/versioning/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>oid-redirect</servlet-name>
<url-pattern>/redirect/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>resource-resolver</servlet-name>
<url-pattern>/resource/*</url-pattern>
</servlet-mapping>
<!-- ADDITIONAL SERVLET MAPPINGS -->
<servlet-mapping>
<servlet-name>content-section</servlet-name>
<url-pattern>/__ccm__/servlet/content-section/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>content-type-xsl</servlet-name>
<url-pattern>/__ccm__/servlet/content-type/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>content-item-xsl</servlet-name>
<url-pattern>/__ccm__/servlet/content-item/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>template-xsl</servlet-name>
<url-pattern>/__ccm__/servlet/template/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TextOnlyServlet</servlet-name>
<url-pattern>/text/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>PrintFriendlyServlet</servlet-name>
<url-pattern>/print/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ThemePreviewServlet</servlet-name>
<url-pattern>/theme/*</url-pattern>
</servlet-mapping>
<!-- /ADDITIONAL SERVLET MAPPINGS -->
<error-page>
<exception-type>com.arsdigita.dispatcher.AccessDeniedException</exception-type>
<location>/error/access-denied.jsp</location>
</error-page>
<error-page>
<exception-type>com.arsdigita.dispatcher.ObjectNotFoundException</exception-type>
<location>/error/object-not-found.jsp</location>
</error-page>
<error-page>
<exception-type>com.arsdigita.kernel.permissions.PermissionException</exception-type>
<location>/error/permission-denied.jsp</location>
</error-page>
<error-page>
<exception-type>com.arsdigita.persistence.DbNotAvailableException</exception-type>
<location>/error/db-not-available.jsp</location>
</error-page>
<error-page>
<exception-type>com.arsdigita.db.DbNotAvailableException</exception-type>
<location>/error/db-not-available.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error/general.jsp</location>
</error-page>
</web-app>

View File

@ -0,0 +1,9 @@
* Thu Sep 22 2005 Alan Pevec <apevec@redhat.com>
- Build all APLAWS+ bundles from the common set of templates.
* Mon Feb 21 2005 Alan Pevec <apevec@redhat.com>
- Requires applications.
* Mon Jan 26 2004 Daniel Berrange <berrange@redhat.com>
- Initial build.

View File

@ -0,0 +1,4 @@
BUNDLE_NAME=aplaws-plus-standard
BUNDLE_PRETTY_NAME="APLAWS+ Standard Bundle"
VERSION=1.0.5devel
RELEASE=1

View File

@ -0,0 +1,38 @@
# Main apps
ccm-core
ccm-cms
# Content assets
ccm-cms-assets-relatedlink
ccm-cms-assets-fileattachment
ccm-ldn-dublin
# Content types
ccm-cms-types-contact
ccm-cms-types-esdservice
ccm-cms-types-article
ccm-cms-types-filestorageitem
ccm-cms-types-mparticle
ccm-cms-types-newsitem
ccm-cms-types-pressrelease
ccm-cms-types-formitem
ccm-cms-types-formsectionitem
ccm-cms-types-inlinesite
ccm-ldn-xmlfeed
# Applications
ccm-ldn-util
ccm-ldn-atoz
ccm-ldn-rss
ccm-ldn-portal
ccm-ldn-navigation
ccm-ldn-search
ccm-ldn-shortcuts
ccm-ldn-subsite
ccm-ldn-terms
ccm-ldn-aplaws
# Extra apps
ccm-forum
ccm-ldn-importer
ccm-ldn-theme

View File

@ -0,0 +1,36 @@
waf.templating.stylesheet_resolver=com.arsdigita.templating.PatternStylesheetResolver
waf.templating.stylesheet_paths=/WEB-INF/resources/aplaws-stylesheet-paths.txt
waf.kernel.data_permission_check_enabled=false
waf.dispatcher.default_expiry=3600
waf.bebop.base_page=com.arsdigita.aplaws.ui.SimplePage
waf.pagemap.root=portal/
waf.pagemap.workspace=portal/
waf.pagemap.login_redirect=content/content-center-redirect.jsp
com.arsdigita.cms.default_item_template_path=/default/aplaws-item.jsp
com.arsdigita.cms.default_folder_template_path=/default/aplaws-folder.jsp
com.arsdigita.cms.default_template_resolver_class=com.arsdigita.london.subsite.dispatcher.SubsiteItemTemplateResolver
com.arsdigita.cms.disable_item_pfs=true
com.arsdigita.cms.use_section_categories=false
com.arsdigita.cms.use_streamlined_creation=true
com.arsdigita.cms.hide_templates_tab=true
com.arsdigita.cms.hide_admin_tabs=true
com.arsdigita.cms.hide_timezone=true
com.arsdigita.cms.hide_launch_date=true
com.arsdigita.cms.dhtml_editor_config=HTMLArea.Config.CMSStyled,/assets/htmlarea/config/Styled.js
com.arsdigita.cms.dhtml_editor_plugins=TableOperations,CSS
com.arsdigita.cms.category_authoring_add_form=com.arsdigita.aplaws.ui.ItemCategoryPicker
com.arsdigita.cms.contenttypes.newsitem.hide_homepage=true
com.arsdigita.cms.contenttypes.mparticle.template=resource:WEB-INF/content-types/com/arsdigita/cms/contenttypes/aplaws-mparticle-item.jsp
com.arsdigita.cms.hide_udct_ui=true
com.arsdigita.cms.hide_folder_index_checkbox=true
com.arsdigita.london.atoz.root_category_picker=com.arsdigita.london.terms.ui.RootCategoryPicker
com.arsdigita.london.subsite.root_category_picker=com.arsdigita.london.terms.ui.RootCategoryPicker
com.arsdigita.london.theme.default_theme_path=__ccm__/themes/aplaws
com.arsdigita.london.theme.default_theme_context=
com.arsdigita.london.theme.default_theme_manifest=ccm-ldn-aplaws.web.mf
com.arsdigita.london.search.show_sponsored_links=true
com.arsdigita.london.cms.dublin.audience_domain=LGAL

View File

@ -0,0 +1,304 @@
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
<filter>
<filter-name>shortcuts</filter-name>
<filter-class>com.arsdigita.london.shortcuts.ShortcutFilter</filter-class>
</filter>
<filter>
<filter-name>subsite</filter-name>
<filter-class>com.arsdigita.london.subsite.SubsiteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>subsite</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>shortcuts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- The Context Listener is required and used for initializing the runtime
environment before any other task is performed or any servlet initialized. -->
<listener>
<listener-class>com.arsdigita.web.CCMApplicationContextListener</listener-class>
</listener>
<servlet>
<servlet-name>reg</servlet-name>
<servlet-class>com.arsdigita.web.ContextRegistrationServlet</servlet-class>
<init-param>
<param-name>uri</param-name>
<param-value>/</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>legacy-dispatcher</servlet-name>
<servlet-class>com.arsdigita.sitenode.SiteNodeDispatcher</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet>
<servlet-name>ccm-dispatcher</servlet-name>
<servlet-class>com.arsdigita.web.DispatcherServlet</servlet-class>
<init-param>
<param-name>fallback-servlet</param-name>
<param-value>legacy-dispatcher</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>legacy-adapter</servlet-name>
<servlet-class>com.arsdigita.web.LegacyAdapterServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>cache-manager</servlet-name>
<servlet-class>com.arsdigita.caching.CacheServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>db-test</servlet-name>
<servlet-class>com.arsdigita.web.monitoring.DBTestServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>versioning-log</servlet-name>
<servlet-class>com.arsdigita.versioning.VersioningServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>oid-redirect</servlet-name>
<servlet-class>com.arsdigita.web.OIDRedirectServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>resource-resolver</servlet-name>
<servlet-class>com.arsdigita.web.ResourceServlet</servlet-class>
</servlet>
<!-- ADDITIONAL SERVLET DECLARATIONS -->
<servlet>
<servlet-name>content-section</servlet-name>
<servlet-class>com.arsdigita.cms.ContentSectionServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>content-type-xsl</servlet-name>
<servlet-class>com.arsdigita.cms.dispatcher.ContentTypeXSLServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>content-item-xsl</servlet-name>
<servlet-class>com.arsdigita.cms.dispatcher.ContentItemXSLServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>template-xsl</servlet-name>
<servlet-class>com.arsdigita.cms.dispatcher.TemplateXSLServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>TextOnlyServlet</servlet-name>
<display-name>Text Only Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/text</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>PrintFriendlyServlet</servlet-name>
<display-name>Printer Friendly Output Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/print</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>ThemePreviewServlet</servlet-name>
<display-name>Servlet to allow admins to preview look/feel</display-name>
<servlet-class>
com.arsdigita.london.theme.dispatcher.InternalThemePrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/theme</param-value>
</init-param>
</servlet>
<!-- XXX hack -->
<servlet>
<servlet-name>portal-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-ldn-portal</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>navigation-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param>
<param-name>template-path</param-name>
<param-value>/templates/ccm-ldn-navigation</param-value>
</init-param>
<init-param>
<param-name>file-resolver</param-name>
<param-value>com.arsdigita.london.navigation.NavigationFileResolver</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>portlet-type-xsl</servlet-name>
<servlet-class>com.arsdigita.dispatcher.PortletTypeXSLServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>portlet-type-xsl</servlet-name>
<url-pattern>/__ccm__/servlet/portlet-type/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>reg</servlet-name>
<url-pattern>/__ccm__/null/reg/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>portal-files</servlet-name>
<url-pattern>/ccm-ldn-portal/files/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>navigation-files</servlet-name>
<url-pattern>/ccm-ldn-navigation/files/*</url-pattern>
</servlet-mapping>
<!-- /ADDITIONAL SERVLET DECLARATIONS -->
<servlet-mapping>
<servlet-name>ccm-dispatcher</servlet-name>
<url-pattern>/ccm/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>legacy-adapter</servlet-name>
<url-pattern>/__ccm__/servlet/legacy-adapter/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cache-manager</servlet-name>
<url-pattern>/expireCache/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>db-test</servlet-name>
<url-pattern>/dbtest</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>versioning-log</servlet-name>
<url-pattern>/versioning/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>oid-redirect</servlet-name>
<url-pattern>/redirect/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>resource-resolver</servlet-name>
<url-pattern>/resource/*</url-pattern>
</servlet-mapping>
<!-- ADDITIONAL SERVLET MAPPINGS -->
<servlet-mapping>
<servlet-name>content-section</servlet-name>
<url-pattern>/__ccm__/servlet/content-section/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>content-type-xsl</servlet-name>
<url-pattern>/__ccm__/servlet/content-type/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>content-item-xsl</servlet-name>
<url-pattern>/__ccm__/servlet/content-item/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>template-xsl</servlet-name>
<url-pattern>/__ccm__/servlet/template/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TextOnlyServlet</servlet-name>
<url-pattern>/text/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>PrintFriendlyServlet</servlet-name>
<url-pattern>/print/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ThemePreviewServlet</servlet-name>
<url-pattern>/theme/*</url-pattern>
</servlet-mapping>
<!-- /ADDITIONAL SERVLET MAPPINGS -->
<error-page>
<exception-type>com.arsdigita.dispatcher.AccessDeniedException</exception-type>
<location>/error/access-denied.jsp</location>
</error-page>
<error-page>
<exception-type>com.arsdigita.dispatcher.ObjectNotFoundException</exception-type>
<location>/error/object-not-found.jsp</location>
</error-page>
<error-page>
<exception-type>com.arsdigita.kernel.permissions.PermissionException</exception-type>
<location>/error/permission-denied.jsp</location>
</error-page>
<error-page>
<exception-type>com.arsdigita.persistence.DbNotAvailableException</exception-type>
<location>/error/db-not-available.jsp</location>
</error-page>
<error-page>
<exception-type>com.arsdigita.db.DbNotAvailableException</exception-type>
<location>/error/db-not-available.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error/general.jsp</location>
</error-page>
</web-app>

View File

@ -0,0 +1,20 @@
#!/bin/sh
#
# Author: Fabrice Retkowsky <fabrice@runtime-collective.com>, 2005
#
# $Id: ccm-build.sh,v 1.1.1.1 2004/11/12 09:30:12 fabrice Exp $
# make a jar with the bundle cfg files
echo "Building bundle jar"
# get the version number
cd build
VER_NUM=`ls *-sql.jar | sort -r | xargs echo | cut -d ' ' -f 1`
VER_NUM=${VER_NUM:15}
VER_NUM=${VER_NUM%-sql.jar}
echo "Version number: $VER_NUM"
cd ..
# make the bundles jar
find * | grep -v "svn" | grep "cfg/" | xargs jar cvf bundles.jar
mv bundles.jar debian/tmp/usr/share/java/ccm-shp-aplaws-${VER_NUM}-bundles.jar

View File

@ -0,0 +1,11 @@
#!/bin/sh
#
# Author: Berkan Eskikaya <berkan@runtime-collective.com>, 2004
#
# $Id: ccm-build.sh,v 1.1.1.1 2004/11/12 09:29:59 fabrice Exp $
. debian/ccm-settings.sh
# for eg Oracle jar
CLASSPATH=./lib/:$CLASSPATH
$ANT build-${name}

View File

@ -0,0 +1,15 @@
#!/bin/sh
#
# Author: Berkan Eskikaya <berkan@runtime-collective.com>, 2004
#
# $Id: ccm-clean.sh,v 1.1.1.1 2004/11/12 09:30:12 fabrice Exp $
. debian/ccm-settings.sh
[ -f build.xml ] && $ANT clean-${appname}
rm -rf build build.xml ccm.classpath
# ccm-disperse.sh creates the .install files automatically, so let's clean them too.
rm -f ${appname}.install ${appname}-doc.install

View File

@ -0,0 +1,13 @@
#!/bin/sh
#
# Author: Berkan Eskikaya <berkan@runtime-collective.com>, 2004
#
# $Id: ccm-config.sh,v 1.1.1.1 2004/11/12 09:29:59 fabrice Exp $
. debian/ccm-settings.sh
if [ ! -L $name ]; then
ln -s . $name
fi
ccm-create-projectxml.pl > project.xml
ccm-configure.sh

View File

@ -0,0 +1,39 @@
#!/bin/sh
#
# Author: Berkan Eskikaya <berkan@runtime-collective.com>, 2004
#
# $Id: ccm-disperse.sh,v 1.1.1.1 2004/11/12 09:30:12 fabrice Exp $
. debian/ccm-settings.sh
SRCDIR="$1"
[ "x$SRCDIR" != "x" ] || exit 1
# automatically generate the .install file lists for dh_install:
(cd $SRCDIR && find . -type f \
| grep -v DEBIAN \
| grep -v var/www/html \
| sed -e 's/^\.\/*\(.*\)/\1/' -e '/./,/^$/!d') > debian/${name}.install
(cd $SRCDIR && find . -type f -path './var/www/html/*' \
| sed -e 's/^\.\/*\(.*\)/\1/' -e '/./,/^$/!d') > debian/${name}-doc.install
# for some reason, dh_install doesn't work properly; let's disperse the files ourselves:
for pkg in ${name} ${name}-doc; do
# skip this package if mentioned in CCM_DEBIAN_NO_PACKAGES
[ `echo $CCM_DEBIAN_NO_PACKAGES | tr ' ' '\n' | grep -c "^${pkg}$"` -eq 1 ] && continue || true
# this should exist [due to dh_installdocs, dh_installchangelog], but just in case...
mkdir -p debian/$pkg
[ -e debian/${pkg}.install ] && \
echo -n "Dispersing files to debian/$pkg/ ... " && \
for file in `cat debian/${pkg}.install`; do
dir=`dirname $file`
mkdir -p debian/$pkg/$dir
cp $SRCDIR/$file debian/$pkg/$dir/
done
echo "done."
done

View File

@ -0,0 +1,43 @@
#!/bin/sh
#
# Author: Berkan Eskikaya <berkan@runtime-collective.com>, 2004
#
# $Id: ccm-install.sh,v 1.1.1.1 2004/11/12 09:29:59 fabrice Exp $
. debian/ccm-settings.sh
DESTDIR="$1"
[ "xDESTDIR" != "x" ] || exit 1
rm -rf $DESTDIR
mkdir -p $DESTDIR
mkdir -p $DESTDIR${confdir}
mkdir -p $DESTDIR/var/www/html/${name}-${version}
ANT_OPTS="-Dapps.${name}.version=${version}"
ANT_OPTS="$ANT_OPTS -Ddeploy.conf.dir=$DESTDIR${confdir}"
ANT_OPTS="$ANT_OPTS -Ddeploy.shared.lib.dir=$DESTDIR${sharedjardir}"
ANT_OPTS="$ANT_OPTS -Ddeploy.private.lib.dir=$DESTDIR${sharedjardir}/${name}-${version}"
ANT_OPTS="$ANT_OPTS -Ddeploy.webapp.dir=$DESTDIR${webappdir}/${name}-${version}"
ANT_OPTS="$ANT_OPTS -Ddeploy.system.jars.dir=$DESTDIR${sharedjardir}"
ANT_OPTS="$ANT_OPTS -Ddeploy.api.dir.${appname}=$DESTDIR/var/www/html/${name}-${version}/api"
ANT_OPTS="$ANT_OPTS -Ddeploy.shared.classes.dir=$DESTDIR/tmp/${name}-${version}"
export ANT_OPTS
$ANT deploy-jar-classes-${appname}
$ANT deploy-${appname}
rm -rf "$DESTDIR/tmp"
# only generate and deploy javadocs if we didn't specify otherwise in CCM_DEBIAN_NO_JAVADOC
GENERATE_JAVADOC=true
if [ `echo $CCM_DEBIAN_NO_JAVADOC | tr ' ' '\n' | grep -c "^${name}-doc$"` -eq 1 ]; then
GENERATE_JAVADOC=false
fi
if [ -d ${appname}/src ]; then
$ANT deploy-jar-classes-${appname}
[ "$GENERATE_JAVADOC" == "true" ] && $ANT deploy-javadoc-${appname} || true
fi

View File

@ -0,0 +1 @@
usr/share/java/ccm-shp-aplaws-6.5.0

View File

@ -0,0 +1,44 @@
#!/bin/sh
#
# Author: Berkan Eskikaya <berkan@runtime-collective.com>, 2004
#
# $Id: ccm-settings.sh,v 1.1.1.1 2004/11/12 09:29:59 fabrice Exp $
# say which app to compile, amongst those specified in the project.xml
export CCM_APP=$name
# do some checks
check_JAVA_HOME
if [ "$name" = "ccm-core" ]; then
check_ORACLE_JDBC_LIB
fi
# set the environment
for file in `echo /etc/profile.d/ccm-{tools,devel,scripts}.sh`; do
. $file
done
cd ..
. $CCM_SCRIPTS_HOME/bin/env-conf.sh ${appname} > /dev/null
cd -
export CCM_HOME=`pwd`
if which classic-ant > /dev/null 2>&1; then
ANT=classic-ant
else
ANT=ant
fi
# perhaps we don't like to build some packages -- get them from DH_OPTIONS
export CCM_DEBIAN_NO_PACKAGES=`echo $DH_OPTIONS | tr -s ' ' '\n' | grep -E '(-N|--no-package=)' | xargs | sed -re 's/(-N|--no-package)//g'`
# for now, assume that if we don't want to build some packages then we don't
# want to generate javadocs for them either
export CCM_DEBIAN_NO_JAVADOC="$CCM_DEBIAN_NO_JAVADOC $CCM_DEBIAN_NO_PACKAGES"

View File

@ -0,0 +1,27 @@
#!/bin/sh
#
# Author: Berkan Eskikaya <berkan@runtime-collective.com>, 2004
#
# $Id: ccm-settings.sh,v 1.1.1.1 2004/11/12 09:29:59 fabrice Exp $
# source the shell library [for the check_* functions]
# FIXME: ugly-looking hack.
orig_DEBIAN_HAS_FRONTEND=$DEBIAN_HAS_FRONTEND
DEBIAN_HAS_FRONTEND=1
. /usr/share/ccm-tools/lib/shellmodule
DEBIAN_HAS_FRONTEND=$orig_DEBIAN_HAS_FRONTEND
# variables we use [especially in ccm-install.sh]
name=ccm-shp-aplaws
version=6.5.0
appname=ccm-shp-aplaws
appversion=6.5.0
confdir="/etc/ccm/conf"
sharedjardir="/usr/share/java"
webappdir="/usr/share/java/webapps"
ccmclasspathfile="ccm/ccm.classpath"
ccmwebappfile="ccm/ccm.webapps"
. debian/ccm-settings-run.sh

View File

@ -0,0 +1,87 @@
ccm-ldn-aplaws (6.3.0-1) unstable; urgency=low
* Automatic update of version number from 6.2.0 to 6.3.0
-- Runtime Collective Ltd. <info@runtime-collective.com> Mon, 10 Oct 2005 13:51:59 +0000
ccm-ldn-aplaws (6.2.0-1) unstable; urgency=low
* Automatic update of version number from 1.9.2 to 6.2.0
-- Runtime Collective Ltd. <info@runtime-collective.com> Mon, 10 Oct 2005 12:30:10 +0000
ccm-ldn-aplaws (1.9.2-5) unstable; urgency=low
* Added back missing import in lib.xsl
-- My <myuser@firenze.runtime-collective.com> Tue, 20 Sep 2005 14:15:06 +0000
ccm-ldn-aplaws (1.9.2-4) unstable; urgency=low
* New component to display assignedTerms on category index items
-- My <myuser@firenze.runtime-collective.com> Fri, 8 Jul 2005 17:22:49 +0000
ccm-ldn-aplaws (1.9.2-3) unstable; urgency=low
* SiteProxy as index items
-- My <myuser@firenze.runtime-collective.com> Fri, 24 Jun 2005 09:21:54 +0000
ccm-ldn-aplaws (1.9.2-2) unstable; urgency=low
* MPAs as index items
-- My <myuser@firenze.runtime-collective.com> Thu, 23 Jun 2005 15:38:00 +0000
ccm-ldn-aplaws (1.9.2-1) unstable; urgency=low
* New release
-- David Pashley <david@runtime-collective.com> Mon, 14 Feb 2005 15:07:58 +0000
ccm-ldn-aplaws (1.9.1-5) unstable; urgency=low
* Depend on j2sdk1.4 | java2-compiler
* Update to policy 3.6.1
* Change maintainer to the mailing list and add uploaders
-- David Pashley <david@runtime-collective.com> Mon, 14 Feb 2005 15:07:58 +0000
ccm-ldn-aplaws (1.9.1-4) unstable; urgency=low
* debian/postrm: disabled the purge operations [had some weird problems].
* updated the debian control scripts to get the package name and version from their invocation.
-- Berkan Eskikaya <berkan@runtime-collective.com> Mon, 10 May 2004 12:33:33 +0100
ccm-ldn-aplaws (1.9.1-3) unstable; urgency=low
* debian/templates: made load-at-install and setup-database-at-install the default behaviour.
* debian/postinst: ccm_hostinit will try to use web.xml-aplaws from ccm-ldn-aplaws.
* debian/ccm-settings.sh: correct checking/setting of ORACLE_JDBC_LIB [Chris].
* debian/templates: changed the default postgresql database and user names to "ccm01.db" and "ccm".
* debian/config: added detection of the hostname of the machine and possibly the user's email.
* major restructuring of the debian scripts: moved all utility functions to ccm-tools and made postinst, postrm, prerm and ccm-settings.sh source and use that file.
-- Berkan Eskikaya <berkan@runtime-collective.com> Fri, 7 May 2004 13:04:43 +0100
ccm-ldn-aplaws (1.9.1-2) unstable; urgency=low
* The build process now tries to automatically detect JAVA_HOME and the location of Oracle's java library.
* debian/ccm-clean.sh: only calls the ant process if build.xml exists.
* debian/{postinst,prerm,config,templates}: added debconf support
* debian/postinst: accepts 'reconfigure' and treats it as 'configure'.
* debian/postinst: added postgresql.jar to CLASSPATH; added libpgjava to the dependencies.
* debian/postinst: removed some bashisms upon recommendation from lintian.
* debian/rules: enabled dh_installdebconf.
* debian/control: made the package depend on debconf.
-- Berkan Eskikaya <berkan@runtime-collective.com> Fri, 1 May 2004 15:41:43 +0100
ccm-ldn-aplaws (1.9.1-1) unstable; urgency=low
* Initial release.
-- Berkan Eskikaya <berkan@runtime-collective.com> Fri, 24 Apr 2004 12:27:56 +0100

View File

@ -0,0 +1 @@
4

View File

@ -0,0 +1,79 @@
#!/bin/sh
#
# Author: Berkan Eskikaya <berkan@runtime-collective.com>, 2004
#
# $Id: config,v 1.1.1.1 2004/11/12 09:30:12 fabrice Exp $
set -e
. /usr/share/debconf/confmodule
db_capb backup
HOSTNAME=`hostname -f` 2>/dev/null || true
if [ -n "$HOSTNAME" ]; then
db_metaget ccm/shared/waf_web_server default || true
PORTNUM=`echo $RET | cut -d: -f2`
db_set ccm/shared/waf_web_server "$HOSTNAME:$PORTNUM" || true
fi
if [ -n "$EMAIL" ]; then
db_set ccm/shared/waf_admin_email "$EMAIL" || true
fi
STATE=1
LASTSTATE=5
while [ "$STATE" != 0 -a "$STATE" -le "$LASTSTATE" ]; do
case "$STATE" in
1)
# Database questions
db_input high ccm/shared/dbase_type || true
db_input high ccm/shared/dbase_host || true
db_input high ccm/shared/dbase_name || true
db_input high ccm/shared/dbase_user || true
db_input high ccm/shared/dbase_password || true
;;
2)
# Server address
db_input high ccm/shared/waf_web_server || true
;;
3)
# Admin questions
db_input high ccm/shared/waf_admin_email || true
db_input high ccm/shared/waf_admin_name_given || true
db_input high ccm/shared/waf_admin_name_family || true
db_input high ccm/shared/waf_admin_password || true
db_input high ccm/shared/waf_admin_password_question || true
db_input high ccm/shared/waf_admin_password_answer || true
;;
4)
# When to load the applications
db_input medium ccm/shared/ccm_load_apps_at_install_p || true
;;
5)
# Whether to set up the [local] database
db_get ccm/shared/dbase_host || true
if [ "$RET" = "localhost" ]; then
db_input medium ccm/shared/pg_set_up_database_p || true
fi
;;
# Add additional states here, making sure to
# increment LASTSTATE.
esac
if db_go; then
STATE=$(($STATE + 1))
else
STATE=$(($STATE - 1))
fi
done
db_go || true
db_stop

View File

@ -0,0 +1,21 @@
Source: ccm-shp-aplaws
Section: contrib/web
Priority: optional
Maintainer: Runtime Packaging <runtime-packaging@runtime-collective.com>
Uploaders: David Pashley <david@runtime-collective.com>
Build-Depends-Indep: debhelper (>= 4.0.0), j2re1.4 | java2-runtime, j2sdk1.4 | java2-compiler, ant, libservlet2.3-java, libpgjava, debconf, po-debconf, ccm-tools, ccm-devel, ccm-scripts, ccm-cms, ccm-core, ccm-ldn-navigation, ccm-ldn-portal, ccm-ldn-subsite, ccm-ldn-terms
Standards-Version: 3.6.1
Package: ccm-shp-aplaws
Architecture: all
Depends: java-virtual-machine-dummy | j2sdk1.4 | java-virtual-machine, ccm-tools, ccm-servlet-container, libservlet2.3-java, libpgjava, liblog4j1.2-java , ccm-core, ccm-cms, ccm-ldn-subsite, ccm-ldn-portal, ccm-ldn-terms, ccm-ldn-navigation, ccm-cms-types-article
Description: APLAWS: APLAWS integration application for non-governmental use.
This package contains the APLAWS application for APLAWS.
.
FIXME: We need a longer and more meaningful description here.
Package: ccm-shp-aplaws-doc
Architecture: all
Depends: ccm-tools
Description: Documentation for ccm-shp-aplaws
Documentation for ccm-shp-aplaws. Provides the JavaDoc API documentation.

View File

@ -0,0 +1,15 @@
This package was debianized by Berkan Eskikaya <berkan@runtime-collective.com> on
Tue, 13 Apr 2004 19:03:14 +0100.
It was downloaded from http://aplaws.sourceforge.net/
Upstream Authors: Redhat UK.
Copyright:
You are free to distribute this software under the terms of
the GNU General Public License.
On Debian systems, the complete text of the GNU General Public
License can be found in the file `/usr/share/common-licenses/GPL'.

View File

@ -0,0 +1,112 @@
#! /bin/sh
# postinst script for ccm-ldn-aplaws
#
# see: dh_installdeb(1)
#
# Author: Berkan Eskikaya <berkan@runtime-collective.com>, 2004
#
# $Id: postinst,v 1.1.1.1 2004/11/12 09:30:12 fabrice Exp $
set -e
. /usr/share/debconf/confmodule
. /usr/share/ccm-tools/lib/shellmodule
# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
# <new-version>
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
#
# quoting from the policy:
# Any necessary prompting should almost always be confined to the
# post-installation script, and should be protected with a conditional
# so that unnecessary prompting doesn't happen if a package's
# installation fails and the `postinst' is called with `abort-upgrade',
# `abort-remove' or `abort-deconfigure'.
case "$1" in
configure|reconfigure)
# FIXME: we need to be sensitive to upgrade operations here.
# basically, if pkgversion = appversion, then the datamodel
# hasn't changed -- we just configure the package and don't
# touch the database; else, we need to also update the
# datamodel in the database.
### get the settings for the operations below
ccm_set_env
db_get_ccm_settings ;# db_stop
get_pkgname_from_arg "$0"
ccm_package_name="$RET"
get_pkgversion_from_dpkg "$ccm_package_name"
ccm_package_version="$RET"
### do the usual post-installion configuration
if [ ! -d "/etc/ccm" ]; then
db_message "ccm/shared/error_etc_ccm_missing_dir"
mkdir -p "/etc/ccm"
fi
ccm_update_ccm_classpath add $ccm_package_name $ccm_package_version
ccm_update_ccm_webapps add $ccm_package_name $ccm_package_version
ccm_update_file_attributes $ccm_package_name $ccm_package_version
### try to set up the database if asked to do so
if [ "$pg_set_up_database_p" = "true" ]; then
pg_set_up_database
fi
### try to load the application if asked to do so
if [ "$ccm_load_apps_at_install_p" = "true" -a -n "$JAVA_HOME" ]; then
ccm_load
fi
### run the hostinit step
if [ -n "$JAVA_HOME" ]; then
tomcat_http_port=`echo $waf_web_server | cut -d':' -f2` || true
tomcat_shutdown_port=`expr $tomcat_http_port + 1` || true
ccm_host_init tomcat $tomcat_http_port $tomcat_shutdown_port
fi
### don't give others the registry details [eg the database password] on a golden plate
# FIXME: this interferes with "ccm load" updating the registry. Need to find the right ownership.
# chmod -R o-rwx /etc/ccm/conf/registry || true
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

View File

@ -0,0 +1,62 @@
#! /bin/sh
# postrm script for ccm-ldn-aplaws
#
# see: dh_installdeb(1)
#
# Author: Berkan Eskikaya <berkan@runtime-collective.com>, 2004
#
# $Id: postrm,v 1.1.1.1 2004/11/12 09:30:12 fabrice Exp $
set -e
. /usr/share/debconf/confmodule
. /usr/share/ccm-tools/lib/shellmodule
db_get_ccm_settings
get_pkgname_from_arg "$0"
ccm_package_name="$RET"
get_pkgversion_from_dpkg "$ccm_package_name"
ccm_package_version="$RET"
if [ "$ccm_package_name" != "ccm-core" ]; then
exit 0 ;# nothing to do
fi
case "$1" in
purge-FIXME)
# FIXME: there are problems with this, so disabling for the moment.
# maybe drop the database
if [ "$dbase_host" = "localhost" ]; then
db_input high ccm/shared/pg_drop_database_at_purge_p || true
db_go
db_stop
if [ "$pg_drop_database_at_purge_p" = "true" ]; then
su - postgres -c "dropdb $dbase_name" 1>&2 || true
su - postgres -c "dropuser $dbase_user" 1>&2 || true
fi
fi
# FIXME: should we still remove /etc/ccm/conf/registry/registry.properties,
# even if we don't or fail to drop the database.
rm -rf /etc/ccm/conf/registry/*
;;
*)
# Nothing to do here.
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

View File

@ -0,0 +1,60 @@
#! /bin/sh
# prerm script for ccm-ldn-aplaws
#
# see: dh_installdeb(1)
#
# Author: Berkan Eskikaya <berkan@runtime-collective.com>, 2004
#
# $Id: prerm,v 1.1.1.1 2004/11/12 09:30:12 fabrice Exp $
set -e
. /usr/share/debconf/confmodule
. /usr/share/ccm-tools/lib/shellmodule
# summary of how this script can be called:
# * <prerm> `remove'
# * <old-prerm> `upgrade' <new-version>
# * <new-prerm> `failed-upgrade' <old-version>
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
# * <deconfigured's-prerm> `deconfigure' `in-favour'
# <package-being-installed> <version> `removing'
# <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
db_get_ccm_settings ; db_stop
get_pkgname_from_arg "$0"
ccm_package_name="$RET"
get_pkgversion_from_dpkg "$ccm_package_name"
ccm_package_version="$RET"
case "$1" in
remove|purge|upgrade|deconfigure)
ccm_update_ccm_classpath remove $ccm_package_name $ccm_package_version
ccm_update_ccm_webapps remove $ccm_package_name $ccm_package_version
;;
failed-upgrade|abort-install|abort-upgrade|disappear)
;;
*)
echo "prerm called with unknown argument \`$1'" >&2
exit 1
;;
esac
if [ "$1" = "remove" -a "$ccm_package_name" = "ccm-core" -a -x "/etc/init.d/ccm" ]; then
invoke-rc.d ccm stop || true
fi
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

View File

@ -0,0 +1,85 @@
#!/usr/bin/make -f
# debian/rules that uses debhelper.
# This file is public domain software, originally written by Joey Hess.
#
# This version is for packages that are architecture independent.
#
# Author: Berkan Eskikaya <berkan@runtime-collective.com>, 2004
#
# $Id: rules,v 1.1.1.1 2004/11/12 09:30:00 fabrice Exp $
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
build.xml:
dh_testdir
# Add here commands to configure the package.
@sh debian/ccm-config.sh
build: build-stamp
build-stamp: build.xml
dh_testdir
# Add here commands to compile the package.
@sh debian/ccm-build.sh
touch build-stamp
clean:
dh_testdir
dh_testroot
rm -f build-stamp
# Add here commands to clean up after the build process.
@sh debian/ccm-clean.sh
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# Add here commands to install the package into debian/<packagename>.
@sh debian/ccm-install.sh $(CURDIR)/debian/tmp
@sh debian/ccm-build-bundles.sh
# Build architecture-independent files here.
binary-indep: build install
dh_testdir
dh_testroot
dh_installdirs
dh_installchangelogs
dh_installdocs
dh_installexamples
@sh debian/ccm-disperse.sh debian/tmp
# dh_install --sourcedir=debian/tmp
# dh_installmenu
dh_installdebconf
# dh_installlogrotate
# dh_installemacsen
# dh_installcatalogs
# dh_installpam
# dh_installmime
# dh_installinit
# dh_installcron
# dh_installinfo
# dh_undocumented
dh_installman
dh_link
dh_compress
dh_fixperms
# dh_perl
# dh_python
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
# Build architecture-dependent files here.
binary-arch: build install
# We have nothing to do by default.
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install

View File

@ -0,0 +1,207 @@
Template: ccm/debconf/version
Type: string
Default: $Id: templates,v 1.1.1.1 2004/11/12 09:30:12 fabrice Exp $
Description: The version of the debconf template
Author: Berkan Eskikaya <berkan@runtime-collective.com>, 2004
.
$Id: templates,v 1.1.1.1 2004/11/12 09:30:12 fabrice Exp $
Template: ccm/package_name
Type: string
Default: ccm-shp-aplaws
Description: The name of the package
This is syntetic sugar.
Template: ccm/package_version
Type: string
Default: 6.5.0
Description: The version of the package
This is synthetic sugar.
Template: ccm/shared/dbase_type
Type: select
Choices: postgresql
Default: postgresql
Description: Database backend:
Please choose a database backend. At the moment, you could only select PostgreSQL.
Template: ccm/shared/dbase_host
Type: string
Default: localhost
Description: Database host:
Please specify the host that the database runs on.
Template: ccm/shared/dbase_name
Type: string
Default: ccm01.db
Description: Database name:
Please specify the name of the APLAWS database.
Template: ccm/shared/dbase_user
Type: string
Default: ccm
Description: Database user name:
Please specify the database account for the APLAWS database.
Template: ccm/shared/dbase_password
Type: password
Default: ccmpwd
Description: Database password:
Please choose a password for the APLAWS database account.
Template: ccm/shared/waf_runtime_jdbc_url
Type: string
Default: jdbc:postgresql://localhost/ccm01.db?user=ccm&password=ccmpwd
Description: JDBC connection URL:
The WAF runtime uses this value to connect to a database.
.
Format: jdbc:[subprotocol]:[subname]
.
Example: jdbc:postgresql://localhost/ccm01.db?user=ccm&password=ccmpwd
Template: ccm/shared/waf_web_server
Type: string
Default: localhost:9090
Description: Server virtual host:
Please specify the hostname and port that users of a site will
see in URLs generated by WAF.
.
Format: [server hostname]:[port number]
.
Example: example.com:80
Template: ccm/shared/waf_admin_email
Type: string
Default:
Description: Administrator Email Address:
Please specify the system administrator account.
.
Format: <user>@<domain>
.
Example: joe@example.com
Template: ccm/shared/waf_admin_name_given
Type: string
Default:
Description: Administrator First Name:
Please specify the name of the system administrator.
Template: ccm/shared/waf_admin_name_family
Type: string
Default:
Description: Administrator Last Name:
Please specify the surname of the system administrator.
Template: ccm/shared/waf_admin_password
Type: password
Default:
Description: Administrator Password
Please choose a password for the system administrator account.
Template: ccm/shared/waf_admin_password_question
Type: string
Default: The name of your primary school
Description: Administrator Password Question:
This question will be asked when the password to the system administrator
account is lost and access must be recovered.
.
Please only use letters and numbers.
Template: ccm/shared/waf_admin_password_answer
Type: string
Default:
Description: Administrator Password Answer:
Now specify the correct answer to the Administrator Password Question.
.
Please only use letters and numbers.
Template: ccm/shared/ccm_load_apps_at_install_p
Type: boolean
Default: true
Description: Load CCM applications as they install?
You could choose to load CCM applications into the database
automatically after they are installed, or you could load them
manually [with 'ccm load'] yourself.
.
The former will save you some manual work, while the latter is probably
most suited if you are trying to build the applications from the
sources and prefer to load them once all are built and installed.
Template: ccm/shared/pg_set_up_database_p
Type: boolean
Default: true
Description: Do you want me to set up the CCM database and adjust the access permissions?
You have specified a database on your localhost. I could set it up
for you and automatically adjust the access permissions. I could do
this independently of whether or not you have choosen to load the
applications at install time.
.
Say no here if you have already prepared the CCM database yourself
or if you would like to do it later. Saying yes will save you some
manual work.
Template: ccm/shared/pg_drop_database_at_purge_p
Type: boolean
Default: true
Description: Do you want me to drop the CCM database?
Template: ccm/shared/error_etc_ccm_missing_dir
Type: note
Description: CCM configuration directory does not exist.
I couldn't find the CCM configuration directory: /etc/ccm.
.
This probably points at a corrupt or unusual CCM installation. The ccm-tools
package creates this directory --- please verify that it is installed and
intact.
.
I will continue with the configuration by re-creating the directory,
but we may experience problems later.
Template: ccm/shared/ccm_aux_setupdb_failed
Type: note
Description: ccm-aux-setupdb couldn't complete.
The helper script ccm-aux-setupdb didn't succeed.
This means that the CCM database couldn't be set up.
.
If you have answered yes to the automatic loading of
applications at install time, I will still try to honour
that.
.
In case that doesn't succeed [likely now], please manually
prepare the database and load the application(s) after the
installation.
Template: ccm/shared/ccm_aux_update_hba_conf_failed
Type: note
Description: ccm-aux-update-hba-conf couldn't complete.
The helper script ccm-aux-update-hba-conf didn't succeed.
This means that the access permissions for the ccm database
couldn't be set up.
.
If you have answered yes to the automatic loading of
applications at install time, I will still try to honour
that.
.
In case that doesn't succeed [likely now], please manually
check/edit the pg_hba.conf file of your PostgreSQL instance
and load the application(s) after the installation.
Template: ccm/shared/error_ccm_tool_not_found
Type: note
Description: The 'ccm' tool not found.
I need the 'ccm' tool [/usr/bin/ccm] to continue but I cannot find it.
.
This probably points at a corrupt or unusual CCM installation. The ccm-tools
package contains this file --- please check your setup after the installation,
and then run "dpkg-reconfigure ccm-ldn-aplaws".
Template: ccm/shared/error_java_home_not_found
Type: note
Description: JAVA_HOME not found.
JAVA_HOME isn't set --- I have even tried to guess it but failed.
.
This will cancel any 'ccm load' and 'ccm hostinit' operations.
.
Please check your java setup after the installation, and then run
"dpkg-reconfigure ccm-ldn-aplaws".

View File

@ -0,0 +1,10 @@
schemas = $(wildcard *.xsd)
all: app-schemas.html
app-schemas.html: app-schemas.htmc $(schemas) $(xmldocs)
htmltoc.pl $< > $@
clean:
rm -f app-schemas.html *.bak *~

View File

@ -0,0 +1,141 @@
<html>
<head>
<!-- WARNING -->
<title>APLAWS-II: Application Schemas</title>
<style>
.schema {
border: 1px solid black;
margin: 1em;
padding: 1em;
background: rgb(192,230,230);
}
</style>
</head>
<body bgcolor="white" text="black">
<h1>APLAWS-II: Application Schemas</h1>
<p>
<big><strong><em>Final 1 November 2003</em></strong></big>
</p>
<!-- TABLE OF CONTENTS -->
<!-- SECTION Introduction -->
<p>
This document provides the XML Schemas for the principle public facing
applications in APLAWS. The schemas describe the XML that is generated
by UI components prior to being fed into the XSLT transformer. Since the
precise combination of components that can be present in a particular
JSP page can vary from install to install, these schemas don't document
an entire page, but rather, each individual component that can be plugged
into a page.
</p>
<p>
The official specification for XML schemas can be found at the
<a href="http://www.w3.org/XML/Schema">W3C</a> site. For a gentler introduction, the O'Reilly
<a href="http://www.oreilly.com/catalog/xmlschema/">XML Schema book</a> is recommended reading.
</p>
<!-- SECTION Navigation -->
<p>
Category navigation components may be present on any
page in the site, since they provide things such as
the list of top level categories, breadcrumb trail,
etc.
</p>
<pre class="schema">
<!-- INSERT navigation.xsd -->
</pre>
<!-- SECTION Directory -->
<p>
The directory page in APLAWS, commonly found at /content/directory.jsp
contains a summary of top two levels of navigation categories.
</p>
<pre class="schema">
<!-- INSERT directory.xsd -->
</pre>
<!-- SECTION Services -->
<p>
The services page in APLAWS, commonly found at /content/services.jsp,
is little more than a placeholder for designers to hook on to.
</p>
<pre class="schema">
<!-- INSERT services.xsd -->
</pre>
<!-- SECTION Site Map -->
<p>
The sitemap page in APLAWS, commonly found at /content/sitemap.jsp
is little more than a placeholder for designers to hook on to.
</p>
<pre class="schema">
<!-- INSERT sitemap.xsd -->
</pre>
<!-- SECTION Portals -->
<p>
The portals schema describes the generic framework for browsing
workspaces &amp; portals. Each portlet type will have its own schema
to describe what XML it generates.
</p>
<pre class="schema">
<!-- INSERT portal.xsd -->
</pre>
<!-- SECTION Forums -->
<p>
The schema for forums only describes the components that are used to
present information about messages. It does not cover the Bebop forms
and administrative UI components.
</p>
<pre class="schema">
<!-- INSERT forum.xsd -->
</pre>
<!-- SECTION Search -->
<p>
The schema for search describes the XML document used to represent
the result list and the filter metadata which can be used to build
a query form in HTML.
</p>
<pre class="schema">
<!-- INSERT search.xsd -->
</pre>
<!-- SECTION A-Z -->
<p>
The A-Z application is a framework for providing a list of
topics and items paginated by letter.
</p>
<pre class="schema">
<!-- INSERT atoz.xsd -->
</pre>
<!-- FOOTER Daniel Berrange (berrange@redhat.com) -->
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,90 @@
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gen="http://xmlns.redhat.com/core/bebop/generator/1.0"
xmlns="http://xmlns.redhat.com/atoz/1.0"
elementFormDefault="qualified"
targetNamespace="http://xmlns.redhat.com/atoz/1.0">
<xs:element name="atoz">
<xs:annotation>
<xs:documentation xml:lang="en">
The AtoZ provides a pluggable letter paginated
listing of topics and optionally items with a
topic
</xs:documentation>
<xs:appinfo>
<gen:class>com.arsdigita.london.atoz.ui.AtoZPane</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="letter" minOccurs="26" maxOccurs="26">
<xs:complexType>
<xs:attribute name="isSelected" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<xs:element name="provider" type="provider" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="entryList">
<xs:annotation>
<xs:documentation xml:lang="en">
This type is a base for an element containing
child entries, either topics or items.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:choice>
<xs:element name="atomicEntry" type="atomicEntry"/>
<xs:element name="compoundEntry" type="compoundEntry"/>
</xs:choice>.
</xs:sequence>
</xs:complexType>
<xs:complexType name="provider">
<xs:annotation>
<xs:documentation xml:lang="en">
A provider is a module which generates A-Z entries.
A category provider may generate a list of items
corresponding to navigation categories.
</xs:documentation>
</xs:annotation>
<xs:extension base="entryList">
<xs:attribute name="title" type="xs:string"/>
<xs:attribute name="description" type="xs:string" use="optional"/>
</xs:extension>
</xs:complexType>
<xs:complexType name="atomicEntry">
<xs:annotation>
<xs:documentation xml:lang="en">
An atomic entry is a leaf-node in the A-Z, representing
a single item (or page of content) in the A-Z. As such
it has a URL pointing to the location of the item.
</xs:documentation>
</xs:annotation>
<xs:attribute name="title" type="xs:string"/>
<xs:attribute name="description" type="xs:string" use="optional"/>
<xs:attribute name="url" type="xs:anyURI"/>
</xs:complexType>
<xs:complexType name="compoundEntry">
<xs:annotation>
<xs:documentation xml:lang="en">
A compound entry can be thought of as a topic,
with a title and description. It will contain
a number of child entries, representing either
sub-topics or items.
</xs:documentation>
</xs:annotation>
<xs:extension base="entryList">
<xs:attribute name="title" type="xs:string"/>
<xs:attribute name="description" type="xs:string" use="optional"/>
</xs:extension>
</xs:complexType>
</xs:schema>

View File

@ -0,0 +1,59 @@
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gen="http://xmlns.redhat.com/core/bebop/generator/1.0"
xmlns="http://www.arsdigita.com/cms/1.0"
elementFormDefault="qualified"
targetNamespace="http://www.arsdigita.com/cms/1.0">
<xs:element name="directory">
<xs:annotation>
<xs:documentation xml:lang="en">
The directory component displays a summary of the first two
levels of the navigation category heirarchy. The categoryID
attribute can be used to link to
$context-prefix/navigation/category.jsp?categoryID=XXX
</xs:documentation>
<xs:appinfo>
<gen:class>com.arsdigita.london.navigation.ui.DirectoryComponent</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="directoryL1Category" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="directoryL2Category" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="title" type="xs:string">
<xs:attribute name="description" type="xs:string" use="optional">
<xs:attribute name="categoryID" type="xs:integer">
</xs:complexType>
</xs:element>
<xs:element name="directoryItem" minOccurs="0" maxOccurs="3">
<xs:annotation>
<xs:documentation xml:lang="en">
The first two items are instances of the 'Fixed Promo'
content type in the current category. The third item
is a 'Fixed Promo' item from the subcategory.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="title" type="xs:string">
<xs:attribute name="path" type="xs:anyURI">
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="title" type="xs:string">
<xs:attribute name="description" type="xs:string" use="optional">
<xs:attribute name="categoryID" type="xs:integer">
</xs:complexType>
</xs:element>
</sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,312 @@
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gen="http://xmlns.redhat.com/core/bebop/generator/1.0"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
xmlns="http://xmlns.redhat.com/forums/1.0"
elementFormDefault="qualified"
targetNamespace="http://xmlns.redhat.com/forums/1.0">
<xs:element name="forum" type="forumComponent">
<xs:complexType name="forumComponent">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.ForumComponent</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="forumMode" minOccurs="0" maxOccurs="unbounded" type="forumMode"/>
<xs:choice>
<xs:choice>
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.ForumUserView</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="forumOptions" type="forumOptions"/>
<xs:element name="topicSelector" type="topicSelector"/>
<xs:element name="threadList" type="threadList"/>
</xs:sequence>
<xs:element name="bebop:form" type="bebopForm">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.NewPostForm</gen:class>
</xs:appinfo>
</xs:annotation>
</xs:element>
</xs:choice>
<xs:choice>
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.CategoryView</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="topicOptions" type="topicOptions"/>
<xs:element name="topicList" type="topicList"/>
</xs:sequence>
<xs:element name="bebop:form" type="bebopForm">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.CategoryAddForm</gen:class>
</xs:appinfo>
</xs:annotation>
</xs:element>
</xs:choice>
<xs:sequence>
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.ForumAlertsView</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:element name="forumAlerts" type="forumAlerts"/>
<xs:element name="threadAlerts" type="threadAlerts"/>
</xs:sequence>
<xs:sequence>
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.admin.ModerationView</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:element name="bebop:form" type="bebopForm"/>
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="threadComponent">
<xs:choice>
<xs:element name="bebop:form" type="bebopForm">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.EditPostForm</gen:class>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="bebop:form" type="bebopForm">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.ReplyToPostForm</gen:class>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="bebop:form" type="bebopForm">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.RejectionForm</gen:class>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:sequence>
<xs:element name="threadOptions" type="threadOptions"/>
<xs:element name="threadDisplay" type="threadDisplay"/>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:complexType name="forumMode">
<xs:annotation>
<xs:documentation xml:lang="en">
A forum mode refers to one of the alternate
views onto the forum application. The url
attributes provides the link for switching
into the mode.
</xs:documentation>
</xs:annotation>
<xs:attribute name="mode" type="xs:string"/>
<xs:attribute name="url" type="xs:anyURI"/>
<xs:attribute name="selected" type="xs:boolean"/>
</xs:complexType>
<xs:complexType name="forumOptions">
<xs:annotation>
<xs:documentation xml:lang="en">
A set of links relating to operations
in the thread list, such as posting
a new message.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="bebop:link" type="bebopLink"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="topicSelector">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.TopicSelector</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="topic">
<xs:sequence>
XXX DOR
</xs:sequence>
</xs:element>
<xs:sequence>
<xs:attribute name="baseURL" type="xs:anyURI"/>
<xs:attribute name="param" type="xs:string"/>
<xs:attribute name="anyTopicID" type="xs:integer"/>
<xs:attribute name="noTopicID" type="xs:integer"/>
</xs:complexType>
<xs:complexType name="threadList">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.ThreadList</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="paginator" type="paginator"/>
<xs:element name="thread" minOccurs="0" maxOccurs="unbounded">
<xs:sequence>
XXX DOR
</xs:sequence>
<xs:attribute name="url" type="xs:anyURI"/>
</xs:element>
<xs:sequence>
</xs:complexType>
<xs:complexType name="topicOptions">
<xs:annotation>
<xs:documentation xml:lang="en">
A set of links relating to operations
in the topic list, such as creating
a new topic.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="bebop:link" type="bebopLink"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="topicList">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.TopicList</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="topicSummary" minOccurs="0" maxOccurs="unbounded">
<xs:sequence>
<xs:element name="id"/>
<xs:element name="name"/>
<xs:element name="latestPost"/>
<xs:element name="numThreads"/>
</xs:sequence>
</xs:element>
<xs:element name="noTopicSummary">
<xs:sequence>
<xs:element name="latestPost"/>
<xs:element name="numThreads"/>
</xs:sequence>
<xs:attribute name="url" type="xs:anyURI"/>
</xs:element>
<xs:sequence>
<xs:attribute name="param" type="xs:string"/>
<xs:attribute name="baseURL" type="xs:anyURI"/>
</xs:complexType>
<xs:complexType name="threadAlertList">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.ThreadAlertList</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="threadAlert" minOccurs="0" maxOccurs="unbounded">
<xs:sequence>
XXX DOR
</xs:sequence>
<xs:attribute name="url" type="xs:anyURI"/>
</xs:element>
<xs:sequence>
</xs:complexType>
<xs:complexType name="forumAlerts">
<xs:element name="bebop:form" type="bebopForm"/>
</xs:complexType>
<xs:complexType name="threadAlerts">
<xs:element name="bebop:form" type="bebopForm"/>
</xs:complexType>
<xs:complexType name="threadOptions">
<xs:annotation>
<xs:documentation xml:lang="en">
A set of links relating to operations
in the thread list, such as alert
subscribe
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="bebop:link" type="bebopLink"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="threadDisplay">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.forum.ui.ThreadList</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="paginator" type="paginator"/>
<xs:element name="message" minOccurs="0" maxOccurs="unbounded">
<xs:sequence>
XXX DOR
</xs:sequence>
<xs:attribute name="approveURL" type="xs:anyURI" use="optional"/>
<xs:attribute name="rejectURL" type="xs:anyURI" use="optional"/>
<xs:attribute name="deleteURL" type="xs:anyURI" use="optional"/>
<xs:attribute name="editURL" type="xs:anyURI" use="optional"/>
<xs:attribute name="replyURL" type="xs:anyURI"/>
</xs:element>
<xs:sequence>
</xs:complexType>
<xs:complexType name="paginator">
<xs:attribute name="param" type="xs:string"/>
<xs:attribute name="baseURL" type="xs:anyURI"/>
<xs:attribute name="pageNumber" type="xs:integer"/>
<xs:attribute name="pageCount" type="xs:integer"/>
<xs:attribute name="pageSize" type="xs:integer"/>
<xs:attribute name="objectBegin" type="xs:long"/>
<xs:attribute name="objectEnd" type="xs:long"/>
<xs:attribute name="objectCount" type="xs:long"/>
</xs:complexType>
<xs:complexType name="bebopForm">
</xs:complexType>
<xs:complexType name="bebopLink">
</xs:complexType>
</xs:schema>

View File

@ -0,0 +1,104 @@
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://rhea.redhat.com/schemas/navigation"
elementFormDefault="qualified"
targetNamespace="http://rhea.redhat.com/schemas/navigation">
<xs:complexType name="alphabet">
<xs:sequence>
<xs:element name="letter">
<xs:complexType>
<xs:attribute name="value" type="xs:string"/>
<xs:attribute name="url" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="calendar">
<xs:sequence>
<xs:element name="today">
<xs:complexType>
<xs:attribute name="date" type="xs:string"/>
<xs:attribute name="day" type="xs:string"/>
<xs:attribute name="week" type="xs:string"/>
<xs:attribute name="month" type="xs:string"/>
<xs:attribute name="prettyMonth" type="xs:string"/>
<xs:attribute name="period" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="year">
<xs:complexType>
<xs:sequence>
<xs:element name="month">
<xs:complexType>
<xs:sequence>
<xs:element name="week">
<xs:complexType>
<xs:sequence>
<xs:element name="day">
<xs:complexType>
<xs:attribute name="url" type="xs:string"/>
<xs:attribute name="date" type="xs:string"/>
<xs:attribute name="day" type="xs:string"/>
<xs:attribute name="week" type="xs:string"/>
<xs:attribute name="month" type="xs:string"/>
<xs:attribute name="dayOfWeek" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="url" type="xs:string"/>
<xs:attribute name="rank" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="url" type="xs:string"/>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="previousURL" type="xs:string"/>
<xs:attribute name="nextURL" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="previousURL" type="xs:string"/>
<xs:attribute name="nextURL" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="categoryList">
<xs:sequence>
<xs:element name="category" type="object" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="objectList">
<xs:sequence>
<xs:element name="paginator" type="paginator"/>
<xs:element name="object" type="object" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="paginator">
<xs:attribute name="pageNumber" type="xs:integer"/>
<xs:attribute name="pageCount" type="xs:integer"/>
<xs:attribute name="pageSize" type="xs:integer"/>
<xs:attribute name="objectBegin" type="xs:integer"/>
<xs:attribute name="objectEnd" type="xs:integer"/>
<xs:attribute name="objectCount" type="xs:integer"/>
</xs:complexType>
<xs:complexType name="object">
<xs:attribute name="oid" type="xs:string"/>
<xs:attribute name="title" type="xs:string"/>
<xs:attribute name="description" type="xs:string"/>
<xs:attribute name="url" type="xs:string"/>
</xs:complexType>
</xs:schema>

View File

@ -0,0 +1,165 @@
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gen="http://xmlns.redhat.com/core/bebop/generator/1.0"
xmlns="http://xmlns.redhat.com/atoz/1.0"
elementFormDefault="qualified"
targetNamespace="http://xmlns.redhat.com/atoz/1.0">
<xs:element name="categoryRoot">
<xs:annotation>
<xs:documentation xml:lang="en">
Outputs the root navigation category
</xs:documentation>
<xs:appinfo>
<gen:class>com.arsdigita.london.navigation.ui.category.Root</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="category" type="category" minOccurs="1" maxOccurs="1"/>
</sequence>
</xs:complexType>
</xs:element>
<xs:element name="categoryTopLevel">
<xs:annotation>
<xs:documentation xml:lang="en">
Outputs the first level navigation categories (ie immediate
children of the root).
</xs:documentation>
<xs:appinfo>
<gen:class>com.arsdigita.london.navigation.ui.category.TopLevel</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="category" type="category" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</xs:complexType>
</xs:element>
<xs:element name="categorySiblings">
<xs:annotation>
<xs:documentation xml:lang="en">
Outputs siblings of the category category (ie, those categories
at the same level as the current category.
</xs:documentation>
<xs:appinfo>
<gen:class>com.arsdigita.london.navigation.ui.category.Siblings</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="category" type="category" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</xs:complexType>
</xs:element>
<xs:element name="categoryChildren">
<xs:annotation>
<xs:documentation xml:lang="en">
Outputs immediate children of the current category
</xs:documentation>
<xs:appinfo>
<gen:class>com.arsdigita.london.navigation.ui.category.Children</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="category" type="category" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</xs:complexType>
</xs:element>
<xs:element name="categoryPath">
<xs:annotation>
<xs:documentation xml:lang="en">
Outputs the categories on a path between the root navigation
category (exclusive) and the current category (inclusive).
</xs:documentation>
<xs:appinfo>
<gen:class>com.arsdigita.london.navigation.ui.category.Path</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="category" type="category" minOccurs="1" maxOccurs="unbounded"/>
</sequence>
</xs:complexType>
</xs:element>
<xs:element name="categoryMenu">
<xs:annotation>
<xs:documentation xml:lang="en">
Outputs the immediate children of all categories between the
root navigation category & the current category (both inclusive).
This is intended for showing a contextually-expanded tree to
the current category.
</xs:documentation>
<xs:appinfo>
<gen:class>com.arsdigita.london.navigation.ui.category.Menu</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="category" type="nestedCategory" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</xs:complexType>
</xs:element>
<xs:element name="categoryHierarchy">
<xs:annotation>
<xs:documentation xml:lang="en">
Outputs all categories, starting from the root navigation category
and recursing.
</xs:documentation>
<xs:appinfo>
<gen:class>com.arsdigita.london.navigation.ui.category.Hierarchy</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="category" type="nestedCategory" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="category">
<xs:annotation>
<xs:documentation xml:lang="en">
Represents the information for a single category. When
generating links to the category page, the url attribute
is the preferred method. The id attribute is merely
present for informational purposes.
</xs:documentation>
</xs:annotation>
<xs:attribute name="id" type="xs:integer"/>
<xs:attribute name="title" type="xs:string"/>
<xs:attribute name="description" type="xs:string" use="optional"/>
<xs:attribute name="url" type="xs:anyURI"/>
</xs:complexType>
<xs:complexType name="nestedCategory">
<xs:extension base="category">
<xs:sequence>
<xs:element name="category" type="nestedCategory" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexType
</xs:schema>

View File

@ -0,0 +1,95 @@
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.uk.arsdigita.com/portal/1.0"
xmlns:portlet="http://www.uk.arsdigita.com/portlet/1.0"
xmlns:debug="http://xmlns.redhat.com/waf/bebop/debug/1.0"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
elementFormDefault="qualified"
targetNamespace="http://www.uk.arsdigita.com/portal/1.0">
<xs:element name="workspace">
<xs:sequence>
<xs:element name="workspaceDetails" type="workspaceDetails">
<xs:element name="portalList" type="portalList">
<xs:element name="bebop:portal" type="portalDisplay">
</xs:sequence>
</xs:element>
<xs:complexType name="workspaceDetails">
<xs:annotation>
<xs:documentation xml:lang="en">
This outputs metadata about the workspace along with a
summary of permissions.
</xs:documentation>
<xs:appinfo>
<debug:class>com.arsdigita.london.portal.ui.WorkspaceDetails</debug:class>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="objectType" minOccurs="1" maxOccurs="1"/>
<xs:element name="title" minOccurs="1" maxOccurs="1"/>
<xs:element name="description" minOccurs="0" maxOccurs="1"/>
<xs:element name="primaryURL" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="oid" type="xs:string"/>
<xs:attribute name="canEdit" type="xs:boolean"/>
<xs:attribute name="canAdmin" type="xs:boolean"/>
</xs:complexType>
<xs:complexType name="portalList">
<xs:annotation>
<xs:documentation xml:lang="en">
This component generates a summary list of all portals
in a workspace. One use of this is to generate a set
of tabbed panes for switching between portals.
</xs:documentation>
<xs:appinfo>
<debug:class>com.arsdigita.london.portal.ui.PortalList</debug:class>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="portalDetails" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="objectType" minOccurs="1" maxOccurs="1"/>
<xs:element name="title" minOccurs="1" maxOccurs="1"/>
<xs:element name="description" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="oid" type="xs:string"/>
<xs:attribute name="isSelected" type="xs:boolean"/>
<xs:attribute name="selectAction" type="xs:url"/>
<xs:attribute name="deleteAction" type="xs:url" use="optional"/>
<xs:attribute name="moveLeftAction" type="xs:url" use="optional"/>
<xs:attribute name="moveRightAction" type="xs:url" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="bebop:form"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="portalDisplay">
<xs:annotation>
<xs:appinfo>
<debug:class>com.arsdigita.london.portal.ui.PersistentPortal</debug:class>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="" minOccurs="" maxOccurs="">
</xs:sequence>
</xs:complexType>
</xs:schema>

View File

@ -0,0 +1,103 @@
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gen="http://xmlns.redhat.com/core/bebop/generator/1.0"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
xmlns="http://xmlns.redhat.com/core/search/1.0"
elementFormDefault="qualified"
targetNamespace="http://xmlns.redhat.com/core/search/1.0">
<xs:element name="query" type="query"/>
<xs:element name="results" type="results"/>
<xs:complexType name="results">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.search.ui.ResultsPane</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="paginator">
<xs:attribute name="param" type="xs:string"/>
<xs:attribute name="baseURL" type="xs:anyURI"/>
<xs:attribute name="pageNumber" type="xs:integer"/>
<xs:attribute name="pageCount" type="xs:integer"/>
<xs:attribute name="pageSize" type="xs:integer"/>
<xs:attribute name="objectBegin" type="xs:long"/>
<xs:attribute name="objectEnd" type="xs:long"/>
<xs:attribute name="objectCount" type="xs:long"/>
</xs:element>
<xs:element name="documents">
<xs:sequence>
<xs:element name="object" minOccurs="0" maxOccurs="unbounded">
<xs:attribute name="oid" type="xs:string"/>
<xs:attribute name="url" type="xs:string"/>
<xs:attribute name="score" type="xs:string"/>
<xs:attribute name="title" type="xs:string"/>
<xs:attribute name="summary" type="xs:string" use="optional"/>
<xs:attribute name="locale" type="xs:string"/>
<xs:attribute name="creationDate" type="xs:string" use="optional"/>
<xs:attribute name="creationParty" type="xs:string" use="optional"/>
<xs:attribute name="lastModifiedDate" type="xs:string" use="optional"/>
<xs:attribute name="lastModifiedParty" type="xs:string" use="optional"/>
</xs:element>
</xs:sequence>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="query">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.search.ui.BaseQueryComponent</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="terms">
<xs:sequence>
<xs:element name="error" minOccurs="0" maxOccurs="unbounded">
</xs:sequence>
<xs:attribute name="param" type="xs:string"/>
<xs:attribute name="value" type="xs:string"/>
</xs:element>
<xs:element name="filter" minOccurs="0" maxOccurs="unbounded">
<xs:sequence>
<xs:element name="error" minOccurs="0" maxOccurs="unbounded">
<xs:choice>
<xs:element name="category" type="category" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="objectType" type="objectType" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="category">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.search.ui.filters.CategoryFilterWidget</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:attribute name="oid" type="xs:string"/>
<xs:attribute name="title" type="xs:string"/>
<xs:attribute name="description" type="xs:string"/>
<xs:attribute name="isSelected" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="objectType">
<xs:annotation>
<xs:appinfo>
<gen:class>com.arsdigita.search.ui.filters.ObjectTypeFilterWidget</gen:class>
</xs:appinfo>
</xs:annotation>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="isSelected" type="xs:string" use="optional"/>
</xs:complexType>
</xs:schema>

View File

@ -0,0 +1,20 @@
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gen="http://xmlns.redhat.com/core/bebop/generator/1.0"
xmlns="http://www.arsdigita.com/aplaws/1.0"
elementFormDefault="qualified"
targetNamespace="http://www.arsdigita.com/aplaws/1.0">
<xs:element name="services">
<xs:annotation>
<xs:documentation xml:lang="en">
The services component is just a place holder for hooking onto
in XSLT. At this time it contains no content.
</xs:documentation>
<xs:appinfo>
<gen:class>com.arsdigita.aplaws.ui.ServicesComponent</gen:class>
</xs:appinfo>
</xs:annotation>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,20 @@
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gen="http://xmlns.redhat.com/core/bebop/generator/1.0"
xmlns="http://www.arsdigita.com/aplaws/1.0"
elementFormDefault="qualified"
targetNamespace="http://www.arsdigita.com/aplaws/1.0">
<xs:element name="sitemap">
<xs:annotation>
<xs:documentation xml:lang="en">
The sitemap component is just a place holder for hooking onto
in XSLT. At this time it contains no content.
</xs:documentation>
<xs:appinfo>
<gen:class>com.arsdigita.aplaws.ui.SitemapComponent</gen:class>
</xs:appinfo>
</xs:annotation>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/Address">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="address" type="xs:string"/>
<xs:element minOccurs="0" name="postalCode" type="xs:string"/>
<xs:element minOccurs="0" name="phone" type="xs:string"/>
<xs:element minOccurs="0" name="mobile" type="xs:string"/>
<xs:element minOccurs="0" name="fax" type="xs:string"/>
<xs:element minOccurs="0" name="email" type="xs:string"/>
<xs:element minOccurs="0" name="notes" type="xs:string"/>
<xs:element minOccurs="0" name="uri" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/Agenda">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="textAsset">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element minOccurs="0" name="description" type="xs:string"/>
<xs:element minOccurs="0" name="content" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="agendaDate" type="xs:string"/>
<xs:element minOccurs="0" name="location" type="xs:string"/>
<xs:element minOccurs="0" name="attendees" type="xs:string"/>
<xs:element minOccurs="0" name="subjectItems" type="xs:string"/>
<xs:element minOccurs="0" name="contactInfo" type="xs:string"/>
<xs:element minOccurs="0" name="summary" type="xs:string"/>
<xs:element minOccurs="0" name="creationDate" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/Article">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="textAsset">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element minOccurs="0" name="description" type="xs:string"/>
<xs:element minOccurs="0" name="content" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="imageCaptions">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element minOccurs="0" name="caption" type="xs:string"/>
<xs:element minOccurs="0" name="imageAsset">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
<xs:element minOccurs="0" name="mimeType">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="mimeType" type="xs:string"/>
<xs:element name="label" type="xs:string"/>
<xs:element name="fileExtension" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="width" type="xs:double"/>
<xs:element minOccurs="0" name="height" type="xs:double"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="lead" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/ArticleSection">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="rank" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/Event">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="textAsset">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element minOccurs="0" name="description" type="xs:string"/>
<xs:element minOccurs="0" name="content" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="startDate" type="xs:string"/>
<xs:element minOccurs="0" name="endDate" type="xs:string"/>
<xs:element minOccurs="0" name="startTime" type="xs:string"/>
<xs:element minOccurs="0" name="endTime" type="xs:string"/>
<xs:element minOccurs="0" name="eventDate" type="xs:string"/>
<xs:element minOccurs="0" name="location" type="xs:string"/>
<xs:element minOccurs="0" name="lead" type="xs:string"/>
<xs:element minOccurs="0" name="mainContributor" type="xs:string"/>
<xs:element minOccurs="0" name="eventType" type="xs:string"/>
<xs:element minOccurs="0" name="mapLink" type="xs:string"/>
<xs:element minOccurs="0" name="cost" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/FAQItem">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="question" type="xs:string"/>
<xs:element name="answer" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/FileStorageItem">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/GlossaryItem">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="definition" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/Job">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="grade" type="xs:string"/>
<xs:element minOccurs="0" name="closingDate" type="xs:string"/>
<xs:element minOccurs="0" name="salary" type="xs:string"/>
<xs:element minOccurs="0" name="body" type="xs:string"/>
<xs:element minOccurs="0" name="refNumber" type="xs:string"/>
<xs:element minOccurs="0" name="department" type="xs:string"/>
<xs:element minOccurs="0" name="jobDescription" type="xs:string"/>
<xs:element minOccurs="0" name="personSpecification" type="xs:string"/>
<xs:element minOccurs="0" name="contactDetails" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/LegalNotice">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="textAsset">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element minOccurs="0" name="description" type="xs:string"/>
<xs:element minOccurs="0" name="content" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="governmentUID" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/MOTDItem">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="message" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,36 @@
SERVER = http://dev.london.redhat.com:9068/
types = Address \
Agenda \
Article \
Event \
FileStorageItem \
Job \
LegalNotice \
Minutes \
MultiPartArticle \
ArticleSection \
NewsItem \
PressRelease \
Service \
FAQItem \
GlossaryItem \
MOTDItem \
Organization
schemas = $(types:%=%.xsd)
all: ct-schemas.html
ct-schemas.html: ct-schemas.htmc $(schemas)
htmltoc.pl $< > $@
%.xsd:
wget -O $@.raw '$(SERVER)aplaws/schema.jsp?type=com.arsdigita.cms.contenttypes.$(@:%.xsd=%)&context=com.arsdigita.cms.dispatcher.SimpleXMLGenerator&wrapAttr=true&wrapRoot=false'
xmllint -format $@.raw > $@
rm $@.raw
clean:
rm -f $(schemas) ct-schemas.html *.bak *~

View File

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/Minutes">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="textAsset">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element minOccurs="0" name="description" type="xs:string"/>
<xs:element minOccurs="0" name="content" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="minuteNumber" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
<xs:element minOccurs="0" name="actionItem" type="xs:string"/>
<xs:element minOccurs="0" name="attendees" type="xs:string"/>
<xs:element minOccurs="0" name="descriptionOfMinutes" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/MultiPartArticle">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="summary" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/NewsItem">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="textAsset">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element minOccurs="0" name="description" type="xs:string"/>
<xs:element minOccurs="0" name="content" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="imageCaptions">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element minOccurs="0" name="caption" type="xs:string"/>
<xs:element minOccurs="0" name="imageAsset">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
<xs:element minOccurs="0" name="mimeType">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="mimeType" type="xs:string"/>
<xs:element name="label" type="xs:string"/>
<xs:element name="fileExtension" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="width" type="xs:double"/>
<xs:element minOccurs="0" name="height" type="xs:double"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="lead" type="xs:string"/>
<xs:element minOccurs="0" name="newsDate" type="xs:string"/>
<xs:element name="isHomepage" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/Organization">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="link" type="xs:string"/>
<xs:element minOccurs="0" name="contact" type="xs:string"/>
<xs:element minOccurs="0" name="imageID" type="xs:double"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/PressRelease">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="textAsset">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element minOccurs="0" name="description" type="xs:string"/>
<xs:element minOccurs="0" name="content" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="contactInfo" type="xs:string"/>
<xs:element minOccurs="0" name="summary" type="xs:string"/>
<xs:element minOccurs="0" name="referenceCode" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://aplaws.org/schemas/content-types/com/arsdigita/cms/contenttypes/Service">
<xs:element name="object">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="objectType" type="xs:string"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="label" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="language" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="fileAttachments">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="id" type="xs:double"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="links">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="linkTitle" type="xs:string"/>
<xs:element minOccurs="0" name="linkDescription" type="xs:string"/>
<xs:element name="targetType" type="xs:string"/>
<xs:element minOccurs="0" name="targetURI" type="xs:string"/>
<xs:element minOccurs="0" name="targetItem">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="targetWindow" type="xs:string"/>
<xs:element minOccurs="0" name="linkOrder" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="title" type="xs:string"/>
<xs:element minOccurs="0" name="launchDate" type="xs:string"/>
<xs:element minOccurs="0" name="dublinCore">
<xs:complexType>
<xs:attribute name="oid" type="xs:string"/>
<xs:sequence>
<xs:element name="version" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element minOccurs="0" name="dcAudience" type="xs:string"/>
<xs:element minOccurs="0" name="dcContributor" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverage" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoveragePostcode" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageSpatialRef" type="xs:string"/>
<xs:element minOccurs="0" name="dcCoverageUnit" type="xs:string"/>
<xs:element minOccurs="0" name="dcDateValid" type="xs:string"/>
<xs:element minOccurs="0" name="dcDisposalReview" type="xs:string"/>
<xs:element minOccurs="0" name="dcLanguage" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalBegin" type="xs:string"/>
<xs:element minOccurs="0" name="dcTemporalEnd" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorOwner" type="xs:string"/>
<xs:element minOccurs="0" name="dcCreatorContact" type="xs:string"/>
<xs:element minOccurs="0" name="dcDescription" type="xs:string"/>
<xs:element minOccurs="0" name="dcIdentifier" type="xs:string"/>
<xs:element minOccurs="0" name="dcPreservation" type="xs:string"/>
<xs:element minOccurs="0" name="dcPublisher" type="xs:string"/>
<xs:element minOccurs="0" name="dcRelation" type="xs:string"/>
<xs:element minOccurs="0" name="dcRights" type="xs:string"/>
<xs:element minOccurs="0" name="dcSource" type="xs:string"/>
<xs:element minOccurs="0" name="dcKeywords" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="summary" type="xs:string"/>
<xs:element minOccurs="0" name="servicesProvided" type="xs:string"/>
<xs:element minOccurs="0" name="openingTimes" type="xs:string"/>
<xs:element minOccurs="0" name="address" type="xs:string"/>
<xs:element minOccurs="0" name="contacts" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,145 @@
<html>
<head>
<!-- WARNING -->
<title>APLAWS-II: Content Type Schemas</title>
<style>
.schema {
border: 1px solid black;
margin: 1em;
padding: 1em;
background: rgb(192,230,230);
}
</style>
</head>
<body bgcolor="white" text="black">
<h1>APLAWS-II: Content Type Schemas</h1>
<p>
<big><strong><em>Final 1 November 2003</em></strong></big>
</p>
<!-- TABLE OF CONTENTS -->
<!-- SECTION Introduction -->
<p>
This document provides XML Schemas for the principle APLAWS
content types. These schemas correspond to the XML generated
for presenting content items for viewing. Other uses of XML
wrt to content types (ie search indexing, import / export) may
use different XML schemas. In addition to the basic content type
attributes, these schemas also describe the XML generated for links,
file attachments and dublin core metadata that are associated with
any content type.
</p>
<p>
The official specification for XML schemas can be found at the
<a href="http://www.w3.org/XML/Schema">W3C</a> site. For a gentler introduction, the O'Reilly
<a href="http://www.oreilly.com/catalog/xmlschema/">XML Schema book</a> is recommended reading.
</p>
<!-- SECTION Content Types -->
<p>
The schemas that follow represent the XML generated by the
<code>com.arsdigita.cms.dispatcher.ContentPanel</code> bebop component.
This is the standard component used on the CMS item.jsp template.
</p>
<!-- SUBSECTION Address -->
<pre class="schema">
<!-- INSERT Address.xsd -->
</pre>
<!-- SUBSECTION Agenda -->
<pre class="schema">
<!-- INSERT Agenda.xsd -->
</pre>
<!-- SUBSECTION Article -->
<pre class="schema">
<!-- INSERT Article.xsd -->
</pre>
<!-- SUBSECTION Event -->
<pre class="schema">
<!-- INSERT Event.xsd -->
</pre>
<!-- SUBSECTION FAQ Item -->
<pre class="schema">
<!-- INSERT FAQItem.xsd -->
</pre>
<!-- SUBSECTION File Storage Item -->
<pre class="schema">
<!-- INSERT FileStorageItem.xsd -->
</pre>
<!-- SUBSECTION Glossary Item -->
<pre class="schema">
<!-- INSERT GlossaryItem.xsd -->
</pre>
<!-- SUBSECTION Job -->
<pre class="schema">
<!-- INSERT Job.xsd -->
</pre>
<!-- SUBSECTION Legal Notice -->
<pre class="schema">
<!-- INSERT LegalNotice.xsd -->
</pre>
<!-- SUBSECTION Minutes -->
<pre class="schema">
<!-- INSERT Minutes.xsd -->
</pre>
<!-- SUBSECTION Multi-part Article -->
<pre class="schema">
<!-- INSERT MultiPartArticle.xsd -->
</pre>
<!-- SUBSUBSECTION Article Section -->
<pre class="schema">
<!-- INSERT ArticleSection.xsd -->
</pre>
<!-- SUBSECTION MOTD Item -->
<pre class="schema">
<!-- INSERT MOTDItem.xsd -->
</pre>
<!-- SUBSECTION News Item -->
<pre class="schema">
<!-- INSERT NewsItem.xsd -->
</pre>
<!-- SUBSECTION Organization -->
<pre class="schema">
<!-- INSERT Organization.xsd -->
</pre>
<!-- SUBSECTION Press Release -->
<pre class="schema">
<!-- INSERT PressRelease.xsd -->
</pre>
<!-- SUBSECTION Service -->
<pre class="schema">
<!-- INSERT Service.xsd -->
</pre>
<!-- FOOTER Daniel Berrange (berrange@redhat.com) -->
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
DOCNAME=rhea-dpg-aplaws-en

View File

@ -0,0 +1,379 @@
<chapter id="ch-application-development">
<title>Application Development</title>
<para>
Once you have your development server up and running you are ready
to start custom development. The
<command>ccm-devel-create.pl</command> creates a skeleton application
directory for your project where you should place your custom code.
You should have a directory for each custom application you develop in
your dev directory and an entry in
<filename>project.xml</filename>. This chapter will detail the layout
of the application directory and configuration files, however the
details of actually writing XSL, Java, PDL, and JSP are beyond the
scope of this document, please refer to the guides on <ulink url="http://ccm.redhat.com">CCM Website</ulink> or other resources.
</para>
<sect1 id="s1-quick-application-development">
<title>Quick Guide for the Impatient</title>
<para>
<orderedlist>
<listitem><para>Log in as your development user and run the command <command>ccm-profile <replaceable>projectname</replaceable>
</command>.</para>
</listitem>
<listitem>
<para>
<command>cddev</command> to change into the development directory.
</para>
</listitem>
<listitem>
<para>
Make the desired code changes
</para>
</listitem>
<listitem>
<para><command>ant deploy</command> to deploy and test the changes.
</para>
</listitem>
<listitem>
<para>If you are using CVS check in the changes.</para>
</listitem>
</orderedlist>
</para>
</sect1>
<sect1 id="s1-application-directory">
<title>An Application Directory</title>
<para>The dev directory will contain one or more application
directories. Each of these directories will be built as a single
unit, but may depend on functionality provided by other
applications.</para>
<para>An application directory contains several
subdirectories:</para>
<sect2 id="s2-application-directory-structure">
<title>Application Directory Structure</title>
<screen>
<computeroutput>
<userinput>application name</userinput>
|
|
+ -- application.xml
|
|
+ -- etc/
| |
| |
| + -- enterprise.init.in
|
|
+ -- web/
| |
| |
| + -- packages
|
|
+ -- src/
| |
| |
| + -- com/arsdigita/
|
|
+ -- pdl/
|
|
+ -- com/arsdigita/
</computeroutput>
</screen>
</sect2>
<sect2 id="s2-app-etc">
<title>etc/</title>
<para>This holds any custom fragments your package will
need to add to the system initializer file,
<filename>enterprise.init</filename>, in a file called
<filename>enterprise.init.in</filename>. When you are
building your project, one of the steps you will take
will be running a task that concatenates all the
appropriate <filename>enterprise.init.in</filename>
fragments together into one master configuration
file.</para>
<para><filename>etc/</filename> might also contain
custom libraries or other special files your package
relies on.</para>
</sect2>
<sect2 id="s2-app-pdl">
<title>pdl/</title>
<para>This directory contains the PDL files for custom data
objects your application creates and uses. If you
explore the <filename>pdl/</filename> directory, you'll
see it is organized like Java packages, with directories
following a package hierarchy. Like Java, PDL code is
organized in packages (called
<emphasis>models</emphasis>), and PDL objects can extend
other PDL objects.</para>
</sect2>
<sect2 id="s2-app-sql">
<title>sql/</title>
<para>This directory contains the custom SQL files
that create, drop,
and upgrade the database schema for your application,
and a single custom create script
(<filename>oracle-se-create.sql</filename>, for example)
for each database you want your application to run on.
SQL files are organized by package and by the database
they are appropriate for. Note that auto generated sql,
which is what most of your sql will be, only appears in
the build and deployment directories, not in this
<filename>sql/</filename> directory.</para>
</sect2>
<sect2 id="s2-app-src">
<title>src/</title>
<para>holds the Java source code for your package. It is
organized according to the standard Java package directory
hierarchy.</para>
</sect2>
<sect2 id="s2-app-test">
<title>test/</title>
<para>This holds <application>Junit</application> and other
test classes for your application.
<filename>test/</filename> will have at least a
<filename>src/</filename> directory underneath it, and it
may have other directories holding non-Java files necessary
for running your application tests.</para>
</sect2>
<sect2 id="s2-app-web">
<title>web/</title>
<para>This holds files from your application that should be
deployed directly to the servlet container's
<emphasis>webapp root</emphasis> (like the document root
for a web server, the webapp root is the directory where the
servlet container looks for Java classes, and for JSPs and
any static files it needs to serve). Under
<filename>web/</filename> you will find a
<filename>packages/</filename> directory; in a complete
application, you might also see a
<filename>STATIC/</filename> or <filename>assets/</filename>
directory for static files like graphics or CSS.</para>
<para>The <filename>packages/</filename> directory under
<filename>web/</filename> deserves a few special words.
<filename>packages/</filename> is the location for the XSL
for your application, and also for any JSPs you may want to
include. Note that a ccm package is
<emphasis>not</emphasis> the same thing as a Java package; a
&CCM; application can contain many &CCM; packages, which can
contain many Java packages. The distinction is that a &CCM;
package is represented by a row in a &CCM; system table, can
be mounted at site nodes and can have its own dispatcher. A
Java package is simply a unit of code organization, and is
not tracked by &CCM; in any way.</para>
<para>XSL stylesheets for a package go under the
<filename>packages/<replaceable>package-name</replaceable>/xsl/</filename>
directory. Custom JSPs go under the
<filename>packages/<replaceable>package-name</replaceable>/www/</filename>
directory.</para>
</sect2>
</sect1>
<sect1 id="s1-application-dot-xml">
<title>The <filename>application.xml</filename> file</title>
<para><filename>application.xml</filename> provides metadata about
an application, primarily for use when building a package.</para>
<sect2 id="s2-sample-application-dot-xml">
<title>Sample <filename>application.xml</filename> file</title>
<screen><computeroutput>
&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
&lt;ccm:application name="aplaws-custom"
prettyName="The APLAWS customization and styling package"
version="1.0.0"
release="1"&gt;
&lt;ccm:dependancies&gt;
&lt;!-- &lt;ccm:requires name="core" version="5.0.0"/&gt; --&gt;
&lt;/ccm:dependancies&gt;
&lt;ccm:contacts&gt;
&lt;!--
&lt;ccm:contact uri="http://www.redhat.com/software/ccm" type="website"/&gt;
&lt;ccm:contact uri="mailto:cms@redhat.com" type="support"/&gt;
--&gt;
&lt;/ccm:contacts&gt;
&lt;ccm:description&gt;
The aplaws-custom package customizes the APLAWS system.
&lt;/ccm:description&gt;
&lt;/ccm:application&gt;
</computeroutput>
</screen>
</sect2>
<sect2 id="s2-application-dot-xml">
<title><filename>application.xml</filename> elements</title>
<para>As with <filename>project.xml</filename>, the most commonly
changed parameters are attributes of the top level element,
<command>&lt;ccm:application&gt;</command>:</para>
</sect2>
<sect2 id="s2-ax-name">
<title>name</title>
<para>The machine friendly name of the
application. This is not normally changed once it has
been set.</para>
</sect2>
<sect2 id="s2-ax-pretty-name">
<title>prettyName</title>
<para>The human friendly name of the application.</para>
</sect2>
<sect2 id="s2-ax-version">
<title>version</title>
<para>The version number of the application. This always
consists of 3 numbers, separated by '.', which have
decreasing significance from left to right.</para>
<para>By convention, the first number is the 'very
major' version number. This is normally only changed to
signify a very significant enhancement or change in
functionality. The second number is less major, but
still represents a significant new version. The third
number is the minor version number. You will normally
change this number for bug fixes or minor
enhancements.</para>
<note>
<title>Note</title>
<para>If you specified this application in the
<command>extendsVersion</command> attribute of
<filename>project.xml</filename> then the value you
specify here will be top level version number for
your project.</para>
</note>
</sect2>
<sect2 id="s2-ax-release">
<title>release</title>
<para>The release number specifies a particular build of
a version number.</para>
<para>By convention, you should increase the release
number only if you are correcting something which should
have been in the original release, or something so minor
it could not possibly impact on any other part of the
system, such as a typo. When increasing the version
number, you should reset the release number to 1.</para>
<note>
<title>Note</title>
<para>If you specified this application in the
<command>extendsVersion</command> attribute of
<filename>project.xml</filename> then the value you
specify here will be top level release number for
your project.</para>
</note>
</sect2>
<sect2 id="s2-ax-future">
<title><command>&lt;ccm:dependancies&gt;</command>,
<command>&lt;ccm:contacts&gt;</command>, and
<command>&lt;ccm:description&gt;</command></title>
<para>The <command>&lt;ccm:dependancies&gt;</command>,
<command>&lt;ccm:contacts&gt;</command> and
<command>&lt;ccm:description&gt;</command> elements are placeholders
for future functionality, and are not currently used.</para>
</sect2>
</sect1>
<sect1 id="s1-app-cvs">
<title>Using CVS</title>
<para>
The Concurrent Versions System (CVS) is a powerful file
system-based tool for managing changes made to a code base. It is
particularly useful for tracking changes across time and for
facilitating collaboration of multiple developers on the same
code. This section will provide a brief introduction to CVS and the very basic commands. However it is strongly recommended that you study the CVS manual to take full advantage of this tool.
</para>
<para> CVS works by storing all changes in a central
repository, called the CVS repository. Developers can make copies of
the code from the CVS repository - called a check out - and make
changes to the code. Joe Developer is happy with the changes the the
developer can submit the new changes to the repository (called a check
in). If a Bob Developer comes along and checks out the same code base,
it will now have the changes that Joe made, along with the history of
how Joe changed the code. Because both developers are always referring
to the central CVS repository code changes can be easily shared.
</para>
<para>
CVS can provide you with the following capabilities for your code base:
<itemizedlist>
<listitem><para>Remember what all the previous checked-in
versions of a file contained, using its repository.</para></listitem>
<listitem><para>Show you the difference between what's in your
tree and what's in the repository.</para></listitem>
<listitem><para>Help you merge changes made simultaneously by
multiple authors who might have been unaware of each other's
work.</para></listitem>
<listitem><para>Group a snapshot of currently checked-in
versions of files as a partcular release</para></listitem>
<listitem><para>Revert back to a previous version of the code.</para></listitem>
<listitem><para>Act as a backup and restore facility.</para>
</listitem>
</itemizedlist>
</para>
<sect2 id="s2-cvs-commit">
<title><command>Making changes: cvs commit</command>
</title>
<para>
Once you have made changes to a file you need to notify the repository of your changes. You can do this with the command <command>cvs commit</command>.
</para>
</sect2>
<sect2 id="s2-cvs-update">
<title><command>Retrieving changes: cvs update</command>
</title>
<para>
You can retrieve changes that other developers have made
with the command <command>cvs update</command>. You should always run <command>cvs update</command> before you start working to make sure that the files you are working on are up to date.
</para>
</sect2>
<sect2 id="s2-cvs-help">
<title>CVS Help</title>
<para>
CVS is a very popular software and there is endless online
documentation on how to use it. There is also help available in the manual page for CVS and command line help.
<itemizedlist>
<listitem>
<para>
<ulink url="http://www.cvshome.org/docs/">CVS online documentation.</ulink>
</para>
</listitem>
<listitem><para>man cvs</para></listitem>
<listitem><para><command>cvs --help-options</command>: List of options you can use with CVS.</para></listitem>
<listitem><para><command>cvs --help-commands</command>: List of commands you can use with CVS.</para>
</listitem>
</itemizedlist>
</para>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,468 @@
<chapter id="ch-deploying-to-live">
<title>Building and Deploying A Package</title>
<para>
To install your customized code to the production server you
will need to package the codebase with <firstterm>RPM</firstterm>.
RPM is available for most flavours of UNIX, including
&RHEL; and <trademark>Solaris</trademark>. This section outlines
the steps for building a new RPM and installing it on your production
or staging server.
</para>
<sect1 id="s1-building-package">
<title>Building a package</title>
<para>Deployment to a live server is done by creating a package from a
tested and known good instance and installing it on your live
servers.</para>
<sect2 id="s2-setting-up-instance">
<title>Setting up an Instance</title>
<para>An RPM is built from a staging or development instance. You
will have a dev directory setup which contains all the code you
intend to run on your live server. The first step is to ensure the
quality of the instance you are building from.</para>
<para>First you should do a clean and rebuild of your instance. With
your environment setup for appropriate instance using
<command>ccm-profile</command>, execute the following commands from
the top level dev directory:</para>
<screen>
<command>ccm-stop</command>
<command>ant</command> <option>clean</option>
<command>ant</command> <option>deploy</option>
<command>ccm-start</command>
</screen>
<para>Once this has completed you should test it extensively, but
concentrating specifically on anything you may have changed since
the last build. When you are happy with it, you can create a
package.</para>
</sect2>
<sect2 id="s2-creating-a-package">
<title>Creating a package</title>
<para>Before creating a package, you should first increment the
version or release number as described in <xref
linkend="s2-application-dot-xml">. Be sure to commit your change to CVS
if you are using it.</para>
<para>Creating a package only requires a single command. In the top
level dev directory there will be a file called
<filename>rollingbuild.sh</filename>. To execute it, type:</para>
<screen>
<command>./rollingbuild.sh</command>
</screen>
<para><command>rollingbuild.sh</command> does a complete build from
scratch and can potentially take a long time to run. By default it
also builds more than one type of package. To make it run quicker,
you can use the following command instead:</para>
<screen>
<command>CCM_DIST_NOZIPS=1 ./rollingbuild.sh</command>
</screen>
</sect2>
<sect2>
<title>RPM version</title>
<para>
You will want to increment the release and version numbers of your
packages everytime you create a new build. You can do this
by editing <filename>project.xml</filename> or
<filename>application.xml</filename>. Please see <xref linkend="s2-ax-release"/>.
</para>
<caution>
<para>
If you do not increment the release number you will not
be able to upgrade an existing installation without using the
<command>rpm --force</command> option. You should
<emphasis>always</emphasis> increment the release number no matter how
insignificant the change is. Having good accounting in terms of
releases allows you to revert to older versions.
</para>
</caution>
</sect2>
<sect2 id="s2-file-locations">
<title>File locations</title>
<para><command>rollingbuild.sh</command> creates a number of rpms
which are arranged according to convention. All of the rpms are
created in the directory
<filename>/var/ccm-devel/rpm/<replaceable>username</replaceable>/RPMS/noarch</filename>. The source RPM is in <filename>/var/ccm-devel/rpm/<replaceable>username</replaceable>/SRPMS/</filename></para>
<para>When it finishes, rollingbuild will have created a number of
packages.
<itemizedlist>
<listitem><para>
<filename><replaceable>projectname</replaceable>-x.x.x-x.noarch.rpm</filename> - This is the binary RPM of the code base.
</para></listitem>
<listitem><para>
<filename><replaceable>projectname</replaceable>-servlet-resin-x.x.x-x.noarch.rpm</filename> - This is the RPM for running your project with the Resin servlet container.
</para></listitem>
<listitem><para>
<filename><replaceable>projectname</replaceable>-servlet-tomcat3-x.x.x-x.noarch.rpm</filename> - This is the RPM for running your project with the Tomcat servlet container.
</para></listitem>
<listitem><para>
<filename><replaceable>projectname</replaceable>-devel-tomcat3-x.x.x-x.noarch.rpm</filename> - This is the RPM for creating another project that extends the current project. This will install code in <filename>/usr/share/ccm-devel/project</filename>.
</para></listitem>
<listitem><para>
<filename><replaceable>projectname</replaceable>-doc-x.x.x-x.noarch.rpm</filename> - This is the javadoc generated from your project code. It will include all the APLAWS and &CCM; Javadoc.
</para></listitem>
<listitem><para>
<filename><replaceable>projectname</replaceable>-x.x.x-x.src.noarch.rpm</filename> - This is the source RPM for your project.
</para></listitem>
</itemizedlist>
</para>
</sect2>
</sect1>
<sect1 id="s1-install-project">
<title>Installing your RPM</title>
<para>
Once you have created your RPM you will need to install
it on your staging or production machine. Here are the steps for
installing your RPMS, you will need to be logged in as the root user.</para>
<sect2 id="s2-install-quick">
<title>Quick steps for the impatient</title>
<orderedlist>
<listitem><para>Copy two RPMs,
<filename><replaceable>projectname</replaceable>-x.x.x-x.noarch.rpm</filename>,
and
<filename><replaceable>projectname</replaceable>-servlet-resin-x.x.x-x.noarch.rpm</filename>
to your staging server.
</para></listitem>
<listitem><para>
Install the two RPMs at once by running the following command.
<screen>
<command>rpm -Uvh <replaceable>projectname-x.x.x-x.noarch.rpm projectname</replaceable>-servlet-resin-x.x.x-x.noarch.rpm</command>
</screen>
</para></listitem>
<listitem><para>
Copy the file <filename>/etc/<replaceable>projectname</replaceable>.cfg-resin</filename> to <filename>/etc/<replaceable>projectname</replaceable>.cfg</filename>.
</para></listitem>
<listitem><para>
Edit <filename>/etc/<replaceable>projectname</replaceable>.cfg</filename> in the same way you edited <filename>config.vars</filename>.
</para></listitem>
<listitem><para>
Update the configuration files for your server by running <command><replaceable>projectname</replaceable>-configure.pl</command>. This is similar to running <command>ant make-init</command>.
<screen>
/usr/sbin/<replaceable>projectname</replaceable>-configure.pl /etc/<replaceable>projectname</replaceable>.cfg
</screen>
</para></listitem>
<listitem><para>
The server should restart automatically when the configuration files are changed. If this does not happen you can restart the server manually with the init script.
<screen>
/etc/init.d/<replaceable>projectname</replaceable> restart # stop|start
</screen>
</para></listitem>
</orderedlist>
</sect2>
<sect2 id="s2-install-rpm-project">
<title>Installing the RPMS: <filename><replaceable>projectname</replaceable>-x.x.x-x.noarch.rpm</filename></title>
<para>
You will need to install the two RPMs
<filename><replaceable>projectname</replaceable>-x.x.x-x.noarch.rpm</filename>,
and
<filename><replaceable>projectname</replaceable>-servlet-resin-x.x.x-x.noarch.rpm</filename>
together as the two are
interdependent. <filename><replaceable>projectname</replaceable>-x.x.x-x.noarch.rpm</filename>
will install your code in
<filename>/var/www/<replaceable>projectname</replaceable></filename>
where it will be used by your application server. This RPM also
installs the init file
<filename>/etc/init.d/<replaceable>projectname</replaceable></filename>,
the configuration script
<filename>/usr/sbin/<replaceable>projectname</replaceable>-configure.pl</filename>,
and the log directory
<filename>/var/log/<replaceable>projectname</replaceable>.</filename>
</para>
</sect2>
<sect2 id="s2-install-rpm-servlet">
<title>Installing the RPMS: <filename><replaceable>projectname</replaceable>-servlet-resin-x.x.x-x.noarch.rpm</filename></title>
<para>
The servlet RPM will install configuration files and
wrapper scripts for controlling the servlet container. Specifically it will install the following files:
<itemizedlist>
<listitem><para><filename>/usr/share/<replaceable>projectname</replaceable>/bin/resin/run-apache.sh.in</filename></para></listitem>
<listitem><para><filename>/usr/share/<replaceable>projectname</replaceable>/bin/resin/run-resin.sh.in</filename></para></listitem>
<listitem><para><filename>/usr/share/<replaceable>projectname</replaceable>/bin/resin/run.sh.in</filename></para></listitem>
<listitem><para><filename>/usr/share/<replaceable>projectname</replaceable>/conf/resin</filename></para></listitem>
<listitem><para><filename>/usr/share/<replaceable>projectname</replaceable>/conf/resin/httpd-resin-vhost.conf.in</filename></para></listitem>
<listitem><para><filename>/usr/share/<replaceable>projectname</replaceable>/conf/resin/resin-back.conf.in</filename></para></listitem>
<listitem><para><filename>/usr/share/<replaceable>projectname</replaceable>/conf/resin/resin-front.conf.in</filename></para></listitem>
</itemizedlist>
</para>
<para>
These files are templates for your installation. When
you run the command
<command>/usr/sbin/<replaceable>projectname</replaceable>-configure.pl</command>
copies of these files will be placed in
<filename>/var/www/<replaceable>projectname</replaceable>/conf</filename>
and
<filename>/var/www/<replaceable>projectname</replaceable>/bin</filename>. They
will also be edited to reflect the parameters you set in
<filename>/etc/<replaceable>projectname</replaceable>.cfg</filename>
</para>
</sect2>
<sect2 id="s2-project-dot-cfg">
<title>The <filename><replaceable>projectname</replaceable>.cfg</filename></title>
<para>
Once the RPMs are installed you will need to edit the
configuration file for your server. The template for the config file
is
<filename>/etc/<replaceable>projectname</replaceable>.cfg-resin</filename>. Copy
this file to
<filename>/etc/<replaceable>projectname</replaceable>.cfg</filename>
and edit the parameters much like how you edited
<filename>config.vars</filename>. Some of the parameters are not in
<filename>config.vars</filename> and you will need to change the
values depending on how your Resin and HTTP servers are set up. Below
is an example of a configuration file for a production installation
with two Resin application servers and one Apache front end. The
values you need to change in addition to what what you find in
<filename>config.vars</filename> is emphasised with additional
comments. The Resin servers are called resin1.example.com and
resin2.example.com and the Apache server is called apache.example.com.
</para>
<note>
<title><command>hostname</command></title>
<para>The hostnames for the servers need to be exactly
as they appear when you run the <command>hostname</command>
command. If you want to change the default behavior of
<command>hostname</command> to return the short name or the fully
qualified domain name here is what you can do:
</para>
<para>
Edit <filename>/etc/sysconfig/network</filename> and change HOSTNAME
to be the fully qualified domain name. You can also use the gui tools
<command>netconfig</command> and
<command>redhat-config-network</command> to do this. These changes
will only take effect after the machine has been restarted. To change
it at runtime pass an argument to <command>hostname</command> as root.
<screen>
$ hostname resin1.example.com
</screen>
You can test this by running <command>hostname</command> with no
arguments. </para>
</note>
<screen><computeroutput>
##########################################
# APLAWS Master configuration file #
#########################################
servlet-container = resin
## This is set to servlet23 by default but should be resin
<userinput>servlet-webxml = resin</userinput>
# NB: all hostnames used should be
# the fully qualified name as returned
# by the 'hostname' command with no arguments.
####################################
# UNIX system level configuration
# Installation directory for resin
## This should be the directory of your Resin installation
<userinput>resin-home = /opt/resin/2.1.8</userinput>
# Installation directory for this app
app-home = /var/www/aplaws
# Directory containing the base runtime & config files
runtime-home = /usr/share/aplaws
# UNIX accounts to run as
user = servlet
group = servlet
# Whereever you installed JDK 1.3.1
# java-home = /usr/j2se
# java-home = /usr/java/jdk1.3.1
## The java-home should point to $JAVA_HOME
<userinput>java-home = /opt/IBMJava2-131</userinput>
# Userinputly tell java to use more memory
#
# For Sun's JDK, on a machine with 1GB
#jre-args = -J-client -J-Xss128k -J-Xms512m -J-Xmx512m -J-XX:NewSize=128m -J-XX:MaxNewSize=128m
#
# For IBM's JDK on a machine with 256MB
#jre-args = -J-Xms128m -J-Xmx128m
<userinput>jre-args = -J-Xms1536m -J-Xmx1536m</userinput>
# The hostname of the front end apache box
<userinput>apache = apache.example.com</userinput>
# The hostnames of the back end resin boxes
<userinput>resin = resin1.example.com</userinput>
<userinput>resin = resin2.example.com</userinput>
# The SRUN ports for apache to talk to the resin
# boxes. The 'hostname:port' pair designates which
# srun port each resin instance listens on.
# If there is a firewall, between the resin and
# apache boxes, a second 'hostname:port' pair
# specifies the host and port of the firewall
#
# eg1. no firewall
<userinput>srun = resin1.example.com:6802</userinput>
<userinput>srun = resin2.example.com:6802</userinput>
# eg2. with firewall
<userinput>#srun = resin1.example.com:6082, firewall:6802</userinput>
<userinput>#srun = resin2.example.com:6082, firewall:6803</userinput>
# Turn on http listening on either apache
# or resin boxes. Only need http port on
# the resin boxes for debugging purposes
<userinput>http = apache.example.com:80</userinput>
# Only for debugging
<userinput>http = resin1.example.com:8080</userinput>
<userinput>http = resin2.example.com:8080</userinput>
# ACS initialization file
admin-answer = 6
admin-email = admin@example.com
admin-forename = Administrator
admin-password = 123456
admin-question = 12345
admin-surname = Account
cache-expiry = 900
<userinput>cache-peers = "http://resin1.example.com:8080"</userinput>
caching-active = yes
db-pass = aplaws_xyz
db-pool = 150
db-user = aplaws
debug-mode = false
default-locale = en_US
default-scheme = http
developer-support = false
dispatcher-context-path =
dispatcher-servlet-path =
dmi-active = false
dmi-data-model-file = "/WEB-INF/sql/ccm-core/default/dmi/dmi-create.sql"
dmi-xml-files = { "core-dmi.xml", "/WEB-INF/sql/ccm-core" }
<userinput>host-name = apache.example.com</userinput>
<userinput>hostname = apache.example.com</userinput>
jdbc-url = jdbc:postgresql://postgres.example.com/aplaws
log-dir = /var/log/aplaws
log-level = warn
log-size = 1000000
login-stylesheet = login_en.xsl
lucene-index-location = /var/www/aplaws/lib/lucene-index
permissionsDMLChecking = false
search-intermedia-enabled = false
search-lucene-enabled = true
search-lucene-indexer-id = 2
<userinput>server-name = apache.example.com</userinput>
server-port = 80
sitename = APLAWS
smtp-host = localhost
state-dir = /var/www/aplaws/lib
subsite-dispatcher-class = com.arsdigita.ui.login.SubsiteDispatcher
xslt-engine = Saxon
xslt-timeout = 60000
# WCT CMS Initialization File
content-digest-sender = article-digest@example.com
forms-content-digest-sender = forms-digest@foo.com
inso_filter_works = 0
<userinput>publish-to-fs-servers = "http://resin1.example.com/", "http://resin2.example.com/"</userinput>
<userinput>publish-to-fs-source = "http://resin2.example.com/"</userinput>
<userinput>publish-to-fs-this-server = "http://resin2.example.com/"</userinput>
search-engine = lucene
# Version: $Id: building-packages.sgml 287 2005-02-22 00:29:02Z sskracic $ $Date: 2004/07/29 $
adminCanEditPosts = true
authorCanEditPosts = true
digestUserEmail = digests
<userinput>replyHostName = apache.example.com</userinput>
# Navigation initialization file
default-content-section-url = "/content/"
# System Properties
project-name = aplaws
</computeroutput>
</screen>
</sect2>
<sect2 id="s2-aplaws-configure-dot-pl">
<title><command>/usr/sbin/<replaceable>projectname</replaceable>-configure.pl</command></title>
<para>
Once you have edited
<filename>/etc/<replaceable>projectname</replaceable>.cfg-resin</filename>
you can run
<command>/usr/sbin/<replaceable>projectname</replaceable>-configure.pl</command>
to generate the config files and the run scripts for your server to
use. Make sure that you do not get errors after you run this
command. <command>/usr/sbin/<replaceable>projectname</replaceable>-configure.pl</command>
copies files from
<filename>/usr/share/<replaceable>projectname</replaceable>/bin/resin/</filename>
and replaces the parameter values with what you have set in the
configuration file and places them in
<filename>/var/www/<replaceable>projectname</replaceable>/conf</filename>. It
also generates the wrapper run scripts in
<filename>/var/www/<replaceable>projectname</replaceable>/bin</filename>.
</para>
</sect2>
<sect2 id="s2-etc-init-dot-d">
<title><command>/etc/init.d/<replaceable>projectname</replaceable></command></title>
<para>
Once the configuration files and the wrapper scripts are written
you can start, stop, and restart your sever using
<command>/etc/init.d/<replaceable>projectname</replaceable></command>.
The log files are located in your specified directory, by default
<filename>/var/log/<replaceable>projectname</replaceable></filename>. You
should <command>tail -f
/var/log/<replaceable>projectname</replaceable>/*.log</command> to
monitor the progress of your server startup.
</para>
<note>
<title><command>/etc/init.d/<replaceable>projectname</replaceable></command> restart </title>
<para>
When you restart the server the command will pause for a number
of seconds to wait for the application server to completely exit.
</para>
</note>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,259 @@
<chapter id="ch-create-new-project">
<title>Creating a New Project</title>
<para>This section addresses using the APLAWS build tools to create a new
project, or instance of your project. This may be for development or for
use as a staging server. </para>
<note><title>Note:</title>
<para>This section assumes that you have all the necessary tools
installed for a working development area. The steps for setting up a
development environment is beyond the scope of this document. Please
consult the installation guide for details.</para></note>
<sect1 id="s1-quick-steps-setup">
<title>Quick Guide for the Impatient</title>
<orderedlist>
<listitem>
<para>As the root user, create a system login for the
development user (<xref linkend="s1-setup-users"/>).</para>
</listitem>
<listitem>
<para>As the root user, set up the new development user as for
the development
environment with the command <command>ccm-devel-user.sh</command> <replaceable>username</replaceable> (<xref linkend="s2-setup-devel-user"/>)</para>
</listitem>
<listitem>
<para>As the development user, start a new APLAWS project with
the command <command>ccm-devel-create.pl</command> <option>--extends
aplaws aplaws_</option><replaceable>xxx</replaceable> (<xref
linkend="s1-create-project"/>)</para>
</listitem>
<listitem>
<para>
Familiarize yourself with the web directory, the dev
directory, and CVS (<xref linkend="s2-project-directory"/>, <xref
linkend="s2-web-directory"/>, <xref
linkend="s2-shared-source-directory"/>, and <xref
linkend="s2-create-project-cvs"/>).
</para>
</listitem>
</orderedlist>
</sect1>
<sect1 id="s1-setup-users">
<title>Setting up Users</title>
<para>This section should be carried out by the system
administrator. The first step is to create accounts for all users who
will be
developing with APLAWS. This has two steps:</para>
<orderedlist>
<listitem>
<para>Create a system login</para>
</listitem>
<listitem>
<para>Create a &CCM; development area</para>
</listitem>
</orderedlist>
<note>
<title>Note</title>
<para>A user only has to be setup once. Once their system account
and &CCM; development environment have been created, they can create
any number of projects without having to go through this process
again.</para>
</note>
<sect2 id="s2-create-system-login">
<title>Creating a system login</title>
<para>The following commands will create a new user,
set the password for that user and add the user to the
<command>ccm-devel</command> group.</para>
<screen>
<command>useradd</command> <option>-m</option> <replaceable>username</replaceable>
<command>passwd</command> <replaceable>username</replaceable>
<command>gpasswd</command> <option>-a</option> <replaceable>username</replaceable> <option>ccm-devel</option>
</screen>
<note>
<title>Note</title>
<para>These commands are for &RHELAS;. These will be slightly
different on other systems, but the effect must be the
same.</para>
</note>
</sect2>
<sect2 id="s2-setup-devel-user">
<title>Set Up the Development User with the Development Environment</title>
<para>Once a user is created, you need to configure the &CCM; development
area for them. This is done with the
<command>ccm-devel-user.sh</command> command, which must be executed
as <command>root</command>.</para>
<screen>
<command>ccm-devel-user.sh</command> <replaceable>username</replaceable>
</screen>
</sect2>
</sect1>
<sect1 id="s1-create-project">
<title>Starting a new APLAWS project</title>
<para>Login as the development user that was just created for you. To
start a new project, based on APLAWS we use the
<option>--extends</option>. For the project name a good naming scheme
would be to concatenate the word aplaws_ with your organization name, e.g.
<command>aplaws_herefordshire</command>. Putting those two bits together, we
get:</para>
<screen>
<prompt>bash-2.05b$</prompt> <command>ccm-devel-create.pl</command> <option>--extends aplaws aplaws_</option><replaceable>xxx</replaceable>
<computeroutput>
Installation complete; your server will run on port 9005.
</computeroutput>
</screen>
<para>You should make a note of this port number. When you have your
instance running, you will access it at the URL
http://<replaceable>your-server</replaceable>:<replaceable>port</replaceable>/.
<note><title>Note:</title>
<para>The port number of your development server can also be
found in the configuration file for your servlet container. This is
located in
<filename>/var/ccm-devel/web/<replaceable>username</replaceable>/<replaceable>projectname</replaceable>/conf.</filename>
</para>
</note>
<note>
<title>Troubleshooting</title>
<para>
If you make a mistake running this command, you can undo the
effects by removing the web and dev directories it created. You
will need to <command>rm -rf </command> the following directories:
<itemizedlist> <listitem>
<para>
<filename>/var/ccm-devel/dev/<replaceable><optional>username</optional></replaceable>
/<replaceable>projectname</replaceable>
</filename>
</para>
</listitem>
<listitem>
<para><filename>/var/ccm-devel/web/<replaceable>username</replaceable>/<replaceable>projectname</replaceable></filename></para>
</listitem>
</itemizedlist>
</para>
</note>
</para>
<para>
The <command>ccm-devel-create.pl</command> command creates two
directories for your use. The <emphasis>project web</emphasis> directory and
the <emphasis>project dev</emphasis> directory. From this point on, the project dev directory will be refered to as the <emphasis>dev directory</emphasis>.
It is important that you do
not confuse the two directories,the web directory is for your web
server and should not be modified directly. The
<emphasis>project</emphasis> on the other hand is your dedicated working
area. Since your project will be based on APLAWS also important to
note the function of the <emphasis>shared source</emphasis> directory
where the APLAWS code lives.
</para>
<sect2 id="s2-project-directory">
<title>Dev Directory</title>
<para>The dev directory is located at
<filename>/var/ccm-devel/dev/<replaceable>username</replaceable>/<replaceable>projectname</replaceable></filename>. This
is the directory that will contain all your custom code. When you use
ant to deploy your code, the Java, jsp, and XSL in this directory will
be compiled and placed in the appropriate locations in the web
directory. The contents of this directory is discussed in more detail in the <xref linkend="s1-project-directory"/> section.</para>
</sect2>
<sect2 id="s2-web-directory">
<title>Web Directory</title>
<para> The web directory is located at
<filename>/var/ccm-devel/web/<replaceable>username</replaceable>/<replaceable>projectname</replaceable></filename>. This
area is dedicated to your application server. All content in this
directory except for the <filename>conf</filename> subdirectory,
should be reproducible from the contents of the dev directory and the
shared source directories. You should <emphasis>never</emphasis> make
changes directly in this directory. </para>
</sect2>
<sect2 id="s2-shared-source-directory">
<title>Shared Source Directory</title>
<para>
The shared source directory is at
<filename>/usr/share/ccm-devel/projects/<replaceable>aplaws-xxx</replaceable></filename>. This
is where the APLAWS code base lives, the files here should not be
modified, and only used as a reference. The code in this directory and
the code in the <emphasis>project</emphasis> directory is complied and
placed in the <emphasis>web directory</emphasis> for use by the web server.
</para> </sect2>
<sect2 id="s2-create-project-cvs">
<title>CVS</title>
<para>If you installed the <command>ccm-devel-cvs</command> package,
the system will automatically perform some CVS tasks for you.
Namely:</para>
<itemizedlist>
<listitem>
<para>Create a new CVS module</para>
</listitem>
<listitem>
<para>Check out an existing CVS module</para>
</listitem>
</itemizedlist>
<para>When you create a new project the system will check to see if
there is already a CVS module by the same name. For example, of you
created a project called <command>aplaws_camden</command>, it will
look for a CVS module called
<command>aplaws_camden</command>.</para>
<para>Depending on whether or not the CVS module already exists, it
will create or use it as appropriate.</para>
<note>
<title>Note</title>
<para>This is the only way in which CVS is directly used by the
build tools. If have a good understanding of CVS and
have more complicated requirements, it is quite safe to change
the default setup after it has been created.</para>
</note>
<para>
For further reference on CVS please refer to the <ulink
url="http://www.cvshome.org">CVS manual</ulink>.
</para>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,925 @@
<chapter id="ch-development-environment">
<title>The Development Environment</title>
<sect1 id="s1-starting-development">
<title>Starting development</title>
<para>Once you have your project setup, you should use the
commands from the &CCM; build tools to set up your environment variables
and begin development. You should always login as
your development user or <command>su -
<replaceable>developmentuser</replaceable></command>,
<command>ccm-profile <replaceable>projectname</replaceable></command>,
and <command>cddev</command>. Please see <xref
linkend="s2-ccm-profile"> , and <xref linkend="s2-cddev">.
</para> </sect1>
<sect1 id="s1-quick-steps-development">
<title>Quick Development Guide for the impatient</title>
<para> Here is a outline of the steps for starting development the
first time. Each step has a reference link to the detailed
documentation in the later section. While this will get you started,
not all the commands are referenced from this section, you should read
through the whole document to familiarize yourself with the command
set and take full advantage of the build environment.
<orderedlist>
<listitem>
<para>Log in as the development user</para>
</listitem>
</orderedlist>
<orderedlist>
<listitem>
<para>Set up your shell environment variables with the command
<command>ccm-profile <optional>project_name</optional></command>
(<xref linkend="s2-ccm-profile"/>).
</para>
</listitem>
</orderedlist>
<orderedlist>
<listitem>
<para><command>cddev</command> to get to the dev directory
(<xref linkend="s2-cddev"/>).</para>
</listitem>
</orderedlist>
<orderedlist>
<listitem>
<para>Edit <filename>ant.properties</filename> and
<filename>project.xml</filename> (<xref linkend="s2-ant-dot-properties"/>
<xref linkend="s1-project-xml">.</para>
</listitem>
</orderedlist>
<orderedlist>
<listitem>
<para>Generate <filename>config.vars</filename> with the command
<command>ant make-config</command>
(<xref linkend="s1-config-dot-vars"/>,
</para>
</listitem>
</orderedlist>
<orderedlist>
<listitem>
<para>Create server readable configuration file
<filename>enterprise.init</filename> with the command <command>ant
make-init</command> (<xref linkend="s2-ant-make-init"/>).
</para>
</listitem>
<listitem>
<para>
Deploy the code with <command>ant deploy</command> (<xref
linkend="s2-ant-deploy"/>).
</para>
</listitem>
<listitem>
<para>
Load the datamodel by going into the web directory and running
the apropreate create script (<xref linkend="s1-dev-database"/>).
</para>
</listitem>
<listitem>
<para>
Start the server with <command>ccm-start</command>, follow the progress with <command>tailllogs</command>
(<xref linkend="s2-ccm-start"/>, <xref linkend="s2-taillogs"/>).
</para>
</listitem>
</orderedlist>
</para>
</sect1>
<sect1 id="s1-useful-commands">
<title>Useful Commands</title>
<sect2 id="s2-ccm-profile">
<title>ccm-profile</title>
<screen><command>ccm-profile <optional>project_name</optional></command></screen>
<para>This command sets up the environment
variables in your shell. It also makes all
other commands available, and customizes them to work with
a particular project.</para>
<note>
<title>Note</title>
<para>Because <command>ccm-profile</command> creates all
the other build tool commands, it must be run first.
Failing to run <command>ccm-profile</command> will most
likely result in the error <computeroutput>command not
found</computeroutput> when trying to execute any other
build tool command.</para>
</note>
</sect2>
<sect2 id="s2-cddev">
<title>cddev</title>
<para>Change directory to the current project's development
directory. See the section on <xref linkend="s1-project-directory"> for an explanation of its contents.</para>
</sect2>
<sect2 id="s2-cdweb">
<title>cdweb</title>
<para>Change directory to the current project's web
directory. This contains the logs, configuration files and
the deployed web application. Changes are not normally made
directly in this directory or any of its sub-directories.
Rather changes are made automatically by the build
tools.</para>
<warning>
<title>Warning</title>
<para>Making changes directly in the web directory can
cause unpredictable results.</para>
</warning>
</sect2>
<sect2 id="s2-taillogs">
<title>taillogs</title>
<para>The APLAWS server will generate a variety of logs
while it is running. The location of the log files are determined by
the configuration parameter in <filename>config.vars</filename> called
<command>log-dir</command>. Usually this is set to a subdirectory
called <filename>logs</filename> in the dev directory (
<xref linkend="s2-web-directory">). The <command>taillogs</command>
displays new entries in all log files immediately as they are added. To quit, type
<keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>. The log files displayed are located at <filename>/var/ccm-devel/web/<replaceable>username</replaceable>/<replaceable>projectname</replaceable>/logs/</filename>.
</para>
<note>
<title>Note</title>
<para>When they grow above a certain size (by default
1MB), log files are rolled, which means the log file is
renamed and a new one is created for new entries. If
this happens to a file while you are viewing it, you
will stop seeing updates. If you suspect this has
happened, stop <command>taillogs</command> and restart
it.</para>
</note>
</sect2>
<sect2 id="s2-tailccm">
<title>tailccm</title>
<para>The same as <command>taillogs</command>, except just
for <filename>/var/ccm-devel/web/<replaceable>username</replaceable>/<replaceable>projectname</replaceable>/logs/ccm.log</filename>.</para>
</sect2>
<sect2 id="s2-ccm-start">
<title>ccm-start</title>
<para>Start your instance running. After running this
command you should run <command>tailccm</command> or
<command>taillogs</command> which will show you when the
initialization process has completed.</para>
<para>It is also possible to pass arguments to
<command>ccm-start</command>, which will be passed directly
to the servlet container. For example:</para>
<screen>
<command>ccm-start</command> <option>-Djava.compiler=none</option>
</screen>
<para>This particular example will start the instance with
the JIT compiler switched off.</para>
</sect2>
<sect2 id="s2-ccm-stop">
<title>ccm-stop</title>
<para>Stop the instance.</para>
<warning>
<title>Warning</title>
<para>The <command>ccm-stop</command> command only
signals the servlet container to stop. Depending on
what the instance is doing, it can take a short while
for all processes to actually shut down. You should
take care that all java processes have stopped before
trying to start a new instance, as this can cause
unpredictable results.</para>
</warning>
</sect2>
<sect2 id="s2-ccm-configure.sh">
<title>ccm-configure.sh</title>
<para> If you want to work off of a different
version of APLAWS or want to add a new application you will need to
change your <filename>project.xml</filename>(<xref linkend="s2-project-dot-xml">). You will need to
reconfigure the project area by running
<command>ccm-configure.sh</command>. This command creates or updates
the
<filename>build.xml</filename> file in the
<emphasis>project</emphasis> directory from the information
contained in <filename>project.xml</filename>. It should be
executed every time a change is made to
<filename>project.xml</filename>. </para>
<para>Unlike other commands, you must be in the same
directory as <filename>project.xml</filename> when executing
<command>ccm-configure.sh</command>.</para>
</sect2>
</sect1>
<sect1 id="s1-project-directory">
<title>The Dev Directory</title>
<para>The dev directory is the top level development directory, it is located in <filename>/var/ccm-devel/dev/<replaceable>username</replaceable>/<replaceable>projectname</replaceable></filename>. It
contains information for the build process and all the source code in
subdirectories. The dev directory contains a variety of configuration files for customizing ant, the servlet container, and APLAWS for your project. </para>
<sect2 id="s2-directory-structure">
<title>The Dev Directory Structure</title>
<screen>
/var/ccm-devel/dev/<replaceable>username</replaceable>/<replaceable>projectname</replaceable>
|
|
+--+ project.xml
|
|
+--+ ant.properties
|
|
+--+ config.vars
|
|
+--+ enterprise.init
|
|
+--+ <replaceable>application directory</replaceable>
</screen>
</sect2>
<sect2 id="s2-project-dot-xml">
<title>project.xml</title>
<para>Contains a description of the project and its
components. This file is used to generate build.xml, and
to contains all the metadata required for creating a
project package. It is described fully in the
<xref linkend="s1-project-xml">.</para>
</sect2>
<sect2 id="s2-ant-dot-properties">
<title>ant.properties</title>
<para>This contains information required by
<application>ant</application>, which is used for building
&CCM; projects. The only option which may require alteration
in this file is <command>ccm.servlet.engine</command>. For
APLAWS projects, this should be set to
<option>resin</option>.</para>
</sect2>
<sect2 id="s2-build-dot-xml">
<title>build.xml</title>
<para>This file is used directly by
<application>ant</application>, and should never be edited
directly. It is created automatically by the
<command>ccm-configure.sh</command> command from the
information contained in
<filename>project.xml</filename>.</para>
</sect2>
<sect2 id="s2-config-dot-vars">
<title><filename>config.vars</filename></title>
<para>
This file stores the configuration parameters for your
development server. You will need to generate and edit this file to
before you can get your server running. It is explained in more detail in the <xref linkend="s1-config-dot-vars">.
</para>
</sect2>
<sect2 id="s2-enterprise-dot-init">
<title><filename>enterprise.init</filename></title>
<para>This file is generated from <filename>config.vars</filename> and <filename>enterprise.init.in</filename> files in the application directories. This is the file that the server reads at startup. It is explained in more detail in the <xref linkend="s1-config-dot-vars">.
</para>
</sect2>
</sect1>
<sect1 id="s1-project-xml">
<title>The <filename>project.xml</filename> file</title>
<para>This file describes the project and its components for the
development and package building tools.</para>
<para>Below is a sample <filename>project.xml</filename>
file.</para>
<screen>
<computeroutput>
&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
&lt;ccm:project name="aplaws_<userinput>borough</userinput>"
prettyName="APLAWS - <userinput>Borough</userinput>"
type="project"
<userinput>versionFrom="aplaws_<userinput>borough</userinput>"</userinput>
extends="aplaws"
extendsVersion="1.2.15"
<userinput>version="0.8.3"</userinput>
<userinput>release="1"</userinput>
xmlns:ccm="http://ccm.redhat.com/ccm-project"&gt;
&lt;!-- List all project specific applications here --&gt;
&lt;ccm:build&gt;
&lt;ccm:application name="aplaws_<userinput>borough</userinput>" prettyName="aplaws_<userinput>borough</userinput>" buildOrder="1"/&gt;
&lt;/ccm:build&gt;
&lt;!-- List all shared, pre-built applications here --&gt;
&lt;ccm:prebuilt&gt;
&lt;!--&lt;ccm:application name="cms" version="5.0.0" buildOrder="1"/&gt; --&gt;
&lt;/ccm:prebuilt&gt;
&lt;/ccm:project&gt;
</computeroutput>
</screen>
<para>The attributes of the <command>&lt;ccm:project&gt;</command>
tag define the highest level information about the project:</para>
<sect2 id="s2-px-name">
<title>name</title>
<para>The machine friendly name of the project. This is
the name of the package when you create one, the name of
a number of directories created when installing the
package, and the name of the System V service the
package creates.</para>
<para>You will not typically change the value of this
attribute once it has been set.</para>
</sect2>
<sect2 id="s2-px-prettyname">
<title>prettyName</title>
<para>This is a more descriptive name for the project
for use when making a package.</para>
</sect2>
<sect2 id="s2-px-type">
<title>type</title>
<para>This attribute should always have the value
<option>project</option> for APLAWS based
projects.</para>
</sect2>
<sect2 id="s2-px-version-from">
<title>versionFrom</title>
<para>This is the name of an application subdirectory
which contains a file called
<filename>application.xml</filename>. If the
<command>versionFrom</command> attribute is used, the
version number for the package is taken from that file,
instead of <filename>project.xml</filename>. The format
of this file is explained in the
<xref linkend="s2-application-dot-xml">.</para>
<para>For APLAWS this will typically be your "-custom"
directory containing custom styling.</para>
</sect2>
<sect2 id="s2-px-version">
<title>version</title>
<para>This is the version number of the project. The
version number is used when an RPM is built from the development
environment. If the <emphasis>versionFrom</emphasis> attribute exists
it will be ignored and the version numbers in the
<filename>application.xml</filename> will be
used. Please see <xref linkend="s2-ax-version">.</para>
</sect2>
<sect2 id="s2-px-release">
<title>release</title>
<para>This is the release number of the project. The
version number is used when an RPM is built from the development
environment. If the <emphasis>versionFrom</emphasis> attribute exists
it will be ignored and the release number in the
<filename>application.xml</filename> will be used. Please see <xref linkend="s2-ax-release"> </para>
</sect2>
<sect2 id="s2-px-extends">
<title>extends</title>
<para>This is the name of the project you are
extending. In order for this to work, you will have to
have installed the development package for that project.
For example, for aplaws you will have installed a
package called
<filename>aplaws-devel-1.2.<replaceable>xx</replaceable>-<replaceable>y</replaceable></filename>.
</para>
<para>You will not typically change the value of this
attribute once it has been set.</para>
</sect2>
<sect2 id="s2-px-extends-version">
<title>extendsVersion</title>
<para>This is the version of the <emphasis>project which
you are extending</emphasis>. For example, if you
installed <filename>aplaws-devel-1.2.15-3</filename>,
extendsVersion would be set to <option>1.2.15</option>.
Note that the release number ("-3") is omitted.</para>
<para>You will update this value every time you install
a new version of the aplaws-devel package.</para>
</sect2>
<sect2 id="s2-px-ccm-build">
<title>&lt;ccm:build&gt;</title>
<para>In addition to the above attributes, there are 2 sections
where the structure of the application is defined.</para>
<para>This section contains a list of applications which
will be compiled and included in this project. For every
application listed here, there must be an application
subdirectory with the same name in the project
directory.</para>
<para>The <command>buildOrder</command> attribute is
used to define which order the applications should be
built in. If an application uses components provided by
another application you will have to make sure they are
built in the correct order.</para>
<para>Another option not shown in the example above is
the <command>overwrite</command> attribute. If set to
<option>yes</option>, files in this application which
overlap with existing files will overwrite the existing
ones. This is primarily used for overriding XSL
stylesheets. Thus in an APLAWS project, the
application containing custom styling will typically use
this option.</para>
</sect2>
<sect2 id="s2-px-ccm-prebuilt">
<title>&lt;ccm:prebuilt&gt;</title>
<para>This section contains a list of pre-built
applications. These application do not need to be
compiled, but will be deployed and packaged as part of
this project.</para>
<para>In the same way as the <command>extends</command>
and <command>extendsVersion</command> attributes of
<command>&lt;ccm:project&gt;</command> refer to the
extended applications development package, the
<command>name</command> and <command>version</command>
attributes of <command>&lt;ccm:prebuilt&gt;</command>
refer to the development package of a prebuilt
application.</para>
<para>APLAWS projects do not normally use any prebuilt
applications. It is fine for this section to be
empty or, as in the example above, the contents to be
commented out.</para>
</sect2>
</sect1>
<sect1 id="s1-config-dot-vars">
<title>Server Configuration <filename>config.vars</filename> and <filename>enterprise.init</filename></title>
<para>The server initialization file for a &CCM; based project is
called <filename>enterprise.init</filename>. It is generated from a
number of fragments in its component applications usually stored in
<filename>
<replaceable>application</replaceable>/etc/enterprise.init.in
</filename> and from the parameter values set in
<filename>config.vars</filename>. <filename>config.vars</filename>
in turn, is created by pulling all
placeholder variables out of
<filename>enterprise.init.in</filename> fragments in a project's
component applications. <filename>config.vars</filename> and <filename>enterprise.init</filename> does not exist at the beginning of the project. Here are the steps you must take at the beginning of a project.
<orderedlist>
<listitem><para>Run <command> ant make-config </command> (<xref linkend="s2-ant-make-config">) - this will generate <filename>config.vars</filename>.
</para></listitem>
<listitem><para>Edit <filename>config.vars</filename> and set the parameters to suit your project.
</para></listitem>
<listitem><para> Run <command>ant make-init </command> - This will generate
<filename>enterprise.init</filename> from the values in
<filename>config.vars</filename> and the various
<filename>enterprise.init.in</filename> files (<xref
linkend="s2-ant-make-init"/>).
</para></listitem>
</orderedlist>
</para>
<note><title>Note:</title><para>You should always edit <filename>config.vars</filename> and
not <filename>enterprise.init</filename>. The changes you make to
<filename>config.vars</filename> is merged into
<filename>enterprise.init</filename> with the ant command <command>ant
make-init</command> (<xref
linkend="s2-ant-make-init"/>).</para>
</note>
<sect2 id="s2-sample-config-dot-vars">
<title>Sample <filename>config.vars</filename></title>
<para>
APLAWS is designed to be configurable, however you can leave
many of these parameters as they are to get a basic installation. At the bare minimum you will need to edit the following paramters.
<itemizedlist>
<listitem>
<para><command>db-pass</command>: Database password
</para>
</listitem>
<listitem>
<para>
<command>db-user</command>: Database user
</para>
</listitem>
<listitem>
<para>
<command>debug-mode</command>: Determines wheather whitespace is
stripped from the HTML output. This should be set to true for
development.
</para>
</listitem>
<listitem>
<para>
<command>jdbc-url</command>: The JDBC URL to the
database instance. For Oracle this value should match
the entry in
<filename>$ORACLE_HOME/network/admin/tnsnames.ora</filename>. For
Postgres the entry should be
<command>jdbc:postgresql://<userinput>servername</userinput>/<userinput>databasename</userinput>.
</command>
</para>
</listitem>
<listitem>
<para>
<command>log-dir</command>: This should point to
<filename>/var/ccm-devel/web/<replaceable>username</replaceable>/<replaceable>projectname</replaceable>/logs</filename>
for the <command>taillogs</command> to work.
</para>
</listitem>
<listitem>
<para>
<command>lucene-index-location</command>: On a
Postgres environment the search engine needs to be set to Lucene. The
index location should be a directory that the development user can
write to, the recommended directory is
<filename>/var/ccm-devel/web/<replaceable>username</replaceable>/<replaceable>projectname</replaceable>/lucene.dat</filename>
</para>
</listitem>
<listitem>
<para>
<command>search-lucene-enabled</command>: Set to false
for Oracle, true for a Postgres environment.
</para>
</listitem>
<listitem>
<para>
<command>search-intermedia-enabled</command>: Set to
true for Oracle, false for Postgres.
</para>
</listitem>
<listitem>
<para>
<command>state-dir</command>: The directory where
server state files will be written, this should be a directory that's
writable by the development user. The recommended directory is
<filename>/var/ccm-devel/web/<replaceable>username</replaceable>/<replaceable>projectname</replaceable>/run</filename>.
</para>
</listitem>
<listitem>
<para>
<command>xslt-engine</command>: Options are Xalan,
Saxon, and JD.XSLT. The recommended parser is JD.XSLT.
</para>
</listitem>
</itemizedlist>
can leave many of this values as they are. But you will need to change
the values of parameters such as db-pass, db-user, jdbc-url, log-dir,
state-dir. The # sign is a comment marker, below is
an annotated <filename>config.vars</filename>.
</para>
<para>
<screen>
<computeroutput>
# ACS initialization file
admin-answer = 6 # Answer for web admin user's password reminder question
admin-email = admin@example.com # email address of the web admin user
admin-forename = Administrator # Forename of the web admin user
admin-password = 123456 # web admin user's password
admin-question = 12345 # web admin user password reminder question
admin-surname = Account # web admin user's surname
autoRegistration = true # redirect to registration form for unknown email addresses
cache-expiry = 900
cache-peers = # peer servers for multi-tiered environment, leave blank for development
caching-active = yes
<userinput>db-pass = ccm_xyz # Database password</userinput>
db-pool = 10 # database connection pool size
<userinput>db-user = ccm # Database useranme</userinput>
<userinput>debug-mode = true # Turn HTML indentation on/off for development</userinput>
default-locale = en_GB
default-scheme = http
developer-support = false
dispatcher-context-path = # leading URL stub
dispatcher-servlet-path =
dmi-active = false
dmi-data-model-file = "/WEB-INF/sql/ccm-core/default/dmi/dmi-create.sql"
dmi-xml-files = { "core-dmi.xml", "/WEB-INF/sql/ccm-core" }
hostname = ccm.example.com # hostname of the server
<userinput>jdbc-url = jdbc:oracle:oci8:@(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ora8) (SRVR = DEDICATED))) #JDBC URL for the database server</userinput>
<userinput>log-dir = /var/ccm-devel/web/username/projectname/logs
# Log directory for the server, this value should point to the logs directory in your web directory</userinput>
log-level = warn
log-size = 1000000
login-stylesheet = login_en.xsl
<userinput>lucene-index-location = /var/ccm-devel/web/username/projectname/lucene
# If the database is Postgres the value should be changed to point to a directory in the web directory.
</userinput>
page-map = WEB-INF/resources/hereford-login-page-map.xml
permissionsDMLChecking = false
rememberLoginByDefault = true
<userinput>search-intermedia-enabled = true
# Change to false on a postgres environment
</userinput>
<userinput>search-lucene-enabled = false
# Change to true on a postgres environment
</userinput>
search-lucene-indexer-id = 0
server-name = localhost
server-port = 8080
<userinput>sitename = My APLAWS site
# name of your website</userinput>
smtp-host = localhost
<userinput>state-dir = /var/ccm-devel/web/username/projectname/state
# Value should point to a writable directory in the web directory
</userinput>
subsite-dispatcher-class = com.arsdigita.ui.login.SubsiteDispatcher
workflow-send-alerts = true
workflow-sender-email = workflow-alerts@example.com
# email notification sender for workflow alerts
workflow-sender-given-name = Workflow # Name of alert sender
workflow-sender-surname = Alerts # Surname of alert sender
<userinput>xslt-engine = JD.XSLT
# XSLT parser, options are Saxon, Xalan, JD.XSLT. JD.XSLT is recommended
</userinput>
<userinput>xslt-timeout = 60
# interval for XSLT, set to a smaller number for development
</userinput>
# CMS initialization file
cms-item-adapters = /WEB-INF/resources/hereford-item-adapters.xml
content-center-map = /WEB-INF/resources/content-center-map.xml
content-digest-sender = article-digest@herefordshire.gov.uk
content-section-name = content
default-folder-template = /default/folder.jsp
default-item-template = /default/item.jsp
default-root-category = true
forms-content-digest-sender = forms-digest@herefordshire.gov.uk
forms-section-name = forms
overdue-alert-interval = 24
overdue-duration = 96
overdue-max-alerts = 5
overdue-send-alerts = false
publish-to-fs-servers = "http://servlet1/", "http://servlet2/"
publish-to-fs-source = "http://servlet1/"
publish-to-fs-this-server = "http://servlet1/"
search-engine = intermedia
template-root = /packages/content-section/templates
# Portal initialization file
portal-url = /portal/
# Forum initialization file, the third item in the forum list of lists is weather the forum is moderated or not
adminCanEditPosts = true
authorCanEditPosts = true
digestUserEmail = digests
forums = {{"forum1", "Forum #1", false, "nasakai@redhat.com", "Forum #1 Moderation" }, {"forum2", "Forum #2", false, "nasakai@redhat.com", "Forum #2 Moderation"}}
replyHostName = devnull.redhat.com
#
search-spider-delay = 60
search-spider-frequency = 0
search-spider-urls = "http://www.redhat.com/", "http://www.example.org/"
# Navigation initialization file
default-content-section-url = "/content/"
related-items-purpose = "DUBLINCORE"
# Noticeboard initialization file
adminCanEditNotices = true
authorCanEditNotices = true
noticeboards = {{"noticeboard", "Noticeboard"}}
#
chat-control-host = localhost
chat-control-port = 8200
chat-public-host = localhost
chat-public-port = 8200
chat-start-server = false
# System Properties
project-name = hereford
</computeroutput>
</screen>
</para>
</sect2>
</sect1>
<sect1 id="s1-deploying-with-ant">
<title>Deploying with Ant</title>
<para>Compilation and deployment of &CCM; and &CCM; based projects is
done using <application>ant</application>. The options you can
give to the <command>ant</command> command are called
<emphasis>targets</emphasis>, and they are defined in the
<filename>build.xml</filename> file. There are two types of ant
targets that you will be using. The first set is the configuration
targets such as <command>ant
make-config</command>, <command>ant
update-config</command>, and <command>ant
make-init</command>. The second set are the
<emphasis>deploy</emphasis> targets : The &CCM; build
tools configures ant to compile or copy the files from the
and the
shared source directory
into the web
directory. The most commonly used deploy targets are the following: <command>ant
deploy-config</command>, <command>ant deploy</command>, and
<command>ant
deploy-<replaceable>application</replaceable></command>.For a complete list for your project, type
<command>ant</command> on its own. Please see <xref linkend="s2-ant-make-config">,<xref
linkend="s2-ant-update-config"/>, <xref
linkend="s2-ant-make-init"/>, <xref linkend="s2-project-directory"/>, <xref linkend="s2-shared-source-directory"/>, <xref linkend="s2-web-directory">, <xref
linkend="s2-ant-deploy-config"/>, <xref
linkend="s2-ant-deploy"/>, <xref linkend="s2-ant-make-init"></para>
<note>
<title>Note</title>
<para>Ant's configuration file is <filename>build.xml</filename>.
This file is automatically generated by
<command>ccm-configure.sh</command> from
<filename>project.xml</filename>. Immediately after creating a
project or making any change to <filename>project.xml</filename>,
you must re-run <command>ccm-configure.sh</command> otherwise ant
will not work as desired.</para>
</note>
<caution>
<para> While you should not need to edit build.xml yourself, if you
would like to find out more, you can refer to the documentation at
the <ulink url="http://ant.apache.org/">ant homepage</ulink>.</para>
</caution>
<note><title>Running ant:</title>
<para> All ant commands must be run from the top level project
directory (the directory that contains
<filename>build.xml</filename>. This should be the directory that you
are in after you execute <command>cddev</command> (<xref
linkend="s2-cddev"/>).</para>
</note>
<sect2 id="s2-ant-make-config">
<title><filename>ant make-config</filename></title>
<para>Generates the configuration file <filename>config.vars</filename> by pulling all
placeholder variables out of
<filename>enterprise.init.in</filename> fragments in a project's
component applications.
</para>
<caution>
<title>Caution</title>
<para>Only run <command>ant</command>
<option>make-config</option>
<emphasis>once</emphasis> as subsequent executions will overwrite any
customizations you have made to your <filename>config.vars</filename>
.
After the initial creation, keep it up-to-date with <command>ant update-config</command> (<xref linkend="s2-ant-update-config">).</para>
</caution>
</sect2>
<sect2 id="s2-ant-update-config">
<title>
<command>ant update-config</command>
</title>
<para>
Examines the <filename>enterprise.init.in</filename> files and adds any new/changed parameters to <filename>config.vars</filename>. This command will preserve the parameter values that you have set.
</para>
</sect2>
<sect2 id="s2-ant-make-init">
<title>ant make-init</title>
<para>This command will generate <filename>enterprise.init</filename> by
concatenated all <filename>enterprise.init.in</filename>
fragments in component applications and substituting values in
<filename>config.vars</filename>.</para>
<note><title>Note:</title>
<para>This only creates <filename>enterprise.init</filename> in
the development directory. For it to be used it must be
deployed. This is one of the tasks performed by the
<command>deploy</command> target, or to deploy it on its own you
can use <command>ant deploy-config</command>
(<xref linkend="s2-ant-deploy-config">) </para>
</note></sect2>
<sect2 id="s2-ant-deploy-config">
<title>
<command>ant deploy-config</command>
</title>
<para> This deploys only configuration information. This includes
<filename>enterprise.init</filename> and
<filename>web.xml</filename>. Use this target if you have made changes
to either of these files, for example by using the
<option>make-init</option> target. This command copies
<filename>enterprise.init</filename> from the dev directory to the
web directory. The file is located at
<filename>/var/ccm-devel/web/<replaceable>username</replaceable>/<replaceable>projectname</replaceable>/webapps/ccm/WEB-INF/resources/enterprise.init</filename>.</para>
</sect2>
<sect2 id="s2-ant-deploy">
<title><command>ant deploy</command></title>
<para>This deploys the entire project including all
applications, the parent project if any and all
configuration information.</para>
</sect2>
<sect2 id="s3-deploy-application">
<title><command>deploy-<replaceable>application</replaceable></command></title>
<para>When you have only made changes to a single
application and don't need to redeploy the whole
project, use this target to deploy just a single
application.</para>
<para>For example, <command>ant</command>
<option>deploy-aplaws-custom</option> will deploy only
the <filename>aplaws-custom</filename>
application.</para>
</sect2>
<sect2 id="s2-ant-clean">
<title><command>ant clean</command></title>
<para>This removes all deployed files and directories,
and all compiled classes from build
directories. In other words this commands removes files in
<filename>webapps/ccm</filename> in the development web directory (<xref
linkend="s2-web-directory"/>). Use
this when you need to be sure that your project is
rebuilt cleanly, for example after changing
<filename>project.xml</filename> or before building a
package for deployment on a live server.</para>
</sect2>
</sect1>
<sect1 id="s1-dev-database">
<title>Setting Up the Database</title>
<para> You will need to have a database instance that you can
use for development. These steps should be conducted by your DBA, the
following is the instructions for Postgres and Oracle environments. If
you need instructions on setting up your database server please see
<xref linkend="s3-pg-createdatabase"/>.
</para>
<sect2 id="s2-pg-load-datamodel">
<title>Loading the Datamodel for Postgres</title>
<para>
<command>cdweb</command> to change to the web directory and
change into <filename>webapps/ccm/WEB-INF/sql</filename>. You will
find a file called <command>postgres-create.sh</command>.
Run this command with your database parameters to load the
datamodel.
<screen>
<computeroutput>
$ sh postgres-create.sh <userinput>dbname</userinput> <userinput>dbusername</userinput> <userinput>db server hostname</userinput>
</computeroutput>
</screen>
</para>
</sect2>
<sect2 id="s2-ora-load-datamodel">
<title>Loading the Datamodel for Oracle</title>
<para>
<command>cdweb</command> to change to the web directory and
change into <filename>webapps/ccm/WEB-INF/sql</filename>. You will
find a file called <command>oracle-create.sh</command>, the
argument for this script should be the database connection
string you use to connect to the database via
<command>sqlplus</command>. For example, if you connect to your Oracle
instance with the following command:
<screen>
<computeroutput>
sqlplus <userinput>my_aplaws/my_aplaws@myoracleserver</userinput>
</computeroutput>
</screen>
Then you should run <command>oracle-create.sh</command> like this:
<screen>
<computeroutput>
$ sh oracle-create.sh <userinput>my_aplaws/my_aplaws@myoracleserver</userinput>
</computeroutput>
</screen>
</para>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,832 @@
<chapter id="ch-installing-aplaws">
<title>Installing APLAWS</title>
<para>APLAWS is normally installed on a four server
high-availability configuration. The web server will contain
Apache and Squid reverse proxy server, and serve as the front
end. Two or more application servers will run the actual APLAWS
codebase, normally using Resin. The database server will have
either a Postgres or an Oracle database installed. The details of
each server configuration is detailed below, however this guide
will not cover OS installation or Oracle database
installation.</para>
<note>
<title>Caution</title>
<para>
There are many steps involved in conducting a full production
installation of APLAWS. While we try to cover everything in as much
detail as possible it is recommended that you have a RedHat engineer
either conduct the installtion or check the installation after
completion.
</para>
</note>
<sect1 id="s1-quick-install-guide">
<title>Quick Guide for the Impatient</title>
<para>Here is what you have to do to conduct a full production
installation of APLAWS. As you can see there are many steps
involved, and many things can go wrong during the
process.</para>
<para>
<orderedlist>
<listitem>
<para>Configure the database server.
<itemizedlist>
<listitem>
<para>Install the database</para>
</listitem>
<listitem>
<para>Create the user and the
tablespace/database</para>
</listitem>
</itemizedlist></para>
</listitem>
<listitem>
<para>Set up the application server
<itemizedlist>
<listitem>
<para>Ensure that you can connect to the database via
psql or sqlplus.</para>
</listitem>
<listitem>
<para>InstallIBMJava2-JRE and IBM-JAVA2-JDK.</para>
</listitem>
<listitem>
<para>Install resin-xxx.rpm</para>
</listitem>
<listitem>
<para>Install aplaws-xxx.noarch.rpm and
aplaws-servlet-resin-xxx.rpm no the application
server.</para>
</listitem>
<listitem>
<para>Configure the APLAWS instance and ensure that
it is serving pages.</para>
</listitem>
</itemizedlist></para>
</listitem>
<listitem>
<para>Configure the web server
<itemizedlist>
<listitem>
<para>Configure Apache virtual hosts so that it is
connecting to the Resin instances via s-run.</para>
</listitem>
<listitem>
<para>Configure Squid to serv as a reverse
proxy.</para>
</listitem>
</itemizedlist></para>
</listitem>
</orderedlist>
</para>
</sect1>
<sect1 id="s1-database-server">
<title>Setting up the database server</title>
<para>APLAWS will run on PostgreSQL or Oracle database
servers.</para>
<sect2 id="s2-postgres-setup">
<title>Installing PostgreSQL server</title>
<para>You will need to install the following RPMS
<itemizedlist>
<listitem>
<para>rh-postgresql-7.3.4-8</para>
</listitem>
<listitem>
<para>rh-postgresql-jdbc-7.3.4-8</para>
</listitem>
<listitem>
<para>rh-postgresql-libs-7.3.4-8</para>
</listitem>
<listitem>
<para>rh-postgresql-server-7.3.4-8</para>
</listitem>
</itemizedlist></para>
</sect2>
<sect2 id="s2-pg-tcp-connection">
<title>Enabling TCP Connection</title>
<para>After installing a PostgreSQL database server you will
need to edit the configuration to enable TCP connections from
the application servers.</para>
<sect3 id="s3-postgres_conf">
<title>
<filename>postgres.conf</filename>
</title>
<para>Edit
<filename>/var/lib/pgpsql/data/postgres.conf</filename>to
set tcpip_socket to true.
<screen>
<computeroutput>
# tcpip_socket = false
tcpip_socket = true
</computeroutput>
</screen></para>
</sect3>
<sect3 id="s3-pg_hba_conf">
<title>
<filename>pg_hba.conf</filename>
</title>
<para>Add parameters to the end of
<filename>/var/lib/pgpsql/data/pg_hba.conf</filename>to
allow connections from the application server. The second
line is an example configuration for an app server with the
IP 172.16.68.0 and a netmask 255.255.255.0. You can set the
policy to be md5 or trust. For more information please
consult the
<ulink url="http://postgresql.org">Postgres Manual</ulink>.
<screen>
<computeroutput>
# Put your actual configuration here
# ----------------------------------
#
# CAUTION: The default configuration allows any local user to connect
# using any PostgreSQL user name, including the superuser, over either
# Unix-domain sockets or TCP/IP. If you are on a multiple-user
# machine, the default configuration is probably too liberal for you.
# Change it to use something other than "trust" authentication.
#
# If you want to allow non-local connections, you need to add more
# "host" records. Also, remember TCP/IP connections are only enabled
# if you enable "tcpip_socket" in postgresql.conf.
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
#local all all trust
#host all all 127.0.0.1 255.255.255.255 trust
# Using sockets credentials for improved security. Not available everywhere,
# but works on Linux, *BSD (and probably some others)
local all all ident sameuser
host all all 172.16.68.0 255.255.255.0 md5
host all all 127.0.0.1 255.255.255.255 md5
</computeroutput>
</screen>
</para>
</sect3>
<sect3 id="s3-pg-start-database">
<title>Database Startup</title>
<para>Once the configuration is complete you will need to
start the database as the root user.</para>
<screen><computeroutput># service rhdb start</computeroutput></screen>
</sect3>
<sect3 id="s3-pg-createdatabase">
<title>Create User and Database</title>
<para>As the postgres user, you will need to enable plpgsql
for your databse. Then you will need to create an Unicode
database and a user for your APLAWS installation.</para>
<screen><computeroutput>
# su - postgres
$ createlang plpgsql template1
$ createuser aplaws
$ createdb -E unicode aplaws
</computeroutput></screen>
<para>At this point you should test your installation by
logging into the database.</para>
</sect3>
<sect3 id="s3-pg-client">
<title>Client Installation</title>
<para>You will need to install the following RPMS on the
application server.
<itemizedlist>
<listitem>
<para>rh-postgresql-7.3.4-8</para>
</listitem>
<listitem>
<para>rh-postgresql-jdbc-7.3.4-8</para>
</listitem>
<listitem>
<para>rh-postgresql-libs-7.3.4-8</para>
</listitem>
</itemizedlist></para>
<para>Test that you can connect to the database server.
<screen><computeroutput>
$ psql -h <userinput>database server</userinput>-U aplaws aplaws
</computeroutput></screen></para>
</sect3>
</sect2>
</sect1>
<sect1 id="s1-application-server-setup">
<title>Setting up the application server</title>
<sect2 id="s2-app-software">
<title>Required Software</title>
<para>You will need to install the following RPMS on the
application server.
<itemizedlist>
<listitem>
<para>IBMJava2-SDK</para>
</listitem>
<listitem>
<para>IBMJava2-JRE</para>
</listitem>
<listitem>
<para>resin (not versions 2.0 or 2.3)</para>
</listitem>
<listitem>
<para>aplaws-xxx.noarch.rpm</para>
</listitem>
<listitem>
<para>aplaws-servlet-resin-xxx.noarch.rpm</para>
</listitem>
</itemizedlist></para>
<para>For IBMJava and resin you do not need to do anything
beyond simple
<command>rpm -Uvh</command>.</para>
</sect2>
<sect2 id="s2-app-install-rpm-project">
<title>Installing the RPMs</title>
<para>You will need to install the two RPMs
<filename>
<replaceable>
projectname</replaceable>-x.x.x-x.noarch.rpm</filename>, and
<filename>
<replaceable>
projectname</replaceable>-servlet-resin-x.x.x-x.noarch.rpm</filename>together
as the two are interdependent.
<filename>
<replaceable>
projectname</replaceable>-x.x.x-x.noarch.rpm</filename>will
install your code in
<filename>/var/www/
<replaceable>projectname</replaceable></filename>where it
will be used by your application server. This RPM also
installs the init file
<filename>/etc/init.d/
<replaceable>projectname</replaceable></filename>, the
configuration script
<filename>/usr/sbin/
<replaceable>
projectname</replaceable>-configure.pl</filename>, and the
log directory
<filename>/var/log/
<replaceable>projectname</replaceable>.</filename></para>
</sect2>
<sect2 id="s2-web-install-rpm-servlet">
<title>Installing the Project RPMs</title>
<para>The servlet RPM will install configuration files and
wrapper scripts for controlling the servlet container.
Specifically it will install the following files:
<itemizedlist>
<listitem>
<para>
<filename>/usr/share/
<replaceable>
projectname</replaceable>/bin/resin/run-apache.sh.in</filename>
</para>
</listitem>
<listitem>
<para>
<filename>/usr/share/
<replaceable>
projectname</replaceable>/bin/resin/run-resin.sh.in</filename>
</para>
</listitem>
<listitem>
<para>
<filename>/usr/share/
<replaceable>
projectname</replaceable>/bin/resin/run.sh.in</filename>
</para>
</listitem>
<listitem>
<para>
<filename>/usr/share/
<replaceable>
projectname</replaceable>/conf/resin</filename>
</para>
</listitem>
<listitem>
<para>
<filename>/usr/share/<replaceable>projectname</replaceable>/conf/resin/httpd-resin-vhost.conf.in</filename>
</para>
</listitem>
<listitem>
<para>
<filename>/usr/share/
<replaceable>
projectname</replaceable>/conf/resin/resin-back.conf.in</filename>
</para>
</listitem>
<listitem>
<para>
<filename>/usr/share/
<replaceable>
projectname</replaceable>/conf/resin/resin-front.conf.in</filename>
</para>
</listitem>
</itemizedlist></para>
<para>These files are templates for your installation. When
you run the command
<command>/usr/sbin/
<replaceable>
projectname</replaceable>-configure.pl</command>copies of
these files will be placed in
<filename>/var/www/
<replaceable>projectname</replaceable>/conf</filename>and
<filename>/var/www/
<replaceable>projectname</replaceable>/bin</filename>. They
will also be edited to reflect the parameters you set in
<filename>/etc/
<replaceable>projectname</replaceable>.cfg</filename></para>
</sect2>
<sect2 id="s2-app-project-dot-cfg">
<title>The
<filename>
<replaceable>projectname</replaceable>.cfg</filename></title>
<para>Once the RPMs are installed you will need to edit the
configuration file for your server. The template for the
config file is
<filename>/etc/
<replaceable>projectname</replaceable>.cfg-resin</filename>.
Copy this file to
<filename>/etc/
<replaceable>projectname</replaceable>.cfg</filename>and edit
the parameters much like how you edited
<filename>config.vars</filename>. Some of the parameters are
not in
<filename>config.vars</filename>and you will need to change
the values depending on how your Resin and HTTP servers are
set up. Below is an example of a configuration file for a
production installation with two Resin application servers
and one Apache front end. The values you need to change in
addition to what what you find in
<filename>config.vars</filename>is emphasised with additional
comments. The Resin servers are called resin1.example.com and
resin2.example.com and the Apache server is called
apache.example.com.</para>
<note>
<title>
<command>hostname</command>
</title>
<para>The hostnames for the servers need to be exactly as
they appear when you run the
<command>hostname</command>command. If you want to change
the default behavior of
<command>hostname</command>to return the short name or the
fully qualified domain name here is what you can do:</para>
<para>Edit
<filename>/etc/sysconfig/network</filename>and change
HOSTNAME to be the fully qualified domain name. You can
also use the gui tools
<command>netconfig</command>and
<command>redhat-config-network</command>to do this. These
changes will only take effect after the machine has been
restarted. To change it at runtime pass an argument to
<command>hostname</command>as root.
<screen>$ hostname resin1.example.com</screen>You can test
this by running
<command>hostname</command>with no arguments.</para>
</note>
<screen><computeroutput>
##########################################
# APLAWS Master configuration file #
#########################################
servlet-container = resin
## This is set to servlet23 by default but should be resin
<userinput>servlet-webxml = resin</userinput>
# NB: all hostnames used should be
# the fully qualified name as returned
# by the 'hostname' command with no arguments.
####################################
# UNIX system level configuration
# Installation directory for resin
## This should be the directory of your Resin installation
<userinput>resin-home = /opt/resin/2.1.8</userinput>
# Installation directory for this app
app-home = /var/www/aplaws
# Directory containing the base runtime &amp; config files
runtime-home = /usr/share/aplaws
# UNIX accounts to run as
user = servlet
group = servlet
# Whereever you installed JDK 1.3.1
# java-home = /usr/j2se
# java-home = /usr/java/jdk1.3.1
## The java-home should point to $JAVA_HOME
<userinput>java-home = /opt/IBMJava2-131</userinput>
# Userinputly tell java to use more memory
#
# For Sun's JDK, on a machine with 1GB
#jre-args = -J-client -J-Xss128k -J-Xms512m -J-Xmx512m -J-XX:NewSize=128m -J-XX:MaxNewSize=128m
#
# For IBM's JDK on a machine with 256MB
#jre-args = -J-Xms128m -J-Xmx128m
<userinput>jre-args = -J-Xms1536m -J-Xmx1536m</userinput>
# The hostname of the front end apache box
<userinput>apache = apache.example.com</userinput>
# The hostnames of the back end resin boxes
<userinput>resin = resin1.example.com</userinput>
<userinput>resin = resin2.example.com</userinput>
# The SRUN ports for apache to talk to the resin
# boxes. The 'hostname:port' pair designates which
# srun port each resin instance listens on.
# If there is a firewall, between the resin and
# apache boxes, a second 'hostname:port' pair
# specifies the host and port of the firewall
#
# eg1. no firewall
<userinput>srun = resin1.example.com:6802</userinput>
<userinput>srun = resin2.example.com:6802</userinput>
# eg2. with firewall
<userinput>#srun = resin1.example.com:6082, firewall:6802</userinput>
<userinput>#srun = resin2.example.com:6082, firewall:6803</userinput>
# Turn on http listening on either apache
# or resin boxes. Only need http port on
# the resin boxes for debugging purposes
<userinput>http = apache.example.com:80</userinput>
# Only for debugging
<userinput>http = resin1.example.com:8080</userinput>
<userinput>http = resin2.example.com:8080</userinput>
# ACS initialization file
admin-answer = 6
admin-email = admin@example.com
admin-forename = Administrator
admin-password = 123456
admin-question = 12345
admin-surname = Account
cache-expiry = 900
<userinput>cache-peers = "http://resin1.example.com:8080"</userinput>
caching-active = yes
db-pass = aplaws_xyz
db-pool = 150
db-user = aplaws
debug-mode = false
default-locale = en_US
default-scheme = http
developer-support = false
dispatcher-context-path =
dispatcher-servlet-path =
dmi-active = false
dmi-data-model-file = "/WEB-INF/sql/ccm-core/default/dmi/dmi-create.sql"
dmi-xml-files = { "core-dmi.xml", "/WEB-INF/sql/ccm-core" }
<userinput>host-name = apache.example.com</userinput>
<userinput>hostname = apache.example.com</userinput>
jdbc-url = jdbc:postgresql://postgres.example.com/aplaws
log-dir = /var/log/aplaws
log-level = warn
log-size = 1000000
login-stylesheet = login_en.xsl
lucene-index-location = /var/www/aplaws/lib/lucene-index
permissionsDMLChecking = false
search-intermedia-enabled = false
search-lucene-enabled = true
search-lucene-indexer-id = 2
<userinput>server-name = apache.example.com</userinput>
server-port = 80
sitename = APLAWS
smtp-host = localhost
state-dir = /var/www/aplaws/lib
subsite-dispatcher-class = com.arsdigita.ui.login.SubsiteDispatcher
xslt-engine = Saxon
xslt-timeout = 60000
# WCT CMS Initialization File
content-digest-sender = article-digest@example.com
forms-content-digest-sender = forms-digest@foo.com
inso_filter_works = 0
<userinput>publish-to-fs-servers = "http://resin1.example.com/", "http://resin2.example.com/"</userinput>
<userinput>publish-to-fs-source = "http://resin2.example.com/"</userinput>
<userinput>publish-to-fs-this-server = "http://resin2.example.com/"</userinput>
search-engine = lucene
# Version: $Id: installing-aplaws.sgml 287 2005-02-22 00:29:02Z sskracic $ $Date: 2004/01/23 $
adminCanEditPosts = true
authorCanEditPosts = true
digestUserEmail = digests
<userinput>replyHostName = apache.example.com</userinput>
# Navigation initialization file
default-content-section-url = "/content/"
# System Properties
project-name = aplaws
</computeroutput>
</screen>
</sect2>
<sect2 id="s2-app-aplaws-configure-dot-pl">
<title>
<command>/usr/sbin/ <replaceable>projectname</replaceable>-configure.pl</command>
</title>
<para>Once you have edited
<filename>/etc/
<replaceable>
projectname</replaceable>.cfg-resin</filename>you can run
<command>/usr/sbin/
<replaceable>
projectname</replaceable>-configure.pl</command>to generate
the config files and the run scripts for your server to use.
Make sure that you do not get errors after you run this
command.
<command>/usr/sbin/
<replaceable>
projectname</replaceable>-configure.pl</command>copies files
from
<filename>/usr/share/
<replaceable>
projectname</replaceable>/bin/resin/</filename>and replaces
the parameter values with what you have set in the
configuration file and places them in
<filename>/var/www/
<replaceable>projectname</replaceable>/conf</filename>. It
also generates the wrapper run scripts in
<filename>/var/www/
<replaceable>projectname</replaceable>/bin</filename>.
<screen>
<computeroutput>
bash-2.03# /usr/sbin/aplaws-configure.pl /etc/aplaws.cfg Reading /etc/aplaws.cfg
Wrote /var/www/aplaws/dist/WEB-INF/resources/enterprise.init
Wrote /var/www/aplaws/dist/WEB-INF/web.xml
Wrote /var/www/aplaws/bin/run-resin.sh
Wrote /var/www/aplaws/conf/resin.conf
Wrote /var/www/aplaws/bin/run.sh
</computeroutput>
</screen></para>
<para>Here is a list of the files and how they are modified.
<itemizedlist>
<listitem>
<para>
<filename>
/var/www/aplaws/dist/WEB-INF/resources/enterprise.init</filename>:
Initialization file used for the APLAWS server. Contains
settings for the individual APLAWS packages such as
database connection parameters, content types, and
stylesheet engine, i.e. the paramters after
<command># ACS initialization file</command>in
<filename>aplaws.cfg</filename>.</para>
</listitem>
<listitem>
<para>
<filename>
/var/www/aplaws/dist/WEB-INF/web.xml:</filename>:
Configured to work with Resin set by the line:
<command>servlet-container = resin</command>in
<filename>aplaws.cfg</filename>.</para>
</listitem>
<listitem>
<para>
<filename>/var/www/aplaws/bin/run-resin.sh</filename>:
Wrapper script for starting and stopping Resin. Contains
information such as JAVA_HOME, RESIN_HOM, and JVM setting
(e.g.
<command>app-home</command>,
<command>runtime-home</command>,
<command>java-home</command>,
<command>jre-args</command>).</para>
</listitem>
<listitem>
<para>
<filename>/var/www/aplaws/conf/resin.conf</filename>:
Configuration for the Resin servlet container. Contains
information such as s-run port number, http port number,
and maximum number of processes (i.e.
<command>srun</command>,
<command>http</command>.</para>
</listitem>
</itemizedlist></para>
</sect2>
<sect2 id="s2-starting-the-server">
<title>Starting the server</title>
<para>Once the configuration files and the wrapper scripts
are written you can start, stop, and restart your sever using
<command>/etc/init.d/
<replaceable>projectname</replaceable></command>. The log
files are located in your specified directory, by default
<filename>/var/log/
<replaceable>projectname</replaceable></filename>. You should
<command>tail -f /var/log/
<replaceable>projectname</replaceable>/*.log</command>to
monitor the progress of your server startup.</para>
<note>
<title>
<command>/etc/init.d/
<replaceable>
projectname</replaceable></command>restart</title>
<para>When you restart the server the command will pause
for a number of seconds to wait for the application server
to completely exit.</para>
</note>
<para>Once you are happy with your installation you should
set APLAWS to startup automatically at reboot by running
<command>chkconfig aplaws on</command>.</para>
</sect2>
</sect1>
<sect1 id="s1-web-server">
<title>Configuring the Web Server</title>
<sect2 id="s2-web-software">
<title>Required Software</title>
<para>You will need to install the following software to your
webserver.
<itemizedlist>
<listitem><para>resin source (tar.gz)</para></listitem>
<listitem><para>apache</para></listitem>
<listitem><para>apache-devel</para></listitem>
<listitem><para>squid</para></listitem>
<listitem><para>aplaws-xxx.noarch.rpm</para></listitem>
<listitem><para>aplaws-servlet-resin-xxx.noarch.rpm</para></listitem>
</itemizedlist>
</para>
<para>You need Resin sources and apache-devel package because
you will need to compile and install mod_caucho. You should
use Apache and Squid that comes with your Advanced Server.
Even though you will not be serving pages out of Resin on the
web server, you need to install the aplaws packages because
Apache will be serving static files directly from the file
system to improve performance.</para>
</sect2>
<sect2 id="s2-web-mod_caucho">
<title>mod_caucho</title>
<para>First install resin in
<filename>/opt</filename>by untaring the source distribution.
Run the following command to install mod_caucho.
<screen><computeroutput>$ ./configure --with-apache /usr/sbin</computeroutput></screen></para>
<note>
<title>Reference</title>
<para>If you have problems with this section, or have a
non-standard Apache installation consult the manual
<ulink url="http://caucho.com/resin/ref/cse-apache-unix.xtp">
Resin with Apache on Unix</ulink>.</para>
</note>
</sect2>
<sect2 id="s2-web-aplaws-package">
<title>Installing the APLAWS RPMs</title>
<para>You do not need to configure virtual hosting and
mod_caucho manually. Installing and configuring the APLAWs
RPMs will do this for you. Follow the instructions at
<xref linkend="s2-install-rpm-servlet" />and configure and
install the RPMs. When you run the script
<command>/usr/sbin/aplaws-configure.pl
/etc/aplaws.cfg</command>configuration files will be written
to the file system. Here is a list of affected files and
highlights of the changes.
<itemizedlist>
<listitem>
<para>
<filename>/etc/httpd/httpd.conf</filename>: Adds a
directive to include the vhost configuration file
<filename>
/var/www/aplaws/conf/httpd-resin-vhost.conf</filename>.</para>
</listitem>
<listitem>
<para>
<filename>
/var/www/aplaws/conf/httpd-resin-vhost.conf</filename>:
Sets the DocumentRoot to be
<filename>/var/www/aplaws/dist</filename>and the
CauchoConfigFile for mod_caucho as
<filename>
/var/www/aplaws/dist/resin-apache.conf</filename>.</para>
</listitem>
<listitem>
<para>
<filename>resin-apache.conf</filename>: Sets the location
of the application server by defining the IP and the
s-run port that the resin server is listening on.</para>
</listitem>
</itemizedlist></para>
<note>
<title>Check</title>
<para>At this point you should be able to retrive pages
from application server via Apache. Test the connection by
running
<command>wget http://localhost</command>or using
<command>telnet</command>.</para>
</note>
</sect2>
<sect2 id="s2-web-squid">
<title>Configuring SQUID</title>
<para>In this section you will configure Squid to be the web
accelerator for Apache. This step is not required but
strongly recommended as it will significantly increase the
performance of your site.</para>
<para>For virtual hosting to work correctly (particularly
with IE) we need to run both Apache and SQUID on the same
machine and port number. This means we must tell apache on
only bind to 127.0.0.1 and SQUID to only bind to the machines
public ip address.</para>
<sect3 id="s3-web-port-settings">
<title>Setting the Listen ports on Apache and Squid</title>
<para>In /etc/httpd/conf/httpd.conf uncomment and change
<screen><computeroutput>BindAddress *</computeroutput></screen>
to
<screen><computeroutput>BindAddress 127.0.0.1</computeroutput></screen>
Next, uncomment and change
<screen><computeroutput>Listen 80</computeroutput></screen>
To
<screen><computeroutput>Listen 127.0.0.1:80</computeroutput></screen>
Then go down to the &lt;IfDefine
HAVE_SSL&gt; block containin the two Listen statements and
add
<screen><computeroutput>Listen 127.0.0.1:443</computeroutput></screen>
In /etc/squid/squid.conf change
<screen><computeroutput># http_port 3128</computeroutput></screen>
To
<screen><computeroutput>http_port 192.168.168.199:80</computeroutput></screen>
</para>
</sect3>
<sect3 id="s3-web-squid-acl">
<title>Configuring permissions for Squid</title>
<para>The default SQUID config doesn't cache urls with
query parameters in them. This is only for compatability
with badly written CGI scripts that don't send cache
control headers. We do things properly so we need to change
this behaviour. So in the squid config, comment out
<screen><computeroutput>
#hierarchy_stoplist cgi-bin ?
#acl QUERY urlpath_regex cgi-bin \?
#no_cache deny QUERY
</computeroutput></screen>
Turn on referers and useragents so that
log analysis is useful
<screen><computeroutput>
useragent_log /var/log/squid/agent.log
referer_log /var/log/squid/referer.log
</computeroutput></screen>
You'll need our custom version of SQUID
compiled with
<command>--enable-referer-log</command>and
<command>--enable-agent-log options</command>.</para>
<para>Next we add some access control rules to allow public
users to access the cache. Add the following lines near the
other block of acl definitions:
<screen><computeroutput>
acl accel_host dst 127.0.0.1/255.255.255.255
acl accel_host dst 192.168.168.199/255.255.255.255
acl accel_port port 80
</computeroutput></screen>
If the firewall in front of the SQUID
server has a different IP address to the network interface
you need to add that in as well.
<screen><computeroutput>acl accel_host dst 193.132.194.147/255.255.255.255</computeroutput></screen>
Then, allow access to requests matching
these acls. Comment out
<screen><computeroutput>#http_access deny all</computeroutput></screen>
Add in
<screen><computeroutput>
http_access deny !accel_host
http_access deny !accel_port
http_access allow all
</computeroutput></screen>
</para>
</sect3>
<sect3 id="s3-web-squid-misc">
<title>Configureing Squid for HTTP Acceleration</title>
<para>Set the main hostname
<screen><computeroutput>visible_hostname www.stoke.gov.uk</computeroutput></screen>
SQUID limits HTTP file uploads to 1 MB in
size, so we need to increase this to at least 20 MB
otherwise CMS file storage is rather limited in usefulness:
<screen><computeroutput>request_body_max_size 20 MB</computeroutput></screen>
Finally, tell SQUID to be an accellerator
for the apache server:
<screen><computeroutput>httpd_accel_host 127.0.0.1 httpd_accel_port 80</computeroutput></screen>
Finally for virtual hosting to work, we set
<screen><computeroutput>
httpd_accel_single_host on
httpd_accel_uses_host_header on
</computeroutput></screen>
</para>
<note>
<title>Test</title>
<para>This configuration separates the IP and port that
Squid listens to from the Apache port. So if you do
<command>wget -S http://localhost</command>you are
connecting to Apache, if you do
<command>wget -S http://
<userinput>your-external-ip</userinput></command>you are
connecting to Squid. This difference will helpful in
determining the point of failure if you have
problems</para>
</note>
<para>Once you are happy with your installation you should
set Apache and Squid to startup automatically at reboot by using
<command>chkconfig</command>. </para>
</sect3>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,85 @@
<!DOCTYPE Book PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<!-- *************** Control for HTML/print *************** -->
<!-- Set to either "IGNORE" (for HTML) or "INCLUDE" (for print) -->
<!ENTITY % SET-FOR-PRINT "IGNORE">
<!ENTITY % PRIVATE-ONLY "IGNORE">
<!-- *************** Settings for Book ID string *************** -->
<!ENTITY BOOKDATE "2003-06-11-T16:00" -- Date the document was produced -->
<!ENTITY SHORT-TITLE "APLAWS Deployment Guide" -- Short title for this manual -->
<!ENTITY PRODVER "5.2" -- Product version for this manual -->
<!-- *************** Bring in RH-standard entities *************** -->
<!ENTITY % RH-ENTITIES SYSTEM "./rh-sgml/rh-entities.sgml">
%RH-ENTITIES;
<!-- *************** Bring in RHEA specific entities *************** -->
<!ENTITY % RHEA-ENTITIES SYSTEM "./rh-sgml/rhea-entities.sgml">
%RHEA-ENTITIES;
<!-- *************** Set this particular PRODVER *************** -->
<!ENTITY PRODVER "&RHWAFVER;" -- Product version for this manual -->
<!-- *************** Chapter entities... *************** -->
<!ENTITY create-new-project SYSTEM "create-new-project.sgml">
<!ENTITY development-environment SYSTEM "development-environment.sgml">
<!ENTITY building-packages SYSTEM "building-packages.sgml">
<!ENTITY installing-aplaws SYSTEM "installing-aplaws.sgml">
<!ENTITY application-development SYSTEM "application-development.sgml">
]>
<book id="index" lang="en">
<bookinfo>
<title>APLAWS</title>
<subtitle>&SHORT-TITLE;</subtitle>
<!--
<isbn>
N/A
</isbn>
-->
<mediaobject>
<imageobject>
<imagedata fileref="./figs/rhl-common/rhlogo-chapter-title.eps"
format="eps" align="left">
</imageobject>
<imageobject>
<imagedata fileref="./figs/rhl-common/rhlogo-chapter-title.png"
format="png" align="left">
</imageobject>
</mediaobject>
<publisher>
<publishername>
<inlinemediaobject>
<imageobject>
<imagedata fileref="./figs/rhl-common/rhlogo-title.eps"
format="eps">
</imageobject>
<imageobject>
<imagedata fileref="./figs/rhl-common/rhlogo-title.png"
format="png">
</imageobject>
</inlinemediaobject>
</publishername>
</publisher>
<copyright>
<year>2003</year>
<holder>&FORMAL-RHI;</holder>
</copyright>
&BOILERPLATE;
</bookinfo>
<toc>
<title>Table of Contents</title>
</toc>
<!-- The chapters start here... -->
&create-new-project;
&development-environment;
&application-development;
&building-packages;
&installing-aplaws;
</book>

View File

@ -0,0 +1,51 @@
#! /bin/sh
# Make sure we have an absolute path to the backend and stylesheet, as
# jw doesn't like relative paths...
STUFFPATH=`dirname $0`
if [ -n "${STUFFPATH##/*}" ]
then
STUFFPATH=$PWD/$STUFFPATH
fi
# Figure out what our output directory should be called. Note that we
# also check to see if the user explicitly specified an output directory,
# in which case we'll use their choice...
O_OPTION=0
for i in "$@"
do
if [ $O_OPTION = "1" ]
then
OUTPUTDIR=$i
O_OPTION=0
fi
if [ $i = "-o" ]
then
O_OPTION=1
fi
done
# See if the user specified an output directory...
if [ -z $OUTPUTDIR ]
then
# Nope -- default to the name of the SGML file...
OUTPUTDIR="`echo $i | sed 's,\.sgml$,,;s,\.sgm$,,'`"
fi
# Nuke the output directory (if it exists); jw will create it for us...
if [ -d $OUTPUTDIR ]
then
echo -n "Cleaning out $OUTPUTDIR..."
rm -rf $OUTPUTDIR
echo "Done!"
fi
jw -f docbook \
-b $STUFFPATH/31-indexed-html \
-d $STUFFPATH/stylesheets/docbook31/redhat.dsl#html \
-o $OUTPUTDIR \
$*

View File

@ -0,0 +1,68 @@
# Based on original from Eric Bischoff <eric@caldera.de>
# Create an HTML document with index and figures in place.
# This is done by:
# 1. Converting from SGML to HTML
# 2. Generating an SGML index based on the HTML
# 3. Converting from SGML to HTML (taking into account the index this time)
# 4. Copying figures from original source tree into the output directory
# The end result is a directory tree ready for publishing/packaging/whatever...
# Point to the CSS and standard admon graphics. Note that these paths use
# the "dsssl-stylesheets" symlink to point to the latest dsssl stuff...
FINAL_INDEX=generated-index.sgml
#ADMON_GRAPHICS=/usr/share/sgml/docbook/dsssl-stylesheets/images/*.gif
ADMON_GRAPHICS=../rh-sgml/stylesheet-images/*.gif
INDEXFILE=INDEX$$
# Convert to HTML, generating the HTML.index file that we'll use to
# create an SGML index...
echo Running $SGML_JADE...
$SGML_JADE -t sgml -V html-index $SGML_ARGUMENTS
# Generate the index, fixing up the problem of bogus empty closing tags (</>)...
echo Indexing...
perl /usr/bin/collateindex.pl -g -i generated-index -o ../$FINAL_INDEX HTML.index
# Not sure if these are still needed; when we first tried collateindex;
# it threw "</>" in the generated index in certain cases...
cat ../$FINAL_INDEX | sed 's,^[ ]*</>[ ]*$,,' > ../$INDEXFILE
mv -f ../$INDEXFILE ../$FINAL_INDEX
# Nuke the HTML.index file; we don't need it anymore...
rm -f HTML.index
echo Rerunning $SGML_JADE...
$SGML_JADE -t sgml $SGML_ARGUMENTS
echo -n "Copying admon graphics..."
mkdir ./stylesheet-images
cp ${ADMON_GRAPHICS} ./stylesheet-images/
echo "Done!"
if [ -d ../figs/ ]
then
echo -n "Moving figures..."
(cd ../ ; tar chf - figs/) | (tar xf -)
echo "Done!"
echo -n "Cleaning CVS..."
find ./figs/ -type d -name "CVS"|xargs rm -rf
echo -n "EPS..."
find ./figs/ -type f -name "*eps"|xargs rm -f
echo -n " .xvpics..."
find ./figs/ -type d -name ".xvpics"|xargs rm -rf
echo -n "directories..."
find ./figs/ -type d -empty|xargs rm -rf
echo "Done!"
fi
#
exit 0

View File

@ -0,0 +1,80 @@
#Makefile for Red Hat Documentation
#Created by Tammy Fox <tfox@redhat.com>
#Copyright Red Hat Inc. 2001
include Makefile.local
TOP = $(shell pwd)
PRINTENTITY = SET-FOR-PRINT
LANG = en
SGMLFILE = $(DOCNAME).sgml
HTMLSCRIPT = db2indexed-html
VERSION = $(shell awk '/Version:/ { print $$2 }' $(DOCNAME).spec)
RELEASE = $(shell awk '/Release:/ { print $$2 }' $(DOCNAME).spec)
get-ext = $(subst .,,$(suffix $(1)))
SPLITTER = java -cp ../docs-stuff/classes/ com.redhat.ccm.documentation.Splitter
sedexpr = -e 's/^\(<!ENTITY \+% \+$2 \+"\)\(INCLUDE\|IGNORE\)\(">\)/\1$1\3/'
incl = $(call sedexpr,INCLUDE,$1)
ignore = $(call sedexpr,IGNORE,$1)
inclsedcmd = sed $(call incl,$1) $2
ignoresedcmd = sed $(call ignore,$1) $2
all: sgml html ps pdf rpm
sgml:
ifdef SPLITTERDIRS
$(SPLITTER) build $(shell find $(SPLITTERDIRS) -type f -not -name "*~" -not -name "\#*")
find build/ -type f -exec ln -sf {} \;
endif
html: sgml
$(call ignoresedcmd,$(PRINTENTITY),$(SGMLFILE)) > $(DOCNAME)-temp.sgml
$(HTMLSCRIPT) --output $(DOCNAME) $(DOCNAME)-temp.sgml
@rm $(DOCNAME)-temp.sgml
@rm -rf $(DOCNAME)-$(VERSION)
@mv $(DOCNAME) $(DOCNAME)-$(VERSION)
ps pdf: sgml $(SGMLFILE)
@rm -f $(DOCNAME).$@
$(MAKE) $(addsuffix .$@,$(basename $(SGMLFILE)))
%.ps %.pdf:
$(call inclsedcmd,$(PRINTENTITY),$(SGMLFILE)) > $(DOCNAME)-temp.sgml
db2indexed-$(call get-ext,$@) $(notdir $(DOCNAME)-temp.sgml)
@rm $(DOCNAME)-temp.sgml
@mv $(DOCNAME)-temp.$(call get-ext,$@) $(DOCNAME)-$(VERSION)-$(RELEASE).$(call get-ext,$@)
tarball: html
@cp -f ../docs-stuff/icon/docs.png $(DOCNAME)-$(VERSION)
@tar cvjf $(DOCNAME)-$(VERSION).tbz $(DOCNAME)-$(VERSION)/*
@echo "The archive is in $(DOCNAME)-$(VERSION).tbz"
zip: html
@cp -f ../docs-stuff/icon/docs.png $(DOCNAME)-$(VERSION)
@zip -r $(DOCNAME)-$(VERSION).zip $(DOCNAME)-$(VERSION)/*
@echo "The archive is in $(DOCNAME)-$(VERSION).zip"
srpm: tarball
@rpmbuild -ts $(DOCNAME)-$(VERSION).tbz
@echo "SRPM created"
rpm: tarball
@rpmbuild -bb --define "_sourcedir `pwd`" $(DOCNAME).spec
@echo "RPM created"
clean:
@rm -rfv *.ps *.pdf *.tex *.out *.log html $(DOCNAME) $(DOCNAME)-$(VERSION) $(DOCNAME).junk *.tbz generated-index.sgml build
find . -maxdepth 1 -lname "build/*" -exec rm {} \;
zipclean: clean
@rm -f *.zip
splitter: classes/com/redhat/ccm/documentation/Splitter.class
classes/com/redhat/ccm/documentation/Splitter.class: src/com/redhat/ccm/documentation/Splitter.java
@mkdir -p classes
javac -d classes src/com/redhat/ccm/documentation/Splitter.java

View File

@ -0,0 +1 @@
#empty

View File

@ -0,0 +1,127 @@
#! /bin/sh
RH_STYLESHEET=`dirname $0`/stylesheets/RHL7/redhat-html.dsl
HTML_STYLESHEET=/usr/lib/sgml/stylesheets/nwalsh-modular/test/docbook.css
ADMON_GRAPHICS=/usr/lib/sgml/stylesheets/nwalsh-modular/images/*.gif
FINAL_INDEX=generated-index.sgml
output=db2html-dir
TMPDIR=DBTOHTML_OUTPUT_DIR$$
INDEXFILE=INDEX$$
TMPSTYLE=`dirname $0`/stylesheets/STYLE$$
HTM_EXTENSIONS=0
# Process any options...
while getopts ":3" opt; do
case $opt in
3 ) HTM_EXTENSIONS=1 ;;
\? ) echo "Usage: `basename $0` [options] [filename.sgml]" >&2
echo "Options:" >&2
echo " -3 -- create HTML output with .htm file extensions" >&2
exit 1 ;;
esac
done
shift $(($OPTIND - 1))
if [ $# -gt 2 ] || [ $# -lt 1 ]
then
echo "Usage: `basename $0` [options] [filename.sgml]" >&2
echo "Options:" >&2
echo " -3 -- create HTML output with .htm file extensions" >&2
exit 1
fi
if [ $# -eq 1 ]
then
if [ ! -r $1 ]
then
echo Cannot read \"$1\". Exiting. >&2
exit 1
fi
if echo $1 | egrep -i '\.sgml$|\.sgm$' >/dev/null 2>&1
then
# now make sure that the output directory is always a subdirectory
# of the current directory
input_file=`basename $1`
output="`echo $input_file | sed 's,\.sgml$,,;s,\.sgm$,,'`"
fi
fi
if [ $HTM_EXTENSIONS -eq 1 ]
then
# We need to take the normal stylesheet, and hack a temporary version to use...
cat $RH_STYLESHEET | sed 's/^[ ]*"\.html"[ ]*)[ ]*$/ ".htm")/' > $TMPSTYLE
# Point to the new temporary stylesheet...
RH_STYLESHEET=$TMPSTYLE
fi
mkdir $TMPDIR
SAVE_PWD=`pwd`
if [ $1 = `basename $1` ]; then
echo Running jade...
RH_STYLESHEET="`echo $RH_STYLESHEET | sed 's,^\([^/]\),\.\./\1,'`"
(cd $TMPDIR; jade -t sgml -ihtml -d ${RH_STYLESHEET} -V html-index ../$1; cd $SAVE_PWD)
# Generate the index, fixing up the problem of bogus empty closing tags (</>)...
for index_script in /usr/bin/collateindex.pl /usr/lib/sgml/stylesheets/nwalsh-modular/bin/collateindex.pl
do
if [ -f $index_script ]; then
echo Indexing...
perl $index_script -g -o $FINAL_INDEX $TMPDIR/HTML.index
fi
done
# Not sure if these are still needed; when we first tried collateindex, it threw "</>"
# in the generated index in certain cases...
cat $FINAL_INDEX | sed 's,^[ ]*</>[ ]*$,,' > $INDEXFILE
mv -f $INDEXFILE $FINAL_INDEX
# We should now have a good index; clean up and rerun...
echo Rerunning jade...
rm -rf $TMPDIR
mkdir $TMPDIR
(cd $TMPDIR; jade -t sgml -ihtml -d ${RH_STYLESHEET} ../$1; cd $SAVE_PWD)
else
# Yeah, I know it's ugly, but...
echo Rerun this script from the directory containing your SGML... >&2
exit 1
fi
if [ -d ${output}.junk ]
then
/bin/rm -rf ${output}.junk
fi
if [ -d ${output} ]
then
mv $output ${output}.junk
fi
echo "Copying cascading stylesheet and admon graphics..."
cp ${HTML_STYLESHEET} ${TMPDIR}/
mkdir ${TMPDIR}/stylesheet-images
cp ${ADMON_GRAPHICS} ${TMPDIR}/stylesheet-images
echo Moving figures and cleaning up random stuff...
if [ -d figs/ ]
then
tar cf - figs/ | (cd $TMPDIR; tar xf -)
find $TMPDIR/figs/ -type d -name "CVS"|xargs rm -rf
find $TMPDIR/figs/ -type f -name "*eps"|xargs rm -f
find $TMPDIR/figs/ -type d -name ".xvpics"|xargs rm -rf
find $TMPDIR/figs/ -type d -empty|xargs rm -rf
fi
rm -f $TMPSTYLE
mv ${TMPDIR} $output
rm -rf $TMPDIR
exit 0

View File

@ -0,0 +1,59 @@
#!/usr/bin/python
## script to add css to RHL HTML pages
## Copyright (C) 2002 Red Hat, Inc.
## Copyright (C) 2002 Tammy Fox <tfox@redhat.com>
## Author: Tammy Fox
import sys
import string
import os
import re
import tempfile
#grab files specified on command line
html_files = sys.argv[1:]
for file in html_files:
## add header
#open file
f = open(file, "rw")
#read in contents of file
content = f.read()
#reg expression to find BODY tag
replace_this = re.search('</HEAD', content, re.DOTALL | re.IGNORECASE)
css_line="</HEAD><link rel=\"stylesheet\" type=\"text/css\" href=\"rhdocs-man.css\""
path = os.getcwd()
#open temp file
try:
tempfile.tempdir = path
tmpfilename = tempfile.mktemp()
tmpfile = open(tmpfilename, 'w')
os.chmod(tmpfilename, 0664)
except IOError:
print "Error: Can't create temp file"
sys.exit(0)
try:
new_content = re.sub(replace_this.group(), css_line, content)
except:
print "Error: Can't find content to replace in header in " + file
tmpfile.close()
os.remove(tmpfilename)
sys.exit(0)
tmpfile.write(new_content)
#close files
f.close()
tmpfile.close()
#mv temp file to real file
os.rename(tmpfilename, file)

View File

@ -0,0 +1,400 @@
/*
CSS stylesheet for the HTML versions of Red Hat Documentation
Created by Tammy Fox <tfox@redhat.com>
*/
body {
background-color: #ffffff;
color: #000000;
margin: 0;
padding: 0;
font-family: helvetica, arial,sans-serif;
font-size: 12pt;
/* needed so buttons created with css don't bleed into text */
line-height: 1.3;
}
body.book, body.article, body.chapter, body.part, body.preface, body.sect1, body.index, body.colophon, body.glossary, body.reference, body.refentry {
font-family: helvetica, arial,sans-serif;
font-size: 12pt;
background-color: #ffffff;
margin: 0;
padding : 0;
}
p, td, th, .variablelist {
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
/* left must be 0 so it lines up */
margin : 10px 0px 10px 0px;
}
div.article p {
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
/* if in article made from XML left must be 10 so it lines up */
margin : 10px 10px 10px 10px;
}
li {
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
}
table {
width: 90%;
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
margin : 0px 0px 0px 0px;
}
table.note, table.tip, table.important, table.caution, table.warning {
width: 95%;
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
border: 2px solid #B0C4DE;
background-color: #F0F8FF;
color: #000000;
/* padding inside table area */
padding: 0.5em;
margin-bottom: 0.5em;
margin-top: 0.5em;
}
/* set width smaller is IE is happy */
ul table.note, ul table.tip, ul table.important, ul table.caution, ul table.warning, ol table.note, ol table.t\ip, ol table.important, ol table.caution, ol table.warning {
width: 95%;
}
.computeroutput, .command {
font-family: courier, courier new, monospace;
font-size: 12pt;
}
.userinput {
font-family: courier, courier new, monospace;
font-size: 12pt;
font-weight: bold;
}
table.screen {
width: 95%;
font-family: courier, courier new, monospace;
font-size: 12pt;
border: 2px solid #A9A9A9;
background-color: #DCDCDC;
color: #000000;
padding: 0.5em;
margin-bottom: 0.5em;
margin-top: 0.5em;
}
table.calstable {
width: 95%;
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
background-color: #DCDCDC;
color: #000000;
}
table.calstable td {
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
border: 1px solid #A9A9A9;
background-color: #DCDCDC;
color: #000000;
padding: 0.5em;
margin-bottom: 0.5em;
margin-top: 2px;
margin : 0px 0px 0px 10px;
}
table.calstable th {
border: 2px solid #A9A9A9;
background-color: #A9A9A9;
color: #000000;
}
.navheader, .navfooter {
background-color: #ffffff;
color: #000000;
/* need top margin so title line isn't touching the top */
margin : 10px 20px 0px 20px;
font-family: helvetica, arial,sans-serif;
font-size: 12pt;
}
div.navheader hr, div.navfooter hr {
background-color: #CCCCCC;
margin: 0px 0px 0px 0px;
height: 1px;
border-style: none;
}
div.navheader table, div.navfooter table {
width: 95%;
background-color: #ffffff;
margin: 0px 0px 0px 0px;
padding: 0;
font-family: helvetica, arial,sans-serif;
font-size: 12pt;
}
body>div.navheader table, body>div.navfooter table {
/* Hidden from IE */
width: 100%;
}
/* top hr on index page is not in a div so it needs div margins */
hr {
background-color: #CCCCCC;
margin: 0px 10px 0px 10px;
height: 1px;
border-style: none;
}
h2, h2.indexdiv {
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
font-weight: bold;
color: #990000;
}
h3
{
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
font-weight: bold;
line-height: 1.4em;
color: #990000;
}
h4
{
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
font-weight: bold;
color: #990000;
}
h5
{
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
font-weight: bold;
color: #990000;
}
h6 {
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
font-weight: bold;
color: #666666;
}
a:link {
color: #000066;
}
a:visited
{
color: #333399;
}
/* not in a div, so need standard left margin */
.footnotes {
width: 95%;
margin : 10px 20px 10px 20px;
font-size: 12pt;
}
div.preface, div.colophon, div.chapter, div.appendix, div.index, div.partintro, div.legalnotice, div.glossary, div.refnamediv, div.refsect1 {
margin : 0px 20px 0px 20px;
font-family: helvetica, arial, sans-serif;
}
/* A, B, etc. in Index */
div.indexdiv {
font-family: helvetica, arial, sans-serif;
}
div.titlepage {
margin : 0px 10px 0px 10px;
font-family: helvetica, arial, sans-serif;
}
/* div.sect1 for an article doesn't have the extra padding from a div.chapter */
div.article div.sect1 {
margin : 0px 10px 0px 10px;
font-family: helvetica, arial, sans-serif;
}
/* div.sect1 on same page as div.chapter, etc. with margins and padding already */
div.chapter div.sect1, div.preface div.sect1, div.appendix div.sect1, div.colophon div.sect1 {
margin : 0px 0px 0px 0px;
font-family: helvetica, arial, sans-serif;
padding: 0;
}
/* on separate page without div.chapter, so need same padding */
div.sect1 {
margin : 0px 20px 0px 20px;
font-family: helvetica, arial, sans-serif;
}
/* same as dev.sect1 except no padding because div.sect1 doesn't end before div.sect2, etc.*/
div.sect2, div.sect3, div.sect4 {
margin : 0px 0px 0px 0px;
font-family: helvetica, arial, sans-serif;
padding: 0;
}
/* chapter, preface, and colophon titles don't have a class */
h1 {
margin : 0px 0px 0px 0px;
font-family: helvetica, arial, sans-serif;
font-size: 18pt;
font-weight: bold;
color: #990000;
}
h1.sect1, h2.sect1 {
/* already in div.sect1, so no margins */
margin : 0px 0px 0px 0px;
font-family: helvetica, arial, sans-serif;
font-size: 18pt;
font-weight: bold;
color: #990000;
}
h2.sect2, h2.title {
/* already in div.sect1, so no margins */
margin : 0px 0px 0px 0px;
font-family: helvetica, arial, sans-serif;
font-size: 16pt;
font-weight: bold;
color: #990000;
}
h3.sect3, h3.title {
/* already in div.sect1, so no margins */
margin : 0px 0px 0px 0px;
font-family: helvetica, arial, sans-serif;
font-size: 14pt;
font-weight: bold;
color: #990000;
}
h4.sect4, h5.sect5, h6.sect6 {
/* already in div.sect1, so no margins */
margin : 0px 0px 0px 0px;
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
font-weight: bold;
color: #990000;
}
/* book and article titles on index.html page and part title pages */
h1.title {
font-family: helvetica, arial, sans-serif;
font-size: 22pt;
font-weight: bold;
color: #990000;
margin : 10px 10px 10px 10px;
/* add padding so title is not touching top margin */
padding: 10 0 0;
}
body.refentry h1 {
margin: 0 0 0 20px;
}
div.glossary h1 {
font-family: helvetica, arial, sans-serif;
font-size: 22pt;
font-weight: bold;
color: #990000;
margin : 10px 10px 10px 0px;
/* add padding so title is not touching top margin */
padding: 10 0 0;
}
.subtitle {
font-family: helvetica, arial, sans-serif;
font-size: 18pt;
color:#666666;
font-weight: bold;
margin : 10px 10px 10px 10px;
padding: 0;
}
b.othername {
font-family: helvetica, arial, sans-serif;
font-size: 18pt;
color:#666666;
font-weight: bold;
margin : 10px 10px 10px 10px;
padding: 0;
}
.copyright, .affiliation {
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
color:#666666;
margin : 10px 10px 10px 10px;
padding: 0;
}
isbn.isbn {
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
color:#666666;
margin : 10px 10px 10px 10px;
padding: 0;
}
.toc {
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
padding: 0;
margin : 10px 20px 10px 20px;
}
.citetitle {
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
color:#666666;
font-weight: bold;
}
div.qandaset big {
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
color: #990000;
}
.author {
font-family: helvetica, arial, sans-serif;
font-size: 12pt;
color:#990000;
font-weight: bold;
margin : 10px;
line-height: 1.4em;
}
/* make guibuttons look like real buttons */
.guibutton {
color: #000000;
font-family: helvetica, arial, sans-serif;
background-color: #DCDCDC;
padding: 1px 3px;
font-size: 10pt;
border: outset 2px;
text-decoration: none;
}

View File

@ -0,0 +1,51 @@
#! /bin/sh
# Make sure we have an absolute path to the backend and stylesheet, as
# jw doesn't like relative paths...
STUFFPATH=`dirname $0`
if [ -n "${STUFFPATH##/*}" ]
then
STUFFPATH=$PWD/$STUFFPATH
fi
# Figure out what our output directory should be called. Note that we
# also check to see if the user explicitly specified an output directory,
# in which case we'll use their choice...
O_OPTION=0
for i in "$@"
do
if [ $O_OPTION = "1" ]
then
OUTPUTDIR=$i
O_OPTION=0
fi
if [ $i = "-o" ]
then
O_OPTION=1
fi
done
# See if the user specified an output directory...
if [ -z $OUTPUTDIR ]
then
# Nope -- default to the name of the SGML file...
OUTPUTDIR="`echo $i | sed 's,\.sgml$,,;s,\.sgm$,,'`"
fi
# Nuke the output directory (if it exists); jw will create it for us...
if [ -d $OUTPUTDIR ]
then
echo -n "Cleaning out $OUTPUTDIR..."
rm -rf $OUTPUTDIR
echo "Done!"
fi
jw -f docbook \
-b $STUFFPATH/indexed-html \
-d $STUFFPATH/stylesheets/redhat.dsl#html \
-o $OUTPUTDIR \
$*

View File

@ -0,0 +1,54 @@
#! /bin/sh
# Make sure we have an absolute path to the backend and stylesheet, as
# jw doesn't like relative paths...
STUFFPATH=`dirname $0`
if [ -n "${STUFFPATH##/*}" ]
then
STUFFPATH=$PWD/$STUFFPATH
fi
#
#Grab name of the SGML file without extension
#
O_OPTION=0
for i in "$@"
do
if [ $O_OPTION = "1" ]
then
FILENAME=$i
O_OPTION=0
fi
if [ $i = "-o" ]
then
O_OPTION=1
fi
done
if [ -z $FILENAME ]
then
# Grab name of the SGML file...
FILENAME="`echo $i | sed 's,\.sgml$,,;s,\.sgm$,,'`"
fi
# Generate index
jw -f docbook \
-b $STUFFPATH/index \
-d $STUFFPATH/stylesheets/redhat.dsl#html \
-o $FILENAME-tmp \
$*
# Generate PDF with generated index
jw -f docbook \
-b $STUFFPATH/indexed-pdf \
-d $STUFFPATH/stylesheets/redhat.dsl#print \
$*
# Remove temp directory
echo -n Removing temp directory $PWD/$FILENAME-tmp...
rm -rf $PWD/$FILENAME-tmp
echo Done!

View File

@ -0,0 +1,54 @@
#! /bin/sh
# Make sure we have an absolute path to the backend and stylesheet, as
# jw doesn't like relative paths...
STUFFPATH=`dirname $0`
if [ -n "${STUFFPATH##/*}" ]
then
STUFFPATH=$PWD/$STUFFPATH
fi
#
#Grab name of the SGML file without extension
#
O_OPTION=0
for i in "$@"
do
if [ $O_OPTION = "1" ]
then
FILENAME=$i
O_OPTION=0
fi
if [ $i = "-o" ]
then
O_OPTION=1
fi
done
if [ -z $FILENAME ]
then
# Grab name of the SGML file...
FILENAME="`echo $i | sed 's,\.sgml$,,;s,\.sgm$,,'`"
fi
# Generate index
jw -f docbook \
-b $STUFFPATH/index \
-d $STUFFPATH/stylesheets/redhat.dsl#html \
-o $FILENAME-tmp \
$*
# Generate PDF with generated index
jw -f docbook \
-b $STUFFPATH/indexed-pdfprint \
-d $STUFFPATH/stylesheets/redhat.dsl#print \
$*
# Remove temp directory
echo -n Removing temp directory $PWD/$FILENAME-tmp...
rm -rf $PWD/$FILENAME-tmp
echo Done!

View File

@ -0,0 +1,54 @@
#! /bin/sh
# Make sure we have an absolute path to the backend and stylesheet, as
# jw doesn't like relative paths...
STUFFPATH=`dirname $0`
if [ -n "${STUFFPATH##/*}" ]
then
STUFFPATH=$PWD/$STUFFPATH
fi
#
#Grab name of the SGML file without extension
#
O_OPTION=0
for i in "$@"
do
if [ $O_OPTION = "1" ]
then
FILENAME=$i
O_OPTION=0
fi
if [ $i = "-o" ]
then
O_OPTION=1
fi
done
if [ -z $FILENAME ]
then
# Grab name of the SGML file...
FILENAME="`echo $i | sed 's,\.sgml$,,;s,\.sgm$,,'`"
fi
# Generate index
jw -f docbook \
-b $STUFFPATH/index \
-d $STUFFPATH/stylesheets/redhat.dsl#html \
-o $FILENAME-tmp \
$*
# Generate PS with generated index
jw -f docbook \
-b $STUFFPATH/indexed-ps \
-d $STUFFPATH/stylesheets/redhat.dsl#print \
$*
# Remove temp directory
echo -n Removing temp directory $PWD/$FILENAME-tmp...
rm -rf $PWD/$FILENAME-tmp
echo Done!

View File

@ -0,0 +1,54 @@
#! /bin/sh
# Make sure we have an absolute path to the backend and stylesheet, as
# jw doesn't like relative paths...
STUFFPATH=`dirname $0`
if [ -n "${STUFFPATH##/*}" ]
then
STUFFPATH=$PWD/$STUFFPATH
fi
#
#Grab name of the SGML file without extension
#
O_OPTION=0
for i in "$@"
do
if [ $O_OPTION = "1" ]
then
FILENAME=$i
O_OPTION=0
fi
if [ $i = "-o" ]
then
O_OPTION=1
fi
done
if [ -z $FILENAME ]
then
# Grab name of the SGML file...
FILENAME="`echo $i | sed 's,\.sgml$,,;s,\.sgm$,,'`"
fi
# Generate index
jw -f docbook \
-b $STUFFPATH/index \
-d $STUFFPATH/stylesheets/redhat-training.dsl#html \
-o $FILENAME-tmp \
$*
# Generate PDF with generated index
jw -f docbook \
-b $STUFFPATH/indexed-training-pdf \
-d $STUFFPATH/stylesheets/redhat-training.dsl#print \
$*
# Remove temp directory
echo -n Removing temp directory $PWD/$FILENAME-tmp...
rm -rf $PWD/$FILENAME-tmp
echo Done!

View File

@ -0,0 +1,54 @@
#! /bin/sh
# Make sure we have an absolute path to the backend and stylesheet, as
# jw doesn't like relative paths...
STUFFPATH=`dirname $0`
if [ -n "${STUFFPATH##/*}" ]
then
STUFFPATH=$PWD/$STUFFPATH
fi
#
#Grab name of the SGML file without extension
#
O_OPTION=0
for i in "$@"
do
if [ $O_OPTION = "1" ]
then
FILENAME=$i
O_OPTION=0
fi
if [ $i = "-o" ]
then
O_OPTION=1
fi
done
if [ -z $FILENAME ]
then
# Grab name of the SGML file...
FILENAME="`echo $i | sed 's,\.sgml$,,;s,\.sgm$,,'`"
fi
# Generate index
jw -f docbook \
-b $STUFFPATH/index \
-d $STUFFPATH/stylesheets/redhat-training.dsl#html \
-o $FILENAME-tmp \
$*
# Generate PS with generated index
jw -f docbook \
-b $STUFFPATH/indexed-training-ps \
-d $STUFFPATH/stylesheets/redhat-training.dsl#print \
$*
# Remove temp directory
echo -n Removing temp directory $PWD/$FILENAME-tmp...
rm -rf $PWD/$FILENAME-tmp
echo Done!

View File

@ -0,0 +1,46 @@
#! /bin/sh
# Make sure we have an absolute path to the backend and stylesheet, as
# jw doesn't like relative paths...
STUFFPATH=`dirname $0`
if [ -n "${STUFFPATH##/*}" ]
then
STUFFPATH=$PWD/$STUFFPATH
fi
DVI_PAGES=$1
FILENAME=$2
export DVI_PAGES
if [ "$1" == "" ] || [ "$2" == "" ] ; then
echo "Usage: $0 <page-nums> <parent-file>"
echo "example: $0 42-50 rhl-cg-en.sgml"
exit 1
fi
#
#Grab name of the SGML file without extension
#
FILENAME="`echo $FILENAME | sed 's,\.sgml$,,;s,\.sgm$,,'`"
# Generate index
jw -f docbook \
-b $STUFFPATH/index \
-d $STUFFPATH/stylesheets/redhat.dsl#html \
-o $FILENAME-tmp \
${FILENAME}.sgml
# Generate PDF with generated index
jw -f docbook \
-b $STUFFPATH/indexedpg-pdf \
-d $STUFFPATH/stylesheets/redhat.dsl#print \
${FILENAME}.sgml
# Remove temp directory
echo -n Removing temp directory $PWD/$FILENAME-tmp...
rm -rf $PWD/$FILENAME-tmp
echo Done!

View File

@ -0,0 +1,49 @@
#! /bin/sh
# Modified for a specified list of pages by Tammy Fox <tfox@redhat.com>
# Make sure we have an absolute path to the backend and stylesheet, as
# jw doesn't like relative paths...
STUFFPATH=`dirname $0`
if [ -n "${STUFFPATH##/*}" ]
then
STUFFPATH=$PWD/$STUFFPATH
fi
DVI_PAGES=$1
FILENAME=$2
export DVI_PAGES
if [ "$1" == "" ] || [ "$2" == "" ] ; then
echo "Usage: $0 <page-nums> <parent-file>"
echo "example: $0 42-50 rhl-cg-en.sgml"
exit 1
fi
#
#Grab name of the SGML file without extension
#
FILENAME="`echo $FILENAME | sed 's,\.sgml$,,;s,\.sgm$,,'`"
# Generate index
jw -f docbook \
-b $STUFFPATH/index \
-d $STUFFPATH/stylesheets/redhat.dsl#html \
-o $FILENAME-tmp \
${FILENAME}.sgml
# Generate PS with generated index
jw -f docbook \
-b $STUFFPATH/indexedpg-ps \
-d $STUFFPATH/stylesheets/redhat.dsl#print \
${FILENAME}.sgml
# Remove temp directory
echo -n Removing temp directory $PWD/$FILENAME-tmp...
rm -rf $PWD/$FILENAME-tmp
echo Done!

View File

@ -0,0 +1,16 @@
#! /bin/sh
# Make sure we have an absolute path to the backend and stylesheet, as
# jw doesn't like relative paths...
STUFFPATH=`dirname $0`
if [ -n "${STUFFPATH##/*}" ]
then
STUFFPATH=$PWD/$STUFFPATH
fi
jw -f docbook \
-b html \
-d $STUFFPATH/stylesheets/redhat-nochunks.dsl#html \
--nochunks \
$*

View File

@ -0,0 +1,18 @@
You can modify the background color, foreground color, font used, window size, and more by editing the .Xresources file in your home directory. If this file does not exist, you will need to create it.
Also note that you must type the command
xrdb -merge .Xresources
from your home directory to have X reread this configuration file, and you must restart Emacs before the changes will take effect.
Sample .Xresources file:
emacs.background: Wheat
emacs.f oreground: Black
emacs.pointerColor: Blue
emacs.cursorColor: Red
emacs.bitmapIcon: on
emacs.font: fixed
emacs.geometry: 100x45

View File

@ -0,0 +1,130 @@
This is a copy of Dave Mason's .emacs file. Add the following to your
own:
----------------------begin cut-------------------------
;;
;;MODES
;;
(setq auto-mode-alist (cons '("\\.sgml$" . sgml-mode) auto-mode-alist))
;;(setq auto-mode-alist (cons '("\\.sgm$" . sgml-mode) auto-mode-alist))
;;turn on html-helper-mode
;;don't really need this with psgml, i think
(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)
(setq auto-mode-alist (cons '("\\.html$" . html-helper-mode)
auto-mode-alist))
;; turn on auto-fill in `text-mode' and derived modes
;;(mail, news, etc)
(add-hook 'text-mode-hook 'turn-on-auto-fill)
;;
;;SGML!!
;;
;;#############################################################
;;
;;PSGML mode stuff
;;
(autoload 'sgml-mode "psgml" "My Most Major Mode" t)
(setq sgml-mode-hook '(lambda () "Defaults for SGML mode." (turn-on-auto-fill) (setq fill-column 80)))
(defun My-SGML-keymap ()
(local-set-key [(alt i)]
'(lambda ()
(interactive)
(sgml-indent-line)
(sgml-insert-element 'item)
(sgml-indent-line)))
(local-set-key [(alt l)]
'(lambda ()
(interactive)
(sgml-insert-element 'list)
(sgml-insert-element 'item)
(sgml-indent-line)))
(local-set-key [(alt p)]
'(lambda ()
(interactive)
(sgml-indent-line)
(sgml-insert-element 'para)
(sgml-indent-line)))
(local-set-key [(alt -)]
'(lambda ()
(interactive)
(insert "&mdash;"))))
(add-hook 'sgml-mode-hook 'My-SGML-keymap)
;;
;; Fix up indentation of data...
;;
(setq-default sgml-indent-data t)
;;
;; SGML markup faces.
;;
(setq-default sgml-set-face t)
(make-face 'sgml-comment-face)
(make-face 'sgml-doctype-face)
(make-face 'sgml-end-tag-face)
(make-face 'sgml-entity-face)
(make-face 'sgml-ignored-face)
(make-face 'sgml-ms-end-face)
(make-face 'sgml-ms-start-face)
(make-face 'sgml-pi-face)
(make-face 'sgml-sgml-face)
(make-face 'sgml-short-ref-face)
(make-face 'sgml-start-tag-face)
(set-face-foreground 'sgml-comment-face "maroon")
(set-face-foreground 'sgml-doctype-face "dark green")
(set-face-foreground 'sgml-end-tag-face "blue2")
(set-face-foreground 'sgml-entity-face "red2")
(set-face-foreground 'sgml-ignored-face "maroon")
(set-face-background 'sgml-ignored-face "gray90")
(set-face-foreground 'sgml-ms-end-face "maroon")
(set-face-foreground 'sgml-ms-start-face "maroon")
(set-face-foreground 'sgml-pi-face "maroon")
(set-face-foreground 'sgml-sgml-face "maroon")
(set-face-foreground 'sgml-short-ref-face "goldenrod")
(set-face-foreground 'sgml-start-tag-face "blue2")
(setq-default sgml-markup-faces
'((comment . sgml-comment-face)
(doctype . sgml-doctype-face)
(end-tag . sgml-end-tag-face)
(entity . sgml-entity-face)
(ignored . sgml-ignored-face)
(ms-end . sgml-ms-end-face)
(ms-start . sgml-ms-start-face)
(pi . sgml-pi-face)
(sgml . sgml-sgml-face)
(short-ref . sgml-short-ref-face)
(start-tag . sgml-start-tag-face)))
(defun docbook-mode ()
(sgml-mode)
)
;;
;;END SGML STUFF
;;
;;##################################################################
(global-set-key [(f1)] (lambda () (interactive) (manual-
entry (current-word))))
---------------------end cut-------------------------------

View File

@ -0,0 +1,19 @@
Warning: This no longer works with the current version of RHL. Please refer to Xresources.txt.
In your .Xdefaults file, you'll find entries for the display
properties of Emacs. If you wish, you can substitute those entries
with the following, which will give you a larger Emacs window, and
change the default color of the background, cursor and pointer.
----------------begin cut-------------------------
emacs*Background: Wheat
emacs*Foreground: Black
emacs*pointerColor: Blue
emacs*cursorColor: Red
emacs*bitmapIcon: on
emacs*font: fixed
emacs.geometry: 100x45
---------------end cut---------------------------

View File

@ -0,0 +1,60 @@
#!/usr/bin/perl
#
#
# convert image to Encapsulated Postscript, with possible scaling of width
#
# Downloaded from http://people.redhat.com/dcm/
#
# Modified by tfox for Red Hat Documentation - default to width of 4
#
$width = "4";
if ($ARGV[0] =~ /^--width=(.+)$/) {
$width = $1;
shift (@ARGV);
}
#print "width =",$width,"\n";
#print "argv =",$ARGV[0],"\n";
$infile = $ARGV[0];
if (!(-e $infile)) {
print "File doesn't exist\n";
exit 1;
}
$imagesz = `identify $ARGV[0]`;
($name, $type, $size, $rest) = split / /, $imagesz, 4;
#print "split:", $name, " ", $type, " ", $size, " ", $rest, "\n";
#print "size = ",$size,"\n";
($x, $y) = split /x/, $size, 2;
($y, $rest) = split /\+/, $y, 2;
#print $x," by ",$y, "\n";
#
# if width set, we need to scale
#
if ($width != "") {
$scale = $width * (72.0/$x);
} else {
$scale = 1;
}
$scale = 72.0/$scale;
#print "scale = ",$scale,"\n";
$outfile = $infile;
$outfile =~ s/\.gif/\.png/;
print $infile," ",$outfile,"\n";
system("convert -type TrueColor $infile $outfile");

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1,63 @@
#!/usr/bin/perl
#
#
# convert image to Encapsulated Postscript, with possible scaling of width
#
# Example: img2eps --width=3 myfile.gif
# (width in inches)
#
$width = "";
if ($ARGV[0] =~ /^--width=(.+)$/) {
$width = $1;
shift (@ARGV);
}
#print "width =",$width,"\n";
#print "argv =",$ARGV[0],"\n";
$infile = $ARGV[0];
if (!(-e $infile)) {
print "File doesn't exist\n";
exit 1;
}
$imagesz = `identify $ARGV[0]`;
($name, $type, $size, $rest) = split / /, $imagesz, 4;
#print "split:", $name, " ", $type, " ", $size, " ", $rest, "\n";
#print "size = ",$size,"\n";
($x, $y) = split /x/, $size, 2;
($y, $rest) = split /\+/, $y, 2;
#print $x," by ",$y, "\n";
#
# if width set, we need to scale
#
if ($width != "") {
$scale = $width * (72.0/$x);
} else {
$scale = 1;
}
$scale = 72.0/$scale;
#print "scale = ",$scale,"\n";
$tmpfile = $infile;
$tmpfile =~ s/\.gif/\.ept/;
$outfile = $infile;
$outfile =~ s/\.gif/\.eps/;
#print $infile," ",$outfile,"\n";
system("convert $infile tmpimage.pgm");
#system("giftopnm $infile | ppmtopgm > tmpimage.pgm");
system("convert -density $scale tmpimage.pgm $tmpfile");
system("mv -f $tmpfile $outfile");
system("rm -f tmpimage.pgm");

View File

@ -0,0 +1,47 @@
# Based on original from Eric Bischoff <eric@caldera.de>
# Modified by Tammy Fox <tfox@redhat.com> for Red Hat Documentation
# Make sure we have an absolute path to the backend and stylesheet, as
# jw doesn't like relative paths...
STUFFPATH=`dirname $0`
if [ -n "${STUFFPATH##/*}" ]
then
STUFFPATH=$PWD/$STUFFPATH
fi
# Generate the index, fixing up the problem of bogus empty closing tags (</>)...
FINAL_INDEX=generated-index.sgml
INDEXFILE=INDEX$$
# Convert to HTML, generating the HTML.index file that we'll use to
# create an SGML index...
echo Running $SGML_JADE...
$SGML_JADE -t sgml -V html-index -i html -d $STUFFPATH/stylesheets/redhat.dsl#html ../${SGML_FILE_NAME}.sgml
# Generate the index, fixing up the problem of bogus empty closing tags (</>)...
echo Indexing...
if [ $LANG = "it_IT" ]; then
SYMBOL="-s Simboli"
elif [ $LANG = "es_ES" ]; then
SYMBOL="-s Símbolos"
else
SYMBOL=""
fi
perl /usr/bin/collateindex.pl -g $SYMBOL -i generated-index -o ../$FINAL_INDEX HTML.index
# Not sure if these are still needed; when we first tried collateindex;
# it threw "</>" in the generated index in certain cases...
cat ../$FINAL_INDEX | sed 's,^[ ]*</>[ ]*$,,' > ../$INDEXFILE
mv -f ../$INDEXFILE ../$FINAL_INDEX
echo Rerunning $SGML_JADE...
$SGML_JADE -t sgml -i html -d $STUFFPATH/stylesheets/redhat.dsl#html ../${SGML_FILE_NAME}.sgml

Some files were not shown because too many files have changed in this diff Show More