<?xml version="1.0" encoding="UTF-8"?>
<!--
  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.
-->

<module xmlns="http://apache.org/lenya/module/1.0">
  <id>org.apache.lenya.modules.tinymce</id>
  <depends module="org.apache.lenya.modules.usecase"/>
  <depends module="org.apache.lenya.modules.resource"/>
  <depends module="org.apache.lenya.modules.editors"/>
  <package>org.apache.lenya.modules</package>
  <version>0.5.1</version>
  <name>TinyMCE Module</name>
  <lenya-version>@lenya.version@</lenya-version>
  <description>Module for the TinyMCE WYSIWYG XHTML editor. Work in
  progress.</description>
</module>
