Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
HTTPCLIENT-866: added script to convert custom annotations to jcip-an…
…notations

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@807758 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
ok2c committed Aug 25, 2009
1 parent 33de23c commit 957dcad
Showing 1 changed file with 74 additions and 0 deletions.
74 changes: 74 additions & 0 deletions jcip-annotations.py
@@ -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('.')

0 comments on commit 957dcad

Please sign in to comment.