blob: b1a86a7c06be028fc2c86ac6e7a421e2b3874825 [file] [log] [blame]
#!/bin/bash -e
#
# 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.
#
# Updates the examples archetype to match the examples module
#
# Usage: Invoke with no arguments from any working directory.
# The directory of this script. Assumes root of the maven-archetypes module.
HERE="$(dirname $0)"
# The directory of the examples-java module
EXAMPLES_ROOT="${HERE}/../../../../examples/java"
# The root of the examples archetype
ARCHETYPE_ROOT="${HERE}/src/main/resources/archetype-resources"
mkdir -p "${ARCHETYPE_ROOT}/src/main/java"
mkdir -p "${ARCHETYPE_ROOT}/src/test/java"
#
# Copy the Java subset of the examples project verbatim.
#
rsync -a --exclude cookbook --exclude complete \
"${EXAMPLES_ROOT}"/src/main/java/org/apache/beam/examples/ \
"${ARCHETYPE_ROOT}/src/main/java"
rsync -a --exclude cookbook --exclude complete --exclude '*IT.java' \
"${EXAMPLES_ROOT}"/src/test/java/org/apache/beam/examples/ \
"${ARCHETYPE_ROOT}/src/test/java"
#
# Replace 'package org.apache.beam.examples' with 'package ${package}' in all Java code
#
find "${ARCHETYPE_ROOT}/src/main/java" -name '*.java' -print0 \
| xargs -0 sed -i.bak 's/^package org\.apache\.beam\.examples/package ${package}/g'
find "${ARCHETYPE_ROOT}/src/test/java" -name '*.java' -print0 \
| xargs -0 sed -i.bak 's/^package org\.apache\.beam\.examples/package ${package}/g'
#
# Replace 'import org.apache.beam.examples.' with 'import ${package}.' in all Java code
#
find "${ARCHETYPE_ROOT}/src/main/java" -name '*.java' -print0 \
| xargs -0 sed -i.bak 's/^import org\.apache\.beam\.examples/import ${package}/g'
find "${ARCHETYPE_ROOT}/src/test/java" -name '*.java' -print0 \
| xargs -0 sed -i.bak 's/^import org\.apache\.beam\.examples/import ${package}/g'
#
# The use of -i.bak is necessary for the above to work with both GNU and BSD sed.
# Delete the files now.
#
find "${ARCHETYPE_ROOT}/src" -name '*.bak' -delete