HTTPCLIENT-866: added script to convert custom annotations to jcip-annotations
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@807758 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
33de23c102
commit
957dcad26a
|
@ -0,0 +1,74 @@
|
|||
#====================================================================
|
||||
# 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('.')
|
Loading…
Reference in New Issue