harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Orlov" <amor...@gmail.com>
Subject Re: keyword scanning (was: Re: ITC: Contribution of java.math and javax.crypto)
Date Fri, 07 Apr 2006 11:18:26 GMT
:) Thanks for letting know this!

Thanks,
Alex Orlov.
Intel Middleware Products Division

On 4/7/06, Tim Ellison <t.p.ellison@gmail.com> wrote:
> Thanks Alex,
>
> We already have a keyword scanner[1] so we should ensure your dictionary
> words are in there.
>
> I'd rather add the scan to the automated build rather than rely upon the
> committers to remember to run it (at least one of the committers is lazy
> like that ;-) )
>
> [1]
> http://svn.apache.org/viewcvs.cgi/incubator/harmony/standard/tools/keywordscan
>
> Regards,
> Tim
>
> Alex Orlov wrote:
> > On 4/7/06, Chris Gray <chris.gray@kiffer.be> wrote:
> >> On Thursday 06 April 2006 23:59, Tim Ellison wrote:
> >>> You can run the Eclipse IDE on Classpath or Harmony(*) class libraries,
> >>> both are sufficiently well advanced to run it.
> >>>
> >>> (*) you need to use the regex code from regex-beans-math which hasn't
> >>> been merged into the build process yet
> >> I knew eclipse ran on Classpath (e.g. gcj), wasn't sure about Harmony. That's
> >> good to hear.
> >>
> >> IMO Harmony developers should be encouraged to use a Sun-free workstation
> >> whenever possible, to avoid this kind of slip-up. There should also be
> >> automatic detectors for references to sun.* or com.sun.* classes.
> >
> > Hi folks,
> >
> > BTW we use simple script to check if the sources contain the words we
> > would like to avoid. You can find it attached. The usage is pretty
> > straightforward:
> >
> >   perl check_bad_words.pl <dictionary> <directory or file>
> >
> > Also attached is dictionary file that contains "Sun" and "GPL" as two
> > sample words. You can turn on your imagination and enhance the
> > dictionary significantly. :)
> >
> > May we propose the committers to run it before committing anyuthing to SVN?
> >
> > Thanks,
> > Alex Orlov.
> > Intel Middleware Products Division
> >
> >
> >> Regards,
> >>
> >> Chris
> >>
> >> --
> >> Chris Gray        /k/ Embedded Java Solutions      BE0503765045
> >> Embedded & Mobile Java, OSGi    http://www.k-embedded-java.com/
> >> chris.gray@kiffer.be                             +32 3 216 0369
> >>
> >>
> >> ---------------------------------------------------------------------
> >> Terms of use : http://incubator.apache.org/harmony/mailing.html
> >> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> >> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> >>
> >>
> >>
> >> ------------------------------------------------------------------------
> >>
> >> #!/usr/bin/perl
> >>
> >> use File::Spec;
> >> use strict;
> >>
> >> my $ext_src = "java|c|h|cpp|hpp|j|jfl|ccode";
> >> my $ext_sup = "xml|txt|pl|sh|bat|cmd";
> >> my $ext = "(" . $ext_src . "|" . $ext_sup . ")";
> >> my $filename = "copyright|license|notice|readme";
> >> my %bad_words = ();
> >>
> >> sub readDictionary {
> >>      my ($dic) = @_;
> >>      if (-f $dic) {
> >>              open (FD_DIC, "< $dic") or die "Can't open dictionary file:
$dic\n";
> >>              while (<FD_DIC>) {
> >>                      unless (/^#/ || /^\s+$/) {
> >>                              my ($word, $area) = split(" ; ");
> >>                              chomp $area;
> >>                              my @areas = split(":", $area);
> >>                              push @{$bad_words{$word}}, @areas;
> >>                      }
> >>              }
> >>              close(FD_DIC);
> >>      } else {
> >>              die "Invalid dictionary file: $dic\n";
> >>      }
> >> }
> >>
> >> sub readDir {
> >>      my ($file) = @_;
> >>      if (-d $file) {
> >>              if (opendir(FD_DIR, $file)) {
> >>                      chdir ($file);
> >>                      foreach my $item (readdir(FD_DIR)) {
> >>                              if ($item ne '.' && $item ne '..') {
> >>                                      readDir($item);
> >>                              }
> >>                      }
> >>                      chdir ("..");
> >>                      closedir (FD_DIR);
> >>              } else {
> >>                      print "Can't open dir $file\n";
> >>              }
> >>      } elsif (-f $file) {
> >>              if ($file =~ /\.$ext$/ || $file =~ /^$filename/i) {
> >>                      &searchBadWords(&readFile($file), $file);
> >>              }
> >>      } else {
> >>              print "File or directory doesn't exist: $file\n";
> >>      }
> >> }
> >>
> >> sub searchBadWords($$) {
> >>      my ($content, $file) = @_;
> >>         my ($prev, $after, $match, $area);
> >>      my $abs_fname = File::Spec->rel2abs($file);
> >>      foreach my $word (sort keys %bad_words) {
> >>              my $checkable = 0; # false
> >>              foreach $area (@{$bad_words{$word}}) {
> >>                      if (($area eq "all") or (index($abs_fname, $area) ne -1))
{
> >>                              $checkable = 1; # true
> >>                      }
> >>              }
> >>              if ($checkable) {
> >>                      if ($content =~ m/$word/i) {
> >>                              $match = $&;
> >>                              chomp($match);
> >>                              $prev = $`;
> >>                              $after = $';
> >>                              print "File: $abs_fname\n";
> >>                              print "Bad word: $match\n";
> >>                              print "Line #" . &getLineNumber($prev) . "\n";
> >>                              print "String: " . &getString($prev, $after,
$match) . "\n";
> >>                              print "------------------------------------\n";
> >>                      }
> >>              }
> >>      }
> >>      if ($file =~ /^*\.($ext_src)/) {
> >>          if ($content =~ /[\s_]bug[\s_]*(#*)(\d+)/) {
> >>              $match = $&;
> >>              chomp($match);
> >>              $prev = $`;
> >>              $after = $';
> >>              print "File: $abs_fname\n";
> >>              print "Bug mentioning: $match\n";
> >>              print "Line #" . &getLineNumber($prev) . "\n";
> >>              print "String: " . &getString($prev, $after, $match) . "\n";
> >>              print "------------------------------------\n";
> >>          }
> >>      }
> >> }
> >>
> >> sub readFile($) {
> >>      my($file_name) = @_;
> >>      my $content = "";
> >>      if (open(FH, "< " . $file_name)) {
> >>              while (<FH>) {
> >>                      $content .= $_;
> >>              }
> >>              close FH;
> >>      } else {
> >>              printf STDERR "Can't open file $file_name\n";
> >>      }
> >>      $content;
> >> }
> >>
> >> sub getString($$$) {
> >>      my($prev, $after, $match) = @_;
> >>      my $last_p = rindex($prev, "\n");
> >>      my $first_a = index($after, "\n");
> >>      substr($prev, $last_p + 1, length($prev) - $last_p) . $match . substr($after,
0, $first_a);
> >> }
> >>
> >> sub getLineNumber($) {
> >>      my($string) = @_;
> >>      my $lnum = 1;
> >>      while ($string =~ m/\n/g) {
> >>              $lnum++;
> >>      }
> >>      $lnum;
> >> }
> >>
> >> if (scalar(@ARGV) < 2) {
> >>      print "Usage: perl check_bad_words.pl <dictionary> <directory
or file>";
> >>      exit;
> >> }
> >>
> >> &readDictionary($ARGV[0]);
> >> &readDir($ARGV[1]);
> >>
> >>
> >> ------------------------------------------------------------------------
> >>
> >> ---------------------------------------------------------------------
> >> Terms of use : http://incubator.apache.org/harmony/mailing.html
> >> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> >> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
> --
>
> Tim Ellison (t.p.ellison@gmail.com)
> IBM Java technology centre, UK.
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message