-doing the jsp2.0 with the callout example from the sample website. for one, it seems to help avoid some errors i was seeing earlier with classcastexceptions (no clear understanding of why they were happening, but whatever). and it's a nicer example - the jsp is well formed xml and emits well formed xml. good learning experience for catching up with the latest of the jstl nonsense.

- cleaning up build procedure for the sample website - still not perfect, but better.
- removing default value for company footer for the xsd - i'll revisit how to set default values on dynamic callout types some other time.



git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3984 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Ariel Backenroth
2006-09-30 19:54:30 +00:00
parent a985ba7723
commit b1e5b3dfac
8 changed files with 240 additions and 201 deletions

View File

@@ -67,7 +67,7 @@
<from-email-address>alfresco@alfresco.org</from-email-address> <from-email-address>alfresco@alfresco.org</from-email-address>
<!-- WCM domain and port for virtualisation server --> <!-- WCM domain and port for virtualisation server -->
<wcm-domain>alfresco.dyndns.org</wcm-domain> <wcm-domain>localdomain.lan</wcm-domain>
<wcm-port>8180</wcm-port> <wcm-port>8180</wcm-port>
</client> </client>
</config> </config>

View File

@@ -104,15 +104,29 @@
</target> </target>
<target name="sample-website" depends="init"> <target name="sample-website" depends="init">
<mkdir dir="${dir.build}/sample-website/alfresco"/>
<copy todir="${dir.build}/sample-website/alfresco">
<fileset dir="source/test-resources/websites/alfresco" excludes="**/.svn"/>
</copy>
<javac srcdir="source/test-resources/websites/alfresco/ROOT/WEB-INF/classes" <javac srcdir="source/test-resources/websites/alfresco/ROOT/WEB-INF/classes"
destdir="${dir.build}/sample-website/alfresco/ROOT/WEB-INF/classes"
deprecation="on" debug="on" target="1.5" source="1.5"
classpathref="classpath.compile"/> classpathref="classpath.compile"/>
<mkdir dir="source/test-resources/websites/alfresco/ROOT/WEB-INF/lib"/> <mkdir dir="${dir.build}/sample-website/alfresco/ROOT/WEB-INF/lib"/>
<jar basedir="source/test-resources/websites/alfresco/ROOT/WEB-INF/classes" <jar basedir="${dir.build}/sample-website/alfresco/ROOT/WEB-INF/classes"
destfile="source/test-resources/websites/alfresco/ROOT/WEB-INF/lib/alfresco-sample-website.jar" destfile="${dir.build}/sample-website/alfresco/ROOT/WEB-INF/lib/alfresco-sample-website.jar"
includes="**/*.class"/> includes="**/*.class"/>
<delete>
<fileset dir="${dir.build}/sample-website/alfresco/ROOT/WEB-INF/classes" includes="**/*.class"/>
</delete>
<copy todir="${dir.build}/sample-website/alfresco/ROOT/WEB-INF/lib">
<fileset dir="${dir.common.lib}">
<include name="standard.jar"/>
<include name="jstl.jar"/>
</fileset>
</copy>
<mkdir dir="${dir.dist}"/> <mkdir dir="${dir.dist}"/>
<zip destfile="${dir.dist}/alfresco-sample-website.zip" <zip destfile="${dir.dist}/alfresco-sample-website.zip"
basedir="source/test-resources/websites/alfresco/" basedir="${dir.build}/sample-website/alfresco"/>
excludes="**/.svn"/>
</target> </target>
</project> </project>

View File

