75 lines
2.4 KiB
Python
75 lines
2.4 KiB
Python
#====================================================================
|
|
# 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.
|
|
# ====================================================================
|
|
#
|
|
# This software consists of voluntary contributions made by many
|
|
# individuals on behalf of the Apache Software Foundation. For more
|
|
# information on the Apache Software Foundation, please see
|
|
# <http://www.apache.org/>.
|
|
#
|
|
|
|
import os
|
|
import re
|
|
import tempfile
|
|
import shutil
|
|
|
|
ignore_pattern = re.compile('^(.svn|target|bin|classes)')
|
|
java_pattern = re.compile('^.*\.java')
|
|
annot_pattern = re.compile('import org\.apache\.http\.annotation\.')
|
|
|
|
def process_dir(dir):
|
|
files = os.listdir(dir)
|
|
for file in files:
|
|
f = os.path.join(dir, file)
|
|
if os.path.isdir(f):
|
|
if not ignore_pattern.match(file):
|
|
process_dir(f)
|
|
else:
|
|
if java_pattern.match(file):
|
|
process_source(f)
|
|
|
|
def process_source(filename):
|
|
tmp = tempfile.mkstemp()
|
|
tmpfd = tmp[0]
|
|
tmpfile = tmp[1]
|
|
try:
|
|
changed = False
|
|
dst = os.fdopen(tmpfd, 'w')
|
|
try:
|
|
src = open(filename)
|
|
try:
|
|
for line in src:
|
|
if annot_pattern.match(line):
|
|
changed = True
|
|
line = line.replace('import org.apache.http.annotation.', 'import net.jcip.annotations.')
|
|
dst.write(line)
|
|
finally:
|
|
src.close()
|
|
finally:
|
|
dst.close();
|
|
|
|
if changed:
|
|
shutil.move(tmpfile, filename)
|
|
else:
|
|
os.remove(tmpfile)
|
|
|
|
except:
|
|
os.remove(tmpfile)
|
|
|
|
process_dir('.')
|