releasing/cbrtools/perl/ExportEnv
author Ross Qin <ross.qin@nokia.com>
Tue, 30 Nov 2010 14:05:41 +0800
changeset 713 7b7f0409fc00
parent 602 3145852acc89
permissions -rw-r--r--
merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     1
#!perl
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     2
# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     3
# All rights reserved.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     4
# This component and the accompanying materials are made available
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     5
# under the terms of the License "Eclipse Public License v1.0"
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     6
# which accompanies this distribution, and is available
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     8
# 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     9
# Initial Contributors:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    11
# 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    12
# Contributors:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    13
# 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    14
# Description:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    15
# 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    16
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    17
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    18
use strict;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    19
use FindBin;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    20
use lib "$FindBin::Bin";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    21
use Getopt::Long;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    22
use File::Path;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    23
use IniData;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    24
use RelData;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    25
use RelTransfer::Export;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    26
use CommandController;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    27
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    28
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    29
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    30
# Globals.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    31
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    32
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    33
my $verbose = 0;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    34
my $dummy = 0;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    35
my $force = 0;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    36
my $ftpResume = 0;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    37
my $iniData;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    38
my $commandController;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    39
my $envcomp;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    40
my $envver;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    41
my $examining;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    42
my $excludeSource = 0;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    43
my %failedExports;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    44
my %goodExports;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    45
my %alreadyExported;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    46
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    47
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    48
# Main
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    49
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    50
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    51
ProcessCommandLine();
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    52
ExportEnvironment();
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    53
PrintReport();
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    54
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    55
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    56
# Subs.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    57
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    58
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    59
sub ProcessCommandLine {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    60
  Getopt::Long::Configure ("bundling");
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    61
  my $help;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    62
  GetOptions("h" => \$help, "v+" => \$verbose, "f" => \$force, "r" => \$ftpResume, "x" => \$examining, "d" => \$dummy, "e" => \$excludeSource);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    63
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    64
  if ($help) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    65
    Usage(0);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    66
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    67
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    68
  $envcomp = lc($ARGV[0]);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    69
  $envver = $ARGV[1];
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    70
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    71
  unless (defined $envcomp and defined $envver and $#ARGV = -1) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    72
    print "Error: Invalid arguments\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    73
    Usage(1);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    74
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    75
  $iniData = IniData->New(undef,1);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    76
  $commandController = CommandController->New($iniData, 'ExportEnv');
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    77
  #if ftp resume option is used override value in reltools.ini
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    78
  if ($ftpResume) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    79
    $iniData->FtpServerSupportsResume(1);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    80
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    81
}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    82
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    83
sub Usage {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    84
  my $exitCode = shift;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    85
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    86
  Utils::PrintDeathMessage($exitCode, "\nUsage: exportenv [options] <component> <external_version>
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    87
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    88
options:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    89
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    90
-h  help
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    91
-f  force export overwriting if necessary
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    92
-r  use FTP reconnect and resume transfer mode
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    93
-x  confirm correct size of files on remote site rather than exporting them
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    94
-d  dummy run (don't do anything) - assumes -v
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    95
-e  exclude source
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    96
-v  verbose output (-vv very verbose)\n");
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    97
}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    98
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    99
sub ExportEnvironment {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   100
  my $relData = RelData->Open($iniData, $envcomp, $envver, $verbose);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   101
  my $env = $relData->Environment();
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   102
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   103
  my $exporter = RelTransfer::Export->New(ini_data => $iniData,
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   104
					  force => $force,
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   105
					  dummy => $dummy,
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   106
					  excludeSource => $excludeSource,
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   107
					  verbose => $verbose);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   108
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   109
  unless ($examining) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   110
    foreach my $comp (sort keys %{$env}) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   111
      my $ver = $env->{$comp};
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   112
      $exporter->CheckExportable($comp, $ver);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   113
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   114
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   115
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   116
  #do the export checking for errors
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   117
  foreach my $comp (sort keys %{$env}) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   118
    my $exported;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   119
    my $ver = $env->{$comp};
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   120
    eval {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   121
      if ($examining) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   122
        $exporter->ExamineExportedRelease($comp, $ver);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   123
      } else {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   124
        $exported = $exporter->TransferRelease($comp, $ver);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   125
      }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   126
    };
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   127
    if ($@) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   128
      print $@;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   129
      if ($@ =~ /cannot\s+connect/i) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   130
        print "\nAborting export of $envcomp $envver environment\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   131
        last;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   132
      }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   133
      my $error = $@;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   134
      chomp $error;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   135
      $error =~ s/^error: ("?$comp $ver"? )?//i;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   136
      $failedExports{$comp}->{$ver} = $error;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   137
    } else {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   138
      if ($examining || $exported) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   139
        push @{$goodExports{$comp}}, $ver;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   140
      } else {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   141
        push @{$alreadyExported{$comp}}, $ver;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   142
      }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   143
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   144
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   145
}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   146
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   147
sub PrintReport {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   148
  print "\n=========EXPORT SUMMARY==========\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   149
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   150
  my $tableData = [["Component", "Version", "status"]];
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   151
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   152
  foreach my $comp (sort keys %goodExports) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   153
    foreach my $ver (@{$goodExports{$comp}}) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   154
      push (@$tableData, [$comp, $ver, 'successfully exported']);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   155
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   156
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   157
  
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   158
  foreach my $comp (sort keys %alreadyExported) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   159
    foreach my $ver (@{$alreadyExported{$comp}}) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   160
      push (@$tableData, [$comp, $ver, 'has already been exported']);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   161
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   162
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   163
  
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   164
  if (scalar @{$tableData} > 1) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   165
    $iniData->TableFormatter->PrintTable($tableData, 1);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   166
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   167
  
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   168
  #handle failed exports
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   169
  if (keys %failedExports) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   170
    print "\n=========FAILED EXPORTS==========\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   171
    print "\nExport Failure Summary\n\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   172
    my $failureTableData = [["Component", "Version", "Failure reason"]];
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   173
    foreach my $comp (sort keys %failedExports) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   174
      foreach my $ver (sort keys %{$failedExports{$comp}}) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   175
        push (@$failureTableData, [$comp, $ver, $failedExports{$comp}->{$ver}]);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   176
      }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   177
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   178
    $iniData->TableFormatter->PrintTable($failureTableData, 1);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   179
    print "\nError: Unable to export component release successfully\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   180
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   181
  else
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   182
  {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   183
    if (keys %goodExports) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   184
      print "\nEnvironment $envcomp $envver successfully exported\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   185
    } else {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   186
      print "\nNothing to do!\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   187
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   188
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   189
}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   190
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   191
__END__
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   192
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   193
=head1 NAME
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   194
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   195
ExportEnv - Exports the environment from which a component release was made.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   196
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   197
=head1 SYNOPSIS
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   198
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   199
  exportenv [options] <component> <version>
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   200
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   201
options:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   202
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   203
  -h  help
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   204
  -f  force export overwriting if necessary
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   205
  -r  use FTP reconnect and resume transfer mode
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   206
  -v  verbose output (-vv very verbose)
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   207
  -d  dummy run (don't do anything) - assumes -v
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   208
  -e  exclude source
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   209
  -x  examine: confirm correct sizes of files on remote site rather than exporting them
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   210
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   211
=head1 DESCRIPTION
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   212
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   213
When a release is made, a description of the environment it was made from is stored with it. 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   214
C<ExportEnv> takes a component name and version number, reads the environment data for this 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   215
component and builds a list of component names and version numbers. It then encrypts these releases before sending them to the projects shared archive on a remote site.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   216
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   217
Using the C<-f> option will force releases to be exported even if they already exist on the remote site (this only applies to components existing in the users export table)
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   218
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   219
If the C<-r> option is used and the FTP connection is dropped during the upload of a release, the tools will automatically reconnect to the FTP site and resume the upload. This feature may not be supported by some FTP servers.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   220
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   221
Using C<-e> option will create a release without source. 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   222
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   223
=head1 KNOWN BUGS
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   224
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   225
None
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   226
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   227
=head1 COPYRIGHT
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   228
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   229
 Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   230
 All rights reserved.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   231
 This component and the accompanying materials are made available
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   232
 under the terms of the License "Eclipse Public License v1.0"
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   233
 which accompanies this distribution, and is available
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   234
 at the URL "http://www.eclipse.org/legal/epl-v10.html".
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   235
 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   236
 Initial Contributors:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   237
 Nokia Corporation - initial contribution.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   238
 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   239
 Contributors:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   240
 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   241
 Description:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   242
 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   243
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   244
=cut