@@ -18,6 +18,7 @@ package org.alfresco.web.pr;
import javax.servlet.*; import javax.servlet.*;
import javax.servlet.http.*; import javax.servlet.http.*;
import javax.servlet.jsp.PageContext;
import java.io.*; import java.io.*;
import java.util.*; import java.util.*;
import org.alfresco.jndi.*; import org.alfresco.jndi.*;
@@ -29,12 +30,10 @@ import java.text.*;
public class Util public class Util
{ {
public static List<PressReleaseBean> getPressReleases(final HttpServletRequest request, public static List<PressReleaseBean> getPressReleases(final PageContext pageContext)
final ServletContext servletContext)
throws Exception throws Exception
{ {
final Map<String, Document> entries = Util.loadXMLDocuments(request, final Map<String, Document> entries = Util.loadXMLDocuments(pageContext,
servletContext,
"/media/releases/content", "/media/releases/content",
"alfresco:press-release"); "alfresco:press-release");
final List<PressReleaseBean> result = new ArrayList<PressReleaseBean>(entries.size()); final List<PressReleaseBean> result = new ArrayList<PressReleaseBean>(entries.size());
@@ -56,12 +55,10 @@ public class Util
return result; return result;
} }
public static List<CompanyFooterBean> getCompanyFooters(final HttpServletRequest request, public static List<CompanyFooterBean> getCompanyFooters(final PageContext pageContext)
final ServletContext servletContext)
throws Exception throws Exception
{ {
final Map<String, Document> entries = Util.loadXMLDocuments(request, final Map<String, Document> entries = Util.loadXMLDocuments(pageContext,
servletContext,
"/media/releases/content/company_footers", "/media/releases/content/company_footers",
"alfresco:company-footer"); "alfresco:company-footer");
final List<CompanyFooterBean> result = new ArrayList<CompanyFooterBean>(entries.size()); final List<CompanyFooterBean> result = new ArrayList<CompanyFooterBean>(entries.size());
@@ -77,8 +74,7 @@ public class Util
return result; return result;
} }
private static Map<String, Document> loadXMLDocuments(final HttpServletRequest request, private static Map<String, Document> loadXMLDocuments(final PageContext pageContext,
final ServletContext servletContext,
final String path, final String path,
final String documentElementNodeName) final String documentElementNodeName)
throws Exception throws Exception
@@ -90,33 +86,31 @@ public class Util
// The real_path will look somethign like this: // The real_path will look somethign like this:
// /alfresco.avm/avm.alfresco.localhost/$-1$alfreco-guest-main:/appBase/avm_webapps/my_webapp // /alfresco.avm/avm.alfresco.localhost/$-1$alfreco-guest-main:/appBase/avm_webapps/my_webapp
// final String realPath = pageContext.getServletContext().getRealPath(path);
String real_path = servletContext.getRealPath(path);
// The avm_path to the root of the context will look something like this: // The avm_path to the root of the context will look something like this:
// alfreco-guest-main:/appBase/avm_webapps/my_webapp // alfreco-guest-main:/appBase/avm_webapps/my_webapp
// String avmPath = realPath.substring(realPath.indexOf('$', realPath.indexOf('$') + 1) + 1);
String avm_path = real_path.substring(real_path.indexOf('$', real_path.indexOf('$') + 1) + 1); avmPath = avmPath.replace('\\','/');
avm_path = avm_path.replace('\\','/');
final AVMRemote avm_remote = AVMFileDirContext.getAVMRemote(); final AVMRemote avm_remote = AVMFileDirContext.getAVMRemote();
final Map<String, AVMNodeDescriptor> entries = avm_remote.getDirectoryListing(-1, avm_path); final Map<String, AVMNodeDescriptor> entries = avm_remote.getDirectoryListing(-1, avmPath);
Map<String, Document> result = new HashMap<String, Document>(); Map<String, Document> result = new HashMap<String, Document>();
for (Map.Entry<String, AVMNodeDescriptor> entry : entries.entrySet() ) for (Map.Entry<String, AVMNodeDescriptor> entry : entries.entrySet() )
{ {
final String entry_name = entry.getKey(); final String entryName = entry.getKey();
AVMNodeDescriptor entry_node = entry.getValue(); AVMNodeDescriptor entryNode = entry.getValue();
if (entry_node.isFile()) if (entryNode.isFile())
{ {
final InputStream istream = final InputStream istream =
new AVMRemoteInputStream(avm_remote.getInputHandle(-1, avm_path + '/' + entry_name), new AVMRemoteInputStream(avm_remote.getInputHandle(-1, avmPath + '/' + entryName),
avm_remote ); avm_remote );
try try
{ {
final Document d = db.parse(istream); final Document d = db.parse(istream);
if (documentElementNodeName.equals(d.getDocumentElement().getNodeName())) if (documentElementNodeName.equals(d.getDocumentElement().getNodeName()))
result.put(entry_name, d); result.put(entryName, d);
} }
catch (Throwable t) catch (Throwable t)
{ {

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>pr</short-name>
<uri>http://www.alfresco.org/pr</uri>
<function>
<name>getPressReleases</name>
<function-class>org.alfresco.web.pr.Util</function-class>
<function-signature>java.util.List getPressReleases(javax.servlet.jsp.PageContext)</function-signature>
</function>
<function>
<name>getCompanyFooters</name>
<function-class>org.alfresco.web.pr.Util</function-class>
<function-signature>java.util.List getCompanyFooters(javax.servlet.jsp.PageContext)</function-signature>
</function>
</taglib>

View File

@@ -5,13 +5,16 @@
"http://java.sun.com/dtd/web-app_2_3.dtd"> "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app> <web-app>
<display-name>Alfresco Website</display-name> <display-name>Alfresco Website</display-name>
<description>Alfresco Website</description>
<description>Alfresco Website</description>
<!-- Faces Servlet --> <!-- Faces Servlet -->
<taglib>
<taglib-uri>http://www.alfresco.org/pr</taglib-uri>
<taglib-location>/WEB-INF/pr.tld</taglib-location>
</taglib>
<welcome-file-list> <welcome-file-list>
<welcome-file>index.jsp</welcome-file> <welcome-file>index.jsp</welcome-file>
</welcome-file-list> </welcome-file-list>
</web-app> </web-app>

View File

@@ -1,25 +1,24 @@
<jsp:directive.page language="java" contentType="text/html; charset=UTF-8"/> <jsp:root version="1.2"
xmlns:jsp="http://java.sun.com/JSP/Page"
<jsp:directive.page import="java.util.*"/> xmlns:c="http://java.sun.com/jsp/jstl/core"
<jsp:directive.page import="org.alfresco.web.pr.*"/> xmlns:pr="http://www.alfresco.org/pr">
<jsp:directive.page language="java" contentType="text/html; charset=UTF-8"/>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" <jsp:directive.page isELIgnored="false"/>
elementFormDefault="qualified"> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
<xs:simpleType name="company-footer"> elementFormDefault="qualified">
<xs:restriction base="xs:string"> <xs:simpleType name="company-footer">
<% <xs:restriction base="xs:string">
List<CompanyFooterBean> companyFooters = Util.getCompanyFooters(request, application); <c:forEach items="${pr:getCompanyFooters(pageContext)}" var="companyFooter">
for (CompanyFooterBean companyFooter : companyFooters) <jsp:element name="xs:enumeration">
{ <jsp:attribute name="value"><c:out value="${companyFooter.href}"/></jsp:attribute>
%> <jsp:body>
<xs:enumeration value="<%= companyFooter.getHref() %>"> <xs:annotation>
<xs:annotation> <xs:documentation><c:out value="${companyFooter.name}"/></xs:documentation>
<xs:documentation><%= companyFooter.getName() %></xs:documentation> </xs:annotation>
</xs:annotation> </jsp:body>
</xs:enumeration> </jsp:element>
<% </c:forEach>
} </xs:restriction>
%> </xs:simpleType>
</xs:restriction> </xs:schema>
</xs:simpleType> </jsp:root>
</xs:schema>

View File

@@ -1,145 +1,153 @@
<jsp:directive.page language="java" contentType="text/html; charset=UTF-8"/> <jsp:root version="1.2"
<jsp:directive.page import="java.text.*"/> xmlns:jsp="http://java.sun.com/JSP/Page"
<jsp:directive.page import="java.util.*"/> xmlns:c="http://java.sun.com/jsp/jstl/core"
<jsp:directive.page import="org.alfresco.web.pr.*"/> xmlns:pr="http://www.alfresco.org/pr"
xmlns:fmt="http://java.sun.com/jsp/jstl/fmt">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <jsp:output doctype-root-element="html"
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
<head> doctype-system="http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<title>Alfresco Press Releases - Open Source Content Management</title>
<meta name="description" lang="en" content="News and press releases about Alfresco's enterprise content management system and document management software." /> <jsp:directive.page language="java" contentType="text/html; charset=UTF-8"/>
<meta name="keywords" lang="en" content="open source ecms, enterprise content management system, cms, document management system, dms, documentum" /> <jsp:directive.page isELIgnored="false"/>
<link href="/assets/css/screen.css" rel="stylesheet" type="text/css" media="screen" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.nooked.com/news/feed/alfresco" /> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<style type="text/css"> <head>
#main_content .headline { <title>Alfresco Press Releases - Open Source Content Management</title>
font-size: 1.2em; <meta name="description" lang="en" content="News and press releases about Alfresco's enterprise content management system and document management software." />
border-bottom: none; <meta name="keywords" lang="en" content="open source ecms, enterprise content management system, cms, document management system, dms, documentum" />
margin-bottom: 0.25em; <link href="/assets/css/screen.css" rel="stylesheet" type="text/css" media="screen" />
} <link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.nooked.com/news/feed/alfresco" />
#main_content .date { <style type="text/css">
color: #666666; #main_content .headline {
font-size: 0.9em; font-size: 1.2em;
margin-top: 0; border-bottom: none;
margin-bottom: 0.25em; margin-bottom: 0.25em;
} }
#main_content .abstract { #main_content .date {
margin-top: 0; color: #666666;
} font-size: 0.9em;
</style> margin-top: 0;
</head> margin-bottom: 0.25em;
<body> }
<script language="JavaScript" type="text/javascript" src="/assets/js/controls.js"></script> #main_content .abstract {
<script language="JavaScript" type="text/javascript" src="/assets/js/search.js" ></script> margin-top: 0;
<div id="container"> }
<div id="masthead"> </style>
<!-- Search --> </head>
<div id="top_links"> <body>
<ul> <script language="JavaScript" type="text/javascript" src="/assets/js/controls.js"></script>
<li><a href="/accessibility/index.html">Accessibility</a> |</li> <script language="JavaScript" type="text/javascript" src="/assets/js/search.js" ></script>
<li><a href="/sitemap/index.html">Site Map</a> |</li> <div id="container">
<li><a href="/about/contact/index.html">Contact Us</a> |</li> <div id="masthead">
<li><a href="/store/index.html">Store</a> |</li> <!-- Search -->
<li><a href="/rss/?feed=all">RSS</a> <img src="/assets/images/icons/feedicon10.gif" alt="RSS" title="RSS" width="10" height="10" /></li> <div id="top_links">
</ul> <ul>
<form action="http://www.google.com/search" method="get"><br /> <li><a href="/accessibility/index.html">Accessibility</a> |</li>
<input type="hidden" name="sitesearch" value="www.alfresco.com" /> <li><a href="/sitemap/index.html">Site Map</a> |</li>
<input type="hidden" name="ie" value="UTF-8" /> <li><a href="/about/contact/index.html">Contact Us</a> |</li>
<input type="hidden" name="oe" value="UTF-8" /> <li><a href="/store/index.html">Store</a> |</li>
<input class="searchbox" type="text" size="20" value="Search..." name="query" onfocus="if (this.value == 'Search...') this.value = ''; " onblur="if (this.value == '') this.value = 'Search...';" /> <li><a href="/rss/?feed=all">RSS</a> <img src="/assets/images/icons/feedicon10.gif" alt="RSS" title="RSS" width="10" height="10" /></li>
<input class="searchbutton" type="submit" name="" value="Go" />
</form>
</div>
<!-- End Search -->
</div>
<div id="topnav">
<ul id="nav">
<li id="home"><a href="/index.html" accesskey="h" ><span>Home</span></a></li>
<li id="products"><a href="/products/index.html" accesskey="p" ><span>Products</span></a></li>
<li id="services"><a href="/services/support/index.html" accesskey="s" ><span>Services</span></a></li>
<li id="customers"><a href="/customers/index.html" accesskey="c" ><span>Customers</span></a></li>
<li id="partners"><a href="/partners/index.html" accesskey="r" ><span>Partners</span></a></li>
<li id="about"><a href="/about/index.html" accesskey="a" class="selected" ><span>About us</span></a></li>
<li id="developers"><a href="http://dev.alfresco.com/" accesskey="v" ><span>Developers</span></a></li>
<li id="blogs"><a href="http://blogs.alfresco.com/" accesskey="b" ><span>Blogs</span></a></li>
<li id="end"></li>
</ul> </ul>
</div> <form action="http://www.google.com/search" method="get"><br />
<div id="outer"> <input type="hidden" name="sitesearch" value="www.alfresco.com" />
<div id="inner"> <input type="hidden" name="ie" value="UTF-8" />
<div id="sabout"> <input type="hidden" name="oe" value="UTF-8" />
<p><a href="/about/index.html">Company</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/about/contact/index.html">Contact</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/media/releases/index.jsp">News</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/about/events/index.html">Events</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/about/people/index.html">People</a></p> <input class="searchbox" type="text" size="20" value="Search..." name="query" onfocus="if (this.value == 'Search...') this.value = ''; " onblur="if (this.value == '') this.value = 'Search...';" />
</div> <input class="searchbutton" type="submit" name="" value="Go" />
</div> </form>
</div>
<div id="content"></div>
<!-- Main Content -->
<div id="main_content">
<!-- BEGIN MAIN CONTENT -->
<h1>Alfresco Press Releases</h1>
<%
List<PressReleaseBean> pressReleases = Util.getPressReleases(request, application);
for (PressReleaseBean pr : pressReleases)
{
%>
<h2 class="headline"><a href="<%= pr.getHref() %>"><%= pr.getTitle() %></a></h2>
<p class="date"><%= DateFormat.getDateInstance(DateFormat.LONG).format(pr.getLaunchDate()) %></p><p class="abstract"><%= pr.getAbstract() %></p>
<%
}
%>
<!-- END MAIN CONTENT -->
</div>
<!-- Feature Content -->
<div id="right_content">
<div class="box_blue">
<h2>Press Release Archive</h2>
<ul>
<li><a href="/media/releases/archives/index.html">View Archived Releases</a></li>
</ul>
</div>
</div>
<div id="clear"></div>
</div>
<!--All Three End -->
<!-- Footer -->
<div id="footer">
<div id="site">
<div id="footer-logos">
<a href="http://www.mysql.com/"><img src="/assets/images/footer/mysql.gif" alt="MySQL" title="MySQL" border="0" /></a>
<a href="http://www.jboss.org"><img src="/assets/images/footer/jboss.gif" alt="JBoss Certified Partner" title="JBoss Certified Partner" border="0" width="74" height="34" /></a>
<a href="http://www.springframework.org/"><img src="/assets/images/footer/spring.gif" alt="Spring Framework" title="Spring Framework" border="0" width="67" height="34" /></a>
<a href="http://www.hibernate.org/"><img src="/assets/images/footer/hibernate.gif" alt="Hibernate" title="Hibernate" border="0" width="111" height="34" /></a>
<a href="http://tomcat.apache.org"><img src="/assets/images/footer/tomcat.gif" alt="Tomcat" title="Tomcat" border="0" width="44" height="34" /></a>
<a href="http://lucene.apache.org/"><img src="/assets/images/footer/lucene.gif" alt="Lucene" title="Lucene" border="0" width="143" height="34" /></a>
<a href="http://myfaces.apache.org/"><img src="/assets/images/footer/myfaces.gif" alt="My Faces" title="My Faces" border="0" width="37" height="34" /></a></div>
<div id="footer-links">
<p>
<a href="/index.html">Home</a> |
<a href="/legal/index.html">Legal</a> |
<a href="/privacy/index.html">Privacy</a> |
<a href="/accessibility/index.html">Accessibility</a> |
<a href="/sitemap/index.html">Site Map</a> |
<a href="/rss/?feed=all/">RSS</a>
<img src="/assets/images/icons/feedicon12.gif" alt="RSS" title="RSS" width="12" height="12" />
</p>
<p>
<a href="/about/index.html">Open Source ECMS</a> |
<a href="/products/index.html">CMS Products</a> |
<a href="/services/support/index.html">Management Services</a> |
<a href="/resources/index.html">EMS Resources</a>
</p>
<p>&copy; 2005-2006 Alfresco Software, Inc., All Rights Reserved</p>
<p><img src="/assets/images/icons/powered_by_alfresco.gif" alt="Powered by Alfresco" width="88" height="32" /></p>
</div>
</div> </div>
<div style="clear:both; padding-bottom: 10px;"></div> <!-- End Search -->
</div> </div>
<div style="clear:both; padding-bottom: 20px;"></div> <div id="topnav">
<!-- End Footer --> <ul id="nav">
</body> <li id="home"><a href="/index.html" accesskey="h" ><span>Home</span></a></li>
</html> <li id="products"><a href="/products/index.html" accesskey="p" ><span>Products</span></a></li>
<li id="services"><a href="/services/support/index.html" accesskey="s" ><span>Services</span></a></li>
<li id="customers"><a href="/customers/index.html" accesskey="c" ><span>Customers</span></a></li>
<li id="partners"><a href="/partners/index.html" accesskey="r" ><span>Partners</span></a></li>
<li id="about"><a href="/about/index.html" accesskey="a" class="selected" ><span>About us</span></a></li>
<li id="developers"><a href="http://dev.alfresco.com/" accesskey="v" ><span>Developers</span></a></li>
<li id="blogs"><a href="http://blogs.alfresco.com/" accesskey="b" ><span>Blogs</span></a></li>
<li id="end"></li>
</ul>
</div>
<div id="outer">
<div id="inner">
<div id="sabout">
<p><a href="/about/index.html">Company</a>&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;<a href="/about/contact/index.html">Contact</a>&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;<a href="/media/releases/index.jsp">News</a>&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;<a href="/about/events/index.html">Events</a>&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;<a href="/about/people/index.html">People</a></p>
</div>
</div>
</div>
<div id="content"></div>
<!-- Main Content -->
<div id="main_content">
<!-- BEGIN MAIN CONTENT -->
<h1>Alfresco Press Releases</h1>
<c:forEach items="${pr:getPressReleases(pageContext)}" var="pressRelease">
<h2 class="headline">
<jsp:element name="a">
<jsp:attribute name="href"><c:out value="${pressRelease.href}"/></jsp:attribute>
<jsp:body><c:out value="${pressRelease.title}"/></jsp:body>
</jsp:element>
</h2>
<p class="date"><fmt:formatDate value="${pressRelease.launchDate}" dateStyle="long"/></p>
<p class="abstract"><c:out value="${pressRelease.abstract}"/></p>
</c:forEach>
<!-- END MAIN CONTENT -->
</div>
<!-- Feature Content -->
<div id="right_content">
<div class="box_blue">
<h2>Press Release Archive</h2>
<ul>
<li><a href="/media/releases/archives/index.html">View Archived Releases</a></li>
</ul>
</div>
</div>
<div id="clear">&#160;</div>
</div>
<!--All Three End -->
<!-- Footer -->
<div id="footer">
<div id="site">
<div id="footer-logos">
<a href="http://www.mysql.com/"><img src="/assets/images/footer/mysql.gif" alt="MySQL" title="MySQL" border="0" /></a>
<a href="http://www.jboss.org"><img src="/assets/images/footer/jboss.gif" alt="JBoss Certified Partner" title="JBoss Certified Partner" border="0" width="74" height="34" /></a>
<a href="http://www.springframework.org/"><img src="/assets/images/footer/spring.gif" alt="Spring Framework" title="Spring Framework" border="0" width="67" height="34" /></a>
<a href="http://www.hibernate.org/"><img src="/assets/images/footer/hibernate.gif" alt="Hibernate" title="Hibernate" border="0" width="111" height="34" /></a>
<a href="http://tomcat.apache.org"><img src="/assets/images/footer/tomcat.gif" alt="Tomcat" title="Tomcat" border="0" width="44" height="34" /></a>
<a href="http://lucene.apache.org/"><img src="/assets/images/footer/lucene.gif" alt="Lucene" title="Lucene" border="0" width="143" height="34" /></a>
<a href="http://myfaces.apache.org/"><img src="/assets/images/footer/myfaces.gif" alt="My Faces" title="My Faces" border="0" width="37" height="34" /></a></div>
<div id="footer-links">
<p>
<a href="/index.html">Home</a> |
<a href="/legal/index.html">Legal</a> |
<a href="/privacy/index.html">Privacy</a> |
<a href="/accessibility/index.html">Accessibility</a> |
<a href="/sitemap/index.html">Site Map</a> |
<a href="/rss/?feed=all/">RSS</a>
<img src="/assets/images/icons/feedicon12.gif" alt="RSS" title="RSS" width="12" height="12" />
</p>
<p>
<a href="/about/index.html">Open Source ECMS</a> |
<a href="/products/index.html">CMS Products</a> |
<a href="/services/support/index.html">Management Services</a> |
<a href="/resources/index.html">EMS Resources</a>
</p>
<p>&amp;copy; 2005-2006 Alfresco Software, Inc., All Rights Reserved</p>
<p><img src="/assets/images/icons/powered_by_alfresco.gif" alt="Powered by Alfresco" width="88" height="32" /></p>
</div>
</div>
<div style="clear:both; padding-bottom: 10px;">&#160;</div>
</div>
<div style="clear:both; padding-bottom: 20px;">&#160;</div>
<!-- End Footer -->
</body>
</html>
</jsp:root>

View File

@@ -20,7 +20,7 @@
<xs:element name="abstract" type="xs:string"/> <xs:element name="abstract" type="xs:string"/>
<xs:element name="location" type="xs:string"/> <xs:element name="location" type="xs:string"/>
<xs:element name="body" type="xs:anyType" minOccurs="1" maxOccurs="unbounded"/> <xs:element name="body" type="xs:anyType" minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="include_company_footer" type="alfresco:company-footer" minOccurs="1" maxOccurs="unbounded" default="Alfresco"/> <xs:element name="include_company_footer" type="alfresco:company-footer" minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="include_media_contacts" type="xs:boolean" default="true"/> <xs:element name="include_media_contacts" type="xs:boolean" default="true"/>
<xs:element name="keywords" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="keywords" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="category" type="alfresco:category" default="Company"/> <xs:element name="category" type="alfresco:category" default="Company"/>