#
# 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.
#
# $Rev: 583586 $ $Date: 2007-10-10 15:29:32 -0400 (Wed, 10 Oct 2007) $
#

#
# Property "aboutText" contains blurb for feature details in the "About" 
# dialog.  Maximum 15 lines and 75 characters per line.
#
aboutText=Apache Geronimo v2.1 Server Adapter\n\
Version: ${osgi.pom.version}\n\
\n\
(c) Copyright 2003-2011 The Apache Software Foundation\n\
Visit http://www.apache.org/licenses/LICENSE-2.0.txt for additional details\n\
\n\
Visit http://geronimo.apache.org/development-tools.html\n\
\n\
This product includes software developed by the\n\
Apache Software Foundation http://www.apache.org/

#
# Property "featureImage" contains path to feature image (32x32)
#
featureImage=G-logo-32x32.gif
