##
##
##   Copyright 2005 The Apache Software Foundation
##
##   Licensed 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$ $Date$
##

maven.compile.source=1.4
maven.compile.target=1.4

maven.multiproject.type=plugin

geronimo_version=1.1.1

# set eclipse project name (used in eclipse plugin V1.11 onwards)
maven.eclipse.project.name=${geronimo.maven.eclipse.plugins.project.prefix}${pom.artifactId}

