| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or |
| more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information regarding |
| copyright ownership. The ASF licenses this file to you under the |
| Apache License, Version 2.0 (the "License"); you may not use |
| this file except in compliance with the License. You may obtain |
| a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 Unless required by |
| applicable law or agreed to in writing, software distributed |
| under the License is distributed on an "AS IS" BASIS, WITHOUT |
| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions |
| and limitations under the License. |
| --> |
| |
| <document> |
| |
| <properties> |
| <title>MIME Type Component</title> |
| <author email="epugh@upstate.com">Eric Pugh</author> |
| </properties> |
| |
| <body> |
| |
| <section name="Overview"> |
| <p> |
| The MimeType Service maintains mappings between MIME types and |
| the corresponding file name extensions (extremely useful in |
| conjunction with file upload), and between locales and character |
| encodings. The mappings are dependent upon the implementation, |
| and are typically defined in properties or files located in |
| user's home directory, Java home directory, or the current |
| class's JAR. |
| </p> |
| |
| <p> |
| It is written |
| for use in Turbine but it can be used in any container compatible |
| with Avalon's ECM container. |
| </p> |
| </section> |
| |
| <section name="Configuration"> |
| <subsection name="Role Configuration"> |
| <source><![CDATA[ |
| <role |
| name="org.apache.fulcrum.mimetype.MimeTypeService" |
| shorthand="MimeTypeService" |
| default-class="org.apache.fulcrum.mimetype.DefaultMimeTypeService"/> |
| ]]></source> |
| </subsection> |
| |
| <subsection name="Component Configuration"> |
| <table> |
| <tr> |
| <th>Item</th> |
| <th>Datatype</th> |
| <th>Cardinality</th> |
| <th>Description</th> |
| </tr> |
| <tr> |
| <td>@mimetypes</td> |
| <td>String</td> |
| <td>[0|1]</td> |
| <td> |
| The path to a file containing mime-type to file extension mappings. |
| The format of the file is the same as for the Apache HTTPD server. |
| It is explained below. |
| </td> |
| </tr> |
| <tr> |
| <td>@charsets</td> |
| <td>String</td> |
| <td>[0|1]</td> |
| <td> |
| The path to a file containing locale to charset mappings. |
| The format of the file is explained below. |
| </td> |
| </tr> |
| </table> |
| </subsection> |
| |
| <subsection name="Component Configuration Example"> |
| <source><![CDATA[ |
| <MimeTypeService |
| mimetypes="WEB-INF/conf/mime.types" |
| charsets="WEB-INF/conf/charsets.properties" /> |
| ]]></source> |
| </subsection> |
| |
| </section> |
| |
| <section name="Usage"> |
| |
| <p> |
| The default RunData implementation uses the MimeType Service internally |
| when resolving the character encoding of the servlet response. In addition, |
| applications can use it for customized encoding and content type resolving. |
| </p> |
| |
| <p> |
| The mappings between locales and the corresponding character encodings |
| are specified using the Java property file syntax, where the locale |
| specification is the key of the property key and the charset is the value |
| of the property. The locale specification consists of three parts: |
| </p> |
| |
| <source><![CDATA[ |
| <lang>_<country>_<variant> |
| ]]></source> |
| |
| <p> |
| The variant can be whatever is appropriate for the application, like a |
| markup language specification, a browser specification, etc. The service |
| looks for charsets using the following search order: |
| </p> |
| |
| <source><![CDATA[ |
| <lang>_<country>_<variant>=<charset> |
| _<country>_<variant>=<charset> |
| <lang>__<variant>=<charset> |
| __<variant>=<charset> |
| <lang>_<country>=<charset> |
| _<country>=<charset> |
| <lang>=<charset> |
| ]]></source> |
| |
| <p> |
| The service contains defaults for several language mappings and more |
| specific ones can be specified in an optional property file, e.g. |
| __wml=UTF-8. The name of the property file can be given with a service |
| property named "charsets". |
| The service caches results of the search, which should guarantee good |
| performance. |
| </p> |
| |
| <p> |
| The mappings between MIME types and the corresponding file name |
| extensions are specified using the same syntax as the mime.types file |
| of the Apache Server, i.e.: |
| </p> |
| |
| <source><![CDATA[ |
| <mimetype> <ext1> <ext2>... |
| ]]></source> |
| |
| <p> |
| The service contains defaults for most common MIME types, like |
| text/plain, text/html, text/x-html, text/vnd.wap.wml, image/gif and |
| image/jpeg. More specific ones can be specified in an optional MIME types |
| file. The name of the MIME types file can be given with a service property |
| named "mimetypes". |
| </p> |
| |
| </section> |
| |
| </body> |
| </document> |