REOPENED - bug 356790: configure all projects for Unix file endings
https://bugs.eclipse.org/bugs/show_bug.cgi?id=356790
diff --git a/connector-tutorial/org.eclipse.mylyn.xml1.core/.settings/org.eclipse.core.runtime.prefs b/connector-tutorial/org.eclipse.mylyn.xml1.core/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/connector-tutorial/org.eclipse.mylyn.xml1.core/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/connector-tutorial/org.eclipse.mylyn.xml1.ui/.settings/org.eclipse.core.runtime.prefs b/connector-tutorial/org.eclipse.mylyn.xml1.ui/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/connector-tutorial/org.eclipse.mylyn.xml1.ui/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/connector-tutorial/org.eclipse.mylyn.xml2.core/.settings/org.eclipse.core.runtime.prefs b/connector-tutorial/org.eclipse.mylyn.xml2.core/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/connector-tutorial/org.eclipse.mylyn.xml2.core/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/connector-tutorial/org.eclipse.mylyn.xml2.ui/.settings/org.eclipse.core.runtime.prefs b/connector-tutorial/org.eclipse.mylyn.xml2.ui/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/connector-tutorial/org.eclipse.mylyn.xml2.ui/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/connector-tutorial/org.eclipse.mylyn.xml3.core/.settings/org.eclipse.core.runtime.prefs b/connector-tutorial/org.eclipse.mylyn.xml3.core/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/connector-tutorial/org.eclipse.mylyn.xml3.core/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/connector-tutorial/org.eclipse.mylyn.xml3.ui/.settings/org.eclipse.core.runtime.prefs b/connector-tutorial/org.eclipse.mylyn.xml3.ui/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/connector-tutorial/org.eclipse.mylyn.xml3.ui/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.examples.bugzilla/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.examples.bugzilla/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.examples.bugzilla/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.examples.hudson.standalone/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.examples.hudson.standalone/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.examples.hudson.standalone/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.examples.monitor.study/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.examples.monitor.study/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.examples.monitor.study/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.examples.monitor.study/META-INF/MANIFEST.MF b/org.eclipse.mylyn.examples.monitor.study/META-INF/MANIFEST.MF
index fdf66b4..5297ea1 100644
--- a/org.eclipse.mylyn.examples.monitor.study/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.examples.monitor.study/META-INF/MANIFEST.MF
@@ -1,25 +1,25 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Mylyn User Monitor (Incubation)
-Bundle-SymbolicName: org.eclipse.mylyn.monitor.study;singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Activator: org.eclipse.mylyn.examples.monitor.study.MylynUserStudyExamplePlugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.mylyn.context.core,
- org.eclipse.core.resources,
- org.eclipse.jdt.ui,
- org.eclipse.pde.ui,
- org.eclipse.ui.editors,
- org.eclipse.jdt.core,
- org.eclipse.jface.text,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.mylyn.monitor.usage,
- org.eclipse.mylyn.monitor.ui,
- org.eclipse.mylyn.monitor.core,
- org.eclipse.mylyn.commons.net,
- org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)"
-Eclipse-AutoStart: true
-Export-Package: org.eclipse.mylyn.examples.monitor.study
-Bundle-Vendor: Eclipse Mylyn
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Mylyn User Monitor (Incubation)
+Bundle-SymbolicName: org.eclipse.mylyn.monitor.study;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Activator: org.eclipse.mylyn.examples.monitor.study.MylynUserStudyExamplePlugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.mylyn.context.core,
+ org.eclipse.core.resources,
+ org.eclipse.jdt.ui,
+ org.eclipse.pde.ui,
+ org.eclipse.ui.editors,
+ org.eclipse.jdt.core,
+ org.eclipse.jface.text,
+ org.eclipse.ui.workbench.texteditor,
+ org.eclipse.mylyn.monitor.usage,
+ org.eclipse.mylyn.monitor.ui,
+ org.eclipse.mylyn.monitor.core,
+ org.eclipse.mylyn.commons.net,
+ org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)"
+Eclipse-AutoStart: true
+Export-Package: org.eclipse.mylyn.examples.monitor.study
+Bundle-Vendor: Eclipse Mylyn
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/org.eclipse.mylyn.examples.monitor.study/scripts/getUID.cgi b/org.eclipse.mylyn.examples.monitor.study/scripts/getUID.cgi
index b70a409..b2ac4ee 100644
--- a/org.eclipse.mylyn.examples.monitor.study/scripts/getUID.cgi
+++ b/org.eclipse.mylyn.examples.monitor.study/scripts/getUID.cgi
@@ -1,526 +1,526 @@
-#!/usr/bin/perl -wT
-
-use Fcntl ':flock';
-
-# START USER EDITS
-
-# absolute path to folder files will be uploaded to.
-# WINDOWS users, your path would like something like : images\\uploads
-# UNIX users, your path would like something like : /home/www/images/uploads
-# do not end the path with any slashes and if you're on a UNIX serv, make sure
-# you CHMOD each folder in the path to 777
-
-$lockfileName = ".lock";
-$logFile = "/.../uploadLog.txt";
-$uidMapFile = "/.../mylarUidMap.txt";
-$nextUidFile = "/.../mylarNextUid.txt";
-$allConsentedUsers = "/.../mylarUsers.txt";
-
-# if you would like to be notified of uploads, enter your email address
-# between the SINGLE quotes. leave this blank if you would not like to be notified
-#$notify = '';
-
-# UNIX users, if you entered a value for $notify, you must also enter your
-# server's sendmail path. It usually looks something like : /usr/sbin/sendmail
-#$send_mail_path = "";
-
-# WINDOWS users, if you entered a value for $notify, you must also enter your
-# server's SMTP path. It usually looks something like : mail.servername.com
-#$smtp_path = "";
-
-
-####################################################################
-# END USER EDITS
-####################################################################
-
-$OS = $^O; # operating system name
-if($OS =~ /darwin/i) { $isUNIX = 1; }
-elsif($OS =~ /win/i) { $isWIN = 1; }
-else {$isUNIX = 1;}
-
-if($isWIN){ $S{S} = "\\\\"; }
-else { $S{S} = "/";} # seperator used in paths
-
-use CGI; # load the CGI.pm module
-my $GET = new CGI; # create a new object
-my @VAL = $GET->param; #get all form field names
-
-my($query_string) = "";
-$query_string = $ENV{'QUERY_STRING'};
-
-my($firstName);
-my($lastName);
-my($email_address);
-my($job_function);
-my($company_size);
-my($company_buisness);
-my($anonymousStr);
-my($uid) = -1;
-my($anonymous) = 0;
-my($first);
-my($second);
-my($third);
-my($fourth);
-my($fifth);
-my($sixth);
-my($seventh);
-
-if($query_string =~ m/^(.+)\&(.+)\&(.+)\&(.+)\&(.+)\&(.+)\&(.+)$/)
-{
- $first = $1;
- $second = $2;
- $third = $3;
- $fourth = $4;
- $fifth = $5;
- $sixth = $6;
- $seventh = $7;
-}
-else
-{
- # error, query string is wrong
- print "Content-type: text/plain", "\n";
- print "Status: 501 Not Implemented", "\n\n";
- exit;
-}
-
-if($first =~ m/^firstName\=(.+)$/){
- $firstName = $1;
-}
-elsif($second =~ m/^firstName\=(.+)$/){
- $firstName = $1;
-}
-elsif ($third =~ m/^firstName\=(.+)$/){
- $firstName = $1;
-}
-elsif ($fourth =~ m/^firstName\=(.+)$/){
- $firstName = $1;
-}
-elsif ($fifth =~ m/^firstName\=(.+)$/){
- $firstName = $1;
-}
-elsif ($sixth =~ m/^firstName\=(.+)$/){
- $firstName = $1;
-}
-elsif ($seventh =~ m/^firstName\=(.+)$/){
- $firstName = $1;
-}
-
-if($first =~ m/^lastName\=(.+)$/){
- $lastName = $1;
-}
-elsif($second =~ m/^lastName\=(.+)$/){
- $lastName = $1;
-}
-elsif ($third =~ m/^lastName\=(.+)$/){
- $lastName = $1;
-}
-elsif ($fourth =~ m/^lastName\=(.+)$/){
- $lastName = $1;
-}
-elsif ($fifth =~ m/^lastName\=(.+)$/){
- $lastName = $1;
-}
-elsif ($sixth =~ m/^lastName\=(.+)$/){
- $lastName = $1;
-}
-elsif ($seventh =~ m/^lastName\=(.+)$/){
- $lastName = $1;
-}
-
-if($first =~ m/^email\=(.+)$/){
- $email_address = $1;
-}
-elsif($second =~ m/^email\=(.+)$/){
- $email_address = $1;
-}
-elsif ($third =~ m/^email\=(.+)$/){
- $email_address = $1;
-}
-elsif ($fourth =~ m/^email\=(.+)$/){
- $email_address= $1;
-}
-elsif ($fifth =~ m/^email\=(.+)$/){
- $email_address= $1;
-}
-elsif ($sixth =~ m/^email\=(.+)$/){
- $email_address = $1;
-}
-elsif ($seventh =~ m/^email\=(.+)$/){
- $email_address= $1;
-}
-
-if($first =~ m/^jobFunction\=(.+)$/){
- $job_function = $1;
-}
-elsif($second =~ m/^jobFunction\=(.+)$/){
- $job_function = $1;
-}
-elsif ($third =~ m/^jobFunction\=(.+)$/){
- $job_function = $1;
-}
-elsif ($fourth =~ m/^jobFunction\=(.+)$/){
- $job_function= $1;
-}
-elsif ($fifth =~ m/^jobFunction\=(.+)$/){
- $job_function = $1;
-}
-elsif ($sixth =~ m/^jobFunction\=(.+)$/){
- $job_function = $1;
-}
-elsif ($seventh =~ m/^jobFunction\=(.+)$/){
- $job_function = $1;
-}
-
-if($first =~ m/^companySize\=(.+)$/){
- $company_size = $1;
-}
-elsif($second =~ m/^companySize\=(.+)$/){
- $company_size = $1;
-}
-elsif ($third =~ m/^companySize\=(.+)$/){
- $company_size = $1;
-}
-elsif ($fourth =~ m/^companySize\=(.+)$/){
- $company_size = $1;
-}
-elsif ($fifth =~ m/^companySize\=(.+)$/){
- $company_size = $1;
-}
-elsif ($sixth =~ m/^companySize\=(.+)$/){
- $company_size = $1;
-}
-elsif ($seventh =~ m/^companySize\=(.+)$/){
- $company_size = $1;
-}
-
-if($first =~ m/^companyBuisness\=(.+)$/){
- $company_buisness = $1;
-}
-elsif($second =~ m/^companyBuisness\=(.+)$/){
- $company_buisness = $1;
-}
-elsif ($third =~ m/^companyBuisness\=(.+)$/){
- $company_buisness = $1;
-}
-elsif ($fourth =~ m/^companyBuisness\=(.+)$/){
- $company_buisness = $1;
-}
-elsif ($fifth =~ m/^companyBuisness\=(.+)$/){
- $company_buisness = $1;
-}
-elsif ($sixth =~ m/^companyBuisness\=(.+)$/){
- $company_buisness = $1;
-}
-elsif ($seventh =~ m/^companyBuisness\=(.+)$/){
- $company_buisness = $1;
-}
-
-
-if($first =~ m/^anonymous\=(.+)$/){
- $anonymousStr = $1;
-}
-elsif($second =~ m/^anonymous\=(.+)$/){
- $anonymousStr = $1;
-}
-elsif ($third =~ m/^anonymous\=(.+)$/){
- $anonymousStr = $1;
-}
-elsif ($fourth =~ m/^anonymous\=(.+)$/){
- $anonymousStr = $1;
-}
-elsif ($fifth =~ m/^anonymous\=(.+)$/){
- $anonymousStr = $1;
-}
-elsif ($sixth =~ m/^anonymous\=(.+)$/){
- $anonymousStr = $1;
-}
-elsif ($seventh =~ m/^anonymous\=(.+)$/){
- $anonymousStr = $1;
-}
-
-if ($anonymousStr =~ "true") {
- $anonymous = 1;
-}
-
-open(USERS, "+<$allConsentedUsers ") || die "Can't open Log File: $!\n";
-seek USERS, 0, 2;
-print USERS "$firstName\t$lastName\t$email_address\t$job_function\t$company_size\t$company_buisness\n";
-close USERS;
-
-if($anonymous != 1){
- # give them the same id as before
- my($old) = &checkExistance($firstName, $lastName, $email_address);
- if($old == -1){
- $uid = &getNewUID($firstName, $lastName, $email_address);
- }
- else{
- $uid = $old;
- }
-}
-else
-{
- $uid = &getNewUID("anonymous", "anonymous", "anonymous");
-}
-
-if($uid != -1)
-{
- print "Content-type: text/plain", "\n";
- print "Status: 200 OK", "\n\n";
- print "UID: $uid" . "\n";
- exit;
-}
-else
-{
- print "Content-type: text/plain", "\n";
- print "Status: 501 Not Implemented", "\n\n";
- print "COULD NOT GET UID" . "\n";
- exit;
-}
-
-
-####################################################################
-
-####################################################################
-
-sub send_mail {
- my ($from_email, $from_name, $to_email, $to_name, $subject, $message ) = @_;
-
- if(open(MAIL, "|$CONFIG{mailprogram} -t")) {
- print MAIL "From: $from_email ($from_name)\n";
- print MAIL "To: $to_email ($to_name)\n";
- print MAIL "Subject: $subject\n";
- print MAIL "$message\n\nSubmitter's IP Address : $ENV{REMOTE_ADDR}";
- close MAIL;
- return(1);
- } else {
- return;
- }
-}
-
-####################################################################
-
-####################################################################
-
-sub send_mail_NT {
-
- my ($from_email, $from_name, $to_email, $to_name, $subject, $message ) = @_;
-
- my ($SMTP_SERVER, $WEB_SERVER, $status, $err_message);
- use Socket;
- $SMTP_SERVER = "$CONFIG{smtppath}";
-
- # correct format for "\n"
- local($CRLF) = "\015\012";
- local($SMTP_SERVER_PORT) = 25;
- local($AF_INET) = ($] > 5 ? AF_INET : 2);
- local($SOCK_STREAM) = ($] > 5 ? SOCK_STREAM : 1);
-# local(@bad_addresses) = ();
- $, = ', ';
- $" = ', ';
-
- $WEB_SERVER = "$CONFIG{smtppath}\n";
- chop ($WEB_SERVER);
-
- local($local_address) = (gethostbyname($WEB_SERVER))[4];
- local($local_socket_address) = pack('S n a4 x8', $AF_INET, 0, $local_address);
-
- local($server_address) = (gethostbyname($SMTP_SERVER))[4];
- local($server_socket_address) = pack('S n a4 x8', $AF_INET, $SMTP_SERVER_PORT, $server_address);
-
- # Translate protocol name to corresponding number
- local($protocol) = (getprotobyname('tcp'))[2];
-
- # Make the socket filehandle
- if (!socket(SMTP, $AF_INET, $SOCK_STREAM, $protocol)) {
- return;
- }
-
- # Give the socket an address
- bind(SMTP, $local_socket_address);
-
- # Connect to the server
- if (!(connect(SMTP, $server_socket_address))) {
- return;
- }
-
- # Set the socket to be line buffered
- local($old_selected) = select(SMTP);
- $| = 1;
- select($old_selected);
-
- # Set regex to handle multiple line strings
- $* = 1;
-
- # Read first response from server (wait for .75 seconds first)
- select(undef, undef, undef, .75);
- sysread(SMTP, $_, 1024);
- #print "<P>1:$_";
-
- print SMTP "HELO $WEB_SERVER$CRLF";
- sysread(SMTP, $_, 1024);
- #print "<P>2:$_";
-
- while (/(^|(\r?\n))[^0-9]*((\d\d\d).*)$/g) { $status = $4; $err_message = $3}
- if ($status != 250) {
- return;
- }
-
- print SMTP "MAIL FROM:<$from_email>$CRLF";
-
- sysread(SMTP, $_, 1024);
- #print "<P>3:$_";
- if (!/[^0-9]*250/) {
- return;
- }
-
- # Tell the server where we're sending to
- print SMTP "RCPT TO:<$to_email>$CRLF";
- sysread(SMTP, $_, 1024);
- #print "<P>4:$_";
- /[^0-9]*(\d\d\d)/;
-
- # Give the server the message header
- print SMTP "DATA$CRLF";
- sysread(SMTP, $_, 1024);
- #print "<P>5:$_";
- if (!/[^0-9]*354/) {
- return;
- }
-
- $message =~ s/\n/$CRLF/ig;
-
- print SMTP qq~From: $from_email ($from_name)$CRLF~;
- print SMTP qq~To: $to_email ($to_name)$CRLF~;
-# if($cc){
-# print SMTP "CC: $cc ($cc_name)\n";
-# }
- print SMTP qq~Subject: $subject$CRLF$CRLF~;
- print SMTP qq~$message~;
-
- print SMTP "$CRLF.$CRLF";
- sysread(SMTP, $_, 1024);
- #print "<P>6:$_";
- if (!/[^0-9]*250/) {
- return;
- } else {
- return(1);
- }
-
- if (!shutdown(SMTP, 2)) {
- return;
- }
-}
-
-####################################################################
-
-####################################################################
-
-sub check_email {
- my($fe_email) = $_[0];
- if($fe_email) {
- if(($fe_email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(\.$)/) ||
- ($fe_email !~ /^.+@\[?(\w|[-.])+\.[a-zA-Z]{2,3}|[0-9]{1,3}\]?$/)) {
- return;
- } else { return(1) }
- } else {
- return;
- }
-}
-####################################################################
-
-####################################################################
-
-sub getNewUID {
- my($firstName, $lastName, $email_address) = @_;
-
- open(LOCKFILE, $lockfileName);
- flock(LOCKFILE, LOCK_EX);
-
- open(NEXTUID, "<$nextUidFile") || die "Can't open Log File: $!\n";
- my($uid) = -1;
- my(@lines) = <NEXTUID>;
- my($line) = "";
- foreach $line (@lines)
- {
- if($line =~ m/^(\d+)$/)
- {
- $uid = $1;
- last;
- }
- }
- close NEXTUID;
-
- my($nextUid) = $uid + 17;
- open(NEXTUID, ">$nextUidFile") || die "Can't open Log File: $!\n";
- print NEXTUID $nextUid;
- close NEXTUID;
-
-
- open(UIDMAP, "+<$uidMapFile") || die "Can't open Log File: $!\n";
- seek UIDMAP, 0, 2;
- print UIDMAP "$uid\t$firstName\t$lastName\t$email_address\n";
- close UIDMAP;
-
- flock(LOCKFILE, LOCK_UN);
- close LOCKFILE;
- return $uid;
-
-}
-####################################################################
-
-####################################################################
-
-sub checkExistance {
- my($firstName, $lastName, $email_address) = @_;
- my($uid) = -1;
-
- open(LOCKFILE, $lockfileName);
- flock(LOCKFILE, LOCK_EX);
-
- open(UIDMAP, $uidMapFile) || die "Can't open Log File: $!\n";
- my(@lines) = <UIDMAP>;
- my($line) = "";
- foreach $line (@lines)
- {
- if($line =~ m/^(\d+)\t$firstName\t$lastName\t$email_address$/)
- {
- $uid = $1;
- last;
- }
- }
- close UIDMAP;
-
- flock(LOCKFILE, LOCK_UN);
- close LOCKFILE;
- return $uid;
-}
-
-####################################################################
-
-####################################################################
-
-sub log {
- open(LOCKFILE, $lockfileName);
- flock(LOCKFILE, LOCK_EX);
-
- open(LOG, "+<$logFile") || die "Can't open Log File: $!\n";
-
- seek LOG, 0, 2;
- print LOG $_[0] . "\t\t";
-
- my ($sec,$min,$hour,$mday,$mon,$year, $wday,$yday,$isdst) = localtime time;
-
- # update the year so that it is correct since it perl
- # has a 1900 yr offset
- $year += 1900;
-
- # update the month since it is 0 based in perl
- $mon += 1;
-
- printf LOG "%02d/%02d/%04d %02d:%02d:%02d\n", $mday, $mon, $year, $hour, $min, $sec;
-
- close LOG;
-
- flock(LOCKFILE, LOCK_UN);
- close LOCKFILE;
-}
+#!/usr/bin/perl -wT
+
+use Fcntl ':flock';
+
+# START USER EDITS
+
+# absolute path to folder files will be uploaded to.
+# WINDOWS users, your path would like something like : images\\uploads
+# UNIX users, your path would like something like : /home/www/images/uploads
+# do not end the path with any slashes and if you're on a UNIX serv, make sure
+# you CHMOD each folder in the path to 777
+
+$lockfileName = ".lock";
+$logFile = "/.../uploadLog.txt";
+$uidMapFile = "/.../mylarUidMap.txt";
+$nextUidFile = "/.../mylarNextUid.txt";
+$allConsentedUsers = "/.../mylarUsers.txt";
+
+# if you would like to be notified of uploads, enter your email address
+# between the SINGLE quotes. leave this blank if you would not like to be notified
+#$notify = '';
+
+# UNIX users, if you entered a value for $notify, you must also enter your
+# server's sendmail path. It usually looks something like : /usr/sbin/sendmail
+#$send_mail_path = "";
+
+# WINDOWS users, if you entered a value for $notify, you must also enter your
+# server's SMTP path. It usually looks something like : mail.servername.com
+#$smtp_path = "";
+
+
+####################################################################
+# END USER EDITS
+####################################################################
+
+$OS = $^O; # operating system name
+if($OS =~ /darwin/i) { $isUNIX = 1; }
+elsif($OS =~ /win/i) { $isWIN = 1; }
+else {$isUNIX = 1;}
+
+if($isWIN){ $S{S} = "\\\\"; }
+else { $S{S} = "/";} # seperator used in paths
+
+use CGI; # load the CGI.pm module
+my $GET = new CGI; # create a new object
+my @VAL = $GET->param; #get all form field names
+
+my($query_string) = "";
+$query_string = $ENV{'QUERY_STRING'};
+
+my($firstName);
+my($lastName);
+my($email_address);
+my($job_function);
+my($company_size);
+my($company_buisness);
+my($anonymousStr);
+my($uid) = -1;
+my($anonymous) = 0;
+my($first);
+my($second);
+my($third);
+my($fourth);
+my($fifth);
+my($sixth);
+my($seventh);
+
+if($query_string =~ m/^(.+)\&(.+)\&(.+)\&(.+)\&(.+)\&(.+)\&(.+)$/)
+{
+ $first = $1;
+ $second = $2;
+ $third = $3;
+ $fourth = $4;
+ $fifth = $5;
+ $sixth = $6;
+ $seventh = $7;
+}
+else
+{
+ # error, query string is wrong
+ print "Content-type: text/plain", "\n";
+ print "Status: 501 Not Implemented", "\n\n";
+ exit;
+}
+
+if($first =~ m/^firstName\=(.+)$/){
+ $firstName = $1;
+}
+elsif($second =~ m/^firstName\=(.+)$/){
+ $firstName = $1;
+}
+elsif ($third =~ m/^firstName\=(.+)$/){
+ $firstName = $1;
+}
+elsif ($fourth =~ m/^firstName\=(.+)$/){
+ $firstName = $1;
+}
+elsif ($fifth =~ m/^firstName\=(.+)$/){
+ $firstName = $1;
+}
+elsif ($sixth =~ m/^firstName\=(.+)$/){
+ $firstName = $1;
+}
+elsif ($seventh =~ m/^firstName\=(.+)$/){
+ $firstName = $1;
+}
+
+if($first =~ m/^lastName\=(.+)$/){
+ $lastName = $1;
+}
+elsif($second =~ m/^lastName\=(.+)$/){
+ $lastName = $1;
+}
+elsif ($third =~ m/^lastName\=(.+)$/){
+ $lastName = $1;
+}
+elsif ($fourth =~ m/^lastName\=(.+)$/){
+ $lastName = $1;
+}
+elsif ($fifth =~ m/^lastName\=(.+)$/){
+ $lastName = $1;
+}
+elsif ($sixth =~ m/^lastName\=(.+)$/){
+ $lastName = $1;
+}
+elsif ($seventh =~ m/^lastName\=(.+)$/){
+ $lastName = $1;
+}
+
+if($first =~ m/^email\=(.+)$/){
+ $email_address = $1;
+}
+elsif($second =~ m/^email\=(.+)$/){
+ $email_address = $1;
+}
+elsif ($third =~ m/^email\=(.+)$/){
+ $email_address = $1;
+}
+elsif ($fourth =~ m/^email\=(.+)$/){
+ $email_address= $1;
+}
+elsif ($fifth =~ m/^email\=(.+)$/){
+ $email_address= $1;
+}
+elsif ($sixth =~ m/^email\=(.+)$/){
+ $email_address = $1;
+}
+elsif ($seventh =~ m/^email\=(.+)$/){
+ $email_address= $1;
+}
+
+if($first =~ m/^jobFunction\=(.+)$/){
+ $job_function = $1;
+}
+elsif($second =~ m/^jobFunction\=(.+)$/){
+ $job_function = $1;
+}
+elsif ($third =~ m/^jobFunction\=(.+)$/){
+ $job_function = $1;
+}
+elsif ($fourth =~ m/^jobFunction\=(.+)$/){
+ $job_function= $1;
+}
+elsif ($fifth =~ m/^jobFunction\=(.+)$/){
+ $job_function = $1;
+}
+elsif ($sixth =~ m/^jobFunction\=(.+)$/){
+ $job_function = $1;
+}
+elsif ($seventh =~ m/^jobFunction\=(.+)$/){
+ $job_function = $1;
+}
+
+if($first =~ m/^companySize\=(.+)$/){
+ $company_size = $1;
+}
+elsif($second =~ m/^companySize\=(.+)$/){
+ $company_size = $1;
+}
+elsif ($third =~ m/^companySize\=(.+)$/){
+ $company_size = $1;
+}
+elsif ($fourth =~ m/^companySize\=(.+)$/){
+ $company_size = $1;
+}
+elsif ($fifth =~ m/^companySize\=(.+)$/){
+ $company_size = $1;
+}
+elsif ($sixth =~ m/^companySize\=(.+)$/){
+ $company_size = $1;
+}
+elsif ($seventh =~ m/^companySize\=(.+)$/){
+ $company_size = $1;
+}
+
+if($first =~ m/^companyBuisness\=(.+)$/){
+ $company_buisness = $1;
+}
+elsif($second =~ m/^companyBuisness\=(.+)$/){
+ $company_buisness = $1;
+}
+elsif ($third =~ m/^companyBuisness\=(.+)$/){
+ $company_buisness = $1;
+}
+elsif ($fourth =~ m/^companyBuisness\=(.+)$/){
+ $company_buisness = $1;
+}
+elsif ($fifth =~ m/^companyBuisness\=(.+)$/){
+ $company_buisness = $1;
+}
+elsif ($sixth =~ m/^companyBuisness\=(.+)$/){
+ $company_buisness = $1;
+}
+elsif ($seventh =~ m/^companyBuisness\=(.+)$/){
+ $company_buisness = $1;
+}
+
+
+if($first =~ m/^anonymous\=(.+)$/){
+ $anonymousStr = $1;
+}
+elsif($second =~ m/^anonymous\=(.+)$/){
+ $anonymousStr = $1;
+}
+elsif ($third =~ m/^anonymous\=(.+)$/){
+ $anonymousStr = $1;
+}
+elsif ($fourth =~ m/^anonymous\=(.+)$/){
+ $anonymousStr = $1;
+}
+elsif ($fifth =~ m/^anonymous\=(.+)$/){
+ $anonymousStr = $1;
+}
+elsif ($sixth =~ m/^anonymous\=(.+)$/){
+ $anonymousStr = $1;
+}
+elsif ($seventh =~ m/^anonymous\=(.+)$/){
+ $anonymousStr = $1;
+}
+
+if ($anonymousStr =~ "true") {
+ $anonymous = 1;
+}
+
+open(USERS, "+<$allConsentedUsers ") || die "Can't open Log File: $!\n";
+seek USERS, 0, 2;
+print USERS "$firstName\t$lastName\t$email_address\t$job_function\t$company_size\t$company_buisness\n";
+close USERS;
+
+if($anonymous != 1){
+ # give them the same id as before
+ my($old) = &checkExistance($firstName, $lastName, $email_address);
+ if($old == -1){
+ $uid = &getNewUID($firstName, $lastName, $email_address);
+ }
+ else{
+ $uid = $old;
+ }
+}
+else
+{
+ $uid = &getNewUID("anonymous", "anonymous", "anonymous");
+}
+
+if($uid != -1)
+{
+ print "Content-type: text/plain", "\n";
+ print "Status: 200 OK", "\n\n";
+ print "UID: $uid" . "\n";
+ exit;
+}
+else
+{
+ print "Content-type: text/plain", "\n";
+ print "Status: 501 Not Implemented", "\n\n";
+ print "COULD NOT GET UID" . "\n";
+ exit;
+}
+
+
+####################################################################
+
+####################################################################
+
+sub send_mail {
+ my ($from_email, $from_name, $to_email, $to_name, $subject, $message ) = @_;
+
+ if(open(MAIL, "|$CONFIG{mailprogram} -t")) {
+ print MAIL "From: $from_email ($from_name)\n";
+ print MAIL "To: $to_email ($to_name)\n";
+ print MAIL "Subject: $subject\n";
+ print MAIL "$message\n\nSubmitter's IP Address : $ENV{REMOTE_ADDR}";
+ close MAIL;
+ return(1);
+ } else {
+ return;
+ }
+}
+
+####################################################################
+
+####################################################################
+
+sub send_mail_NT {
+
+ my ($from_email, $from_name, $to_email, $to_name, $subject, $message ) = @_;
+
+ my ($SMTP_SERVER, $WEB_SERVER, $status, $err_message);
+ use Socket;
+ $SMTP_SERVER = "$CONFIG{smtppath}";
+
+ # correct format for "\n"
+ local($CRLF) = "\015\012";
+ local($SMTP_SERVER_PORT) = 25;
+ local($AF_INET) = ($] > 5 ? AF_INET : 2);
+ local($SOCK_STREAM) = ($] > 5 ? SOCK_STREAM : 1);
+# local(@bad_addresses) = ();
+ $, = ', ';
+ $" = ', ';
+
+ $WEB_SERVER = "$CONFIG{smtppath}\n";
+ chop ($WEB_SERVER);
+
+ local($local_address) = (gethostbyname($WEB_SERVER))[4];
+ local($local_socket_address) = pack('S n a4 x8', $AF_INET, 0, $local_address);
+
+ local($server_address) = (gethostbyname($SMTP_SERVER))[4];
+ local($server_socket_address) = pack('S n a4 x8', $AF_INET, $SMTP_SERVER_PORT, $server_address);
+
+ # Translate protocol name to corresponding number
+ local($protocol) = (getprotobyname('tcp'))[2];
+
+ # Make the socket filehandle
+ if (!socket(SMTP, $AF_INET, $SOCK_STREAM, $protocol)) {
+ return;
+ }
+
+ # Give the socket an address
+ bind(SMTP, $local_socket_address);
+
+ # Connect to the server
+ if (!(connect(SMTP, $server_socket_address))) {
+ return;
+ }
+
+ # Set the socket to be line buffered
+ local($old_selected) = select(SMTP);
+ $| = 1;
+ select($old_selected);
+
+ # Set regex to handle multiple line strings
+ $* = 1;
+
+ # Read first response from server (wait for .75 seconds first)
+ select(undef, undef, undef, .75);
+ sysread(SMTP, $_, 1024);
+ #print "<P>1:$_";
+
+ print SMTP "HELO $WEB_SERVER$CRLF";
+ sysread(SMTP, $_, 1024);
+ #print "<P>2:$_";
+
+ while (/(^|(\r?\n))[^0-9]*((\d\d\d).*)$/g) { $status = $4; $err_message = $3}
+ if ($status != 250) {
+ return;
+ }
+
+ print SMTP "MAIL FROM:<$from_email>$CRLF";
+
+ sysread(SMTP, $_, 1024);
+ #print "<P>3:$_";
+ if (!/[^0-9]*250/) {
+ return;
+ }
+
+ # Tell the server where we're sending to
+ print SMTP "RCPT TO:<$to_email>$CRLF";
+ sysread(SMTP, $_, 1024);
+ #print "<P>4:$_";
+ /[^0-9]*(\d\d\d)/;
+
+ # Give the server the message header
+ print SMTP "DATA$CRLF";
+ sysread(SMTP, $_, 1024);
+ #print "<P>5:$_";
+ if (!/[^0-9]*354/) {
+ return;
+ }
+
+ $message =~ s/\n/$CRLF/ig;
+
+ print SMTP qq~From: $from_email ($from_name)$CRLF~;
+ print SMTP qq~To: $to_email ($to_name)$CRLF~;
+# if($cc){
+# print SMTP "CC: $cc ($cc_name)\n";
+# }
+ print SMTP qq~Subject: $subject$CRLF$CRLF~;
+ print SMTP qq~$message~;
+
+ print SMTP "$CRLF.$CRLF";
+ sysread(SMTP, $_, 1024);
+ #print "<P>6:$_";
+ if (!/[^0-9]*250/) {
+ return;
+ } else {
+ return(1);
+ }
+
+ if (!shutdown(SMTP, 2)) {
+ return;
+ }
+}
+
+####################################################################
+
+####################################################################
+
+sub check_email {
+ my($fe_email) = $_[0];
+ if($fe_email) {
+ if(($fe_email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(\.$)/) ||
+ ($fe_email !~ /^.+@\[?(\w|[-.])+\.[a-zA-Z]{2,3}|[0-9]{1,3}\]?$/)) {
+ return;
+ } else { return(1) }
+ } else {
+ return;
+ }
+}
+####################################################################
+
+####################################################################
+
+sub getNewUID {
+ my($firstName, $lastName, $email_address) = @_;
+
+ open(LOCKFILE, $lockfileName);
+ flock(LOCKFILE, LOCK_EX);
+
+ open(NEXTUID, "<$nextUidFile") || die "Can't open Log File: $!\n";
+ my($uid) = -1;
+ my(@lines) = <NEXTUID>;
+ my($line) = "";
+ foreach $line (@lines)
+ {
+ if($line =~ m/^(\d+)$/)
+ {
+ $uid = $1;
+ last;
+ }
+ }
+ close NEXTUID;
+
+ my($nextUid) = $uid + 17;
+ open(NEXTUID, ">$nextUidFile") || die "Can't open Log File: $!\n";
+ print NEXTUID $nextUid;
+ close NEXTUID;
+
+
+ open(UIDMAP, "+<$uidMapFile") || die "Can't open Log File: $!\n";
+ seek UIDMAP, 0, 2;
+ print UIDMAP "$uid\t$firstName\t$lastName\t$email_address\n";
+ close UIDMAP;
+
+ flock(LOCKFILE, LOCK_UN);
+ close LOCKFILE;
+ return $uid;
+
+}
+####################################################################
+
+####################################################################
+
+sub checkExistance {
+ my($firstName, $lastName, $email_address) = @_;
+ my($uid) = -1;
+
+ open(LOCKFILE, $lockfileName);
+ flock(LOCKFILE, LOCK_EX);
+
+ open(UIDMAP, $uidMapFile) || die "Can't open Log File: $!\n";
+ my(@lines) = <UIDMAP>;
+ my($line) = "";
+ foreach $line (@lines)
+ {
+ if($line =~ m/^(\d+)\t$firstName\t$lastName\t$email_address$/)
+ {
+ $uid = $1;
+ last;
+ }
+ }
+ close UIDMAP;
+
+ flock(LOCKFILE, LOCK_UN);
+ close LOCKFILE;
+ return $uid;
+}
+
+####################################################################
+
+####################################################################
+
+sub log {
+ open(LOCKFILE, $lockfileName);
+ flock(LOCKFILE, LOCK_EX);
+
+ open(LOG, "+<$logFile") || die "Can't open Log File: $!\n";
+
+ seek LOG, 0, 2;
+ print LOG $_[0] . "\t\t";
+
+ my ($sec,$min,$hour,$mday,$mon,$year, $wday,$yday,$isdst) = localtime time;
+
+ # update the year so that it is correct since it perl
+ # has a 1900 yr offset
+ $year += 1900;
+
+ # update the month since it is 0 based in perl
+ $mon += 1;
+
+ printf LOG "%02d/%02d/%04d %02d:%02d:%02d\n", $mday, $mon, $year, $hour, $min, $sec;
+
+ close LOG;
+
+ flock(LOCKFILE, LOCK_UN);
+ close LOCKFILE;
+}
diff --git a/org.eclipse.mylyn.examples.monitor.study/scripts/questionnaire.cgi b/org.eclipse.mylyn.examples.monitor.study/scripts/questionnaire.cgi
index a9d9c4c..2065a4f 100644
--- a/org.eclipse.mylyn.examples.monitor.study/scripts/questionnaire.cgi
+++ b/org.eclipse.mylyn.examples.monitor.study/scripts/questionnaire.cgi
@@ -1,450 +1,450 @@
-#!/usr/bin/perl -w
-
-# START USER EDITS
-
-# absolute path to folder files will be uploaded to.
-# WINDOWS users, your path would like something like : images\\uploads
-# UNIX users, your path would like something like : /home/www/images/uploads
-# do not end the path with any slashes and if you're on a UNIX serv, make sure
-# you CHMOD each folder in the path to 777
-
-$dir = "/.../upload";
-$logFile = "/.../questionnaireLog.txt";
-
-# if you would like to be notified of uploads, enter your email address
-# between the SINGLE quotes. leave this blank if you would not like to be notified
-$notify = '';
-
-# UNIX users, if you entered a value for $notify, you must also enter your
-# server's sendmail path. It usually looks something like : /usr/sbin/sendmail
-$send_mail_path = "";
-
-# WINDOWS users, if you entered a value for $notify, you must also enter your
-# server's SMTP path. It usually looks something like : mail.servername.com
-$smtp_path = "";
-
-# file types allowed, enter each type on a new line
-# Enter the word "ALL" in uppercase, to accept all file types.
-@types = qw~
-txt
-~;
-
-####################################################################
-# END USER EDITS
-####################################################################
-
-$OS = $^O; # operating system name
-if($OS =~ /darwin/i) { $isUNIX = 1; }
-elsif($OS =~ /win/i) { $isWIN = 1; }
-else {$isUNIX = 1;}
-
-if($isWIN){ $S{S} = "\\\\"; }
-else { $S{S} = "/";} # seperator used in paths
-
-unless (-d "$dir"){
- mkdir ("$dir", 0777); # unless the dir exists, make it ( and chmod it on UNIX )
- chmod(0777, "$dir");
-}
-
-
-unless (-d "$dir"){
- # if there still is no dir, the path entered by the user is wrong and the upload will fail
- # send back an error code
- # unauthorized, uid not correct
- exit;
-}
-
-use CGI; # load the CGI.pm module
-my $GET = new CGI; # create a new object
-my @VAL = $GET->param; #get all form field names
-
-foreach(@VAL){
- $FORM{$_} = $GET->param($_); # put all fields and values in hash
-}
-
-my @files;
-foreach(keys %FORM){
- # check for the parameter name
- # This must be MYLARa where is a a number
- if($_ =~ /^MYLAR/){
- push(@files, $_); # place the field NAME in an array
- } else {
- &log( "Filenamed not named MYLARa: ".$_);
- exit;
- }
-}
-
-
-if(!$VAL[0]){
- # no file to upload so exit with an error
- print "Content-type: text/plain", "\n";
- print "Status: 501 Not Implemented", "\n\n";
- print "Upload Failed - no file to upload","\n";
- &log("Upload Failed - no file to upload\n");
- exit;
-}
-
-
-my $failed; # results string = false
-my $selected; # num of files selected by user
-
-####################################################################
-
-####################################################################
-
-foreach (@files){
- # upload each file, pass the form field NAME if it has a value
- if($GET->param($_)){
- # if the form field contains a file name &psjs_upload subroutine
- # the file's name and path are passed to the subroutine
- $returned = &psjs_upload($_);
- if($returned =~ /^Success/i){
- # if the $returned message begins with "Success" the upload was succssful
- # remove the word "Success" and any spaces and we're left with the filename
- $returned =~ s/^Success\s+//;
- push(@success, $returned);
- } else {
- # else if the word "success" is not returned, the message is the error encountered.
- # add the error to the $failed scalar
- $failed .= $returned;
- }
- $selected++; # increment num of files selected for uploading by user
- }
-}
-
-if(!$selected){
- # no files were selected by user, so nothing is returned to either variable
- $failed .= qq~No files were selected for uploading~;
-}
-
-# if no error message is return ed, the upload was successful
-
-my ($fNames, $aa, $bb, @current, @currentfiles );
-
-if($failed){
-
- # file failed to upload return error
- print "Content-type: text/plain", "\n";
- print "Status: 501 Not Implemented", "\n\n";
- print "Upload Failed","\n";
-
-} else {
- # upload was successful
- # log the success and return success code
-
- # send email if valid email was entered
- if(check_email($notify)){
-
- # TODO send an appropriate message
-
- # enter the message you would like to receive
- my $message = qq~
- The following files were uploaded to your server :
- ~;
-
- foreach(@success){
- $message .= qq~
- $dir/$_
- ~;
- }
-
- if($isUNIX){
- $CONFIG{mailprogram} = $send_mail_path;
- # enter your e-mail name here if you like
- # from e-mail, from name, to e-mail, to name, subject, body
- &send_mail($notify, 'Demo Upload', $notify, 'Demo Upload', 'Upload Notification', $message);
-
- } else {
- $CONFIG{smtppath} = $smtp_path;
- &send_mail_NT($notify, 'Your Name', $notify, 'Your Name', 'Upload Notification', $message);
- }
- }
-
- # NEED TO LOG THE UPLOAD
- foreach(@success){
- &log("NONE" . "\t" . "$dir/$_");
- }
-
-
- print "Content-type: text/plain". "\n";
- print "Status: 200 OK", "\n\n";
- print "Upload Success","\n";
-}
-
-####################################################################
-
-####################################################################
-
-sub psjs_upload {
-
- my $filename = $GET->param($_[0]);
- $filename =~ s/.*[\/\\](.*)/$1/;
- my $upload_filehandle = $GET->upload($_[0]);
- # if $file_type matchs one of the types specified, make the $type_ok var true
- for($b = 0; $b < @types; $b++){
- if($filename =~ /^.*\.$types[$b]$/i){
- $type_ok++;
- }
- if($types[$b] eq "ALL"){
- $type_ok++; # if ALL keyword is found, increment $type_ok var.
- }
- }
-
- # if ok, check if overwrite is allowed
- if($type_ok){
- if(open UPLOADFILE, ">$dir/$filename"){
-
- binmode UPLOADFILE;
-
- while ( <$upload_filehandle> )
- {
- print UPLOADFILE;
- }
- close UPLOADFILE;
- }else {
- return qq~Error opening file on the server~;
- }
- } else {
- return qq~Bad file type~;
- }
-
- # check if file has actually been uploaded, by checking the file has a size
- if(-s "$dir/$filename"){
- return qq~Success $filename~; #success
- } else {
- # delete the file as it has no content
- # user probably entered an incorrect path to file
- return qq~Upload failed : No data in $filename. No size on server's copy of file.
- Check the path entered.~;
- }
-}
-
-####################################################################
-
-####################################################################
-
-sub check_existence {
- # $dir,$filename,$newnum are the args passed to this sub
- my ($dir,$filename,$newnum) = @_;
-
- my (@file_type, $file_type, $exists, $bareName);
- # declare some vars we will use later on in this sub always use paranthesis
- # when declaring more than one var! Some novice programmers will tell you
- # this is not necessary. Tell them to learn how to program.
-
- if(!$newnum){$newnum = "0";} # new num is empty in first call, so set it to 0
-
- # read dir and put all files in an array (list)
- opendir(DIR, "$dir");
- @existing_files = readdir(DIR);
- closedir(DIR);
-
- # if the filename passed exists, set $exists to true or 1
- foreach(@existing_files){
- if($_ eq $filename){
- $exists = 1;
- }
- }
-
- # if it exists, we need to rename the file being uploaded and then recheck it to
- # make sure the new name does not exist
- if($exists){
- $newnum++; # increment new number (add 1)
-
- # get the extension
- @file_type = split(/\./, $filename); # split the dots and add inbetweens to a list
- # put the first element in the $barename var
- $bareName = $file_type[0];
- # we can assume everything after the last . found is the extension
- $file_type = $file_type[$#file_type];
- # $#file_type is the last element (note the pound or hash is used)
-
- # remove all numbers from the end of the $bareName
- $bareName =~ s/\d+$//ig;
-
- # concatenate a new name using the barename + newnum + extension
- $filename = $bareName . $newnum . '.' . $file_type;
-
- # reset $exists to 0 because the new file name is now being checked
- $exists = 0;
-
- # recall this subroutine
- &check_existence($dir,$filename,$newnum);
- } else {
- # the $filename, whether the first or one hundreth call, now does not exist
- # so return the name to be used
- return ($filename);
- }
-}
-
-####################################################################
-
-####################################################################
-
-sub send_mail {
- my ($from_email, $from_name, $to_email, $to_name, $subject, $message ) = @_;
-
- if(open(MAIL, "|$CONFIG{mailprogram} -t")) {
- print MAIL "From: $from_email ($from_name)\n";
- print MAIL "To: $to_email ($to_name)\n";
- print MAIL "Subject: $subject\n";
- print MAIL "$message\n\nSubmitter's IP Address : $ENV{REMOTE_ADDR}";
- close MAIL;
- return(1);
- } else {
- return;
- }
-}
-
-####################################################################
-
-####################################################################
-
-sub send_mail_NT {
-
- my ($from_email, $from_name, $to_email, $to_name, $subject, $message ) = @_;
-
- my ($SMTP_SERVER, $WEB_SERVER, $status, $err_message);
- use Socket;
- $SMTP_SERVER = "$CONFIG{smtppath}";
-
- # correct format for "\n"
- local($CRLF) = "\015\012";
- local($SMTP_SERVER_PORT) = 25;
- local($AF_INET) = ($] > 5 ? AF_INET : 2);
- local($SOCK_STREAM) = ($] > 5 ? SOCK_STREAM : 1);
-# local(@bad_addresses) = ();
- $, = ', ';
- $" = ', ';
-
- $WEB_SERVER = "$CONFIG{smtppath}\n";
- chop ($WEB_SERVER);
-
- local($local_address) = (gethostbyname($WEB_SERVER))[4];
- local($local_socket_address) = pack('S n a4 x8', $AF_INET, 0, $local_address);
-
- local($server_address) = (gethostbyname($SMTP_SERVER))[4];
- local($server_socket_address) = pack('S n a4 x8', $AF_INET, $SMTP_SERVER_PORT, $server_address);
-
- # Translate protocol name to corresponding number
- local($protocol) = (getprotobyname('tcp'))[2];
-
- # Make the socket filehandle
- if (!socket(SMTP, $AF_INET, $SOCK_STREAM, $protocol)) {
- return;
- }
-
- # Give the socket an address
- bind(SMTP, $local_socket_address);
-
- # Connect to the server
- if (!(connect(SMTP, $server_socket_address))) {
- return;
- }
-
- # Set the socket to be line buffered
- local($old_selected) = select(SMTP);
- $| = 1;
- select($old_selected);
-
- # Set regex to handle multiple line strings
- $* = 1;
-
- # Read first response from server (wait for .75 seconds first)
- select(undef, undef, undef, .75);
- sysread(SMTP, $_, 1024);
- #print "<P>1:$_";
-
- print SMTP "HELO $WEB_SERVER$CRLF";
- sysread(SMTP, $_, 1024);
- #print "<P>2:$_";
-
- while (/(^|(\r?\n))[^0-9]*((\d\d\d).*)$/g) { $status = $4; $err_message = $3}
- if ($status != 250) {
- return;
- }
-
- print SMTP "MAIL FROM:<$from_email>$CRLF";
-
- sysread(SMTP, $_, 1024);
- #print "<P>3:$_";
- if (!/[^0-9]*250/) {
- return;
- }
-
- # Tell the server where we're sending to
- print SMTP "RCPT TO:<$to_email>$CRLF";
- sysread(SMTP, $_, 1024);
- #print "<P>4:$_";
- /[^0-9]*(\d\d\d)/;
-
- # Give the server the message header
- print SMTP "DATA$CRLF";
- sysread(SMTP, $_, 1024);
- #print "<P>5:$_";
- if (!/[^0-9]*354/) {
- return;
- }
-
- $message =~ s/\n/$CRLF/ig;
-
- print SMTP qq~From: $from_email ($from_name)$CRLF~;
- print SMTP qq~To: $to_email ($to_name)$CRLF~;
-# if($cc){
-# print SMTP "CC: $cc ($cc_name)\n";
-# }
- print SMTP qq~Subject: $subject$CRLF$CRLF~;
- print SMTP qq~$message~;
-
- print SMTP "$CRLF.$CRLF";
- sysread(SMTP, $_, 1024);
- #print "<P>6:$_";
- if (!/[^0-9]*250/) {
- return;
- } else {
- return(1);
- }
-
- if (!shutdown(SMTP, 2)) {
- return;
- }
-}
-
-####################################################################
-
-####################################################################
-
-sub check_email {
- my($fe_email) = $_[0];
- if($fe_email) {
- if(($fe_email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(\.$)/) ||
- ($fe_email !~ /^.+@\[?(\w|[-.])+\.[a-zA-Z]{2,3}|[0-9]{1,3}\]?$/)) {
- return;
- } else { return(1) }
- } else {
- return;
- }
- }
-####################################################################
-
-####################################################################
-
-sub log {
- open(LOG, "+<$logFile") || die "Can't open Log File: $!\n";
-
- seek LOG, 0, 2;
- print LOG $_[0] . "\t\t";
-
- my ($sec,$min,$hour,$mday,$mon,$year, $wday,$yday,$isdst) = localtime time;
-
- # update the year so that it is correct since it perl
- # has a 1900 yr offset
- $year += 1900;
-
- # update the month since it is 0 based in perl
- $mon += 1;
-
- printf LOG "%02d/%02d/%04d %02d:%02d:%02d\n", $mday, $mon, $year, $hour, $min, $sec;
-
- close LOG;
-}
+#!/usr/bin/perl -w
+
+# START USER EDITS
+
+# absolute path to folder files will be uploaded to.
+# WINDOWS users, your path would like something like : images\\uploads
+# UNIX users, your path would like something like : /home/www/images/uploads
+# do not end the path with any slashes and if you're on a UNIX serv, make sure
+# you CHMOD each folder in the path to 777
+
+$dir = "/.../upload";
+$logFile = "/.../questionnaireLog.txt";
+
+# if you would like to be notified of uploads, enter your email address
+# between the SINGLE quotes. leave this blank if you would not like to be notified
+$notify = '';
+
+# UNIX users, if you entered a value for $notify, you must also enter your
+# server's sendmail path. It usually looks something like : /usr/sbin/sendmail
+$send_mail_path = "";
+
+# WINDOWS users, if you entered a value for $notify, you must also enter your
+# server's SMTP path. It usually looks something like : mail.servername.com
+$smtp_path = "";
+
+# file types allowed, enter each type on a new line
+# Enter the word "ALL" in uppercase, to accept all file types.
+@types = qw~
+txt
+~;
+
+####################################################################
+# END USER EDITS
+####################################################################
+
+$OS = $^O; # operating system name
+if($OS =~ /darwin/i) { $isUNIX = 1; }
+elsif($OS =~ /win/i) { $isWIN = 1; }
+else {$isUNIX = 1;}
+
+if($isWIN){ $S{S} = "\\\\"; }
+else { $S{S} = "/";} # seperator used in paths
+
+unless (-d "$dir"){
+ mkdir ("$dir", 0777); # unless the dir exists, make it ( and chmod it on UNIX )
+ chmod(0777, "$dir");
+}
+
+
+unless (-d "$dir"){
+ # if there still is no dir, the path entered by the user is wrong and the upload will fail
+ # send back an error code
+ # unauthorized, uid not correct
+ exit;
+}
+
+use CGI; # load the CGI.pm module
+my $GET = new CGI; # create a new object
+my @VAL = $GET->param; #get all form field names
+
+foreach(@VAL){
+ $FORM{$_} = $GET->param($_); # put all fields and values in hash
+}
+
+my @files;
+foreach(keys %FORM){
+ # check for the parameter name
+ # This must be MYLARa where is a a number
+ if($_ =~ /^MYLAR/){
+ push(@files, $_); # place the field NAME in an array
+ } else {
+ &log( "Filenamed not named MYLARa: ".$_);
+ exit;
+ }
+}
+
+
+if(!$VAL[0]){
+ # no file to upload so exit with an error
+ print "Content-type: text/plain", "\n";
+ print "Status: 501 Not Implemented", "\n\n";
+ print "Upload Failed - no file to upload","\n";
+ &log("Upload Failed - no file to upload\n");
+ exit;
+}
+
+
+my $failed; # results string = false
+my $selected; # num of files selected by user
+
+####################################################################
+
+####################################################################
+
+foreach (@files){
+ # upload each file, pass the form field NAME if it has a value
+ if($GET->param($_)){
+ # if the form field contains a file name &psjs_upload subroutine
+ # the file's name and path are passed to the subroutine
+ $returned = &psjs_upload($_);
+ if($returned =~ /^Success/i){
+ # if the $returned message begins with "Success" the upload was succssful
+ # remove the word "Success" and any spaces and we're left with the filename
+ $returned =~ s/^Success\s+//;
+ push(@success, $returned);
+ } else {
+ # else if the word "success" is not returned, the message is the error encountered.
+ # add the error to the $failed scalar
+ $failed .= $returned;
+ }
+ $selected++; # increment num of files selected for uploading by user
+ }
+}
+
+if(!$selected){
+ # no files were selected by user, so nothing is returned to either variable
+ $failed .= qq~No files were selected for uploading~;
+}
+
+# if no error message is return ed, the upload was successful
+
+my ($fNames, $aa, $bb, @current, @currentfiles );
+
+if($failed){
+
+ # file failed to upload return error
+ print "Content-type: text/plain", "\n";
+ print "Status: 501 Not Implemented", "\n\n";
+ print "Upload Failed","\n";
+
+} else {
+ # upload was successful
+ # log the success and return success code
+
+ # send email if valid email was entered
+ if(check_email($notify)){
+
+ # TODO send an appropriate message
+
+ # enter the message you would like to receive
+ my $message = qq~
+ The following files were uploaded to your server :
+ ~;
+
+ foreach(@success){
+ $message .= qq~
+ $dir/$_
+ ~;
+ }
+
+ if($isUNIX){
+ $CONFIG{mailprogram} = $send_mail_path;
+ # enter your e-mail name here if you like
+ # from e-mail, from name, to e-mail, to name, subject, body
+ &send_mail($notify, 'Demo Upload', $notify, 'Demo Upload', 'Upload Notification', $message);
+
+ } else {
+ $CONFIG{smtppath} = $smtp_path;
+ &send_mail_NT($notify, 'Your Name', $notify, 'Your Name', 'Upload Notification', $message);
+ }
+ }
+
+ # NEED TO LOG THE UPLOAD
+ foreach(@success){
+ &log("NONE" . "\t" . "$dir/$_");
+ }
+
+
+ print "Content-type: text/plain". "\n";
+ print "Status: 200 OK", "\n\n";
+ print "Upload Success","\n";
+}
+
+####################################################################
+
+####################################################################
+
+sub psjs_upload {
+
+ my $filename = $GET->param($_[0]);
+ $filename =~ s/.*[\/\\](.*)/$1/;
+ my $upload_filehandle = $GET->upload($_[0]);
+ # if $file_type matchs one of the types specified, make the $type_ok var true
+ for($b = 0; $b < @types; $b++){
+ if($filename =~ /^.*\.$types[$b]$/i){
+ $type_ok++;
+ }
+ if($types[$b] eq "ALL"){
+ $type_ok++; # if ALL keyword is found, increment $type_ok var.
+ }
+ }
+
+ # if ok, check if overwrite is allowed
+ if($type_ok){
+ if(open UPLOADFILE, ">$dir/$filename"){
+
+ binmode UPLOADFILE;
+
+ while ( <$upload_filehandle> )
+ {
+ print UPLOADFILE;
+ }
+ close UPLOADFILE;
+ }else {
+ return qq~Error opening file on the server~;
+ }
+ } else {
+ return qq~Bad file type~;
+ }
+
+ # check if file has actually been uploaded, by checking the file has a size
+ if(-s "$dir/$filename"){
+ return qq~Success $filename~; #success
+ } else {
+ # delete the file as it has no content
+ # user probably entered an incorrect path to file
+ return qq~Upload failed : No data in $filename. No size on server's copy of file.
+ Check the path entered.~;
+ }
+}
+
+####################################################################
+
+####################################################################
+
+sub check_existence {
+ # $dir,$filename,$newnum are the args passed to this sub
+ my ($dir,$filename,$newnum) = @_;
+
+ my (@file_type, $file_type, $exists, $bareName);
+ # declare some vars we will use later on in this sub always use paranthesis
+ # when declaring more than one var! Some novice programmers will tell you
+ # this is not necessary. Tell them to learn how to program.
+
+ if(!$newnum){$newnum = "0";} # new num is empty in first call, so set it to 0
+
+ # read dir and put all files in an array (list)
+ opendir(DIR, "$dir");
+ @existing_files = readdir(DIR);
+ closedir(DIR);
+
+ # if the filename passed exists, set $exists to true or 1
+ foreach(@existing_files){
+ if($_ eq $filename){
+ $exists = 1;
+ }
+ }
+
+ # if it exists, we need to rename the file being uploaded and then recheck it to
+ # make sure the new name does not exist
+ if($exists){
+ $newnum++; # increment new number (add 1)
+
+ # get the extension
+ @file_type = split(/\./, $filename); # split the dots and add inbetweens to a list
+ # put the first element in the $barename var
+ $bareName = $file_type[0];
+ # we can assume everything after the last . found is the extension
+ $file_type = $file_type[$#file_type];
+ # $#file_type is the last element (note the pound or hash is used)
+
+ # remove all numbers from the end of the $bareName
+ $bareName =~ s/\d+$//ig;
+
+ # concatenate a new name using the barename + newnum + extension
+ $filename = $bareName . $newnum . '.' . $file_type;
+
+ # reset $exists to 0 because the new file name is now being checked
+ $exists = 0;
+
+ # recall this subroutine
+ &check_existence($dir,$filename,$newnum);
+ } else {
+ # the $filename, whether the first or one hundreth call, now does not exist
+ # so return the name to be used
+ return ($filename);
+ }
+}
+
+####################################################################
+
+####################################################################
+
+sub send_mail {
+ my ($from_email, $from_name, $to_email, $to_name, $subject, $message ) = @_;
+
+ if(open(MAIL, "|$CONFIG{mailprogram} -t")) {
+ print MAIL "From: $from_email ($from_name)\n";
+ print MAIL "To: $to_email ($to_name)\n";
+ print MAIL "Subject: $subject\n";
+ print MAIL "$message\n\nSubmitter's IP Address : $ENV{REMOTE_ADDR}";
+ close MAIL;
+ return(1);
+ } else {
+ return;
+ }
+}
+
+####################################################################
+
+####################################################################
+
+sub send_mail_NT {
+
+ my ($from_email, $from_name, $to_email, $to_name, $subject, $message ) = @_;
+
+ my ($SMTP_SERVER, $WEB_SERVER, $status, $err_message);
+ use Socket;
+ $SMTP_SERVER = "$CONFIG{smtppath}";
+
+ # correct format for "\n"
+ local($CRLF) = "\015\012";
+ local($SMTP_SERVER_PORT) = 25;
+ local($AF_INET) = ($] > 5 ? AF_INET : 2);
+ local($SOCK_STREAM) = ($] > 5 ? SOCK_STREAM : 1);
+# local(@bad_addresses) = ();
+ $, = ', ';
+ $" = ', ';
+
+ $WEB_SERVER = "$CONFIG{smtppath}\n";
+ chop ($WEB_SERVER);
+
+ local($local_address) = (gethostbyname($WEB_SERVER))[4];
+ local($local_socket_address) = pack('S n a4 x8', $AF_INET, 0, $local_address);
+
+ local($server_address) = (gethostbyname($SMTP_SERVER))[4];
+ local($server_socket_address) = pack('S n a4 x8', $AF_INET, $SMTP_SERVER_PORT, $server_address);
+
+ # Translate protocol name to corresponding number
+ local($protocol) = (getprotobyname('tcp'))[2];
+
+ # Make the socket filehandle
+ if (!socket(SMTP, $AF_INET, $SOCK_STREAM, $protocol)) {
+ return;
+ }
+
+ # Give the socket an address
+ bind(SMTP, $local_socket_address);
+
+ # Connect to the server
+ if (!(connect(SMTP, $server_socket_address))) {
+ return;
+ }
+
+ # Set the socket to be line buffered
+ local($old_selected) = select(SMTP);
+ $| = 1;
+ select($old_selected);
+
+ # Set regex to handle multiple line strings
+ $* = 1;
+
+ # Read first response from server (wait for .75 seconds first)
+ select(undef, undef, undef, .75);
+ sysread(SMTP, $_, 1024);
+ #print "<P>1:$_";
+
+ print SMTP "HELO $WEB_SERVER$CRLF";
+ sysread(SMTP, $_, 1024);
+ #print "<P>2:$_";
+
+ while (/(^|(\r?\n))[^0-9]*((\d\d\d).*)$/g) { $status = $4; $err_message = $3}
+ if ($status != 250) {
+ return;
+ }
+
+ print SMTP "MAIL FROM:<$from_email>$CRLF";
+
+ sysread(SMTP, $_, 1024);
+ #print "<P>3:$_";
+ if (!/[^0-9]*250/) {
+ return;
+ }
+
+ # Tell the server where we're sending to
+ print SMTP "RCPT TO:<$to_email>$CRLF";
+ sysread(SMTP, $_, 1024);
+ #print "<P>4:$_";
+ /[^0-9]*(\d\d\d)/;
+
+ # Give the server the message header
+ print SMTP "DATA$CRLF";
+ sysread(SMTP, $_, 1024);
+ #print "<P>5:$_";
+ if (!/[^0-9]*354/) {
+ return;
+ }
+
+ $message =~ s/\n/$CRLF/ig;
+
+ print SMTP qq~From: $from_email ($from_name)$CRLF~;
+ print SMTP qq~To: $to_email ($to_name)$CRLF~;
+# if($cc){
+# print SMTP "CC: $cc ($cc_name)\n";
+# }
+ print SMTP qq~Subject: $subject$CRLF$CRLF~;
+ print SMTP qq~$message~;
+
+ print SMTP "$CRLF.$CRLF";
+ sysread(SMTP, $_, 1024);
+ #print "<P>6:$_";
+ if (!/[^0-9]*250/) {
+ return;
+ } else {
+ return(1);
+ }
+
+ if (!shutdown(SMTP, 2)) {
+ return;
+ }
+}
+
+####################################################################
+
+####################################################################
+
+sub check_email {
+ my($fe_email) = $_[0];
+ if($fe_email) {
+ if(($fe_email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(\.$)/) ||
+ ($fe_email !~ /^.+@\[?(\w|[-.])+\.[a-zA-Z]{2,3}|[0-9]{1,3}\]?$/)) {
+ return;
+ } else { return(1) }
+ } else {
+ return;
+ }
+ }
+####################################################################
+
+####################################################################
+
+sub log {
+ open(LOG, "+<$logFile") || die "Can't open Log File: $!\n";
+
+ seek LOG, 0, 2;
+ print LOG $_[0] . "\t\t";
+
+ my ($sec,$min,$hour,$mday,$mon,$year, $wday,$yday,$isdst) = localtime time;
+
+ # update the year so that it is correct since it perl
+ # has a 1900 yr offset
+ $year += 1900;
+
+ # update the month since it is 0 based in perl
+ $mon += 1;
+
+ printf LOG "%02d/%02d/%04d %02d:%02d:%02d\n", $mday, $mon, $year, $hour, $min, $sec;
+
+ close LOG;
+}
diff --git a/org.eclipse.mylyn.examples.monitor.study/scripts/upload.cgi b/org.eclipse.mylyn.examples.monitor.study/scripts/upload.cgi
index d74fc2d..c7f65fe 100644
--- a/org.eclipse.mylyn.examples.monitor.study/scripts/upload.cgi
+++ b/org.eclipse.mylyn.examples.monitor.study/scripts/upload.cgi
@@ -1,502 +1,502 @@
-#!/usr/bin/perl -w
-
-use Fcntl ':flock';
-
-# START USER EDITS
-
-# absolute path to folder files will be uploaded to.
-# WINDOWS users, your path would like something like : images\\uploads
-# UNIX users, your path would like something like : /home/www/images/uploads
-# do not end the path with any slashes and if you're on a UNIX serv, make sure
-# you CHMOD each folder in the path to 777
-
-$lockfileName = "/.../.lock";
-$logFile = "/.../uploadLog.txt";
-$uidMapFile = "/.../mylarUidMap.txt";
-
-$dir = "/isd/se2/project/mylar/userStudy/upload";
-
-# if you would like to be notified of uploads, enter your email address
-# between the SINGLE quotes. leave this blank if you would not like to be notified
-$notify = '';
-
-# UNIX users, if you entered a value for $notify, you must also enter your
-# server's sendmail path. It usually looks something like : /usr/sbin/sendmail
-$send_mail_path = "";
-
-# WINDOWS users, if you entered a value for $notify, you must also enter your
-# server's SMTP path. It usually looks something like : mail.servername.com
-$smtp_path = "";
-
-# file types allowed, enter each type on a new line
-# Enter the word "ALL" in uppercase, to accept all file types.
-@types = qw~
-zip
-txt
-~;
-
-####################################################################
-# END USER EDITS
-####################################################################
-
-$OS = $^O; # operating system name
-if($OS =~ /darwin/i) { $isUNIX = 1; }
-elsif($OS =~ /win/i) { $isWIN = 1; }
-else {$isUNIX = 1;}
-
-if($isWIN){ $S{S} = "\\\\"; }
-else { $S{S} = "/";} # seperator used in paths
-
-unless (-d "$dir"){
- mkdir ("$dir", 0777); # unless the dir exists, make it ( and chmod it on UNIX )
- chmod(0777, "$dir");
-}
-
-
-unless (-d "$dir"){
- # if there still is no dir, the path entered by the user is wrong and the upload will fail
- # send back an error code
- # unauthorized, uid not correct
- exit;
-}
-
-use CGI; # load the CGI.pm module
-my $GET = new CGI; # create a new object
-my @VAL = $GET->param; #get all form field names
-
-foreach(@VAL){
- $FORM{$_} = $GET->param($_); # put all fields and values in hash
-}
-
-my($uid) = "";
-
-my @files;
-foreach(keys %FORM){
- # check for the parameter name
- # This must be MYLARa where is a a number
- if($_ =~ /^MYLAR(\d+)/){
- $uid = $1;
- if(&checkUID($uid) == 1)
- {
- push(@files, $_); # place the field NAME in an array
- }
- else
- {
- # unauthorized, uid not correct
- print "Content-type: text/plain", "\n";
- print "Status: 401 Unauthorized", "\n\n";
- print "UID Incorrect","\n";
- exit;
- }
- }
-}
-
-
-if(!$VAL[0]){
- # no file to upload so exit with an error
- print "Content-type: text/plain", "\n";
- print "Status: 501 Not Implemented", "\n\n";
- print "Upload Failed - no file to upload","\n";
-
- exit;
-}
-
-
-my $failed; # results string = false
-my $selected; # num of files selected by user
-
-####################################################################
-
-####################################################################
-
-foreach (@files){
- # upload each file, pass the form field NAME if it has a value
- if($GET->param($_)){
- # if the form field contains a file name &psjs_upload subroutine
- # the file's name and path are passed to the subroutine
- $returned = &psjs_upload($_);
- if($returned =~ /^Success/i){
- # if the $returned message begins with "Success" the upload was succssful
- # remove the word "Success" and any spaces and we're left with the filename
- $returned =~ s/^Success\s+//;
- push(@success, $returned);
- } else {
- # else if the word "success" is not returned, the message is the error encountered.
- # add the error to the $failed scalar
- $failed .= $returned;
- }
- $selected++; # increment num of files selected for uploading by user
- }
-}
-
-if(!$selected){
- # no files were selected by user, so nothing is returned to either variable
- $failed .= qq~No files were selected for uploading~;
-}
-
-# if no error message is return ed, the upload was successful
-
-my ($fNames, $aa, $bb, @current, @currentfiles );
-
-if($failed){
-
- # file failed to upload return error
- print "Content-type: text/plain", "\n";
- print "Status: 501 Not Implemented", "\n\n";
- print "Upload Failed","\n";
-
-} else {
- # upload was successful
- # log the success and return success code
-
- # send email if valid email was entered
- if(check_email($notify)){
-
- # TODO send an appropriate message
-
- # enter the message you would like to receive
- my $message = qq~
- The following files were uploaded to your server :
- ~;
-
- foreach(@success){
- $message .= qq~
- $dir/$_
- ~;
- }
-
- if($isUNIX){
- $CONFIG{mailprogram} = $send_mail_path;
- # enter your e-mail name here if you like
- # from e-mail, from name, to e-mail, to name, subject, body
- &send_mail($notify, 'Demo Upload', $notify, 'Demo Upload', 'Upload Notification', $message);
-
- } else {
- $CONFIG{smtppath} = $smtp_path;
- &send_mail_NT($notify, 'Your Name', $notify, 'Your Name', 'Upload Notification', $message);
- }
- }
-
- # NEED TO LOG THE UPLOAD
- foreach(@success){
- &log($uid . "\t" . "$dir/$_");
- }
-
-
- print "Content-type: text/plain". "\n";
- print "Status: 200 OK", "\n\n";
- print "Upload Success","\n";
-}
-
-####################################################################
-
-####################################################################
-
-sub psjs_upload {
-
- my $filename = $GET->param($_[0]);
- $filename =~ s/.*[\/\\](.*)/$1/;
- my $upload_filehandle = $GET->upload($_[0]);
- # if $file_type matchs one of the types specified, make the $type_ok var true
- for($b = 0; $b < @types; $b++){
- if($filename =~ /^.*\.$types[$b]$/i){
- $type_ok++;
- }
- if($types[$b] eq "ALL"){
- $type_ok++; # if ALL keyword is found, increment $type_ok var.
- }
- }
-
- # if ok, check if overwrite is allowed
- if($type_ok){
- if(open UPLOADFILE, ">$dir/$filename"){
-
- binmode UPLOADFILE;
-
- while ( <$upload_filehandle> )
- {
- print UPLOADFILE;
- }
- close UPLOADFILE;
- }else {
- return qq~Error opening file on the server~;
- }
- } else {
- return qq~Bad file type~;
- }
-
- # check if file has actually been uploaded, by checking the file has a size
- if(-s "$dir/$filename"){
- return qq~Success $filename~; #success
- } else {
- # delete the file as it has no content
- # user probably entered an incorrect path to file
- return qq~Upload failed : No data in $filename. No size on server's copy of file.
- Check the path entered.~;
- }
-}
-
-####################################################################
-
-####################################################################
-
-sub check_existence {
- # $dir,$filename,$newnum are the args passed to this sub
- my ($dir,$filename,$newnum) = @_;
-
- my (@file_type, $file_type, $exists, $bareName);
- # declare some vars we will use later on in this sub always use paranthesis
- # when declaring more than one var! Some novice programmers will tell you
- # this is not necessary. Tell them to learn how to program.
-
- if(!$newnum){$newnum = "0";} # new num is empty in first call, so set it to 0
-
- # read dir and put all files in an array (list)
- opendir(DIR, "$dir");
- @existing_files = readdir(DIR);
- closedir(DIR);
-
- # if the filename passed exists, set $exists to true or 1
- foreach(@existing_files){
- if($_ eq $filename){
- $exists = 1;
- }
- }
-
- # if it exists, we need to rename the file being uploaded and then recheck it to
- # make sure the new name does not exist
- if($exists){
- $newnum++; # increment new number (add 1)
-
- # get the extension
- @file_type = split(/\./, $filename); # split the dots and add inbetweens to a list
- # put the first element in the $barename var
- $bareName = $file_type[0];
- # we can assume everything after the last . found is the extension
- $file_type = $file_type[$#file_type];
- # $#file_type is the last element (note the pound or hash is used)
-
- # remove all numbers from the end of the $bareName
- $bareName =~ s/\d+$//ig;
-
- # concatenate a new name using the barename + newnum + extension
- $filename = $bareName . $newnum . '.' . $file_type;
-
- # reset $exists to 0 because the new file name is now being checked
- $exists = 0;
-
- # recall this subroutine
- &check_existence($dir,$filename,$newnum);
- } else {
- # the $filename, whether the first or one hundreth call, now does not exist
- # so return the name to be used
- return ($filename);
- }
-}
-
-####################################################################
-
-####################################################################
-
-sub send_mail {
- my ($from_email, $from_name, $to_email, $to_name, $subject, $message ) = @_;
-
- if(open(MAIL, "|$CONFIG{mailprogram} -t")) {
- print MAIL "From: $from_email ($from_name)\n";
- print MAIL "To: $to_email ($to_name)\n";
- print MAIL "Subject: $subject\n";
- print MAIL "$message\n\nSubmitter's IP Address : $ENV{REMOTE_ADDR}";
- close MAIL;
- return(1);
- } else {
- return;
- }
-}
-
-####################################################################
-
-####################################################################
-
-sub send_mail_NT {
-
- my ($from_email, $from_name, $to_email, $to_name, $subject, $message ) = @_;
-
- my ($SMTP_SERVER, $WEB_SERVER, $status, $err_message);
- use Socket;
- $SMTP_SERVER = "$CONFIG{smtppath}";
-
- # correct format for "\n"
- local($CRLF) = "\015\012";
- local($SMTP_SERVER_PORT) = 25;
- local($AF_INET) = ($] > 5 ? AF_INET : 2);
- local($SOCK_STREAM) = ($] > 5 ? SOCK_STREAM : 1);
-# local(@bad_addresses) = ();
- $, = ', ';
- $" = ', ';
-
- $WEB_SERVER = "$CONFIG{smtppath}\n";
- chop ($WEB_SERVER);
-
- local($local_address) = (gethostbyname($WEB_SERVER))[4];
- local($local_socket_address) = pack('S n a4 x8', $AF_INET, 0, $local_address);
-
- local($server_address) = (gethostbyname($SMTP_SERVER))[4];
- local($server_socket_address) = pack('S n a4 x8', $AF_INET, $SMTP_SERVER_PORT, $server_address);
-
- # Translate protocol name to corresponding number
- local($protocol) = (getprotobyname('tcp'))[2];
-
- # Make the socket filehandle
- if (!socket(SMTP, $AF_INET, $SOCK_STREAM, $protocol)) {
- return;
- }
-
- # Give the socket an address
- bind(SMTP, $local_socket_address);
-
- # Connect to the server
- if (!(connect(SMTP, $server_socket_address))) {
- return;
- }
-
- # Set the socket to be line buffered
- local($old_selected) = select(SMTP);
- $| = 1;
- select($old_selected);
-
- # Set regex to handle multiple line strings
- $* = 1;
-
- # Read first response from server (wait for .75 seconds first)
- select(undef, undef, undef, .75);
- sysread(SMTP, $_, 1024);
- #print "<P>1:$_";
-
- print SMTP "HELO $WEB_SERVER$CRLF";
- sysread(SMTP, $_, 1024);
- #print "<P>2:$_";
-
- while (/(^|(\r?\n))[^0-9]*((\d\d\d).*)$/g) { $status = $4; $err_message = $3}
- if ($status != 250) {
- return;
- }
-
- print SMTP "MAIL FROM:<$from_email>$CRLF";
-
- sysread(SMTP, $_, 1024);
- #print "<P>3:$_";
- if (!/[^0-9]*250/) {
- return;
- }
-
- # Tell the server where we're sending to
- print SMTP "RCPT TO:<$to_email>$CRLF";
- sysread(SMTP, $_, 1024);
- #print "<P>4:$_";
- /[^0-9]*(\d\d\d)/;
-
- # Give the server the message header
- print SMTP "DATA$CRLF";
- sysread(SMTP, $_, 1024);
- #print "<P>5:$_";
- if (!/[^0-9]*354/) {
- return;
- }
-
- $message =~ s/\n/$CRLF/ig;
-
- print SMTP qq~From: $from_email ($from_name)$CRLF~;
- print SMTP qq~To: $to_email ($to_name)$CRLF~;
-# if($cc){
-# print SMTP "CC: $cc ($cc_name)\n";
-# }
- print SMTP qq~Subject: $subject$CRLF$CRLF~;
- print SMTP qq~$message~;
-
- print SMTP "$CRLF.$CRLF";
- sysread(SMTP, $_, 1024);
- #print "<P>6:$_";
- if (!/[^0-9]*250/) {
- return;
- } else {
- return(1);
- }
-
- if (!shutdown(SMTP, 2)) {
- return;
- }
-}
-
-####################################################################
-
-####################################################################
-
-sub check_email {
- my($fe_email) = $_[0];
- if($fe_email) {
- if(($fe_email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(\.$)/) ||
- ($fe_email !~ /^.+@\[?(\w|[-.])+\.[a-zA-Z]{2,3}|[0-9]{1,3}\]?$/)) {
- return;
- } else { return(1) }
- } else {
- return;
- }
-}
-####################################################################
-
-####################################################################
-
-sub checkUID {
- my($uid) = $_[0];
-
- open(LOCKFILE, $lockfileName);
- flock(LOCKFILE, LOCK_EX);
-
- open(UIDMAP, $uidMapFile) || die "Can't open Log File: $!\n";
- my($found) = 0;
- my(@lines) = <UIDMAP>;
- my($line) = "";
- foreach $line (@lines)
- {
- if($line =~ m/^$uid\t(.*)\t(.*)\t(.*)$/)
- {
- $found = 1;
- last;
- }
- }
- close UIDMAP;
-
- flock(LOCKFILE, LOCK_UN);
- close LOCKFILE;
- return $found;
-}
-
-####################################################################
-
-####################################################################
-
-sub log {
- open(LOCKFILE, $lockfileName);
- flock(LOCKFILE, LOCK_EX);
-
- open(LOG, "+<$logFile") || die "Can't open Log File: $!\n";
-
- seek LOG, 0, 2;
- print LOG $_[0] . "\t\t";
-
- my ($sec,$min,$hour,$mday,$mon,$year, $wday,$yday,$isdst) = localtime time;
-
- # update the year so that it is correct since it perl
- # has a 1900 yr offset
- $year += 1900;
-
- # update the month since it is 0 based in perl
- $mon += 1;
-
- printf LOG "%02d/%02d/%04d %02d:%02d:%02d\n", $mday, $mon, $year, $hour, $min, $sec;
-
- close LOG;
-
- flock(LOCKFILE, LOCK_UN);
- close LOCKFILE;
-}
+#!/usr/bin/perl -w
+
+use Fcntl ':flock';
+
+# START USER EDITS
+
+# absolute path to folder files will be uploaded to.
+# WINDOWS users, your path would like something like : images\\uploads
+# UNIX users, your path would like something like : /home/www/images/uploads
+# do not end the path with any slashes and if you're on a UNIX serv, make sure
+# you CHMOD each folder in the path to 777
+
+$lockfileName = "/.../.lock";
+$logFile = "/.../uploadLog.txt";
+$uidMapFile = "/.../mylarUidMap.txt";
+
+$dir = "/isd/se2/project/mylar/userStudy/upload";
+
+# if you would like to be notified of uploads, enter your email address
+# between the SINGLE quotes. leave this blank if you would not like to be notified
+$notify = '';
+
+# UNIX users, if you entered a value for $notify, you must also enter your
+# server's sendmail path. It usually looks something like : /usr/sbin/sendmail
+$send_mail_path = "";
+
+# WINDOWS users, if you entered a value for $notify, you must also enter your
+# server's SMTP path. It usually looks something like : mail.servername.com
+$smtp_path = "";
+
+# file types allowed, enter each type on a new line
+# Enter the word "ALL" in uppercase, to accept all file types.
+@types = qw~
+zip
+txt
+~;
+
+####################################################################
+# END USER EDITS
+####################################################################
+
+$OS = $^O; # operating system name
+if($OS =~ /darwin/i) { $isUNIX = 1; }
+elsif($OS =~ /win/i) { $isWIN = 1; }
+else {$isUNIX = 1;}
+
+if($isWIN){ $S{S} = "\\\\"; }
+else { $S{S} = "/";} # seperator used in paths
+
+unless (-d "$dir"){
+ mkdir ("$dir", 0777); # unless the dir exists, make it ( and chmod it on UNIX )
+ chmod(0777, "$dir");
+}
+
+
+unless (-d "$dir"){
+ # if there still is no dir, the path entered by the user is wrong and the upload will fail
+ # send back an error code
+ # unauthorized, uid not correct
+ exit;
+}
+
+use CGI; # load the CGI.pm module
+my $GET = new CGI; # create a new object
+my @VAL = $GET->param; #get all form field names
+
+foreach(@VAL){
+ $FORM{$_} = $GET->param($_); # put all fields and values in hash
+}
+
+my($uid) = "";
+
+my @files;
+foreach(keys %FORM){
+ # check for the parameter name
+ # This must be MYLARa where is a a number
+ if($_ =~ /^MYLAR(\d+)/){
+ $uid = $1;
+ if(&checkUID($uid) == 1)
+ {
+ push(@files, $_); # place the field NAME in an array
+ }
+ else
+ {
+ # unauthorized, uid not correct
+ print "Content-type: text/plain", "\n";
+ print "Status: 401 Unauthorized", "\n\n";
+ print "UID Incorrect","\n";
+ exit;
+ }
+ }
+}
+
+
+if(!$VAL[0]){
+ # no file to upload so exit with an error
+ print "Content-type: text/plain", "\n";
+ print "Status: 501 Not Implemented", "\n\n";
+ print "Upload Failed - no file to upload","\n";
+
+ exit;
+}
+
+
+my $failed; # results string = false
+my $selected; # num of files selected by user
+
+####################################################################
+
+####################################################################
+
+foreach (@files){
+ # upload each file, pass the form field NAME if it has a value
+ if($GET->param($_)){
+ # if the form field contains a file name &psjs_upload subroutine
+ # the file's name and path are passed to the subroutine
+ $returned = &psjs_upload($_);
+ if($returned =~ /^Success/i){
+ # if the $returned message begins with "Success" the upload was succssful
+ # remove the word "Success" and any spaces and we're left with the filename
+ $returned =~ s/^Success\s+//;
+ push(@success, $returned);
+ } else {
+ # else if the word "success" is not returned, the message is the error encountered.
+ # add the error to the $failed scalar
+ $failed .= $returned;
+ }
+ $selected++; # increment num of files selected for uploading by user
+ }
+}
+
+if(!$selected){
+ # no files were selected by user, so nothing is returned to either variable
+ $failed .= qq~No files were selected for uploading~;
+}
+
+# if no error message is return ed, the upload was successful
+
+my ($fNames, $aa, $bb, @current, @currentfiles );
+
+if($failed){
+
+ # file failed to upload return error
+ print "Content-type: text/plain", "\n";
+ print "Status: 501 Not Implemented", "\n\n";
+ print "Upload Failed","\n";
+
+} else {
+ # upload was successful
+ # log the success and return success code
+
+ # send email if valid email was entered
+ if(check_email($notify)){
+
+ # TODO send an appropriate message
+
+ # enter the message you would like to receive
+ my $message = qq~
+ The following files were uploaded to your server :
+ ~;
+
+ foreach(@success){
+ $message .= qq~
+ $dir/$_
+ ~;
+ }
+
+ if($isUNIX){
+ $CONFIG{mailprogram} = $send_mail_path;
+ # enter your e-mail name here if you like
+ # from e-mail, from name, to e-mail, to name, subject, body
+ &send_mail($notify, 'Demo Upload', $notify, 'Demo Upload', 'Upload Notification', $message);
+
+ } else {
+ $CONFIG{smtppath} = $smtp_path;
+ &send_mail_NT($notify, 'Your Name', $notify, 'Your Name', 'Upload Notification', $message);
+ }
+ }
+
+ # NEED TO LOG THE UPLOAD
+ foreach(@success){
+ &log($uid . "\t" . "$dir/$_");
+ }
+
+
+ print "Content-type: text/plain". "\n";
+ print "Status: 200 OK", "\n\n";
+ print "Upload Success","\n";
+}
+
+####################################################################
+
+####################################################################
+
+sub psjs_upload {
+
+ my $filename = $GET->param($_[0]);
+ $filename =~ s/.*[\/\\](.*)/$1/;
+ my $upload_filehandle = $GET->upload($_[0]);
+ # if $file_type matchs one of the types specified, make the $type_ok var true
+ for($b = 0; $b < @types; $b++){
+ if($filename =~ /^.*\.$types[$b]$/i){
+ $type_ok++;
+ }
+ if($types[$b] eq "ALL"){
+ $type_ok++; # if ALL keyword is found, increment $type_ok var.
+ }
+ }
+
+ # if ok, check if overwrite is allowed
+ if($type_ok){
+ if(open UPLOADFILE, ">$dir/$filename"){
+
+ binmode UPLOADFILE;
+
+ while ( <$upload_filehandle> )
+ {
+ print UPLOADFILE;
+ }
+ close UPLOADFILE;
+ }else {
+ return qq~Error opening file on the server~;
+ }
+ } else {
+ return qq~Bad file type~;
+ }
+
+ # check if file has actually been uploaded, by checking the file has a size
+ if(-s "$dir/$filename"){
+ return qq~Success $filename~; #success
+ } else {
+ # delete the file as it has no content
+ # user probably entered an incorrect path to file
+ return qq~Upload failed : No data in $filename. No size on server's copy of file.
+ Check the path entered.~;
+ }
+}
+
+####################################################################
+
+####################################################################
+
+sub check_existence {
+ # $dir,$filename,$newnum are the args passed to this sub
+ my ($dir,$filename,$newnum) = @_;
+
+ my (@file_type, $file_type, $exists, $bareName);
+ # declare some vars we will use later on in this sub always use paranthesis
+ # when declaring more than one var! Some novice programmers will tell you
+ # this is not necessary. Tell them to learn how to program.
+
+ if(!$newnum){$newnum = "0";} # new num is empty in first call, so set it to 0
+
+ # read dir and put all files in an array (list)
+ opendir(DIR, "$dir");
+ @existing_files = readdir(DIR);
+ closedir(DIR);
+
+ # if the filename passed exists, set $exists to true or 1
+ foreach(@existing_files){
+ if($_ eq $filename){
+ $exists = 1;
+ }
+ }
+
+ # if it exists, we need to rename the file being uploaded and then recheck it to
+ # make sure the new name does not exist
+ if($exists){
+ $newnum++; # increment new number (add 1)
+
+ # get the extension
+ @file_type = split(/\./, $filename); # split the dots and add inbetweens to a list
+ # put the first element in the $barename var
+ $bareName = $file_type[0];
+ # we can assume everything after the last . found is the extension
+ $file_type = $file_type[$#file_type];
+ # $#file_type is the last element (note the pound or hash is used)
+
+ # remove all numbers from the end of the $bareName
+ $bareName =~ s/\d+$//ig;
+
+ # concatenate a new name using the barename + newnum + extension
+ $filename = $bareName . $newnum . '.' . $file_type;
+
+ # reset $exists to 0 because the new file name is now being checked
+ $exists = 0;
+
+ # recall this subroutine
+ &check_existence($dir,$filename,$newnum);
+ } else {
+ # the $filename, whether the first or one hundreth call, now does not exist
+ # so return the name to be used
+ return ($filename);
+ }
+}
+
+####################################################################
+
+####################################################################
+
+sub send_mail {
+ my ($from_email, $from_name, $to_email, $to_name, $subject, $message ) = @_;
+
+ if(open(MAIL, "|$CONFIG{mailprogram} -t")) {
+ print MAIL "From: $from_email ($from_name)\n";
+ print MAIL "To: $to_email ($to_name)\n";
+ print MAIL "Subject: $subject\n";
+ print MAIL "$message\n\nSubmitter's IP Address : $ENV{REMOTE_ADDR}";
+ close MAIL;
+ return(1);
+ } else {
+ return;
+ }
+}
+
+####################################################################
+
+####################################################################
+
+sub send_mail_NT {
+
+ my ($from_email, $from_name, $to_email, $to_name, $subject, $message ) = @_;
+
+ my ($SMTP_SERVER, $WEB_SERVER, $status, $err_message);
+ use Socket;
+ $SMTP_SERVER = "$CONFIG{smtppath}";
+
+ # correct format for "\n"
+ local($CRLF) = "\015\012";
+ local($SMTP_SERVER_PORT) = 25;
+ local($AF_INET) = ($] > 5 ? AF_INET : 2);
+ local($SOCK_STREAM) = ($] > 5 ? SOCK_STREAM : 1);
+# local(@bad_addresses) = ();
+ $, = ', ';
+ $" = ', ';
+
+ $WEB_SERVER = "$CONFIG{smtppath}\n";
+ chop ($WEB_SERVER);
+
+ local($local_address) = (gethostbyname($WEB_SERVER))[4];
+ local($local_socket_address) = pack('S n a4 x8', $AF_INET, 0, $local_address);
+
+ local($server_address) = (gethostbyname($SMTP_SERVER))[4];
+ local($server_socket_address) = pack('S n a4 x8', $AF_INET, $SMTP_SERVER_PORT, $server_address);
+
+ # Translate protocol name to corresponding number
+ local($protocol) = (getprotobyname('tcp'))[2];
+
+ # Make the socket filehandle
+ if (!socket(SMTP, $AF_INET, $SOCK_STREAM, $protocol)) {
+ return;
+ }
+
+ # Give the socket an address
+ bind(SMTP, $local_socket_address);
+
+ # Connect to the server
+ if (!(connect(SMTP, $server_socket_address))) {
+ return;
+ }
+
+ # Set the socket to be line buffered
+ local($old_selected) = select(SMTP);
+ $| = 1;
+ select($old_selected);
+
+ # Set regex to handle multiple line strings
+ $* = 1;
+
+ # Read first response from server (wait for .75 seconds first)
+ select(undef, undef, undef, .75);
+ sysread(SMTP, $_, 1024);
+ #print "<P>1:$_";
+
+ print SMTP "HELO $WEB_SERVER$CRLF";
+ sysread(SMTP, $_, 1024);
+ #print "<P>2:$_";
+
+ while (/(^|(\r?\n))[^0-9]*((\d\d\d).*)$/g) { $status = $4; $err_message = $3}
+ if ($status != 250) {
+ return;
+ }
+
+ print SMTP "MAIL FROM:<$from_email>$CRLF";
+
+ sysread(SMTP, $_, 1024);
+ #print "<P>3:$_";
+ if (!/[^0-9]*250/) {
+ return;
+ }
+
+ # Tell the server where we're sending to
+ print SMTP "RCPT TO:<$to_email>$CRLF";
+ sysread(SMTP, $_, 1024);
+ #print "<P>4:$_";
+ /[^0-9]*(\d\d\d)/;
+
+ # Give the server the message header
+ print SMTP "DATA$CRLF";
+ sysread(SMTP, $_, 1024);
+ #print "<P>5:$_";
+ if (!/[^0-9]*354/) {
+ return;
+ }
+
+ $message =~ s/\n/$CRLF/ig;
+
+ print SMTP qq~From: $from_email ($from_name)$CRLF~;
+ print SMTP qq~To: $to_email ($to_name)$CRLF~;
+# if($cc){
+# print SMTP "CC: $cc ($cc_name)\n";
+# }
+ print SMTP qq~Subject: $subject$CRLF$CRLF~;
+ print SMTP qq~$message~;
+
+ print SMTP "$CRLF.$CRLF";
+ sysread(SMTP, $_, 1024);
+ #print "<P>6:$_";
+ if (!/[^0-9]*250/) {
+ return;
+ } else {
+ return(1);
+ }
+
+ if (!shutdown(SMTP, 2)) {
+ return;
+ }
+}
+
+####################################################################
+
+####################################################################
+
+sub check_email {
+ my($fe_email) = $_[0];
+ if($fe_email) {
+ if(($fe_email =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(\.$)/) ||
+ ($fe_email !~ /^.+@\[?(\w|[-.])+\.[a-zA-Z]{2,3}|[0-9]{1,3}\]?$/)) {
+ return;
+ } else { return(1) }
+ } else {
+ return;
+ }
+}
+####################################################################
+
+####################################################################
+
+sub checkUID {
+ my($uid) = $_[0];
+
+ open(LOCKFILE, $lockfileName);
+ flock(LOCKFILE, LOCK_EX);
+
+ open(UIDMAP, $uidMapFile) || die "Can't open Log File: $!\n";
+ my($found) = 0;
+ my(@lines) = <UIDMAP>;
+ my($line) = "";
+ foreach $line (@lines)
+ {
+ if($line =~ m/^$uid\t(.*)\t(.*)\t(.*)$/)
+ {
+ $found = 1;
+ last;
+ }
+ }
+ close UIDMAP;
+
+ flock(LOCKFILE, LOCK_UN);
+ close LOCKFILE;
+ return $found;
+}
+
+####################################################################
+
+####################################################################
+
+sub log {
+ open(LOCKFILE, $lockfileName);
+ flock(LOCKFILE, LOCK_EX);
+
+ open(LOG, "+<$logFile") || die "Can't open Log File: $!\n";
+
+ seek LOG, 0, 2;
+ print LOG $_[0] . "\t\t";
+
+ my ($sec,$min,$hour,$mday,$mon,$year, $wday,$yday,$isdst) = localtime time;
+
+ # update the year so that it is correct since it perl
+ # has a 1900 yr offset
+ $year += 1900;
+
+ # update the month since it is 0 based in perl
+ $mon += 1;
+
+ printf LOG "%02d/%02d/%04d %02d:%02d:%02d\n", $mday, $mon, $year, $hour, $min, $sec;
+
+ close LOG;
+
+ flock(LOCKFILE, LOCK_UN);
+ close LOCKFILE;
+}
diff --git a/org.eclipse.mylyn.experimental-sdk-feature/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.experimental-sdk-feature/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.experimental-sdk-feature/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.ide.capabilities/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.ide.capabilities/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.ide.capabilities/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.ide.capabilities/META-INF/MANIFEST.MF b/org.eclipse.mylyn.ide.capabilities/META-INF/MANIFEST.MF
index 01b497b..70646d9 100644
--- a/org.eclipse.mylyn.ide.capabilities/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.ide.capabilities/META-INF/MANIFEST.MF
@@ -1,8 +1,8 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.mylyn.ide.capabilities;singleton:=true
-Bundle-Version: 3.7.0.qualifier
-Bundle-Vendor: %Bundle-Vendor
-Require-Bundle: org.eclipse.ui
-Bundle-Localization: plugin
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.mylyn.ide.capabilities;singleton:=true
+Bundle-Version: 3.7.0.qualifier
+Bundle-Vendor: %Bundle-Vendor
+Require-Bundle: org.eclipse.ui
+Bundle-Localization: plugin
diff --git a/org.eclipse.mylyn.ide.dev/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.ide.dev/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.ide.dev/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.ide.dev/META-INF/MANIFEST.MF b/org.eclipse.mylyn.ide.dev/META-INF/MANIFEST.MF
index d9d145d..5e4f905 100644
--- a/org.eclipse.mylyn.ide.dev/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.ide.dev/META-INF/MANIFEST.MF
@@ -1,8 +1,8 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.mylyn.ide.dev;singleton:=true
-Bundle-Version: 3.7.0.qualifier
-Bundle-Vendor: %Bundle-Vendor
-Require-Bundle: org.eclipse.ui
-Bundle-Localization: plugin
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.mylyn.ide.dev;singleton:=true
+Bundle-Version: 3.7.0.qualifier
+Bundle-Vendor: %Bundle-Vendor
+Require-Bundle: org.eclipse.ui
+Bundle-Localization: plugin
diff --git a/org.eclipse.mylyn.incubator-site/site.xml b/org.eclipse.mylyn.incubator-site/site.xml
index 80bd9c3..a245fcf 100644
--- a/org.eclipse.mylyn.incubator-site/site.xml
+++ b/org.eclipse.mylyn.incubator-site/site.xml
@@ -1,37 +1,37 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
- <description url="http://download.eclipse.org/mylyn/incubator">
- Mylyn Incubator
- </description>
- <feature url="features/org.eclipse.mylyn.sandbox.serach_0.0.0.jar" id="org.eclipse.mylyn.sandbox.search" version="0.0.0">
- <category name="Incubator"/>
- </feature>
- <feature url="features/org.eclipse.mylyn.sandbox.ui_feature_0.0.0.jar" id="org.eclipse.mylyn.sandbox.ui_feature" version="0.0.0">
- <category name="Incubator"/>
- </feature>
- <feature url="features/org.eclipse.mylyn.monitor_feature_0.0.0.jar" id="org.eclipse.mylyn.monitor_feature" version="0.0.0">
- <category name="Incubator"/>
- </feature>
- <feature url="features/org.eclipse.mylyn.web.tasks_feature_0.0.0.jar" id="org.eclipse.mylyn.web.tasks_feature" version="0.0.0">
- <category name="Incubator"/>
- </feature>
- <feature url="features/org.eclipse.mylyn.wikitext.sandbox_0.0.0.jar" id="org.eclipse.mylyn.wikitext.sandbox" version="0.0.0">
- <category name="Incubator"/>
- </feature>
- <feature url="features/org.eclipse.mylyn.experimental_sdk_feature_0.0.0.jar" id="org.eclipse.mylyn.experimental_sdk_feature" version="0.0.0">
- <category name="SDKIncubator"/>
- </feature>
- <feature url="features/org.eclipse.mylyn.tasks.index_0.0.0.qualifier.jar" id="org.eclipse.mylyn.tasks.index" version="0.0.0">
- <category name="Incubator"/>
- </feature>
- <category-def name="Incubator" label="Mylyn Incubator">
- <description>
- Mylyn bridges that integrate with documents and programming languages. Mylyn connectors that integrate with task repositories.
- </description>
- </category-def>
- <category-def name="SDKIncubator" label="Mylyn Plug-in Development">
- <description>
- Source code and documentation for integrators building on Mylyn.
- </description>
- </category-def>
-</site>
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+ <description url="http://download.eclipse.org/mylyn/incubator">
+ Mylyn Incubator
+ </description>
+ <feature url="features/org.eclipse.mylyn.sandbox.serach_0.0.0.jar" id="org.eclipse.mylyn.sandbox.search" version="0.0.0">
+ <category name="Incubator"/>
+ </feature>
+ <feature url="features/org.eclipse.mylyn.sandbox.ui_feature_0.0.0.jar" id="org.eclipse.mylyn.sandbox.ui_feature" version="0.0.0">
+ <category name="Incubator"/>
+ </feature>
+ <feature url="features/org.eclipse.mylyn.monitor_feature_0.0.0.jar" id="org.eclipse.mylyn.monitor_feature" version="0.0.0">
+ <category name="Incubator"/>
+ </feature>
+ <feature url="features/org.eclipse.mylyn.web.tasks_feature_0.0.0.jar" id="org.eclipse.mylyn.web.tasks_feature" version="0.0.0">
+ <category name="Incubator"/>
+ </feature>
+ <feature url="features/org.eclipse.mylyn.wikitext.sandbox_0.0.0.jar" id="org.eclipse.mylyn.wikitext.sandbox" version="0.0.0">
+ <category name="Incubator"/>
+ </feature>
+ <feature url="features/org.eclipse.mylyn.experimental_sdk_feature_0.0.0.jar" id="org.eclipse.mylyn.experimental_sdk_feature" version="0.0.0">
+ <category name="SDKIncubator"/>
+ </feature>
+ <feature url="features/org.eclipse.mylyn.tasks.index_0.0.0.qualifier.jar" id="org.eclipse.mylyn.tasks.index" version="0.0.0">
+ <category name="Incubator"/>
+ </feature>
+ <category-def name="Incubator" label="Mylyn Incubator">
+ <description>
+ Mylyn bridges that integrate with documents and programming languages. Mylyn connectors that integrate with task repositories.
+ </description>
+ </category-def>
+ <category-def name="SDKIncubator" label="Mylyn Plug-in Development">
+ <description>
+ Source code and documentation for integrators building on Mylyn.
+ </description>
+ </category-def>
+</site>
diff --git a/org.eclipse.mylyn.monitor.reports/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.monitor.reports/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.monitor.reports/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.monitor.reports/META-INF/MANIFEST.MF b/org.eclipse.mylyn.monitor.reports/META-INF/MANIFEST.MF
index ca8d779..5450403 100644
--- a/org.eclipse.mylyn.monitor.reports/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.monitor.reports/META-INF/MANIFEST.MF
@@ -1,25 +1,25 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Mylyn Usage Monitor (Incubation)
-Bundle-SymbolicName: org.eclipse.mylyn.monitor.reports; singleton:=true
-Bundle-Version: 3.7.0.qualifier
-Bundle-Activator: org.eclipse.mylyn.internal.monitor.reports.MonitorReportsPlugin
-Bundle-Vendor: Eclipse Mylyn
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.jdt.ui,
- org.eclipse.ui.forms,
- org.eclipse.mylyn.context.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.monitor.usage;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.context.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.monitor.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.monitor.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)"
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.mylyn.internal.monitor.reports;x-internal:=true,
- org.eclipse.mylyn.internal.monitor.reports.collectors;x-internal:=true,
- org.eclipse.mylyn.internal.monitor.reports.preferences;x-internal:=true,
- org.eclipse.mylyn.internal.monitor.reports.ui.actions;x-internal:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Mylyn Usage Monitor (Incubation)
+Bundle-SymbolicName: org.eclipse.mylyn.monitor.reports; singleton:=true
+Bundle-Version: 3.7.0.qualifier
+Bundle-Activator: org.eclipse.mylyn.internal.monitor.reports.MonitorReportsPlugin
+Bundle-Vendor: Eclipse Mylyn
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.jdt.ui,
+ org.eclipse.ui.forms,
+ org.eclipse.mylyn.context.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.monitor.usage;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.context.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.monitor.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.monitor.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)"
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.mylyn.internal.monitor.reports;x-internal:=true,
+ org.eclipse.mylyn.internal.monitor.reports.collectors;x-internal:=true,
+ org.eclipse.mylyn.internal.monitor.reports.preferences;x-internal:=true,
+ org.eclipse.mylyn.internal.monitor.reports.ui.actions;x-internal:=true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/org.eclipse.mylyn.monitor.usage-feature/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.monitor.usage-feature/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.monitor.usage-feature/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.monitor.usage/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.monitor.usage/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.monitor.usage/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.monitor.usage/META-INF/MANIFEST.MF b/org.eclipse.mylyn.monitor.usage/META-INF/MANIFEST.MF
index 0d2e31f..4b46f29 100644
--- a/org.eclipse.mylyn.monitor.usage/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.monitor.usage/META-INF/MANIFEST.MF
@@ -1,33 +1,33 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Mylyn Usage Monitor (Incubation)
-Bundle-SymbolicName: org.eclipse.mylyn.monitor.usage;singleton:=true
-Bundle-Version: 3.7.0.qualifier
-Bundle-Activator: org.eclipse.mylyn.internal.monitor.usage.UiUsageMonitorPlugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.jface.text,
- org.eclipse.ui.browser,
- org.eclipse.ui.editors,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.forms,
- org.eclipse.core.filesystem,
- org.eclipse.ui.ide,
- org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.context.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.monitor.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.monitor.ui;bundle-version="[3.0.0,4.0.0)"
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: Eclipse Mylyn
-Export-Package:
- org.eclipse.mylyn.internal.monitor.usage;x-internal:=true,
- org.eclipse.mylyn.internal.monitor.usage.collectors;x-internal:=true,
- org.eclipse.mylyn.internal.monitor.usage.common;x-internal:=true,
- org.eclipse.mylyn.internal.monitor.usage.editors;x-internal:=true,
- org.eclipse.mylyn.internal.monitor.usage.preferences;x-internal:=true,
- org.eclipse.mylyn.internal.monitor.usage.wizards;x-internal:=true,
- org.eclipse.mylyn.monitor.usage
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Mylyn Usage Monitor (Incubation)
+Bundle-SymbolicName: org.eclipse.mylyn.monitor.usage;singleton:=true
+Bundle-Version: 3.7.0.qualifier
+Bundle-Activator: org.eclipse.mylyn.internal.monitor.usage.UiUsageMonitorPlugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.jface.text,
+ org.eclipse.ui.browser,
+ org.eclipse.ui.editors,
+ org.eclipse.ui.workbench.texteditor,
+ org.eclipse.ui.forms,
+ org.eclipse.core.filesystem,
+ org.eclipse.ui.ide,
+ org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.context.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.monitor.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.monitor.ui;bundle-version="[3.0.0,4.0.0)"
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: Eclipse Mylyn
+Export-Package:
+ org.eclipse.mylyn.internal.monitor.usage;x-internal:=true,
+ org.eclipse.mylyn.internal.monitor.usage.collectors;x-internal:=true,
+ org.eclipse.mylyn.internal.monitor.usage.common;x-internal:=true,
+ org.eclipse.mylyn.internal.monitor.usage.editors;x-internal:=true,
+ org.eclipse.mylyn.internal.monitor.usage.preferences;x-internal:=true,
+ org.eclipse.mylyn.internal.monitor.usage.wizards;x-internal:=true,
+ org.eclipse.mylyn.monitor.usage
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/org.eclipse.mylyn.monitor.usage/doc/book.css b/org.eclipse.mylyn.monitor.usage/doc/book.css
index 6ee38f3..faa4199 100644
--- a/org.eclipse.mylyn.monitor.usage/doc/book.css
+++ b/org.eclipse.mylyn.monitor.usage/doc/book.css
@@ -1 +1 @@
-@import "../../PRODUCT_PLUGIN/book.css";
+@import "../../PRODUCT_PLUGIN/book.css";
diff --git a/org.eclipse.mylyn.sandbox.dev-feature/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.sandbox.dev-feature/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.sandbox.dev-feature/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.sandbox.dev/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.sandbox.dev/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.sandbox.dev/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.sandbox.dev/META-INF/MANIFEST.MF b/org.eclipse.mylyn.sandbox.dev/META-INF/MANIFEST.MF
index 32ff394..b35cc6d 100644
--- a/org.eclipse.mylyn.sandbox.dev/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.sandbox.dev/META-INF/MANIFEST.MF
@@ -1,24 +1,24 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Mylyn Incubator (Incubation)
-Bundle-SymbolicName: org.eclipse.mylyn.sandbox.dev;singleton:=true
-Bundle-Version: 3.7.0.qualifier
-Require-Bundle: org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.jdt.core;resolution:=optional,
- org.eclipse.ui,
- org.eclipse.ui.views.properties.tabbed,
- org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.context.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.context.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)"
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: Eclipse Mylyn
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-Activator: org.eclipse.mylyn.internal.sandbox.dev.MylynDevPlugin
-Export-Package: org.eclipse.mylyn.internal.sandbox.dev;x-internal:=true,
- org.eclipse.mylyn.internal.sandbox.dev.actions;x-internal:=true,
- org.eclipse.mylyn.internal.sandbox.dev.properties;x-internal:=true,
- org.eclipse.mylyn.internal.sandbox.dev.views;x-internal:=true
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Mylyn Incubator (Incubation)
+Bundle-SymbolicName: org.eclipse.mylyn.sandbox.dev;singleton:=true
+Bundle-Version: 3.7.0.qualifier
+Require-Bundle: org.eclipse.core.resources,
+ org.eclipse.core.runtime,
+ org.eclipse.jdt.core;resolution:=optional,
+ org.eclipse.ui,
+ org.eclipse.ui.views.properties.tabbed,
+ org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.context.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.context.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)"
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: Eclipse Mylyn
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Activator: org.eclipse.mylyn.internal.sandbox.dev.MylynDevPlugin
+Export-Package: org.eclipse.mylyn.internal.sandbox.dev;x-internal:=true,
+ org.eclipse.mylyn.internal.sandbox.dev.actions;x-internal:=true,
+ org.eclipse.mylyn.internal.sandbox.dev.properties;x-internal:=true,
+ org.eclipse.mylyn.internal.sandbox.dev.views;x-internal:=true
diff --git a/org.eclipse.mylyn.sandbox.search-feature/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.sandbox.search-feature/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.sandbox.search-feature/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.sandbox.search-feature/feature.xml b/org.eclipse.mylyn.sandbox.search-feature/feature.xml
index df22d70..df90b61 100644
--- a/org.eclipse.mylyn.sandbox.search-feature/feature.xml
+++ b/org.eclipse.mylyn.sandbox.search-feature/feature.xml
@@ -1,37 +1,37 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.mylyn.sandbox.search"
- label="%featureName"
- version="3.7.0.qualifier"
- provider-name="%providerName"
- plugin="org.eclipse.mylyn">
-
- <description url="http://eclipse.org/mylyn">
- %description
- </description>
-
- <copyright>
- %copyright
- </copyright>
-
- <license url="license.html">
- %license
- </license>
-
- <plugin
- id="org.eclipse.mylyn.sandbox.search.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylyn.sandbox.search.ui.windows"
- os="win32"
- arch="x86,x86_64"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.mylyn.sandbox.search"
+ label="%featureName"
+ version="3.7.0.qualifier"
+ provider-name="%providerName"
+ plugin="org.eclipse.mylyn">
+
+ <description url="http://eclipse.org/mylyn">
+ %description
+ </description>
+
+ <copyright>
+ %copyright
+ </copyright>
+
+ <license url="license.html">
+ %license
+ </license>
+
+ <plugin
+ id="org.eclipse.mylyn.sandbox.search.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.mylyn.sandbox.search.ui.windows"
+ os="win32"
+ arch="x86,x86_64"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/org.eclipse.mylyn.sandbox.search.ui.windows/.project b/org.eclipse.mylyn.sandbox.search.ui.windows/.project
index c4116b2..d61c780 100644
--- a/org.eclipse.mylyn.sandbox.search.ui.windows/.project
+++ b/org.eclipse.mylyn.sandbox.search.ui.windows/.project
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.sandbox.search.ui.windows</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.mylyn.sandbox.search.ui.windows</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.mylyn.sandbox.search.ui.windows/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.sandbox.search.ui.windows/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.sandbox.search.ui.windows/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.sandbox.search.ui.windows/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.sandbox.search.ui.windows/.settings/org.eclipse.jdt.core.prefs
index 93bc578..e289ef7 100644
--- a/org.eclipse.mylyn.sandbox.search.ui.windows/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.mylyn.sandbox.search.ui.windows/.settings/org.eclipse.jdt.core.prefs
@@ -1,357 +1,357 @@
-#Wed Jun 15 20:34:49 CEST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=48
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+#Wed Jun 15 20:34:49 CEST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=48
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/.cvsignore b/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/.cvsignore
index 69badd3..d18d141 100644
--- a/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/.cvsignore
+++ b/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/.cvsignore
@@ -1,7 +1,7 @@
-Debug
-Release
-Windows7Search.vcxproj.user
-Windows7Search.suo
-Windows7Search.sdf
-Windows7Search.opensdf
-.gitignore
+Debug
+Release
+Windows7Search.vcxproj.user
+Windows7Search.suo
+Windows7Search.sdf
+Windows7Search.opensdf
+.gitignore
diff --git a/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/Windows7Search.vcxproj b/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/Windows7Search.vcxproj
index 3e65c8b..907e612 100644
--- a/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/Windows7Search.vcxproj
+++ b/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/Windows7Search.vcxproj
@@ -1,175 +1,175 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{261731A1-3785-4E06-86EB-80215A4676FE}</ProjectGuid>
- <Keyword>Win32Proj</Keyword>
- <RootNamespace>Windows7Search</RootNamespace>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>Unicode</CharacterSet>
- <UseOfMfc>Dynamic</UseOfMfc>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>Unicode</CharacterSet>
- <UseOfMfc>Dynamic</UseOfMfc>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- <UseOfMfc>Dynamic</UseOfMfc>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- <UseOfMfc>Dynamic</UseOfMfc>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <LinkIncremental>true</LinkIncremental>
- <TargetName>$(ProjectName)32</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <TargetName>$(ProjectName)64</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <LinkIncremental>false</LinkIncremental>
- <TargetName>$(ProjectName)32</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <TargetName>$(ProjectName)64</TargetName>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;WINDOWS7SEARCH_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\Program Files\Java\jdk1.6.0_21\include;C:\Program Files (x86)\Java\jdk1.6.0_25\include;C:\Program Files\Java\jdk1.6.0_21\include\win32;C:\Program Files (x86)\Java\jdk1.6.0_25\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;WINDOWS7SEARCH_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\Program Files\Java\jdk1.6.0_21\include;C:\Program Files (x86)\Java\jdk1.6.0_25\include;C:\Program Files\Java\jdk1.6.0_21\include\win32;C:\Program Files (x86)\Java\jdk1.6.0_25\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;WINDOWS7SEARCH_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\Program Files\Java\jdk1.6.0_21\include;C:\Program Files (x86)\Java\jdk1.6.0_25\include;C:\Program Files\Java\jdk1.6.0_21\include\win32;C:\Program Files (x86)\Java\jdk1.6.0_25\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;WINDOWS7SEARCH_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\Program Files\Java\jdk1.6.0_21\include;C:\Program Files (x86)\Java\jdk1.6.0_25\include;C:\Program Files\Java\jdk1.6.0_21\include\win32;C:\Program Files (x86)\Java\jdk1.6.0_25\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <None Include="Debug\msado15.tlh" />
- <None Include="Debug\msado15.tli" />
- <None Include="ReadMe.txt" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="Resource.h" />
- <ClInclude Include="stdafx.h" />
- <ClInclude Include="targetver.h" />
- <ClInclude Include="Windows7Search.h" />
- <ClInclude Include="Windows7SearchProvider.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="stdafx.cpp">
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
- </ClCompile>
- <ClCompile Include="Windows7Search.cpp" />
- <ClCompile Include="Windows7SearchProvider.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="Windows7Search.rc" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{261731A1-3785-4E06-86EB-80215A4676FE}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>Windows7Search</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ <UseOfMfc>Dynamic</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ <UseOfMfc>Dynamic</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ <UseOfMfc>Dynamic</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ <UseOfMfc>Dynamic</UseOfMfc>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ <TargetName>$(ProjectName)32</TargetName>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ <TargetName>$(ProjectName)64</TargetName>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ <TargetName>$(ProjectName)32</TargetName>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ <TargetName>$(ProjectName)64</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;WINDOWS7SEARCH_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>C:\Program Files\Java\jdk1.6.0_21\include;C:\Program Files (x86)\Java\jdk1.6.0_25\include;C:\Program Files\Java\jdk1.6.0_21\include\win32;C:\Program Files (x86)\Java\jdk1.6.0_25\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;WINDOWS7SEARCH_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>C:\Program Files\Java\jdk1.6.0_21\include;C:\Program Files (x86)\Java\jdk1.6.0_25\include;C:\Program Files\Java\jdk1.6.0_21\include\win32;C:\Program Files (x86)\Java\jdk1.6.0_25\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;WINDOWS7SEARCH_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>C:\Program Files\Java\jdk1.6.0_21\include;C:\Program Files (x86)\Java\jdk1.6.0_25\include;C:\Program Files\Java\jdk1.6.0_21\include\win32;C:\Program Files (x86)\Java\jdk1.6.0_25\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;WINDOWS7SEARCH_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>C:\Program Files\Java\jdk1.6.0_21\include;C:\Program Files (x86)\Java\jdk1.6.0_25\include;C:\Program Files\Java\jdk1.6.0_21\include\win32;C:\Program Files (x86)\Java\jdk1.6.0_25\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <None Include="Debug\msado15.tlh" />
+ <None Include="Debug\msado15.tli" />
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="Resource.h" />
+ <ClInclude Include="stdafx.h" />
+ <ClInclude Include="targetver.h" />
+ <ClInclude Include="Windows7Search.h" />
+ <ClInclude Include="Windows7SearchProvider.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="stdafx.cpp">
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
+ </ClCompile>
+ <ClCompile Include="Windows7Search.cpp" />
+ <ClCompile Include="Windows7SearchProvider.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="Windows7Search.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
</Project>
\ No newline at end of file
diff --git a/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/Windows7Search.vcxproj.filters b/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/Windows7Search.vcxproj.filters
index db422dd..5331af5 100644
--- a/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/Windows7Search.vcxproj.filters
+++ b/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/Windows7Search.vcxproj.filters
@@ -1,59 +1,59 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- </Filter>
- <Filter Include="Resource Files">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <None Include="ReadMe.txt" />
- <None Include="Debug\msado15.tlh">
- <Filter>Header Files</Filter>
- </None>
- <None Include="Debug\msado15.tli">
- <Filter>Header Files</Filter>
- </None>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="stdafx.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="targetver.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="Resource.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="Windows7Search.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="Windows7SearchProvider.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="stdafx.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="Windows7Search.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="Windows7SearchProvider.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="Windows7Search.rc">
- <Filter>Resource Files</Filter>
- </ResourceCompile>
- </ItemGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ <None Include="Debug\msado15.tlh">
+ <Filter>Header Files</Filter>
+ </None>
+ <None Include="Debug\msado15.tli">
+ <Filter>Header Files</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="stdafx.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="targetver.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="Resource.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="Windows7Search.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="Windows7SearchProvider.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="stdafx.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="Windows7Search.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="Windows7SearchProvider.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="Windows7Search.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
</Project>
\ No newline at end of file
diff --git a/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/Windows7SearchProvider.cpp b/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/Windows7SearchProvider.cpp
index dc705a5..29e6a2f 100644
--- a/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/Windows7SearchProvider.cpp
+++ b/org.eclipse.mylyn.sandbox.search.ui.windows/Windows7Search/Windows7SearchProvider.cpp
@@ -11,9 +11,9 @@
#include "stdafx.h"
#include "Windows7Search.h"
#include "Windows7SearchProvider.h"
-
-#include <sstream>
-#include <list>
+
+#include <sstream>
+#include <list>
#import "C:/Program Files/Common Files/System/ado/msado15.dll" rename("EOF", "ADOEOF")
@@ -43,22 +43,22 @@
return result == JNI_TRUE;
}
-std::wstring ReplaceCharWithString(std::wstring source, const wchar_t replaceChar, std::wstring replaceString)
-{
- size_t posn = source.find(&replaceChar);
- while (posn != std::wstring::npos)
- {
- source.replace(posn, 1, replaceString);
- posn = source.find(&replaceChar, posn + replaceString.length());
- }
- return source;
-}
+std::wstring ReplaceCharWithString(std::wstring source, const wchar_t replaceChar, std::wstring replaceString)
+{
+ size_t posn = source.find(&replaceChar);
+ while (posn != std::wstring::npos)
+ {
+ source.replace(posn, 1, replaceString);
+ posn = source.find(&replaceChar, posn + replaceString.length());
+ }
+ return source;
+}
-std::wstring IntToString(int value) {
- std::wstringstream sstream;
- sstream << value;
- return sstream.str();
-}
+std::wstring IntToString(int value) {
+ std::wstringstream sstream;
+ sstream << value;
+ return sstream.str();
+}
void PerformSearch(JNIEnv *env, jobject obj, jobject callback, std::wstring searchText, std::list<std::wstring>& patterns,int maximumResults, jobject monitor)
@@ -85,11 +85,11 @@
return;
- searchText = ReplaceCharWithString(searchText, '\'', L"''");
-
- std::wstring filenameMatcher = searchText;
- filenameMatcher = ReplaceCharWithString(filenameMatcher, '%', L"\\%");
- filenameMatcher = ReplaceCharWithString(filenameMatcher, '*', L"%");
+ searchText = ReplaceCharWithString(searchText, '\'', L"''");
+
+ std::wstring filenameMatcher = searchText;
+ filenameMatcher = ReplaceCharWithString(filenameMatcher, '%', L"\\%");
+ filenameMatcher = ReplaceCharWithString(filenameMatcher, '*', L"%");
// see FREETEXT http://msdn.microsoft.com/en-us/library/bb231268(v=vs.85).aspx
// see CONTAINS http://msdn.microsoft.com/en-us/library/bb231270(v=vs.85).aspx
@@ -108,37 +108,37 @@
query += filenameMatcher;
query += L"%'))";
- if (patterns.size() > 0) {
- bool hasFilenameSearch = true;
+ if (patterns.size() > 0) {
+ bool hasFilenameSearch = true;
std::wstring anyFile(L"*");
-
- for(std::list<std::wstring>::iterator iterator = patterns.begin(); iterator != patterns.end(); iterator++) {
- std::wstring pattern = *iterator;
- if (pattern == anyFile) {
- hasFilenameSearch = false;
- break;
- }
- }
- if (hasFilenameSearch) {
- query += L" AND (";
- for(std::list<std::wstring>::iterator iterator = patterns.begin(); iterator != patterns.end(); iterator++) {
- std::wstring pattern = *iterator;
- if (pattern.size() == 0) {
- continue;
- }
- pattern = ReplaceCharWithString(pattern, '*', L"%");
- if (iterator != patterns.begin()) {
- query += L" OR ";
- }
- query += L"(System.ItemName LIKE '";
- if (pattern[0] != '%') {
- query += L"%";
- }
- query += pattern;
- query += L"')";
- }
- query += L")";
- }
+
+ for(std::list<std::wstring>::iterator iterator = patterns.begin(); iterator != patterns.end(); iterator++) {
+ std::wstring pattern = *iterator;
+ if (pattern == anyFile) {
+ hasFilenameSearch = false;
+ break;
+ }
+ }
+ if (hasFilenameSearch) {
+ query += L" AND (";
+ for(std::list<std::wstring>::iterator iterator = patterns.begin(); iterator != patterns.end(); iterator++) {
+ std::wstring pattern = *iterator;
+ if (pattern.size() == 0) {
+ continue;
+ }
+ pattern = ReplaceCharWithString(pattern, '*', L"%");
+ if (iterator != patterns.begin()) {
+ query += L" OR ";
+ }
+ query += L"(System.ItemName LIKE '";
+ if (pattern[0] != '%') {
+ query += L"%";
+ }
+ query += pattern;
+ query += L"')";
+ }
+ query += L")";
+ }
}
//std::cout << "Query:\n";
@@ -175,14 +175,14 @@
break;
}
}
- } catch (_com_error &e) {
- _tprintf(_T("\tCOM Error code = %08lx\n"), e.Error());
- }
-
-
- if (recordset != NULL && recordset->State == ADODB::adStateOpen)
- recordset->Close();
- if (connection != NULL && connection->State == ADODB::adStateOpen)
+ } catch (_com_error &e) {
+ _tprintf(_T("\tCOM Error code = %08lx\n"), e.Error());
+ }
+
+
+ if (recordset != NULL && recordset->State == ADODB::adStateOpen)
+ recordset->Close();
+ if (connection != NULL && connection->State == ADODB::adStateOpen)
connection->Close();
::CoUninitialize();
@@ -205,22 +205,22 @@
jstring jSearchText = (jstring)env->CallObjectMethod(criteria, mid);
std::wstring searchText = JStringToWString(env, jSearchText);
- jmethodID getPatternId = env->GetMethodID(jc, "getFilenamePatterns","()[Ljava/lang/String;");
- jobjectArray patternArray = (jobjectArray)env->CallObjectMethod(criteria, getPatternId);
- unsigned int patternCount = env->GetArrayLength(patternArray);
-
-
- // FIXME FIXME FIXME
- jmethodID getMaximumResultsId = env->GetMethodID(jc,"getMaximumResults","()I");
- jint maximumResults = (jint) env->CallIntMethod(criteria,getMaximumResultsId);
-
-
- std::list<std::wstring> patterns;
- for (unsigned int i=0; i<patternCount; i++) {
- jstring jPattern = (jstring)env->GetObjectArrayElement(patternArray, i);
- std::wstring pattern = JStringToWString(env, jPattern);
- patterns.push_back(pattern);
- }
+ jmethodID getPatternId = env->GetMethodID(jc, "getFilenamePatterns","()[Ljava/lang/String;");
+ jobjectArray patternArray = (jobjectArray)env->CallObjectMethod(criteria, getPatternId);
+ unsigned int patternCount = env->GetArrayLength(patternArray);
+
+
+ // FIXME FIXME FIXME
+ jmethodID getMaximumResultsId = env->GetMethodID(jc,"getMaximumResults","()I");
+ jint maximumResults = (jint) env->CallIntMethod(criteria,getMaximumResultsId);
+
+
+ std::list<std::wstring> patterns;
+ for (unsigned int i=0; i<patternCount; i++) {
+ jstring jPattern = (jstring)env->GetObjectArrayElement(patternArray, i);
+ std::wstring pattern = JStringToWString(env, jPattern);
+ patterns.push_back(pattern);
+ }
PerformSearch(env, obj, callback, searchText, patterns,(int) maximumResults, monitor);
}
diff --git a/org.eclipse.mylyn.sandbox.search.ui.windows/about.html b/org.eclipse.mylyn.sandbox.search.ui.windows/about.html
index 6346eae..c426db2 100644
--- a/org.eclipse.mylyn.sandbox.search.ui.windows/about.html
+++ b/org.eclipse.mylyn.sandbox.search.ui.windows/about.html
@@ -1,27 +1,27 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 14, 2011</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, "Program" will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party ("Redistributor") and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<title>About</title>
+<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 14, 2011</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
</html>
\ No newline at end of file
diff --git a/org.eclipse.mylyn.sandbox.search.ui.windows/build.properties b/org.eclipse.mylyn.sandbox.search.ui.windows/build.properties
index 5670226..33b3c35 100644
--- a/org.eclipse.mylyn.sandbox.search.ui.windows/build.properties
+++ b/org.eclipse.mylyn.sandbox.search.ui.windows/build.properties
@@ -1,10 +1,10 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.xml,\
- OSGI-INF/,\
- Windows7Search32.dll,\
- Windows7Search64.dll
-
-src.includes = about.html
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ OSGI-INF/,\
+ Windows7Search32.dll,\
+ Windows7Search64.dll
+
+src.includes = about.html
diff --git a/org.eclipse.mylyn.sandbox.search.ui.windows/plugin.xml b/org.eclipse.mylyn.sandbox.search.ui.windows/plugin.xml
index aa43f29..e24c185 100644
--- a/org.eclipse.mylyn.sandbox.search.ui.windows/plugin.xml
+++ b/org.eclipse.mylyn.sandbox.search.ui.windows/plugin.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
- <extension
- point="org.eclipse.mylyn.sandbox.search.ui.searchProvider">
- <searchProvider
- class="org.eclipse.mylyn.internal.sandbox.search.ui.windows.WindowsSearchProvider">
- </searchProvider>
- </extension>
-
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.mylyn.sandbox.search.ui.searchProvider">
+ <searchProvider
+ class="org.eclipse.mylyn.internal.sandbox.search.ui.windows.WindowsSearchProvider">
+ </searchProvider>
+ </extension>
+
+</plugin>
diff --git a/org.eclipse.mylyn.sandbox.search.ui/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.sandbox.search.ui/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.sandbox.search.ui/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/BasicSearchProvider.java b/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/BasicSearchProvider.java
index 7604d7b..e3b7421 100644
--- a/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/BasicSearchProvider.java
+++ b/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/BasicSearchProvider.java
@@ -1,281 +1,281 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.sandbox.search.ui.provider;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Stack;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileInfo;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.mylyn.sandbox.search.ui.SearchCallback;
-import org.eclipse.mylyn.sandbox.search.ui.SearchCriteria;
-import org.eclipse.mylyn.sandbox.search.ui.SearchProvider;
-import org.eclipse.mylyn.sandbox.search.ui.SearchResult;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * A search provider that operates over java.io
- *
- * @author David Green
- */
-public class BasicSearchProvider extends SearchProvider {
-
- private abstract class FileMatcher {
- public abstract boolean matches(IFileStore file, IProgressMonitor monitor);
- }
-
- private class CompositeFileMatcher extends FileMatcher {
-
- private final List<FileMatcher> delegates;
-
- private final boolean allMatch;
-
- /**
- * @param allMatch
- * indicate if one delegate must match (false) or if all delegates must match (true)
- */
- public CompositeFileMatcher(boolean allMatch) {
- this.allMatch = allMatch;
- delegates = new ArrayList<FileMatcher>();
- }
-
- public CompositeFileMatcher(List<FileMatcher> delegates, boolean allMatch) {
- this.delegates = delegates;
- this.allMatch = allMatch;
- }
-
- public void add(FileMatcher matcher) {
- delegates.add(matcher);
- }
-
- @Override
- public boolean matches(IFileStore file, IProgressMonitor monitor) {
- for (FileMatcher matcher : delegates) {
- if (monitor.isCanceled()) {
- return false;
- }
- if (!matcher.matches(file, monitor)) {
- if (allMatch) {
- return false;
- }
- } else if (!allMatch) {
- return true;
- }
- }
- return allMatch ? true : false;
- }
- }
-
- private class FileNameMatcher extends FileMatcher {
-
- private final Pattern pattern;
-
- public FileNameMatcher(String matchPattern) {
- String regex = ".*?"; //$NON-NLS-1$
- regex += patternToRegex(matchPattern);
- regex += ".*"; //$NON-NLS-1$
- pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
- }
-
- @Override
- public boolean matches(IFileStore file, IProgressMonitor monitor) {
- String name = file.getName();
- return pattern.matcher(name).matches();
- }
-
- }
-
- private class FileContentMatcher extends FileMatcher {
-
- private final Pattern pattern;
-
- private final int maxMatchingCharacters = 1024 * 16;
-
- public FileContentMatcher(SearchCriteria searchSpecification) {
- pattern = Pattern.compile(patternToRegex(searchSpecification.getText().trim()), Pattern.CASE_INSENSITIVE);
- }
-
- @Override
- public boolean matches(IFileStore file, IProgressMonitor monitor) {
- monitor.subTask(file.toString());
- try {
- InputStream inputStream = file.openInputStream(EFS.NONE, monitor);
- try {
- InputStreamReader reader = new InputStreamReader(new BufferedInputStream(inputStream));
- try {
- ReaderCharSequence charSequence = new ReaderCharSequence(maxMatchingCharacters, reader, monitor);
- return pattern.matcher(charSequence).find();
- } finally {
- reader.close();
- }
- } finally {
- inputStream.close();
- }
- } catch (IOException e) {
- // ignore
- } catch (CoreException e) {
- // ignore
- }
- return false;
- }
-
- }
-
- @Override
- public void performSearch(SearchCriteria searchSpecification, SearchCallback callback, IProgressMonitor m)
- throws CoreException {
- SubMonitor monitor = SubMonitor.convert(m);
- monitor.beginTask(NLS.bind(Messages.BasicSearchProvider_0, searchSpecification.getText()),
- searchSpecification.getMaximumResults() > 0
- ? searchSpecification.getMaximumResults()
- : IProgressMonitor.UNKNOWN);
- try {
- FileMatcher matcher = computeMatcher(searchSpecification);
-
- File[] roots = File.listRoots();
- if (roots != null) {
- int matchCount = 0;
-
- Stack<IFileStore> state = new Stack<IFileStore>();
-
- // reverse-order iteration so that the first one is the last pushed on the stack
- for (int x = roots.length - 1; x >= 0; --x) {
- if (monitor.isCanceled()) {
- break;
- }
- File root = roots[x];
- IFileStore fileStore = EFS.getLocalFileSystem().fromLocalFile(root);
-
- state.push(fileStore);
- }
- try {
- while (!state.isEmpty() && !monitor.isCanceled()) {
- IFileStore fileStore = state.pop();
-
- IFileInfo fileInfo = fileStore.fetchInfo();
- if (isDefaultIgnore(fileStore, fileInfo)) {
- // ignore
- } else if (fileInfo.isDirectory()) {
- monitor.subTask(fileStore.toString());
-
- IFileStore[] childStores = fileStore.childStores(EFS.NONE, monitor.newChild(0));
- for (IFileStore child : childStores) {
- state.push(child);
- }
- } else {
-
- if (matcher.matches(fileStore, monitor.newChild(0))) {
- monitor.worked(1);
-
- callback.searchResult(new SearchResult(fileStore.toLocalFile(EFS.NONE,
- monitor.newChild(0))));
-
- if (++matchCount >= searchSpecification.getMaximumResults()) {
- break;
- }
- }
- }
- }
- } catch (OperationCanceledException oce) {
- // ignore
- } catch (CoreException e) {
- if (e.getStatus().getSeverity() != IStatus.CANCEL) {
- throw e;
- }
- }
- }
- } finally {
- monitor.done();
- }
- }
-
- private boolean isDefaultIgnore(IFileStore fileStore, IFileInfo fileInfo) {
- if (fileInfo.getAttribute(EFS.ATTRIBUTE_SYMLINK) || fileInfo.getAttribute(EFS.ATTRIBUTE_HIDDEN)) {
- // ignore, we don't follow symbolic links or hidden files
- return true;
- } else {
- String name = fileStore.getName();
- if (fileInfo.isDirectory()) {
- if ((name.equals("Windows") || name.equals("$Recycle.Bin")) && fileStore.getParent() != null && fileStore.getParent().getParent() == null) { //$NON-NLS-1$ //$NON-NLS-2$
- return true;
- } else if (name.startsWith(".")) { //$NON-NLS-1$
- return true;
- }
- } else {
- if (name.endsWith(".dll") || name.endsWith(".exe") || name.endsWith(".sys") || name.endsWith(".zip") || name.endsWith(".jar") || name.endsWith(".bin")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
- return true;
- }
- }
- }
- return false;
- }
-
- private FileMatcher computeMatcher(SearchCriteria searchSpecification) {
- List<FileMatcher> filenameMatchers = new ArrayList<FileMatcher>();
-
- for (String filenamePattern : searchSpecification.getFilenamePatterns()) {
- if (filenamePattern.length() > 0) {
- if (filenamePattern.equals("*") || filenamePattern.equals("*.*")) { //$NON-NLS-1$//$NON-NLS-2$
- // every file matches
- filenameMatchers.clear();
- break;
- } else {
- filenameMatchers.add(new FileNameMatcher(filenamePattern));
- }
- }
- }
-
- CompositeFileMatcher fileMatcher = new CompositeFileMatcher(true);
- if (!filenameMatchers.isEmpty()) {
- fileMatcher.add(filenameMatchers.size() == 1 ? filenameMatchers.get(0) : new CompositeFileMatcher(
- filenameMatchers, false));
- }
-
- if (searchSpecification.getText() != null && searchSpecification.getText().trim().length() > 0) {
- fileMatcher.add(new FileContentMatcher(searchSpecification));
- }
-
- return fileMatcher;
- }
-
- private String patternToRegex(String matchPattern) {
- String regex = ""; //$NON-NLS-1$
- for (char c : matchPattern.toCharArray()) {
- if (Character.isLetterOrDigit(c)) {
- regex += c;
- } else {
- if (c == '*') {
- regex += ".*"; //$NON-NLS-1$
- } else if (c == '?') {
- regex += "."; //$NON-NLS-1$
- } else {
- regex += "\\"; //$NON-NLS-1$
- regex += c;
- }
- }
- }
- return regex;
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.sandbox.search.ui.provider;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Stack;
+import java.util.regex.Pattern;
+
+import org.eclipse.core.filesystem.EFS;
+import org.eclipse.core.filesystem.IFileInfo;
+import org.eclipse.core.filesystem.IFileStore;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.SubMonitor;
+import org.eclipse.mylyn.sandbox.search.ui.SearchCallback;
+import org.eclipse.mylyn.sandbox.search.ui.SearchCriteria;
+import org.eclipse.mylyn.sandbox.search.ui.SearchProvider;
+import org.eclipse.mylyn.sandbox.search.ui.SearchResult;
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * A search provider that operates over java.io
+ *
+ * @author David Green
+ */
+public class BasicSearchProvider extends SearchProvider {
+
+ private abstract class FileMatcher {
+ public abstract boolean matches(IFileStore file, IProgressMonitor monitor);
+ }
+
+ private class CompositeFileMatcher extends FileMatcher {
+
+ private final List<FileMatcher> delegates;
+
+ private final boolean allMatch;
+
+ /**
+ * @param allMatch
+ * indicate if one delegate must match (false) or if all delegates must match (true)
+ */
+ public CompositeFileMatcher(boolean allMatch) {
+ this.allMatch = allMatch;
+ delegates = new ArrayList<FileMatcher>();
+ }
+
+ public CompositeFileMatcher(List<FileMatcher> delegates, boolean allMatch) {
+ this.delegates = delegates;
+ this.allMatch = allMatch;
+ }
+
+ public void add(FileMatcher matcher) {
+ delegates.add(matcher);
+ }
+
+ @Override
+ public boolean matches(IFileStore file, IProgressMonitor monitor) {
+ for (FileMatcher matcher : delegates) {
+ if (monitor.isCanceled()) {
+ return false;
+ }
+ if (!matcher.matches(file, monitor)) {
+ if (allMatch) {
+ return false;
+ }
+ } else if (!allMatch) {
+ return true;
+ }
+ }
+ return allMatch ? true : false;
+ }
+ }
+
+ private class FileNameMatcher extends FileMatcher {
+
+ private final Pattern pattern;
+
+ public FileNameMatcher(String matchPattern) {
+ String regex = ".*?"; //$NON-NLS-1$
+ regex += patternToRegex(matchPattern);
+ regex += ".*"; //$NON-NLS-1$
+ pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
+ }
+
+ @Override
+ public boolean matches(IFileStore file, IProgressMonitor monitor) {
+ String name = file.getName();
+ return pattern.matcher(name).matches();
+ }
+
+ }
+
+ private class FileContentMatcher extends FileMatcher {
+
+ private final Pattern pattern;
+
+ private final int maxMatchingCharacters = 1024 * 16;
+
+ public FileContentMatcher(SearchCriteria searchSpecification) {
+ pattern = Pattern.compile(patternToRegex(searchSpecification.getText().trim()), Pattern.CASE_INSENSITIVE);
+ }
+
+ @Override
+ public boolean matches(IFileStore file, IProgressMonitor monitor) {
+ monitor.subTask(file.toString());
+ try {
+ InputStream inputStream = file.openInputStream(EFS.NONE, monitor);
+ try {
+ InputStreamReader reader = new InputStreamReader(new BufferedInputStream(inputStream));
+ try {
+ ReaderCharSequence charSequence = new ReaderCharSequence(maxMatchingCharacters, reader, monitor);
+ return pattern.matcher(charSequence).find();
+ } finally {
+ reader.close();
+ }
+ } finally {
+ inputStream.close();
+ }
+ } catch (IOException e) {
+ // ignore
+ } catch (CoreException e) {
+ // ignore
+ }
+ return false;
+ }
+
+ }
+
+ @Override
+ public void performSearch(SearchCriteria searchSpecification, SearchCallback callback, IProgressMonitor m)
+ throws CoreException {
+ SubMonitor monitor = SubMonitor.convert(m);
+ monitor.beginTask(NLS.bind(Messages.BasicSearchProvider_0, searchSpecification.getText()),
+ searchSpecification.getMaximumResults() > 0
+ ? searchSpecification.getMaximumResults()
+ : IProgressMonitor.UNKNOWN);
+ try {
+ FileMatcher matcher = computeMatcher(searchSpecification);
+
+ File[] roots = File.listRoots();
+ if (roots != null) {
+ int matchCount = 0;
+
+ Stack<IFileStore> state = new Stack<IFileStore>();
+
+ // reverse-order iteration so that the first one is the last pushed on the stack
+ for (int x = roots.length - 1; x >= 0; --x) {
+ if (monitor.isCanceled()) {
+ break;
+ }
+ File root = roots[x];
+ IFileStore fileStore = EFS.getLocalFileSystem().fromLocalFile(root);
+
+ state.push(fileStore);
+ }
+ try {
+ while (!state.isEmpty() && !monitor.isCanceled()) {
+ IFileStore fileStore = state.pop();
+
+ IFileInfo fileInfo = fileStore.fetchInfo();
+ if (isDefaultIgnore(fileStore, fileInfo)) {
+ // ignore
+ } else if (fileInfo.isDirectory()) {
+ monitor.subTask(fileStore.toString());
+
+ IFileStore[] childStores = fileStore.childStores(EFS.NONE, monitor.newChild(0));
+ for (IFileStore child : childStores) {
+ state.push(child);
+ }
+ } else {
+
+ if (matcher.matches(fileStore, monitor.newChild(0))) {
+ monitor.worked(1);
+
+ callback.searchResult(new SearchResult(fileStore.toLocalFile(EFS.NONE,
+ monitor.newChild(0))));
+
+ if (++matchCount >= searchSpecification.getMaximumResults()) {
+ break;
+ }
+ }
+ }
+ }
+ } catch (OperationCanceledException oce) {
+ // ignore
+ } catch (CoreException e) {
+ if (e.getStatus().getSeverity() != IStatus.CANCEL) {
+ throw e;
+ }
+ }
+ }
+ } finally {
+ monitor.done();
+ }
+ }
+
+ private boolean isDefaultIgnore(IFileStore fileStore, IFileInfo fileInfo) {
+ if (fileInfo.getAttribute(EFS.ATTRIBUTE_SYMLINK) || fileInfo.getAttribute(EFS.ATTRIBUTE_HIDDEN)) {
+ // ignore, we don't follow symbolic links or hidden files
+ return true;
+ } else {
+ String name = fileStore.getName();
+ if (fileInfo.isDirectory()) {
+ if ((name.equals("Windows") || name.equals("$Recycle.Bin")) && fileStore.getParent() != null && fileStore.getParent().getParent() == null) { //$NON-NLS-1$ //$NON-NLS-2$
+ return true;
+ } else if (name.startsWith(".")) { //$NON-NLS-1$
+ return true;
+ }
+ } else {
+ if (name.endsWith(".dll") || name.endsWith(".exe") || name.endsWith(".sys") || name.endsWith(".zip") || name.endsWith(".jar") || name.endsWith(".bin")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private FileMatcher computeMatcher(SearchCriteria searchSpecification) {
+ List<FileMatcher> filenameMatchers = new ArrayList<FileMatcher>();
+
+ for (String filenamePattern : searchSpecification.getFilenamePatterns()) {
+ if (filenamePattern.length() > 0) {
+ if (filenamePattern.equals("*") || filenamePattern.equals("*.*")) { //$NON-NLS-1$//$NON-NLS-2$
+ // every file matches
+ filenameMatchers.clear();
+ break;
+ } else {
+ filenameMatchers.add(new FileNameMatcher(filenamePattern));
+ }
+ }
+ }
+
+ CompositeFileMatcher fileMatcher = new CompositeFileMatcher(true);
+ if (!filenameMatchers.isEmpty()) {
+ fileMatcher.add(filenameMatchers.size() == 1 ? filenameMatchers.get(0) : new CompositeFileMatcher(
+ filenameMatchers, false));
+ }
+
+ if (searchSpecification.getText() != null && searchSpecification.getText().trim().length() > 0) {
+ fileMatcher.add(new FileContentMatcher(searchSpecification));
+ }
+
+ return fileMatcher;
+ }
+
+ private String patternToRegex(String matchPattern) {
+ String regex = ""; //$NON-NLS-1$
+ for (char c : matchPattern.toCharArray()) {
+ if (Character.isLetterOrDigit(c)) {
+ regex += c;
+ } else {
+ if (c == '*') {
+ regex += ".*"; //$NON-NLS-1$
+ } else if (c == '?') {
+ regex += "."; //$NON-NLS-1$
+ } else {
+ regex += "\\"; //$NON-NLS-1$
+ regex += c;
+ }
+ }
+ }
+ return regex;
+ }
+}
diff --git a/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/Messages.java b/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/Messages.java
index 63aefb8..7c3b638 100644
--- a/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/Messages.java
+++ b/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/Messages.java
@@ -1,27 +1,27 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.sandbox.search.ui.provider;
-
-import org.eclipse.osgi.util.NLS;
-
-class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.sandbox.search.ui.provider.messages"; //$NON-NLS-1$
-
- public static String BasicSearchProvider_0;
- static {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- private Messages() {
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.sandbox.search.ui.provider;
+
+import org.eclipse.osgi.util.NLS;
+
+class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.sandbox.search.ui.provider.messages"; //$NON-NLS-1$
+
+ public static String BasicSearchProvider_0;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/ReaderCharSequence.java b/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/ReaderCharSequence.java
index ca34955..58a99b5 100644
--- a/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/ReaderCharSequence.java
+++ b/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/ReaderCharSequence.java
@@ -1,99 +1,99 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.sandbox.search.ui.provider;
-
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-
-/**
- * A CharSequence that is based on a reader, providing a specified number of characters. If the reader cannot provide
- * enough character data, the sequence is padded with whitespace.
- *
- * @author David Green
- */
-class ReaderCharSequence implements CharSequence {
-
- private final int length;
-
- private Reader reader;
-
- private final StringBuilder buffer;
-
- private final IProgressMonitor monitor;
-
- public ReaderCharSequence(int length, Reader reader, IProgressMonitor monitor) {
- this.length = length;
- this.reader = reader;
- this.monitor = monitor;
- buffer = new StringBuilder(length > 1024 ? 1024 : length);
- }
-
- public int length() {
- return length;
- }
-
- public char charAt(int index) {
- if (index >= length || index < 0) {
- throw new IndexOutOfBoundsException();
- }
- if (index >= buffer.length()) {
- fill(index);
- }
- if (index >= buffer.length()) {
- return ' ';
- }
- return buffer.charAt(index);
- }
-
- private void fill(int maxIndex) {
- if (reader == null) {
- return;
- }
- int c;
- while (buffer.length() <= maxIndex) {
- if (monitor.isCanceled()) {
- throw new OperationCanceledException();
- }
- try {
- c = reader.read();
- if (c == -1) {
- reader = null;
- break;
- }
- } catch (IOException e) {
- reader = null;
- break;
- }
- buffer.append((char) c);
- }
- }
-
- public CharSequence subSequence(int start, int end) {
- if (end > length || end < 0 || start < 0 || start > end) {
- throw new IndexOutOfBoundsException();
- }
- if (end > buffer.length()) {
- fill(end - 1);
- }
- if (end <= buffer.length()) {
- return buffer.subSequence(start, end);
- }
- StringBuilder buf = new StringBuilder(end - start);
- for (int x = start; x < end; ++x) {
- buf.append(charAt(x));
- }
- return buf;
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.sandbox.search.ui.provider;
+
+import java.io.IOException;
+import java.io.Reader;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+
+/**
+ * A CharSequence that is based on a reader, providing a specified number of characters. If the reader cannot provide
+ * enough character data, the sequence is padded with whitespace.
+ *
+ * @author David Green
+ */
+class ReaderCharSequence implements CharSequence {
+
+ private final int length;
+
+ private Reader reader;
+
+ private final StringBuilder buffer;
+
+ private final IProgressMonitor monitor;
+
+ public ReaderCharSequence(int length, Reader reader, IProgressMonitor monitor) {
+ this.length = length;
+ this.reader = reader;
+ this.monitor = monitor;
+ buffer = new StringBuilder(length > 1024 ? 1024 : length);
+ }
+
+ public int length() {
+ return length;
+ }
+
+ public char charAt(int index) {
+ if (index >= length || index < 0) {
+ throw new IndexOutOfBoundsException();
+ }
+ if (index >= buffer.length()) {
+ fill(index);
+ }
+ if (index >= buffer.length()) {
+ return ' ';
+ }
+ return buffer.charAt(index);
+ }
+
+ private void fill(int maxIndex) {
+ if (reader == null) {
+ return;
+ }
+ int c;
+ while (buffer.length() <= maxIndex) {
+ if (monitor.isCanceled()) {
+ throw new OperationCanceledException();
+ }
+ try {
+ c = reader.read();
+ if (c == -1) {
+ reader = null;
+ break;
+ }
+ } catch (IOException e) {
+ reader = null;
+ break;
+ }
+ buffer.append((char) c);
+ }
+ }
+
+ public CharSequence subSequence(int start, int end) {
+ if (end > length || end < 0 || start < 0 || start > end) {
+ throw new IndexOutOfBoundsException();
+ }
+ if (end > buffer.length()) {
+ fill(end - 1);
+ }
+ if (end <= buffer.length()) {
+ return buffer.subSequence(start, end);
+ }
+ StringBuilder buf = new StringBuilder(end - start);
+ for (int x = start; x < end; ++x) {
+ buf.append(charAt(x));
+ }
+ return buf;
+ }
+}
diff --git a/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/messages.properties b/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/messages.properties
index 5956df2..6588b49 100644
--- a/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/messages.properties
+++ b/org.eclipse.mylyn.sandbox.search.ui/src/org/eclipse/mylyn/internal/sandbox/search/ui/provider/messages.properties
@@ -1,11 +1,11 @@
-###############################################################################
-# Copyright (c) 2011 Tasktop Technologies.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Tasktop Technologies - initial API and implementation
-###############################################################################
-BasicSearchProvider_0=Searching for files matching "{0}"
+###############################################################################
+# Copyright (c) 2011 Tasktop Technologies.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Tasktop Technologies - initial API and implementation
+###############################################################################
+BasicSearchProvider_0=Searching for files matching "{0}"
diff --git a/org.eclipse.mylyn.sandbox.tests/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.sandbox.tests/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.sandbox.tests/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.sandbox.tests/META-INF/MANIFEST.MF b/org.eclipse.mylyn.sandbox.tests/META-INF/MANIFEST.MF
index 3a86df4..3a75387 100644
--- a/org.eclipse.mylyn.sandbox.tests/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.sandbox.tests/META-INF/MANIFEST.MF
@@ -1,41 +1,41 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Mylyn Incubator (Incubation)
-Bundle-SymbolicName: org.eclipse.mylyn.sandbox.tests;singleton:=true
-Bundle-Version: 3.7.0.qualifier
-Bundle-Vendor: Eclipse Mylyn
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.jdt.core,
- org.eclipse.jdt.ui,
- org.eclipse.pde.core,
- org.eclipse.ui,
- org.junit,
- org.eclipse.mylyn.bugzilla.core,
- org.eclipse.mylyn.bugzilla.tests,
- org.eclipse.mylyn.commons.core,
- org.eclipse.mylyn.commons.net,
- org.eclipse.mylyn.commons.sdk.util,
- org.eclipse.mylyn.context.core,
- org.eclipse.mylyn.context.sdk.java,
- org.eclipse.mylyn.context.sdk.util,
- org.eclipse.mylyn.context.ui,
- org.eclipse.mylyn.java.ui,
- org.eclipse.mylyn.monitor.core,
- org.eclipse.mylyn.monitor.reports,
- org.eclipse.mylyn.monitor.usage,
- org.eclipse.mylyn.tasks.core,
- org.eclipse.mylyn.tasks.tests,
- org.eclipse.mylyn.tasks.ui,
- org.eclipse.mylyn.tests.util,
- org.eclipse.mylyn.monitor.ui,
- org.eclipse.mylyn.sandbox.ui,
- org.eclipse.mylyn.web.tasks
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.mylyn.monitor.reports.tests;x-internal:=true,
- org.eclipse.mylyn.monitor.tests;x-internal:=true,
- org.eclipse.mylyn.monitor.usage.tests;x-internal:=true,
- org.eclipse.mylyn.sandbox.tests;x-internal:=true,
- org.eclipse.mylyn.sandbox.tests.util;x-internal:=true,
- org.eclipse.mylyn.tasks.tests.web;x-internal:=true
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Mylyn Incubator (Incubation)
+Bundle-SymbolicName: org.eclipse.mylyn.sandbox.tests;singleton:=true
+Bundle-Version: 3.7.0.qualifier
+Bundle-Vendor: Eclipse Mylyn
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.core.runtime,
+ org.eclipse.jdt.core,
+ org.eclipse.jdt.ui,
+ org.eclipse.pde.core,
+ org.eclipse.ui,
+ org.junit,
+ org.eclipse.mylyn.bugzilla.core,
+ org.eclipse.mylyn.bugzilla.tests,
+ org.eclipse.mylyn.commons.core,
+ org.eclipse.mylyn.commons.net,
+ org.eclipse.mylyn.commons.sdk.util,
+ org.eclipse.mylyn.context.core,
+ org.eclipse.mylyn.context.sdk.java,
+ org.eclipse.mylyn.context.sdk.util,
+ org.eclipse.mylyn.context.ui,
+ org.eclipse.mylyn.java.ui,
+ org.eclipse.mylyn.monitor.core,
+ org.eclipse.mylyn.monitor.reports,
+ org.eclipse.mylyn.monitor.usage,
+ org.eclipse.mylyn.tasks.core,
+ org.eclipse.mylyn.tasks.tests,
+ org.eclipse.mylyn.tasks.ui,
+ org.eclipse.mylyn.tests.util,
+ org.eclipse.mylyn.monitor.ui,
+ org.eclipse.mylyn.sandbox.ui,
+ org.eclipse.mylyn.web.tasks
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.mylyn.monitor.reports.tests;x-internal:=true,
+ org.eclipse.mylyn.monitor.tests;x-internal:=true,
+ org.eclipse.mylyn.monitor.usage.tests;x-internal:=true,
+ org.eclipse.mylyn.sandbox.tests;x-internal:=true,
+ org.eclipse.mylyn.sandbox.tests.util;x-internal:=true,
+ org.eclipse.mylyn.tasks.tests.web;x-internal:=true
diff --git a/org.eclipse.mylyn.sandbox.ui-feature/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.sandbox.ui-feature/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.sandbox.ui-feature/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.sandbox.ui/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.sandbox.ui/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.sandbox.ui/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.sandbox.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.sandbox.ui/META-INF/MANIFEST.MF
index bd0f7ff..ba13175 100644
--- a/org.eclipse.mylyn.sandbox.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.sandbox.ui/META-INF/MANIFEST.MF
@@ -1,49 +1,49 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Mylyn Incubator (Incubation)
-Bundle-SymbolicName: org.eclipse.mylyn.sandbox.ui;singleton:=true
-Bundle-Version: 3.7.0.qualifier
-Bundle-Activator: org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.debug.ui,
- org.eclipse.jface.text,
- org.eclipse.ui,
- org.eclipse.ui.editors,
- org.eclipse.ui.forms,
- org.eclipse.ui.ide,
- org.eclipse.jdt.core,
- org.eclipse.jdt.debug,
- org.eclipse.jdt.debug.ui,
- org.eclipse.jdt.ui,
- org.eclipse.search,
- org.eclipse.mylyn.context.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.context.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.bugzilla.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.bugzilla.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.monitor.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.java.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.monitor.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.resources.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.ide.ant;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.pde.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.core.expressions,
- org.eclipse.pde.core
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: Eclipse Mylyn
-Export-Package: org.eclipse.mylyn.internal.sandbox.ui;x-internal:=true,
- org.eclipse.mylyn.internal.sandbox.ui.actions;x-internal:=true,
- org.eclipse.mylyn.internal.sandbox.ui.commands;x-internal:=true,
- org.eclipse.mylyn.internal.sandbox.ui.context;x-internal:=true,
- org.eclipse.mylyn.internal.sandbox.ui.editors;x-internal:=true,
- org.eclipse.mylyn.internal.sandbox.ui.highlighters;x-internal:=true,
- org.eclipse.mylyn.internal.sandbox.ui.hyperlinks;x-internal:=true,
- org.eclipse.mylyn.internal.sandbox.ui.planner;x-internal:=true,
- org.eclipse.mylyn.internal.sandbox.ui.views;x-internal:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-ClassPath: .
-Import-Package: org.eclipse.mylyn.commons.net
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Mylyn Incubator (Incubation)
+Bundle-SymbolicName: org.eclipse.mylyn.sandbox.ui;singleton:=true
+Bundle-Version: 3.7.0.qualifier
+Bundle-Activator: org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.debug.ui,
+ org.eclipse.jface.text,
+ org.eclipse.ui,
+ org.eclipse.ui.editors,
+ org.eclipse.ui.forms,
+ org.eclipse.ui.ide,
+ org.eclipse.jdt.core,
+ org.eclipse.jdt.debug,
+ org.eclipse.jdt.debug.ui,
+ org.eclipse.jdt.ui,
+ org.eclipse.search,
+ org.eclipse.mylyn.context.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.context.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.bugzilla.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.bugzilla.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.monitor.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.java.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.monitor.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.resources.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.ide.ant;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.pde.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.core.expressions,
+ org.eclipse.pde.core
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: Eclipse Mylyn
+Export-Package: org.eclipse.mylyn.internal.sandbox.ui;x-internal:=true,
+ org.eclipse.mylyn.internal.sandbox.ui.actions;x-internal:=true,
+ org.eclipse.mylyn.internal.sandbox.ui.commands;x-internal:=true,
+ org.eclipse.mylyn.internal.sandbox.ui.context;x-internal:=true,
+ org.eclipse.mylyn.internal.sandbox.ui.editors;x-internal:=true,
+ org.eclipse.mylyn.internal.sandbox.ui.highlighters;x-internal:=true,
+ org.eclipse.mylyn.internal.sandbox.ui.hyperlinks;x-internal:=true,
+ org.eclipse.mylyn.internal.sandbox.ui.planner;x-internal:=true,
+ org.eclipse.mylyn.internal.sandbox.ui.views;x-internal:=true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ClassPath: .
+Import-Package: org.eclipse.mylyn.commons.net
diff --git a/org.eclipse.mylyn.tasks.index-feature/.project b/org.eclipse.mylyn.tasks.index-feature/.project
index 9326e5c..11232ef 100644
--- a/org.eclipse.mylyn.tasks.index-feature/.project
+++ b/org.eclipse.mylyn.tasks.index-feature/.project
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.tasks.index-feature</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.FeatureBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.FeatureNature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.mylyn.tasks.index-feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.mylyn.tasks.index-feature/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.tasks.index-feature/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.tasks.index-feature/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.tasks.index-feature/feature.xml b/org.eclipse.mylyn.tasks.index-feature/feature.xml
index c61a33b..1b8c3c0 100644
--- a/org.eclipse.mylyn.tasks.index-feature/feature.xml
+++ b/org.eclipse.mylyn.tasks.index-feature/feature.xml
@@ -1,35 +1,35 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.mylyn.tasks.index"
- label="%featureName"
- version="3.7.0.qualifier"
- provider-name="%providerName"
- plugin="org.eclipse.mylyn">
-
- <description url="http://eclipse.org/mylyn">
- %description
- </description>
-
- <copyright>
- %copyright
- </copyright>
-
- <license url="license.html">
- %license
- </license>
-
- <plugin
- id="org.eclipse.mylyn.tasks.index.core"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylyn.tasks.index.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.mylyn.tasks.index"
+ label="%featureName"
+ version="3.7.0.qualifier"
+ provider-name="%providerName"
+ plugin="org.eclipse.mylyn">
+
+ <description url="http://eclipse.org/mylyn">
+ %description
+ </description>
+
+ <copyright>
+ %copyright
+ </copyright>
+
+ <license url="license.html">
+ %license
+ </license>
+
+ <plugin
+ id="org.eclipse.mylyn.tasks.index.core"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.mylyn.tasks.index.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/org.eclipse.mylyn.tasks.index-feature/pom.xml b/org.eclipse.mylyn.tasks.index-feature/pom.xml
index 6d47fd9..3f78a22 100644
--- a/org.eclipse.mylyn.tasks.index-feature/pom.xml
+++ b/org.eclipse.mylyn.tasks.index-feature/pom.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project
- xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <artifactId>org.eclipse.mylyn.incubator-parent</artifactId>
- <groupId>org.eclipse.mylyn.incubator</groupId>
- <version>3.7.0-SNAPSHOT</version>
- </parent>
- <artifactId>org.eclipse.mylyn.tasks.index</artifactId>
- <version>3.7.0-SNAPSHOT</version>
- <packaging>eclipse-feature</packaging>
-
-</project>
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.mylyn.incubator-parent</artifactId>
+ <groupId>org.eclipse.mylyn.incubator</groupId>
+ <version>3.7.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>org.eclipse.mylyn.tasks.index</artifactId>
+ <version>3.7.0-SNAPSHOT</version>
+ <packaging>eclipse-feature</packaging>
+
+</project>
diff --git a/org.eclipse.mylyn.tasks.index.core/.classpath b/org.eclipse.mylyn.tasks.index.core/.classpath
index 32341fd..53290fd 100644
--- a/org.eclipse.mylyn.tasks.index.core/.classpath
+++ b/org.eclipse.mylyn.tasks.index.core/.classpath
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
- <accessrules>
- <accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/tasks/core/**"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+ <accessrules>
+ <accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/tasks/core/**"/>
+ </accessrules>
+ </classpathentry>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.mylyn.tasks.index.core/.project b/org.eclipse.mylyn.tasks.index.core/.project
index 93b7e6a..6c1417e 100644
--- a/org.eclipse.mylyn.tasks.index.core/.project
+++ b/org.eclipse.mylyn.tasks.index.core/.project
@@ -1,34 +1,34 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.tasks.index.core</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.mylyn.tasks.index.core</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
<buildCommand>
<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
<arguments>
</arguments>
</buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.mylyn.tasks.index.core/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.tasks.index.core/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.tasks.index.core/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.tasks.index.core/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.tasks.index.core/.settings/org.eclipse.jdt.core.prefs
index f8076fd..a0b960e 100644
--- a/org.eclipse.mylyn.tasks.index.core/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.mylyn.tasks.index.core/.settings/org.eclipse.jdt.core.prefs
@@ -1,357 +1,357 @@
-#Wed Oct 26 09:16:12 PDT 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=48
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+#Wed Oct 26 09:16:12 PDT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=48
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/org.eclipse.mylyn.tasks.index.core/OSGI-INF/l10n/bundle.properties b/org.eclipse.mylyn.tasks.index.core/OSGI-INF/l10n/bundle.properties
index bf3affd..aa53b19 100644
--- a/org.eclipse.mylyn.tasks.index.core/OSGI-INF/l10n/bundle.properties
+++ b/org.eclipse.mylyn.tasks.index.core/OSGI-INF/l10n/bundle.properties
@@ -1,13 +1,13 @@
-###############################################################################
-# Copyright (c) 2011 Tasktop Technologies and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Tasktop Technologies - initial API and implementation
-###############################################################################
-#Properties file for org.eclipse.mylyn.tasks.index.core
-Bundle-Vendor = Eclipse.org
+###############################################################################
+# Copyright (c) 2011 Tasktop Technologies and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Tasktop Technologies - initial API and implementation
+###############################################################################
+#Properties file for org.eclipse.mylyn.tasks.index.core
+Bundle-Vendor = Eclipse.org
Bundle-Name = Tasks Index
\ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.index.core/build.properties b/org.eclipse.mylyn.tasks.index.core/build.properties
index 518bf74..a1bcba5 100644
--- a/org.eclipse.mylyn.tasks.index.core/build.properties
+++ b/org.eclipse.mylyn.tasks.index.core/build.properties
@@ -1,8 +1,8 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/,\
- about.html
-src.includes = about.html
-
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ OSGI-INF/,\
+ about.html
+src.includes = about.html
+
diff --git a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/Messages.java b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/Messages.java
index c67d025..af9c99b 100644
--- a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/Messages.java
+++ b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/Messages.java
@@ -1,32 +1,32 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.index.core;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author David Green
- */
-class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.index.core.messages"; //$NON-NLS-1$
-
- public static String TaskListIndex_indexerJob;
-
- public static String TaskListIndex_task_rebuildingIndex;
- static {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- private Messages() {
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.tasks.index.core;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * @author David Green
+ */
+class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.index.core.messages"; //$NON-NLS-1$
+
+ public static String TaskListIndex_indexerJob;
+
+ public static String TaskListIndex_task_rebuildingIndex;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskAnalyzer.java b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskAnalyzer.java
index c3b7386..297bca4 100644
--- a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskAnalyzer.java
+++ b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskAnalyzer.java
@@ -1,33 +1,33 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.index.core;
-
-import org.apache.lucene.analysis.KeywordAnalyzer;
-import org.apache.lucene.analysis.PerFieldAnalyzerWrapper;
-import org.apache.lucene.analysis.standard.StandardAnalyzer;
-import org.apache.lucene.util.Version;
-
-/**
- * An analyzer that is aware of task fields
- *
- * @author David Green
- */
-class TaskAnalyzer extends PerFieldAnalyzerWrapper {
-
- public TaskAnalyzer() {
- super(new StandardAnalyzer(Version.LUCENE_CURRENT));
- addAnalyzer(TaskListIndex.IndexField.IDENTIFIER.fieldName(), new KeywordAnalyzer());
- addAnalyzer(TaskListIndex.IndexField.TASK_KEY.fieldName(), new KeywordAnalyzer());
- addAnalyzer(TaskListIndex.IndexField.REPOSITORY_URL.fieldName(), new KeywordAnalyzer());
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.tasks.index.core;
+
+import org.apache.lucene.analysis.KeywordAnalyzer;
+import org.apache.lucene.analysis.PerFieldAnalyzerWrapper;
+import org.apache.lucene.analysis.standard.StandardAnalyzer;
+import org.apache.lucene.util.Version;
+
+/**
+ * An analyzer that is aware of task fields
+ *
+ * @author David Green
+ */
+class TaskAnalyzer extends PerFieldAnalyzerWrapper {
+
+ public TaskAnalyzer() {
+ super(new StandardAnalyzer(Version.LUCENE_CURRENT));
+ addAnalyzer(TaskListIndex.IndexField.IDENTIFIER.fieldName(), new KeywordAnalyzer());
+ addAnalyzer(TaskListIndex.IndexField.TASK_KEY.fieldName(), new KeywordAnalyzer());
+ addAnalyzer(TaskListIndex.IndexField.REPOSITORY_URL.fieldName(), new KeywordAnalyzer());
+ }
+
+}
diff --git a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskListIndex.java b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskListIndex.java
index 5e2cd48..41cafe1 100644
--- a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskListIndex.java
+++ b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskListIndex.java
@@ -1,914 +1,914 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.index.core;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-import java.util.logging.Logger;
-
-import org.apache.lucene.document.DateTools;
-import org.apache.lucene.document.DateTools.Resolution;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.Field.Store;
-import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.queryParser.ParseException;
-import org.apache.lucene.queryParser.QueryParser;
-import org.apache.lucene.search.BooleanClause;
-import org.apache.lucene.search.BooleanClause.Occur;
-import org.apache.lucene.search.BooleanQuery;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.PrefixQuery;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.ScoreDoc;
-import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.search.TopDocs;
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.NIOFSDirectory;
-import org.apache.lucene.util.Version;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.ITaskListChangeListener;
-import org.eclipse.mylyn.internal.tasks.core.ITaskListRunnable;
-import org.eclipse.mylyn.internal.tasks.core.TaskContainerDelta;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.core.data.ITaskDataManagerListener;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataManager;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataManagerEvent;
-import org.eclipse.mylyn.tasks.core.IRepositoryElement;
-import org.eclipse.mylyn.tasks.core.IRepositoryPerson;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskCommentMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-
-/**
- * An index on a task list.
- *
- * @author David Green
- */
-public class TaskListIndex implements ITaskDataManagerListener, ITaskListChangeListener {
-
- public abstract static class TaskCollector {
-
- public abstract void collect(ITask task);
-
- }
-
- private static final Object COMMAND_RESET_INDEX = "index:reset"; //$NON-NLS-1$
-
- /**
- * Task attribute meta-data key that should be set to "true" to have attribute value indexed as part of the task
- * {@link IndexField#CONTENT}. Provides a way for connectors to specify non-standard attributes as indexable. By
- * default, {@link TaskAttribute#SUMMARY summary} and {@link TaskAttribute#DESCRIPTION description} are indexed.
- */
- public static final String META_INDEXED_AS_CONTENT = "index-content"; //$NON-NLS-1$
-
- public static enum IndexField {
- IDENTIFIER(false, null, false), //
- TASK_KEY(false, null, false), //
- REPOSITORY_URL(false, null, false), //
- SUMMARY(true, null, false), //
- CONTENT(true, null, false), //
- ASSIGNEE(true, TaskAttribute.USER_ASSIGNED, false), //
- REPORTER(true, TaskAttribute.USER_REPORTER, false), //
- PERSON(true, null, false), //
- COMPONENT(true, TaskAttribute.COMPONENT, false), //
- COMPLETION_DATE(true, null, true), //
- CREATION_DATE(true, null, true), //
- DUE_DATE(true, null, true), //
- MODIFICATION_DATE(true, null, true), //
- DESCRIPTION(true, TaskAttribute.DESCRIPTION, false), //
- KEYWORDS(true, TaskAttribute.KEYWORDS, false), //
- PRODUCT(true, TaskAttribute.PRODUCT, false), //
- RESOLUTION(true, TaskAttribute.RESOLUTION, false), //
- SEVERITY(true, TaskAttribute.SEVERITY, false), //
- STATUS(true, TaskAttribute.STATUS, false);
-
- private final boolean userVisible;
-
- private final String attributeId;
-
- private final boolean dateTime;
-
- private IndexField(boolean userVisible, String attributeId, boolean dateTime) {
- this.userVisible = userVisible;
- this.attributeId = attributeId;
- this.dateTime = dateTime;
- }
-
- public String fieldName() {
- return name().toLowerCase();
- }
-
- /**
- * get the task attribute id, or null if this field has special handling
- */
- public String getAttributeId() {
- return attributeId;
- }
-
- /**
- * indicate if the field should be exposed in the UI
- */
- public boolean isUserVisible() {
- return userVisible;
- }
-
- /**
- * indicate if the field is a date/time field
- */
- public boolean isDateTime() {
- return dateTime;
- }
-
- public static IndexField fromFieldName(String fieldName) {
- try {
- return IndexField.valueOf(fieldName.toUpperCase());
- } catch (IllegalArgumentException e) {
- return null;
- }
- }
-
- public boolean isPersonField() {
- return this == PERSON || this == REPORTER || this == ASSIGNEE;
- }
- }
-
- private static enum MaintainIndexType {
- STARTUP, REINDEX
- }
-
- private Directory directory;
-
- private MaintainIndexJob maintainIndexJob;
-
- private final Map<ITask, TaskData> reindexQueue = new HashMap<ITask, TaskData>();
-
- private IndexReader indexReader;
-
- private boolean rebuildIndex = false;
-
- private String lastPatternString;
-
- private Set<String> lastResults;
-
- private IndexField defaultField = IndexField.SUMMARY;
-
- private final TaskList taskList;
-
- private final TaskDataManager dataManager;
-
- private long startupDelay = 6000L;
-
- private long reindexDelay = 3000L;
-
- private int maxMatchSearchHits = 1500;
-
- private final ReadWriteLock indexReaderLock = new ReentrantReadWriteLock(true);
-
- private TaskListIndex(TaskList taskList, TaskDataManager dataManager) {
- if (taskList == null) {
- throw new IllegalArgumentException();
- }
- if (dataManager == null) {
- throw new IllegalArgumentException();
- }
- this.taskList = taskList;
- this.dataManager = dataManager;
- }
-
- public TaskListIndex(TaskList taskList, TaskDataManager dataManager, File indexLocation) {
- this(taskList, dataManager, indexLocation, 6000L);
- }
-
- public TaskListIndex(TaskList taskList, TaskDataManager dataManager, File indexLocation, long startupDelay) {
- this(taskList, dataManager);
- if (startupDelay < 0L || startupDelay > (1000L * 60)) {
- throw new IllegalArgumentException();
- }
- if (indexLocation == null) {
- throw new IllegalArgumentException();
- }
- this.startupDelay = startupDelay;
- if (!indexLocation.exists()) {
- rebuildIndex = true;
- if (!indexLocation.mkdirs()) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksIndexCore.BUNDLE_ID,
- "Cannot create task list index folder: " + indexLocation)); //$NON-NLS-1$
- }
- }
- if (indexLocation.exists() && indexLocation.isDirectory()) {
- try {
- Logger.getLogger(TaskListIndex.class.getName()).fine("task list index: " + indexLocation); //$NON-NLS-1$
-
- directory = new NIOFSDirectory(indexLocation);
- } catch (IOException e) {
- StatusHandler.log(new Status(IStatus.ERROR, TasksIndexCore.BUNDLE_ID,
- "Cannot create task list index", e)); //$NON-NLS-1$
- }
- }
- initialize();
- }
-
- public TaskListIndex(TaskList taskList, TaskDataManager dataManager, Directory directory) {
- this(taskList, dataManager);
- this.directory = directory;
- initialize();
- }
-
- public long getReindexDelay() {
- return reindexDelay;
- }
-
- public void setReindexDelay(long reindexDelay) {
- this.reindexDelay = reindexDelay;
- }
-
- public IndexField getDefaultField() {
- return defaultField;
- }
-
- public void setDefaultField(IndexField defaultField) {
- this.defaultField = defaultField;
- synchronized (this) {
- lastResults = null;
- }
- }
-
- public int getMaxMatchSearchHits() {
- return maxMatchSearchHits;
- }
-
- public void setMaxMatchSearchHits(int maxMatchSearchHits) {
- this.maxMatchSearchHits = maxMatchSearchHits;
- }
-
- private void initialize() {
- if (!rebuildIndex) {
- IndexReader indexReader = null;
- try {
- indexReader = getIndexReader();
- } catch (Exception e) {
- // ignore, this can happen if the index is corrupt
- }
- if (indexReader == null) {
- rebuildIndex = true;
- }
- }
- maintainIndexJob = new MaintainIndexJob();
- dataManager.addListener(this);
- taskList.addChangeListener(this);
-
- scheduleIndexMaintenance(MaintainIndexType.STARTUP);
- }
-
- private void scheduleIndexMaintenance(MaintainIndexType type) {
- long delay = 0L;
- switch (type) {
- case STARTUP:
- delay = startupDelay;
- break;
- case REINDEX:
- delay = reindexDelay;
- }
-
- if (delay == 0L) {
- // primarily for testing purposes
-
- maintainIndexJob.cancel();
- try {
- maintainIndexJob.join();
- } catch (InterruptedException e) {
- // ignore
- }
- maintainIndexJob.run(new NullProgressMonitor());
- } else {
- maintainIndexJob.schedule(delay);
- }
- }
-
- public boolean matches(ITask task, String patternString) {
- if (patternString.equals(COMMAND_RESET_INDEX)) {
- reindex();
- }
- Lock readLock = indexReaderLock.readLock();
- readLock.lock();
- try {
-
- IndexReader indexReader = getIndexReader();
- if (indexReader != null) {
- Set<String> hits;
-
- if (lastResults == null || (lastPatternString == null || !lastPatternString.equals(patternString))) {
- this.lastPatternString = patternString;
-
- long startTime = System.currentTimeMillis();
-
- hits = new HashSet<String>();
-
- IndexSearcher indexSearcher = new IndexSearcher(indexReader);
- try {
- Query query = computeQuery(patternString);
- TopDocs results = indexSearcher.search(query, maxMatchSearchHits);
- for (ScoreDoc scoreDoc : results.scoreDocs) {
- Document document = indexReader.document(scoreDoc.doc);
- hits.add(document.get(IndexField.IDENTIFIER.fieldName()));
- }
- } catch (IOException e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksIndexCore.BUNDLE_ID,
- "Unexpected failure within task list index", e)); //$NON-NLS-1$
- } finally {
- try {
- indexSearcher.close();
- } catch (IOException e) {
- // ignore
- }
- }
-
- Logger.getLogger(TaskListIndex.class.getName()).fine(
- "New query in " + (System.currentTimeMillis() - startTime) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
- } else {
- hits = lastResults;
- }
- synchronized (this) {
- if (this.indexReader == indexReader) {
- this.lastPatternString = patternString;
- this.lastResults = hits;
- }
- }
- String taskIdentifier = task.getHandleIdentifier();
- return hits != null && hits.contains(taskIdentifier);
- }
-
- } finally {
- readLock.unlock();
- }
- return false;
- }
-
- public void reindex() {
- rebuildIndex = true;
- scheduleIndexMaintenance(MaintainIndexType.REINDEX);
- }
-
- /**
- * call to wait until index maintenance has completed
- *
- * @throws InterruptedException
- */
- public void waitUntilIdle() throws InterruptedException {
- if (!Platform.isRunning() && reindexDelay != 0L) {
- // job join() behaviour is not the same when platform is not running
- Logger.getLogger(TaskListIndex.class.getName()).warning(
- "Index job joining may not work properly when Eclipse platform is not running"); //$NON-NLS-1$
- }
- maintainIndexJob.join();
- }
-
- public void find(String patternString, TaskCollector collector, int resultsLimit) {
-
- Lock readLock = indexReaderLock.readLock();
- readLock.lock();
- try {
- IndexReader indexReader = getIndexReader();
- if (indexReader != null) {
- IndexSearcher indexSearcher = new IndexSearcher(indexReader);
- try {
- Query query = computeQuery(patternString);
- TopDocs results = indexSearcher.search(query, resultsLimit);
- for (ScoreDoc scoreDoc : results.scoreDocs) {
- Document document = indexReader.document(scoreDoc.doc);
- String taskIdentifier = document.get(IndexField.IDENTIFIER.fieldName());
- AbstractTask task = taskList.getTask(taskIdentifier);
- if (task != null) {
- collector.collect(task);
- }
- }
- } catch (IOException e) {
- StatusHandler.fail(new Status(IStatus.ERROR, TasksIndexCore.BUNDLE_ID,
- "Unexpected failure within task list index", e)); //$NON-NLS-1$
- } finally {
- try {
- indexSearcher.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- } finally {
- readLock.unlock();
- }
- }
-
- private Query computeQuery(String patternString) {
- String upperPatternString = patternString.toUpperCase();
-
- boolean hasBooleanSpecifiers = upperPatternString.contains(" OR ") || upperPatternString.contains(" AND ") //$NON-NLS-1$ //$NON-NLS-2$
- || upperPatternString.contains(" NOT "); //$NON-NLS-1$
-
- if (patternString.indexOf(':') == -1 && !hasBooleanSpecifiers && defaultField == IndexField.SUMMARY
- && patternString.indexOf('"') == -1) {
- return new PrefixQuery(new Term(defaultField.fieldName(), patternString));
- }
- QueryParser qp = new QueryParser(Version.LUCENE_CURRENT, defaultField.fieldName(), new TaskAnalyzer());
- Query q;
- try {
- q = qp.parse(patternString);
- } catch (ParseException e) {
- return new PrefixQuery(new Term(defaultField.fieldName(), patternString));
- }
-
- // relax term clauses to be prefix clauses so that we get results close
- // to what we're expecting
- // from previous task list search
- if (q instanceof BooleanQuery) {
- BooleanQuery query = (BooleanQuery) q;
- for (BooleanClause clause : query.getClauses()) {
- if (clause.getQuery() instanceof TermQuery) {
- TermQuery termQuery = (TermQuery) clause.getQuery();
- clause.setQuery(new PrefixQuery(termQuery.getTerm()));
- }
- if (!hasBooleanSpecifiers) {
- clause.setOccur(Occur.MUST);
- }
- }
- } else if (q instanceof TermQuery) {
- return new PrefixQuery(((TermQuery) q).getTerm());
- }
- return q;
- }
-
- public void close() {
- dataManager.removeListener(this);
- taskList.removeChangeListener(this);
-
- maintainIndexJob.cancel();
- try {
- maintainIndexJob.join();
- } catch (InterruptedException e) {
- // ignore
- }
-
- Lock writeLock = indexReaderLock.writeLock();
- writeLock.lock();
- try {
- synchronized (this) {
- if (indexReader != null) {
- try {
- indexReader.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- indexReader = null;
- }
- }
- try {
- directory.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- } finally {
- writeLock.unlock();
- }
- }
-
- private IndexReader getIndexReader() {
- try {
- synchronized (this) {
- if (indexReader == null) {
- indexReader = IndexReader.open(directory, true);
- lastResults = null;
- }
- return indexReader;
- }
- } catch (CorruptIndexException e) {
- rebuildIndex = true;
- if (maintainIndexJob != null) {
- scheduleIndexMaintenance(MaintainIndexType.REINDEX);
- }
- } catch (FileNotFoundException e) {
- rebuildIndex = true;
- // expected if the index doesn't exist
- } catch (IOException e) {
- e.printStackTrace();
- }
- return null;
- }
-
- public void taskDataUpdated(TaskDataManagerEvent event) {
- reindex(event.getTask(), event.getTaskData());
- }
-
- public void editsDiscarded(TaskDataManagerEvent event) {
- reindex(event.getTask(), event.getTaskData());
- }
-
- public void containersChanged(Set<TaskContainerDelta> containers) {
- for (TaskContainerDelta delta : containers) {
- switch (delta.getKind()) {
- case ADDED:
- case REMOVED:
- case CONTENT:
- IRepositoryElement element = delta.getElement();
- if (element instanceof ITask) {
- ITask task = (ITask) element;
- if ("local".equals(((AbstractTask) task).getConnectorKind())) { //$NON-NLS-1$
- reindex(task, null);
- }
- }
- }
- }
- }
-
- private void reindex(ITask task, TaskData taskData) {
- if (task == null) {
- // this can happen when edits are discarded
- return;
- }
- synchronized (reindexQueue) {
- reindexQueue.put(task, taskData);
- }
- scheduleIndexMaintenance(MaintainIndexType.REINDEX);
- }
-
- private void addIndexedAttributes(Document document, ITask task, TaskAttribute root) {
- addIndexedAttribute(document, IndexField.TASK_KEY, task.getTaskKey());
- addIndexedAttribute(document, IndexField.REPOSITORY_URL, task.getRepositoryUrl());
- addIndexedAttribute(document, IndexField.SUMMARY, root.getMappedAttribute(TaskAttribute.SUMMARY));
-
- for (TaskAttribute contentAttribute : computeContentAttributes(root)) {
- addIndexedAttribute(document, IndexField.CONTENT, contentAttribute);
- }
-
- addIndexedDateAttributes(document, task);
-
- List<TaskAttribute> commentAttributes = root.getTaskData()
- .getAttributeMapper()
- .getAttributesByType(root.getTaskData(), TaskAttribute.TYPE_COMMENT);
- for (TaskAttribute commentAttribute : commentAttributes) {
- TaskCommentMapper commentMapper = TaskCommentMapper.createFrom(commentAttribute);
- String text = commentMapper.getText();
- if (text.length() != 0) {
- addIndexedAttribute(document, IndexField.CONTENT, text);
- }
- IRepositoryPerson author = commentMapper.getAuthor();
- if (author != null) {
- addIndexedAttribute(document, IndexField.PERSON, author.getPersonId());
- }
- }
-
- List<TaskAttribute> personAttributes = root.getTaskData()
- .getAttributeMapper()
- .getAttributesByType(root.getTaskData(), TaskAttribute.TYPE_PERSON);
- for (TaskAttribute personAttribute : personAttributes) {
- addIndexedAttribute(document, IndexField.PERSON, personAttribute);
- }
-
- for (IndexField field : IndexField.values()) {
- if (field.getAttributeId() != null) {
- addIndexedAttribute(document, field, root.getMappedAttribute(field.getAttributeId()));
- }
- }
- }
-
- /**
- * compute attributes that should be indexed as {@link IndexField#CONTENT}
- */
- private Collection<TaskAttribute> computeContentAttributes(TaskAttribute root) {
- Set<TaskAttribute> attributes = new LinkedHashSet<TaskAttribute>();
-
- // add default content attributes
- {
- TaskAttribute attribute = root.getMappedAttribute(TaskAttribute.SUMMARY);
- if (attribute != null) {
- attributes.add(attribute);
- }
- attribute = root.getMappedAttribute(TaskAttribute.DESCRIPTION);
- if (attribute != null) {
- attributes.add(attribute);
- }
- // bugzilla
- attribute = root.getAttribute("status_whiteboard"); //$NON-NLS-1$
- if (attribute != null) {
- attributes.add(attribute);
- }
- }
-
- for (TaskAttribute attribute : root.getAttributes().values()) {
- if (Boolean.parseBoolean(attribute.getMetaData().getValue(META_INDEXED_AS_CONTENT))) {
- attributes.add(attribute);
- }
- }
-
- return attributes;
- }
-
- private void addIndexedAttributes(Document document, ITask task) {
- addIndexedAttribute(document, IndexField.TASK_KEY, task.getTaskKey());
- addIndexedAttribute(document, IndexField.REPOSITORY_URL, task.getRepositoryUrl());
- addIndexedAttribute(document, IndexField.SUMMARY, task.getSummary());
- addIndexedAttribute(document, IndexField.CONTENT, task.getSummary());
- addIndexedAttribute(document, IndexField.CONTENT, ((AbstractTask) task).getNotes());
- addIndexedDateAttributes(document, task);
- }
-
- private void addIndexedDateAttributes(Document document, ITask task) {
- addIndexedAttribute(document, IndexField.COMPLETION_DATE, task.getCompletionDate());
- addIndexedAttribute(document, IndexField.CREATION_DATE, task.getCreationDate());
- addIndexedAttribute(document, IndexField.DUE_DATE, task.getDueDate());
- addIndexedAttribute(document, IndexField.MODIFICATION_DATE, task.getModificationDate());
- }
-
- private void addIndexedAttribute(Document document, IndexField indexField, TaskAttribute attribute) {
- if (attribute == null) {
- return;
- }
- // if (indexField == IndexField.ASSIGNEE) {
- // System.out.println(indexField + "=" + attribute.getValue());
- // }
- List<String> values = attribute.getValues();
- for (String value : values) {
- if (value.length() != 0) {
- addIndexedAttribute(document, indexField, value);
- }
- }
- }
-
- private void addIndexedAttribute(Document document, IndexField indexField, String value) {
- if (value == null) {
- return;
- }
- Field field = document.getField(indexField.fieldName());
- if (field == null) {
- field = new Field(indexField.fieldName(), value, Store.YES, org.apache.lucene.document.Field.Index.ANALYZED);
- document.add(field);
- } else {
- String existingValue = field.stringValue();
- if (indexField != IndexField.PERSON || !existingValue.contains(value)) {
- field.setValue(existingValue + " " + value); //$NON-NLS-1$
- }
- }
- }
-
- private void addIndexedAttribute(Document document, IndexField indexField, Date date) {
- if (date == null) {
- return;
- }
- // FIXME: date tools converts dates to GMT, and we don't really want that. So
- // move the date by the GMT offset if there is any
-
- String value = DateTools.dateToString(date, Resolution.HOUR);
- Field field = document.getField(indexField.fieldName());
- if (field == null) {
- field = new Field(indexField.fieldName(), value, Store.YES, org.apache.lucene.document.Field.Index.ANALYZED);
- document.add(field);
- } else {
- field.setValue(value);
- }
- }
-
- private class MaintainIndexJob extends Job {
-
- public MaintainIndexJob() {
- super(Messages.TaskListIndex_indexerJob);
- setUser(false);
- setSystem(false); // true?
- setPriority(Job.LONG);
- }
-
- @Override
- public IStatus run(IProgressMonitor m) {
- final int WORK_PER_SEGMENT = 1000;
- SubMonitor monitor = SubMonitor.convert(m, 3 * WORK_PER_SEGMENT);
- try {
- try {
- if (monitor.isCanceled()) {
- return Status.CANCEL_STATUS;
- }
- if (!rebuildIndex) {
- try {
- IndexReader reader = IndexReader.open(directory, false);
- reader.close();
- } catch (CorruptIndexException e) {
- rebuildIndex = true;
- }
- }
-
- if (rebuildIndex) {
- synchronized (reindexQueue) {
- reindexQueue.clear();
- }
-
- SubMonitor reindexMonitor = monitor.newChild(WORK_PER_SEGMENT);
-
- final IndexWriter writer = new IndexWriter(directory, new TaskAnalyzer(), true,
- IndexWriter.MaxFieldLength.UNLIMITED);
- try {
-
- final List<ITask> allTasks = new ArrayList<ITask>(5000);
-
- taskList.run(new ITaskListRunnable() {
- public void execute(IProgressMonitor monitor) throws CoreException {
- allTasks.addAll(taskList.getAllTasks());
- }
- }, monitor.newChild(1));
-
- int reindexErrorCount = 0;
-
- reindexMonitor.beginTask(Messages.TaskListIndex_task_rebuildingIndex, allTasks.size());
- for (ITask task : allTasks) {
- try {
- TaskData taskData = dataManager.getTaskData(task);
- add(writer, task, taskData);
-
- reindexMonitor.worked(1);
- } catch (CoreException e) {
- // an individual task data error should not prevent the index from updating
- // but don't flood the log in the case of multiple errors
- if (reindexErrorCount++ == 0) {
- StatusHandler.log(e.getStatus());
- }
- } catch (IOException e) {
- throw e;
- }
- }
- synchronized (TaskListIndex.this) {
- rebuildIndex = false;
- }
- } finally {
- writer.close();
- reindexMonitor.done();
- }
- } else {
- monitor.worked(WORK_PER_SEGMENT);
- }
- for (;;) {
-
- synchronized (reindexQueue) {
- if (reindexQueue.isEmpty()) {
- break;
- }
- }
-
- Map<ITask, TaskData> queue = new HashMap<ITask, TaskData>();
-
- IndexReader reader = IndexReader.open(directory, false);
- try {
- synchronized (reindexQueue) {
- queue.putAll(reindexQueue);
- for (ITask task : queue.keySet()) {
- reindexQueue.remove(task);
- }
- }
- Iterator<Entry<ITask, TaskData>> it = queue.entrySet().iterator();
- while (it.hasNext()) {
- Entry<ITask, TaskData> entry = it.next();
-
- reader.deleteDocuments(new Term(IndexField.IDENTIFIER.fieldName(), entry.getKey()
- .getHandleIdentifier()));
-
- }
- } finally {
- reader.close();
- }
- monitor.worked(WORK_PER_SEGMENT);
-
- IndexWriter writer = new IndexWriter(directory, new TaskAnalyzer(), false,
- IndexWriter.MaxFieldLength.UNLIMITED);
- try {
- for (Entry<ITask, TaskData> entry : queue.entrySet()) {
- ITask task = entry.getKey();
- TaskData taskData = entry.getValue();
-
- add(writer, task, taskData);
- }
- } finally {
- writer.close();
- }
- monitor.worked(WORK_PER_SEGMENT);
- }
- Lock writeLock = indexReaderLock.writeLock();
- writeLock.lock();
- try {
- synchronized (TaskListIndex.this) {
- if (indexReader != null) {
- indexReader.close();
- indexReader = null;
- }
- }
- } finally {
- writeLock.unlock();
- }
- } catch (CoreException e) {
- throw e;
- } catch (Throwable e) {
- throw new CoreException(new Status(IStatus.ERROR, TasksIndexCore.BUNDLE_ID,
- "Unexpected exception: " + e.getMessage(), e)); //$NON-NLS-1$
- }
- } catch (CoreException e) {
- MultiStatus logStatus = new MultiStatus(TasksIndexCore.BUNDLE_ID, 0,
- "Failed to update task list index", e); //$NON-NLS-1$
- logStatus.add(e.getStatus());
- StatusHandler.log(logStatus);
- } finally {
- monitor.done();
- }
- return Status.OK_STATUS;
- }
-
- /**
- * @param writer
- * @param task
- * the task
- * @param taskData
- * may be null for local tasks
- * @throws CorruptIndexException
- * @throws IOException
- */
- private void add(IndexWriter writer, ITask task, TaskData taskData) throws CorruptIndexException, IOException {
-
- Document document = new Document();
-
- document.add(new Field(IndexField.IDENTIFIER.fieldName(), task.getHandleIdentifier(), Store.YES,
- org.apache.lucene.document.Field.Index.ANALYZED));
- if (taskData == null) {
- if ("local".equals(((AbstractTask) task).getConnectorKind())) { //$NON-NLS-1$
- addIndexedAttributes(document, task);
- } else {
- return;
- }
- } else {
- addIndexedAttributes(document, task, taskData.getRoot());
- }
- writer.addDocument(document);
- }
-
- }
-
- /**
- * Computes a query element for a field that must lie in a specified date range.
- *
- * @param field
- * the field
- * @param lowerBoundInclusive
- * the date lower bound that the field value must match, inclusive
- * @param upperBoundInclusive
- * the date upper bound that the field value must match, inclusive
- * @return
- */
- public String computeQueryFieldDateRange(IndexField field, Date lowerBoundInclusive, Date upperBoundInclusive) {
- return field.fieldName()
- + ":[" + DateTools.dateToString(lowerBoundInclusive, Resolution.DAY) + " TO " + DateTools.dateToString(upperBoundInclusive, Resolution.DAY) + "]"; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
- }
-
- /**
- * escapes special characters in the given literal value so that they are not interpreted as special characters in a
- * query
- *
- * @param value
- * the value to escape
- * @return a representation of the value with characters escaped
- */
- public String escapeFieldValue(String value) {
- // see http://lucene.apache.org/java/2_9_1/queryparsersyntax.html#Escaping%20Special%20Characters
- String escaped = value.replaceAll("([\\+\\-\\!\\(\\)\\{\\}\\[\\]^\"~\\*\\?:\\\\]|&&|\\|\\|)", "\\\\$1"); //$NON-NLS-1$ //$NON-NLS-2$
- return escaped;
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.tasks.index.core;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.logging.Logger;
+
+import org.apache.lucene.document.DateTools;
+import org.apache.lucene.document.DateTools.Resolution;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+import org.apache.lucene.document.Field.Store;
+import org.apache.lucene.index.CorruptIndexException;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.queryParser.ParseException;
+import org.apache.lucene.queryParser.QueryParser;
+import org.apache.lucene.search.BooleanClause;
+import org.apache.lucene.search.BooleanClause.Occur;
+import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.search.PrefixQuery;
+import org.apache.lucene.search.Query;
+import org.apache.lucene.search.ScoreDoc;
+import org.apache.lucene.search.TermQuery;
+import org.apache.lucene.search.TopDocs;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.NIOFSDirectory;
+import org.apache.lucene.util.Version;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubMonitor;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.mylyn.commons.core.StatusHandler;
+import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
+import org.eclipse.mylyn.internal.tasks.core.ITaskListChangeListener;
+import org.eclipse.mylyn.internal.tasks.core.ITaskListRunnable;
+import org.eclipse.mylyn.internal.tasks.core.TaskContainerDelta;
+import org.eclipse.mylyn.internal.tasks.core.TaskList;
+import org.eclipse.mylyn.internal.tasks.core.data.ITaskDataManagerListener;
+import org.eclipse.mylyn.internal.tasks.core.data.TaskDataManager;
+import org.eclipse.mylyn.internal.tasks.core.data.TaskDataManagerEvent;
+import org.eclipse.mylyn.tasks.core.IRepositoryElement;
+import org.eclipse.mylyn.tasks.core.IRepositoryPerson;
+import org.eclipse.mylyn.tasks.core.ITask;
+import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
+import org.eclipse.mylyn.tasks.core.data.TaskCommentMapper;
+import org.eclipse.mylyn.tasks.core.data.TaskData;
+
+/**
+ * An index on a task list.
+ *
+ * @author David Green
+ */
+public class TaskListIndex implements ITaskDataManagerListener, ITaskListChangeListener {
+
+ public abstract static class TaskCollector {
+
+ public abstract void collect(ITask task);
+
+ }
+
+ private static final Object COMMAND_RESET_INDEX = "index:reset"; //$NON-NLS-1$
+
+ /**
+ * Task attribute meta-data key that should be set to "true" to have attribute value indexed as part of the task
+ * {@link IndexField#CONTENT}. Provides a way for connectors to specify non-standard attributes as indexable. By
+ * default, {@link TaskAttribute#SUMMARY summary} and {@link TaskAttribute#DESCRIPTION description} are indexed.
+ */
+ public static final String META_INDEXED_AS_CONTENT = "index-content"; //$NON-NLS-1$
+
+ public static enum IndexField {
+ IDENTIFIER(false, null, false), //
+ TASK_KEY(false, null, false), //
+ REPOSITORY_URL(false, null, false), //
+ SUMMARY(true, null, false), //
+ CONTENT(true, null, false), //
+ ASSIGNEE(true, TaskAttribute.USER_ASSIGNED, false), //
+ REPORTER(true, TaskAttribute.USER_REPORTER, false), //
+ PERSON(true, null, false), //
+ COMPONENT(true, TaskAttribute.COMPONENT, false), //
+ COMPLETION_DATE(true, null, true), //
+ CREATION_DATE(true, null, true), //
+ DUE_DATE(true, null, true), //
+ MODIFICATION_DATE(true, null, true), //
+ DESCRIPTION(true, TaskAttribute.DESCRIPTION, false), //
+ KEYWORDS(true, TaskAttribute.KEYWORDS, false), //
+ PRODUCT(true, TaskAttribute.PRODUCT, false), //
+ RESOLUTION(true, TaskAttribute.RESOLUTION, false), //
+ SEVERITY(true, TaskAttribute.SEVERITY, false), //
+ STATUS(true, TaskAttribute.STATUS, false);
+
+ private final boolean userVisible;
+
+ private final String attributeId;
+
+ private final boolean dateTime;
+
+ private IndexField(boolean userVisible, String attributeId, boolean dateTime) {
+ this.userVisible = userVisible;
+ this.attributeId = attributeId;
+ this.dateTime = dateTime;
+ }
+
+ public String fieldName() {
+ return name().toLowerCase();
+ }
+
+ /**
+ * get the task attribute id, or null if this field has special handling
+ */
+ public String getAttributeId() {
+ return attributeId;
+ }
+
+ /**
+ * indicate if the field should be exposed in the UI
+ */
+ public boolean isUserVisible() {
+ return userVisible;
+ }
+
+ /**
+ * indicate if the field is a date/time field
+ */
+ public boolean isDateTime() {
+ return dateTime;
+ }
+
+ public static IndexField fromFieldName(String fieldName) {
+ try {
+ return IndexField.valueOf(fieldName.toUpperCase());
+ } catch (IllegalArgumentException e) {
+ return null;
+ }
+ }
+
+ public boolean isPersonField() {
+ return this == PERSON || this == REPORTER || this == ASSIGNEE;
+ }
+ }
+
+ private static enum MaintainIndexType {
+ STARTUP, REINDEX
+ }
+
+ private Directory directory;
+
+ private MaintainIndexJob maintainIndexJob;
+
+ private final Map<ITask, TaskData> reindexQueue = new HashMap<ITask, TaskData>();
+
+ private IndexReader indexReader;
+
+ private boolean rebuildIndex = false;
+
+ private String lastPatternString;
+
+ private Set<String> lastResults;
+
+ private IndexField defaultField = IndexField.SUMMARY;
+
+ private final TaskList taskList;
+
+ private final TaskDataManager dataManager;
+
+ private long startupDelay = 6000L;
+
+ private long reindexDelay = 3000L;
+
+ private int maxMatchSearchHits = 1500;
+
+ private final ReadWriteLock indexReaderLock = new ReentrantReadWriteLock(true);
+
+ private TaskListIndex(TaskList taskList, TaskDataManager dataManager) {
+ if (taskList == null) {
+ throw new IllegalArgumentException();
+ }
+ if (dataManager == null) {
+ throw new IllegalArgumentException();
+ }
+ this.taskList = taskList;
+ this.dataManager = dataManager;
+ }
+
+ public TaskListIndex(TaskList taskList, TaskDataManager dataManager, File indexLocation) {
+ this(taskList, dataManager, indexLocation, 6000L);
+ }
+
+ public TaskListIndex(TaskList taskList, TaskDataManager dataManager, File indexLocation, long startupDelay) {
+ this(taskList, dataManager);
+ if (startupDelay < 0L || startupDelay > (1000L * 60)) {
+ throw new IllegalArgumentException();
+ }
+ if (indexLocation == null) {
+ throw new IllegalArgumentException();
+ }
+ this.startupDelay = startupDelay;
+ if (!indexLocation.exists()) {
+ rebuildIndex = true;
+ if (!indexLocation.mkdirs()) {
+ StatusHandler.log(new Status(IStatus.ERROR, TasksIndexCore.BUNDLE_ID,
+ "Cannot create task list index folder: " + indexLocation)); //$NON-NLS-1$
+ }
+ }
+ if (indexLocation.exists() && indexLocation.isDirectory()) {
+ try {
+ Logger.getLogger(TaskListIndex.class.getName()).fine("task list index: " + indexLocation); //$NON-NLS-1$
+
+ directory = new NIOFSDirectory(indexLocation);
+ } catch (IOException e) {
+ StatusHandler.log(new Status(IStatus.ERROR, TasksIndexCore.BUNDLE_ID,
+ "Cannot create task list index", e)); //$NON-NLS-1$
+ }
+ }
+ initialize();
+ }
+
+ public TaskListIndex(TaskList taskList, TaskDataManager dataManager, Directory directory) {
+ this(taskList, dataManager);
+ this.directory = directory;
+ initialize();
+ }
+
+ public long getReindexDelay() {
+ return reindexDelay;
+ }
+
+ public void setReindexDelay(long reindexDelay) {
+ this.reindexDelay = reindexDelay;
+ }
+
+ public IndexField getDefaultField() {
+ return defaultField;
+ }
+
+ public void setDefaultField(IndexField defaultField) {
+ this.defaultField = defaultField;
+ synchronized (this) {
+ lastResults = null;
+ }
+ }
+
+ public int getMaxMatchSearchHits() {
+ return maxMatchSearchHits;
+ }
+
+ public void setMaxMatchSearchHits(int maxMatchSearchHits) {
+ this.maxMatchSearchHits = maxMatchSearchHits;
+ }
+
+ private void initialize() {
+ if (!rebuildIndex) {
+ IndexReader indexReader = null;
+ try {
+ indexReader = getIndexReader();
+ } catch (Exception e) {
+ // ignore, this can happen if the index is corrupt
+ }
+ if (indexReader == null) {
+ rebuildIndex = true;
+ }
+ }
+ maintainIndexJob = new MaintainIndexJob();
+ dataManager.addListener(this);
+ taskList.addChangeListener(this);
+
+ scheduleIndexMaintenance(MaintainIndexType.STARTUP);
+ }
+
+ private void scheduleIndexMaintenance(MaintainIndexType type) {
+ long delay = 0L;
+ switch (type) {
+ case STARTUP:
+ delay = startupDelay;
+ break;
+ case REINDEX:
+ delay = reindexDelay;
+ }
+
+ if (delay == 0L) {
+ // primarily for testing purposes
+
+ maintainIndexJob.cancel();
+ try {
+ maintainIndexJob.join();
+ } catch (InterruptedException e) {
+ // ignore
+ }
+ maintainIndexJob.run(new NullProgressMonitor());
+ } else {
+ maintainIndexJob.schedule(delay);
+ }
+ }
+
+ public boolean matches(ITask task, String patternString) {
+ if (patternString.equals(COMMAND_RESET_INDEX)) {
+ reindex();
+ }
+ Lock readLock = indexReaderLock.readLock();
+ readLock.lock();
+ try {
+
+ IndexReader indexReader = getIndexReader();
+ if (indexReader != null) {
+ Set<String> hits;
+
+ if (lastResults == null || (lastPatternString == null || !lastPatternString.equals(patternString))) {
+ this.lastPatternString = patternString;
+
+ long startTime = System.currentTimeMillis();
+
+ hits = new HashSet<String>();
+
+ IndexSearcher indexSearcher = new IndexSearcher(indexReader);
+ try {
+ Query query = computeQuery(patternString);
+ TopDocs results = indexSearcher.search(query, maxMatchSearchHits);
+ for (ScoreDoc scoreDoc : results.scoreDocs) {
+ Document document = indexReader.document(scoreDoc.doc);
+ hits.add(document.get(IndexField.IDENTIFIER.fieldName()));
+ }
+ } catch (IOException e) {
+ StatusHandler.fail(new Status(IStatus.ERROR, TasksIndexCore.BUNDLE_ID,
+ "Unexpected failure within task list index", e)); //$NON-NLS-1$
+ } finally {
+ try {
+ indexSearcher.close();
+ } catch (IOException e) {
+ // ignore
+ }
+ }
+
+ Logger.getLogger(TaskListIndex.class.getName()).fine(
+ "New query in " + (System.currentTimeMillis() - startTime) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
+ } else {
+ hits = lastResults;
+ }
+ synchronized (this) {
+ if (this.indexReader == indexReader) {
+ this.lastPatternString = patternString;
+ this.lastResults = hits;
+ }
+ }
+ String taskIdentifier = task.getHandleIdentifier();
+ return hits != null && hits.contains(taskIdentifier);
+ }
+
+ } finally {
+ readLock.unlock();
+ }
+ return false;
+ }
+
+ public void reindex() {
+ rebuildIndex = true;
+ scheduleIndexMaintenance(MaintainIndexType.REINDEX);
+ }
+
+ /**
+ * call to wait until index maintenance has completed
+ *
+ * @throws InterruptedException
+ */
+ public void waitUntilIdle() throws InterruptedException {
+ if (!Platform.isRunning() && reindexDelay != 0L) {
+ // job join() behaviour is not the same when platform is not running
+ Logger.getLogger(TaskListIndex.class.getName()).warning(
+ "Index job joining may not work properly when Eclipse platform is not running"); //$NON-NLS-1$
+ }
+ maintainIndexJob.join();
+ }
+
+ public void find(String patternString, TaskCollector collector, int resultsLimit) {
+
+ Lock readLock = indexReaderLock.readLock();
+ readLock.lock();
+ try {
+ IndexReader indexReader = getIndexReader();
+ if (indexReader != null) {
+ IndexSearcher indexSearcher = new IndexSearcher(indexReader);
+ try {
+ Query query = computeQuery(patternString);
+ TopDocs results = indexSearcher.search(query, resultsLimit);
+ for (ScoreDoc scoreDoc : results.scoreDocs) {
+ Document document = indexReader.document(scoreDoc.doc);
+ String taskIdentifier = document.get(IndexField.IDENTIFIER.fieldName());
+ AbstractTask task = taskList.getTask(taskIdentifier);
+ if (task != null) {
+ collector.collect(task);
+ }
+ }
+ } catch (IOException e) {
+ StatusHandler.fail(new Status(IStatus.ERROR, TasksIndexCore.BUNDLE_ID,
+ "Unexpected failure within task list index", e)); //$NON-NLS-1$
+ } finally {
+ try {
+ indexSearcher.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ } finally {
+ readLock.unlock();
+ }
+ }
+
+ private Query computeQuery(String patternString) {
+ String upperPatternString = patternString.toUpperCase();
+
+ boolean hasBooleanSpecifiers = upperPatternString.contains(" OR ") || upperPatternString.contains(" AND ") //$NON-NLS-1$ //$NON-NLS-2$
+ || upperPatternString.contains(" NOT "); //$NON-NLS-1$
+
+ if (patternString.indexOf(':') == -1 && !hasBooleanSpecifiers && defaultField == IndexField.SUMMARY
+ && patternString.indexOf('"') == -1) {
+ return new PrefixQuery(new Term(defaultField.fieldName(), patternString));
+ }
+ QueryParser qp = new QueryParser(Version.LUCENE_CURRENT, defaultField.fieldName(), new TaskAnalyzer());
+ Query q;
+ try {
+ q = qp.parse(patternString);
+ } catch (ParseException e) {
+ return new PrefixQuery(new Term(defaultField.fieldName(), patternString));
+ }
+
+ // relax term clauses to be prefix clauses so that we get results close
+ // to what we're expecting
+ // from previous task list search
+ if (q instanceof BooleanQuery) {
+ BooleanQuery query = (BooleanQuery) q;
+ for (BooleanClause clause : query.getClauses()) {
+ if (clause.getQuery() instanceof TermQuery) {
+ TermQuery termQuery = (TermQuery) clause.getQuery();
+ clause.setQuery(new PrefixQuery(termQuery.getTerm()));
+ }
+ if (!hasBooleanSpecifiers) {
+ clause.setOccur(Occur.MUST);
+ }
+ }
+ } else if (q instanceof TermQuery) {
+ return new PrefixQuery(((TermQuery) q).getTerm());
+ }
+ return q;
+ }
+
+ public void close() {
+ dataManager.removeListener(this);
+ taskList.removeChangeListener(this);
+
+ maintainIndexJob.cancel();
+ try {
+ maintainIndexJob.join();
+ } catch (InterruptedException e) {
+ // ignore
+ }
+
+ Lock writeLock = indexReaderLock.writeLock();
+ writeLock.lock();
+ try {
+ synchronized (this) {
+ if (indexReader != null) {
+ try {
+ indexReader.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ indexReader = null;
+ }
+ }
+ try {
+ directory.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } finally {
+ writeLock.unlock();
+ }
+ }
+
+ private IndexReader getIndexReader() {
+ try {
+ synchronized (this) {
+ if (indexReader == null) {
+ indexReader = IndexReader.open(directory, true);
+ lastResults = null;
+ }
+ return indexReader;
+ }
+ } catch (CorruptIndexException e) {
+ rebuildIndex = true;
+ if (maintainIndexJob != null) {
+ scheduleIndexMaintenance(MaintainIndexType.REINDEX);
+ }
+ } catch (FileNotFoundException e) {
+ rebuildIndex = true;
+ // expected if the index doesn't exist
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public void taskDataUpdated(TaskDataManagerEvent event) {
+ reindex(event.getTask(), event.getTaskData());
+ }
+
+ public void editsDiscarded(TaskDataManagerEvent event) {
+ reindex(event.getTask(), event.getTaskData());
+ }
+
+ public void containersChanged(Set<TaskContainerDelta> containers) {
+ for (TaskContainerDelta delta : containers) {
+ switch (delta.getKind()) {
+ case ADDED:
+ case REMOVED:
+ case CONTENT:
+ IRepositoryElement element = delta.getElement();
+ if (element instanceof ITask) {
+ ITask task = (ITask) element;
+ if ("local".equals(((AbstractTask) task).getConnectorKind())) { //$NON-NLS-1$
+ reindex(task, null);
+ }
+ }
+ }
+ }
+ }
+
+ private void reindex(ITask task, TaskData taskData) {
+ if (task == null) {
+ // this can happen when edits are discarded
+ return;
+ }
+ synchronized (reindexQueue) {
+ reindexQueue.put(task, taskData);
+ }
+ scheduleIndexMaintenance(MaintainIndexType.REINDEX);
+ }
+
+ private void addIndexedAttributes(Document document, ITask task, TaskAttribute root) {
+ addIndexedAttribute(document, IndexField.TASK_KEY, task.getTaskKey());
+ addIndexedAttribute(document, IndexField.REPOSITORY_URL, task.getRepositoryUrl());
+ addIndexedAttribute(document, IndexField.SUMMARY, root.getMappedAttribute(TaskAttribute.SUMMARY));
+
+ for (TaskAttribute contentAttribute : computeContentAttributes(root)) {
+ addIndexedAttribute(document, IndexField.CONTENT, contentAttribute);
+ }
+
+ addIndexedDateAttributes(document, task);
+
+ List<TaskAttribute> commentAttributes = root.getTaskData()
+ .getAttributeMapper()
+ .getAttributesByType(root.getTaskData(), TaskAttribute.TYPE_COMMENT);
+ for (TaskAttribute commentAttribute : commentAttributes) {
+ TaskCommentMapper commentMapper = TaskCommentMapper.createFrom(commentAttribute);
+ String text = commentMapper.getText();
+ if (text.length() != 0) {
+ addIndexedAttribute(document, IndexField.CONTENT, text);
+ }
+ IRepositoryPerson author = commentMapper.getAuthor();
+ if (author != null) {
+ addIndexedAttribute(document, IndexField.PERSON, author.getPersonId());
+ }
+ }
+
+ List<TaskAttribute> personAttributes = root.getTaskData()
+ .getAttributeMapper()
+ .getAttributesByType(root.getTaskData(), TaskAttribute.TYPE_PERSON);
+ for (TaskAttribute personAttribute : personAttributes) {
+ addIndexedAttribute(document, IndexField.PERSON, personAttribute);
+ }
+
+ for (IndexField field : IndexField.values()) {
+ if (field.getAttributeId() != null) {
+ addIndexedAttribute(document, field, root.getMappedAttribute(field.getAttributeId()));
+ }
+ }
+ }
+
+ /**
+ * compute attributes that should be indexed as {@link IndexField#CONTENT}
+ */
+ private Collection<TaskAttribute> computeContentAttributes(TaskAttribute root) {
+ Set<TaskAttribute> attributes = new LinkedHashSet<TaskAttribute>();
+
+ // add default content attributes
+ {
+ TaskAttribute attribute = root.getMappedAttribute(TaskAttribute.SUMMARY);
+ if (attribute != null) {
+ attributes.add(attribute);
+ }
+ attribute = root.getMappedAttribute(TaskAttribute.DESCRIPTION);
+ if (attribute != null) {
+ attributes.add(attribute);
+ }
+ // bugzilla
+ attribute = root.getAttribute("status_whiteboard"); //$NON-NLS-1$
+ if (attribute != null) {
+ attributes.add(attribute);
+ }
+ }
+
+ for (TaskAttribute attribute : root.getAttributes().values()) {
+ if (Boolean.parseBoolean(attribute.getMetaData().getValue(META_INDEXED_AS_CONTENT))) {
+ attributes.add(attribute);
+ }
+ }
+
+ return attributes;
+ }
+
+ private void addIndexedAttributes(Document document, ITask task) {
+ addIndexedAttribute(document, IndexField.TASK_KEY, task.getTaskKey());
+ addIndexedAttribute(document, IndexField.REPOSITORY_URL, task.getRepositoryUrl());
+ addIndexedAttribute(document, IndexField.SUMMARY, task.getSummary());
+ addIndexedAttribute(document, IndexField.CONTENT, task.getSummary());
+ addIndexedAttribute(document, IndexField.CONTENT, ((AbstractTask) task).getNotes());
+ addIndexedDateAttributes(document, task);
+ }
+
+ private void addIndexedDateAttributes(Document document, ITask task) {
+ addIndexedAttribute(document, IndexField.COMPLETION_DATE, task.getCompletionDate());
+ addIndexedAttribute(document, IndexField.CREATION_DATE, task.getCreationDate());
+ addIndexedAttribute(document, IndexField.DUE_DATE, task.getDueDate());
+ addIndexedAttribute(document, IndexField.MODIFICATION_DATE, task.getModificationDate());
+ }
+
+ private void addIndexedAttribute(Document document, IndexField indexField, TaskAttribute attribute) {
+ if (attribute == null) {
+ return;
+ }
+ // if (indexField == IndexField.ASSIGNEE) {
+ // System.out.println(indexField + "=" + attribute.getValue());
+ // }
+ List<String> values = attribute.getValues();
+ for (String value : values) {
+ if (value.length() != 0) {
+ addIndexedAttribute(document, indexField, value);
+ }
+ }
+ }
+
+ private void addIndexedAttribute(Document document, IndexField indexField, String value) {
+ if (value == null) {
+ return;
+ }
+ Field field = document.getField(indexField.fieldName());
+ if (field == null) {
+ field = new Field(indexField.fieldName(), value, Store.YES, org.apache.lucene.document.Field.Index.ANALYZED);
+ document.add(field);
+ } else {
+ String existingValue = field.stringValue();
+ if (indexField != IndexField.PERSON || !existingValue.contains(value)) {
+ field.setValue(existingValue + " " + value); //$NON-NLS-1$
+ }
+ }
+ }
+
+ private void addIndexedAttribute(Document document, IndexField indexField, Date date) {
+ if (date == null) {
+ return;
+ }
+ // FIXME: date tools converts dates to GMT, and we don't really want that. So
+ // move the date by the GMT offset if there is any
+
+ String value = DateTools.dateToString(date, Resolution.HOUR);
+ Field field = document.getField(indexField.fieldName());
+ if (field == null) {
+ field = new Field(indexField.fieldName(), value, Store.YES, org.apache.lucene.document.Field.Index.ANALYZED);
+ document.add(field);
+ } else {
+ field.setValue(value);
+ }
+ }
+
+ private class MaintainIndexJob extends Job {
+
+ public MaintainIndexJob() {
+ super(Messages.TaskListIndex_indexerJob);
+ setUser(false);
+ setSystem(false); // true?
+ setPriority(Job.LONG);
+ }
+
+ @Override
+ public IStatus run(IProgressMonitor m) {
+ final int WORK_PER_SEGMENT = 1000;
+ SubMonitor monitor = SubMonitor.convert(m, 3 * WORK_PER_SEGMENT);
+ try {
+ try {
+ if (monitor.isCanceled()) {
+ return Status.CANCEL_STATUS;
+ }
+ if (!rebuildIndex) {
+ try {
+ IndexReader reader = IndexReader.open(directory, false);
+ reader.close();
+ } catch (CorruptIndexException e) {
+ rebuildIndex = true;
+ }
+ }
+
+ if (rebuildIndex) {
+ synchronized (reindexQueue) {
+ reindexQueue.clear();
+ }
+
+ SubMonitor reindexMonitor = monitor.newChild(WORK_PER_SEGMENT);
+
+ final IndexWriter writer = new IndexWriter(directory, new TaskAnalyzer(), true,
+ IndexWriter.MaxFieldLength.UNLIMITED);
+ try {
+
+ final List<ITask> allTasks = new ArrayList<ITask>(5000);
+
+ taskList.run(new ITaskListRunnable() {
+ public void execute(IProgressMonitor monitor) throws CoreException {
+ allTasks.addAll(taskList.getAllTasks());
+ }
+ }, monitor.newChild(1));
+
+ int reindexErrorCount = 0;
+
+ reindexMonitor.beginTask(Messages.TaskListIndex_task_rebuildingIndex, allTasks.size());
+ for (ITask task : allTasks) {
+ try {
+ TaskData taskData = dataManager.getTaskData(task);
+ add(writer, task, taskData);
+
+ reindexMonitor.worked(1);
+ } catch (CoreException e) {
+ // an individual task data error should not prevent the index from updating
+ // but don't flood the log in the case of multiple errors
+ if (reindexErrorCount++ == 0) {
+ StatusHandler.log(e.getStatus());
+ }
+ } catch (IOException e) {
+ throw e;
+ }
+ }
+ synchronized (TaskListIndex.this) {
+ rebuildIndex = false;
+ }
+ } finally {
+ writer.close();
+ reindexMonitor.done();
+ }
+ } else {
+ monitor.worked(WORK_PER_SEGMENT);
+ }
+ for (;;) {
+
+ synchronized (reindexQueue) {
+ if (reindexQueue.isEmpty()) {
+ break;
+ }
+ }
+
+ Map<ITask, TaskData> queue = new HashMap<ITask, TaskData>();
+
+ IndexReader reader = IndexReader.open(directory, false);
+ try {
+ synchronized (reindexQueue) {
+ queue.putAll(reindexQueue);
+ for (ITask task : queue.keySet()) {
+ reindexQueue.remove(task);
+ }
+ }
+ Iterator<Entry<ITask, TaskData>> it = queue.entrySet().iterator();
+ while (it.hasNext()) {
+ Entry<ITask, TaskData> entry = it.next();
+
+ reader.deleteDocuments(new Term(IndexField.IDENTIFIER.fieldName(), entry.getKey()
+ .getHandleIdentifier()));
+
+ }
+ } finally {
+ reader.close();
+ }
+ monitor.worked(WORK_PER_SEGMENT);
+
+ IndexWriter writer = new IndexWriter(directory, new TaskAnalyzer(), false,
+ IndexWriter.MaxFieldLength.UNLIMITED);
+ try {
+ for (Entry<ITask, TaskData> entry : queue.entrySet()) {
+ ITask task = entry.getKey();
+ TaskData taskData = entry.getValue();
+
+ add(writer, task, taskData);
+ }
+ } finally {
+ writer.close();
+ }
+ monitor.worked(WORK_PER_SEGMENT);
+ }
+ Lock writeLock = indexReaderLock.writeLock();
+ writeLock.lock();
+ try {
+ synchronized (TaskListIndex.this) {
+ if (indexReader != null) {
+ indexReader.close();
+ indexReader = null;
+ }
+ }
+ } finally {
+ writeLock.unlock();
+ }
+ } catch (CoreException e) {
+ throw e;
+ } catch (Throwable e) {
+ throw new CoreException(new Status(IStatus.ERROR, TasksIndexCore.BUNDLE_ID,
+ "Unexpected exception: " + e.getMessage(), e)); //$NON-NLS-1$
+ }
+ } catch (CoreException e) {
+ MultiStatus logStatus = new MultiStatus(TasksIndexCore.BUNDLE_ID, 0,
+ "Failed to update task list index", e); //$NON-NLS-1$
+ logStatus.add(e.getStatus());
+ StatusHandler.log(logStatus);
+ } finally {
+ monitor.done();
+ }
+ return Status.OK_STATUS;
+ }
+
+ /**
+ * @param writer
+ * @param task
+ * the task
+ * @param taskData
+ * may be null for local tasks
+ * @throws CorruptIndexException
+ * @throws IOException
+ */
+ private void add(IndexWriter writer, ITask task, TaskData taskData) throws CorruptIndexException, IOException {
+
+ Document document = new Document();
+
+ document.add(new Field(IndexField.IDENTIFIER.fieldName(), task.getHandleIdentifier(), Store.YES,
+ org.apache.lucene.document.Field.Index.ANALYZED));
+ if (taskData == null) {
+ if ("local".equals(((AbstractTask) task).getConnectorKind())) { //$NON-NLS-1$
+ addIndexedAttributes(document, task);
+ } else {
+ return;
+ }
+ } else {
+ addIndexedAttributes(document, task, taskData.getRoot());
+ }
+ writer.addDocument(document);
+ }
+
+ }
+
+ /**
+ * Computes a query element for a field that must lie in a specified date range.
+ *
+ * @param field
+ * the field
+ * @param lowerBoundInclusive
+ * the date lower bound that the field value must match, inclusive
+ * @param upperBoundInclusive
+ * the date upper bound that the field value must match, inclusive
+ * @return
+ */
+ public String computeQueryFieldDateRange(IndexField field, Date lowerBoundInclusive, Date upperBoundInclusive) {
+ return field.fieldName()
+ + ":[" + DateTools.dateToString(lowerBoundInclusive, Resolution.DAY) + " TO " + DateTools.dateToString(upperBoundInclusive, Resolution.DAY) + "]"; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
+ }
+
+ /**
+ * escapes special characters in the given literal value so that they are not interpreted as special characters in a
+ * query
+ *
+ * @param value
+ * the value to escape
+ * @return a representation of the value with characters escaped
+ */
+ public String escapeFieldValue(String value) {
+ // see http://lucene.apache.org/java/2_9_1/queryparsersyntax.html#Escaping%20Special%20Characters
+ String escaped = value.replaceAll("([\\+\\-\\!\\(\\)\\{\\}\\[\\]^\"~\\*\\?:\\\\]|&&|\\|\\|)", "\\\\$1"); //$NON-NLS-1$ //$NON-NLS-2$
+ return escaped;
+ }
+}
diff --git a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TasksIndexCore.java b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TasksIndexCore.java
index ec3ccca..2558063 100644
--- a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TasksIndexCore.java
+++ b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TasksIndexCore.java
@@ -1,19 +1,19 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.tasks.index.core;
-
-/**
- * @author David Green
- */
-public class TasksIndexCore {
- public static final String BUNDLE_ID = "org.eclipse.mylyn.tasks.index.core"; //$NON-NLS-1$
-
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylyn.internal.tasks.index.core;
+
+/**
+ * @author David Green
+ */
+public class TasksIndexCore {
+ public static final String BUNDLE_ID = "org.eclipse.mylyn.tasks.index.core"; //$NON-NLS-1$
+
+}
diff --git a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/messages.properties b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/messages.properties
index 4fb01a2..5354a09 100644
--- a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/messages.properties
+++ b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/messages.properties
@@ -1,12 +1,12 @@
-###############################################################################
-# Copyright (c) 2011 Tasktop Technologies and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Tasktop Technologies - initial API and implementation
-###############################################################################
-TaskListIndex_indexerJob=Task List Indexer
-TaskListIndex_task_rebuildingIndex=Rebuilding Task List Index
+###############################################################################
+# Copyright (c) 2011 Tasktop Technologies and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Tasktop Technologies - initial API and implementation
+###############################################################################
+TaskListIndex_indexerJob=Task List Indexer
+TaskListIndex_task_rebuildingIndex=Rebuilding Task List Index
diff --git a/org.eclipse.mylyn.tasks.index.tests/.classpath b/org.eclipse.mylyn.tasks.index.tests/.classpath
index fac23ac..e3b5ced 100644
--- a/org.eclipse.mylyn.tasks.index.tests/.classpath
+++ b/org.eclipse.mylyn.tasks.index.tests/.classpath
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
- <accessrules>
- <accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/**"/>
- <accessrule kind="accessible" pattern="org/eclipse/mylyn/tasks/tests/**"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+ <accessrules>
+ <accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/**"/>
+ <accessrule kind="accessible" pattern="org/eclipse/mylyn/tasks/tests/**"/>
+ </accessrules>
+ </classpathentry>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.mylyn.tasks.index.tests/.project b/org.eclipse.mylyn.tasks.index.tests/.project
index fe606eb..d57642a 100644
--- a/org.eclipse.mylyn.tasks.index.tests/.project
+++ b/org.eclipse.mylyn.tasks.index.tests/.project
@@ -1,34 +1,34 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.tasks.index.tests</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.mylyn.tasks.index.tests</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
<buildCommand>
<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
<arguments>
</arguments>
</buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.mylyn.tasks.index.tests/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.tasks.index.tests/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.tasks.index.tests/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.tasks.index.tests/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.tasks.index.tests/.settings/org.eclipse.jdt.core.prefs
index ece90e0..9d46694 100644
--- a/org.eclipse.mylyn.tasks.index.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.mylyn.tasks.index.tests/.settings/org.eclipse.jdt.core.prefs
@@ -1,370 +1,370 @@
-#Sat Oct 15 17:46:40 PDT 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=48
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+#Sat Oct 15 17:46:40 PDT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=48
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/org.eclipse.mylyn.tasks.index.tests/build.properties b/org.eclipse.mylyn.tasks.index.tests/build.properties
index 785a40c..9cbab3c 100644
--- a/org.eclipse.mylyn.tasks.index.tests/build.properties
+++ b/org.eclipse.mylyn.tasks.index.tests/build.properties
@@ -1,6 +1,6 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- about.html
-src.includes = about.html
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html
+src.includes = about.html
diff --git a/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/TaskListIndexTest.java b/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/TaskListIndexTest.java
index 6ae7592..671953a 100644
--- a/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/TaskListIndexTest.java
+++ b/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/TaskListIndexTest.java
@@ -1,381 +1,381 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.index.tests;
-
-import static junit.framework.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.logging.Logger;
-
-import junit.framework.Assert;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.mylyn.commons.core.DelegatingProgressMonitor;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex;
-import org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex.IndexField;
-import org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex.TaskCollector;
-import org.eclipse.mylyn.internal.tasks.index.tests.util.MockTestContext;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskMapper;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author David Green
- */
-public class TaskListIndexTest {
-
- private static class TestTaskCollector extends TaskCollector {
-
- private final List<ITask> tasks = new ArrayList<ITask>();
-
- @Override
- public void collect(ITask task) {
- tasks.add(task);
- }
-
- public List<ITask> getTasks() {
- return tasks;
- }
- }
-
- private MockTestContext context;
-
- private TaskListIndex index;
-
- private File tempDir;
-
- @Before
- public void setup() throws IOException {
- tempDir = File.createTempFile(TaskListIndexTest.class.getSimpleName(), ".tmp");
- tempDir.delete();
- tempDir.mkdirs();
-
- assertTrue(tempDir.exists() && tempDir.isDirectory());
-
- context = new MockTestContext();
- }
-
- @After
- public void tearDown() {
- if (index != null) {
- try {
- index.waitUntilIdle();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- index.close();
- index = null;
- }
- if (tempDir != null) {
- delete(tempDir);
- assertFalse(tempDir.exists());
- }
- }
-
- private void delete(File file) {
- if (file.isDirectory()) {
- File[] children = file.listFiles();
- if (children != null) {
- for (File child : children) {
- delete(child);
- }
- }
- }
- if (!file.delete()) {
- Logger.getLogger(TaskListIndexTest.class.getName()).severe("Cannot delete: " + file);
- }
- }
-
- private void setupIndex() {
- index = new TaskListIndex(context.getTaskList(), context.getDataManager(), tempDir, 0L);
- index.setDefaultField(IndexField.CONTENT);
- index.setReindexDelay(0L);
- }
-
- @Test
- public void testMatchesLocalTaskOnSummary() throws InterruptedException {
- setupIndex();
-
- ITask task = context.createLocalTask();
-
- index.waitUntilIdle();
-
- index.setDefaultField(IndexField.CONTENT);
-
- assertTrue(index.matches(task, task.getSummary()));
- assertFalse(index.matches(task, "" + System.currentTimeMillis()));
-
- index.setDefaultField(IndexField.SUMMARY);
-
- assertTrue(index.matches(task, task.getSummary()));
- assertFalse(index.matches(task, "" + System.currentTimeMillis()));
- }
-
- @Test
- public void testMatchesLocalTaskOnDescription() throws InterruptedException {
- setupIndex();
-
- ITask task = context.createLocalTask();
-
- index.waitUntilIdle();
-
- index.setDefaultField(IndexField.CONTENT);
-
- assertTrue(index.matches(task, ((LocalTask) task).getNotes()));
- assertFalse(index.matches(task, "unlikely-akjfsaow"));
-
- index.setDefaultField(IndexField.SUMMARY);
-
- assertFalse(index.matches(task, ((LocalTask) task).getNotes()));
- }
-
- @Test
- public void testMatchesRepositoryTaskOnSummary() throws InterruptedException, CoreException {
- setupIndex();
-
- ITask task = context.createRepositoryTask();
-
- index.waitUntilIdle();
-
- index.setDefaultField(IndexField.CONTENT);
-
- assertTrue(index.matches(task, task.getSummary()));
- assertFalse(index.matches(task, "" + System.currentTimeMillis()));
-
- index.setDefaultField(IndexField.SUMMARY);
-
- assertTrue(index.matches(task, task.getSummary()));
- assertFalse(index.matches(task, "" + System.currentTimeMillis()));
- }
-
- @Test
- public void testMatchesRepositoryTaskOnDescription() throws InterruptedException, CoreException {
- setupIndex();
-
- ITask task = context.createRepositoryTask();
-
- index.waitUntilIdle();
-
- index.setDefaultField(IndexField.CONTENT);
-
- TaskData taskData = context.getDataManager().getTaskData(task);
- assertNotNull(taskData);
-
- TaskMapper taskMapping = context.getMockRepositoryConnector().getTaskMapping(taskData);
-
- assertTrue(index.matches(task, taskMapping.getDescription()));
- assertFalse(index.matches(task, "unlikely-akjfsaow"));
-
- index.setDefaultField(IndexField.SUMMARY);
-
- assertFalse(index.matches(task, taskMapping.getDescription()));
- }
-
- @Test
- public void testFind() throws InterruptedException {
- setupIndex();
-
- ITask task = context.createLocalTask();
-
- index.waitUntilIdle();
-
- index.setDefaultField(IndexField.SUMMARY);
-
- TestTaskCollector collector = new TestTaskCollector();
- index.find(task.getSummary(), collector, 1000);
-
- assertEquals(1, collector.getTasks().size());
- assertTrue(collector.getTasks().contains(task));
- }
-
- @Test
- public void testMatchesRepositoryTaskOnCreationDate() throws InterruptedException, CoreException {
- setupIndex();
-
- ITask task = context.createRepositoryTask();
-
- Date creationDate = task.getCreationDate();
- assertNotNull(creationDate);
-
- index.waitUntilIdle();
-
- assertFalse(index.matches(task, IndexField.CREATION_DATE.fieldName() + ":[20010101 TO 20010105]"));
-
- String matchDate = new SimpleDateFormat("yyyyMMdd").format(creationDate);
- matchDate = Integer.toString(Integer.parseInt(matchDate) + 2);
-
- String patternString = IndexField.CREATION_DATE.fieldName() + ":[20111019 TO " + matchDate + "]";
-
- System.out.println(patternString);
-
- assertTrue(index.matches(task, patternString));
- }
-
- @Test
- public void testMatchesOnRepositoryUrl() throws Exception {
- setupIndex();
-
- ITask repositoryTask = context.createRepositoryTask();
- ITask localTask = context.createLocalTask();
-
- index.waitUntilIdle();
-
- index.setDefaultField(IndexField.CONTENT);
-
- TaskData taskData = context.getDataManager().getTaskData(repositoryTask);
-
- // sanity
- assertNotNull(taskData);
- assertNotNull(taskData.getRepositoryUrl());
- assertFalse(taskData.getRepositoryUrl().length() == 0);
-
- // setup descriptions so that they will both match
- final String content = "RepositoryUrl";
- taskData.getRoot().getMappedAttribute(TaskAttribute.DESCRIPTION).setValue(content);
- ((AbstractTask) localTask).setNotes(content);
-
- context.getDataManager().putSubmittedTaskData(repositoryTask, taskData, new DelegatingProgressMonitor());
-
- Set<ITask> changedElements = new HashSet<ITask>();
- changedElements.add(localTask);
- changedElements.add(repositoryTask);
- context.getTaskList().notifyElementsChanged(changedElements);
-
- index.waitUntilIdle();
-
- assertTrue(index.matches(localTask, content));
- assertTrue(index.matches(repositoryTask, content));
-
- String repositoryUrlQuery = content + " AND " + IndexField.REPOSITORY_URL.fieldName() + ":\""
- + index.escapeFieldValue(repositoryTask.getRepositoryUrl()) + "\"";
- assertFalse(index.matches(localTask, repositoryUrlQuery));
- assertTrue(index.matches(repositoryTask, repositoryUrlQuery));
- }
-
- @Test
- public void testCharacterEscaping() {
- setupIndex();
- for (String special : new String[] { "+", "-", "&&", "||", "!", "(", ")", "{", "}", "[", "]", "^", "\"", "~",
- "*", "?", ":", "\\" }) {
- assertEquals("a\\" + special + "b", index.escapeFieldValue("a" + special + "b"));
- }
- }
-
- @Test
- public void testAttributeMetadataAffectsIndexing() throws CoreException, InterruptedException {
- setupIndex();
-
- ITask repositoryTask = context.createRepositoryTask();
-
- index.waitUntilIdle();
- index.setDefaultField(IndexField.CONTENT);
-
- TaskData taskData = context.getDataManager().getTaskData(repositoryTask);
-
- // sanity
- assertNotNull(taskData);
-
- final String content = "c" + System.currentTimeMillis();
-
- // setup data so that it will match
- TaskAttribute attribute = taskData.getRoot().createAttribute("unusualIndexedAttribute");
- attribute.setValue(content);
-
- // update
- context.getDataManager().putSubmittedTaskData(repositoryTask, taskData, new DelegatingProgressMonitor());
-
- // verify index doesn't match search term
- assertFalse(index.matches(repositoryTask, content));
-
- // now make data indexable
- attribute.getMetaData().putValue(TaskListIndex.META_INDEXED_AS_CONTENT, "true");
- // update
- context.getDataManager().putSubmittedTaskData(repositoryTask, taskData, new DelegatingProgressMonitor());
-
- // should now match
- assertTrue(index.matches(repositoryTask, content));
- }
-
- @Test
- public void testMultithreadedAccessOnFind() throws CoreException, InterruptedException, ExecutionException {
- setupIndex();
-
- final ITask repositoryTask = context.createRepositoryTask();
-
- index.waitUntilIdle();
- index.setDefaultField(IndexField.CONTENT);
-
- final int nThreads = 10;
- final int[] concurrencyLevel = new int[1];
- ExecutorService executorService = Executors.newFixedThreadPool(nThreads);
- try {
- Collection<Callable<Object>> tasks = new HashSet<Callable<Object>>();
- for (int x = 0; x < nThreads; ++x) {
- tasks.add(new Callable<Object>() {
-
- public Object call() throws Exception {
- final int[] hitCount = new int[1];
- index.find(repositoryTask.getSummary(), new TaskCollector() {
-
- @Override
- public void collect(ITask task) {
- synchronized (concurrencyLevel) {
- ++concurrencyLevel[0];
- if (concurrencyLevel[0] < nThreads) {
- try {
- concurrencyLevel.wait(5000L);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- } else {
- concurrencyLevel.notifyAll();
- }
- }
- ++hitCount[0];
- }
- }, 100);
- return hitCount[0] == 1;
- }
- });
- }
- List<Future<Object>> futures = executorService.invokeAll(tasks);
- for (Future<Object> future : futures) {
- assertEquals(Boolean.TRUE, future.get());
- }
- Assert.assertEquals(nThreads, concurrencyLevel[0]);
- } finally {
- executorService.shutdownNow();
- }
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.tasks.index.tests;
+
+import static junit.framework.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.logging.Logger;
+
+import junit.framework.Assert;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.mylyn.commons.core.DelegatingProgressMonitor;
+import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
+import org.eclipse.mylyn.internal.tasks.core.LocalTask;
+import org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex;
+import org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex.IndexField;
+import org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex.TaskCollector;
+import org.eclipse.mylyn.internal.tasks.index.tests.util.MockTestContext;
+import org.eclipse.mylyn.tasks.core.ITask;
+import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
+import org.eclipse.mylyn.tasks.core.data.TaskData;
+import org.eclipse.mylyn.tasks.core.data.TaskMapper;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @author David Green
+ */
+public class TaskListIndexTest {
+
+ private static class TestTaskCollector extends TaskCollector {
+
+ private final List<ITask> tasks = new ArrayList<ITask>();
+
+ @Override
+ public void collect(ITask task) {
+ tasks.add(task);
+ }
+
+ public List<ITask> getTasks() {
+ return tasks;
+ }
+ }
+
+ private MockTestContext context;
+
+ private TaskListIndex index;
+
+ private File tempDir;
+
+ @Before
+ public void setup() throws IOException {
+ tempDir = File.createTempFile(TaskListIndexTest.class.getSimpleName(), ".tmp");
+ tempDir.delete();
+ tempDir.mkdirs();
+
+ assertTrue(tempDir.exists() && tempDir.isDirectory());
+
+ context = new MockTestContext();
+ }
+
+ @After
+ public void tearDown() {
+ if (index != null) {
+ try {
+ index.waitUntilIdle();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ index.close();
+ index = null;
+ }
+ if (tempDir != null) {
+ delete(tempDir);
+ assertFalse(tempDir.exists());
+ }
+ }
+
+ private void delete(File file) {
+ if (file.isDirectory()) {
+ File[] children = file.listFiles();
+ if (children != null) {
+ for (File child : children) {
+ delete(child);
+ }
+ }
+ }
+ if (!file.delete()) {
+ Logger.getLogger(TaskListIndexTest.class.getName()).severe("Cannot delete: " + file);
+ }
+ }
+
+ private void setupIndex() {
+ index = new TaskListIndex(context.getTaskList(), context.getDataManager(), tempDir, 0L);
+ index.setDefaultField(IndexField.CONTENT);
+ index.setReindexDelay(0L);
+ }
+
+ @Test
+ public void testMatchesLocalTaskOnSummary() throws InterruptedException {
+ setupIndex();
+
+ ITask task = context.createLocalTask();
+
+ index.waitUntilIdle();
+
+ index.setDefaultField(IndexField.CONTENT);
+
+ assertTrue(index.matches(task, task.getSummary()));
+ assertFalse(index.matches(task, "" + System.currentTimeMillis()));
+
+ index.setDefaultField(IndexField.SUMMARY);
+
+ assertTrue(index.matches(task, task.getSummary()));
+ assertFalse(index.matches(task, "" + System.currentTimeMillis()));
+ }
+
+ @Test
+ public void testMatchesLocalTaskOnDescription() throws InterruptedException {
+ setupIndex();
+
+ ITask task = context.createLocalTask();
+
+ index.waitUntilIdle();
+
+ index.setDefaultField(IndexField.CONTENT);
+
+ assertTrue(index.matches(task, ((LocalTask) task).getNotes()));
+ assertFalse(index.matches(task, "unlikely-akjfsaow"));
+
+ index.setDefaultField(IndexField.SUMMARY);
+
+ assertFalse(index.matches(task, ((LocalTask) task).getNotes()));
+ }
+
+ @Test
+ public void testMatchesRepositoryTaskOnSummary() throws InterruptedException, CoreException {
+ setupIndex();
+
+ ITask task = context.createRepositoryTask();
+
+ index.waitUntilIdle();
+
+ index.setDefaultField(IndexField.CONTENT);
+
+ assertTrue(index.matches(task, task.getSummary()));
+ assertFalse(index.matches(task, "" + System.currentTimeMillis()));
+
+ index.setDefaultField(IndexField.SUMMARY);
+
+ assertTrue(index.matches(task, task.getSummary()));
+ assertFalse(index.matches(task, "" + System.currentTimeMillis()));
+ }
+
+ @Test
+ public void testMatchesRepositoryTaskOnDescription() throws InterruptedException, CoreException {
+ setupIndex();
+
+ ITask task = context.createRepositoryTask();
+
+ index.waitUntilIdle();
+
+ index.setDefaultField(IndexField.CONTENT);
+
+ TaskData taskData = context.getDataManager().getTaskData(task);
+ assertNotNull(taskData);
+
+ TaskMapper taskMapping = context.getMockRepositoryConnector().getTaskMapping(taskData);
+
+ assertTrue(index.matches(task, taskMapping.getDescription()));
+ assertFalse(index.matches(task, "unlikely-akjfsaow"));
+
+ index.setDefaultField(IndexField.SUMMARY);
+
+ assertFalse(index.matches(task, taskMapping.getDescription()));
+ }
+
+ @Test
+ public void testFind() throws InterruptedException {
+ setupIndex();
+
+ ITask task = context.createLocalTask();
+
+ index.waitUntilIdle();
+
+ index.setDefaultField(IndexField.SUMMARY);
+
+ TestTaskCollector collector = new TestTaskCollector();
+ index.find(task.getSummary(), collector, 1000);
+
+ assertEquals(1, collector.getTasks().size());
+ assertTrue(collector.getTasks().contains(task));
+ }
+
+ @Test
+ public void testMatchesRepositoryTaskOnCreationDate() throws InterruptedException, CoreException {
+ setupIndex();
+
+ ITask task = context.createRepositoryTask();
+
+ Date creationDate = task.getCreationDate();
+ assertNotNull(creationDate);
+
+ index.waitUntilIdle();
+
+ assertFalse(index.matches(task, IndexField.CREATION_DATE.fieldName() + ":[20010101 TO 20010105]"));
+
+ String matchDate = new SimpleDateFormat("yyyyMMdd").format(creationDate);
+ matchDate = Integer.toString(Integer.parseInt(matchDate) + 2);
+
+ String patternString = IndexField.CREATION_DATE.fieldName() + ":[20111019 TO " + matchDate + "]";
+
+ System.out.println(patternString);
+
+ assertTrue(index.matches(task, patternString));
+ }
+
+ @Test
+ public void testMatchesOnRepositoryUrl() throws Exception {
+ setupIndex();
+
+ ITask repositoryTask = context.createRepositoryTask();
+ ITask localTask = context.createLocalTask();
+
+ index.waitUntilIdle();
+
+ index.setDefaultField(IndexField.CONTENT);
+
+ TaskData taskData = context.getDataManager().getTaskData(repositoryTask);
+
+ // sanity
+ assertNotNull(taskData);
+ assertNotNull(taskData.getRepositoryUrl());
+ assertFalse(taskData.getRepositoryUrl().length() == 0);
+
+ // setup descriptions so that they will both match
+ final String content = "RepositoryUrl";
+ taskData.getRoot().getMappedAttribute(TaskAttribute.DESCRIPTION).setValue(content);
+ ((AbstractTask) localTask).setNotes(content);
+
+ context.getDataManager().putSubmittedTaskData(repositoryTask, taskData, new DelegatingProgressMonitor());
+
+ Set<ITask> changedElements = new HashSet<ITask>();
+ changedElements.add(localTask);
+ changedElements.add(repositoryTask);
+ context.getTaskList().notifyElementsChanged(changedElements);
+
+ index.waitUntilIdle();
+
+ assertTrue(index.matches(localTask, content));
+ assertTrue(index.matches(repositoryTask, content));
+
+ String repositoryUrlQuery = content + " AND " + IndexField.REPOSITORY_URL.fieldName() + ":\""
+ + index.escapeFieldValue(repositoryTask.getRepositoryUrl()) + "\"";
+ assertFalse(index.matches(localTask, repositoryUrlQuery));
+ assertTrue(index.matches(repositoryTask, repositoryUrlQuery));
+ }
+
+ @Test
+ public void testCharacterEscaping() {
+ setupIndex();
+ for (String special : new String[] { "+", "-", "&&", "||", "!", "(", ")", "{", "}", "[", "]", "^", "\"", "~",
+ "*", "?", ":", "\\" }) {
+ assertEquals("a\\" + special + "b", index.escapeFieldValue("a" + special + "b"));
+ }
+ }
+
+ @Test
+ public void testAttributeMetadataAffectsIndexing() throws CoreException, InterruptedException {
+ setupIndex();
+
+ ITask repositoryTask = context.createRepositoryTask();
+
+ index.waitUntilIdle();
+ index.setDefaultField(IndexField.CONTENT);
+
+ TaskData taskData = context.getDataManager().getTaskData(repositoryTask);
+
+ // sanity
+ assertNotNull(taskData);
+
+ final String content = "c" + System.currentTimeMillis();
+
+ // setup data so that it will match
+ TaskAttribute attribute = taskData.getRoot().createAttribute("unusualIndexedAttribute");
+ attribute.setValue(content);
+
+ // update
+ context.getDataManager().putSubmittedTaskData(repositoryTask, taskData, new DelegatingProgressMonitor());
+
+ // verify index doesn't match search term
+ assertFalse(index.matches(repositoryTask, content));
+
+ // now make data indexable
+ attribute.getMetaData().putValue(TaskListIndex.META_INDEXED_AS_CONTENT, "true");
+ // update
+ context.getDataManager().putSubmittedTaskData(repositoryTask, taskData, new DelegatingProgressMonitor());
+
+ // should now match
+ assertTrue(index.matches(repositoryTask, content));
+ }
+
+ @Test
+ public void testMultithreadedAccessOnFind() throws CoreException, InterruptedException, ExecutionException {
+ setupIndex();
+
+ final ITask repositoryTask = context.createRepositoryTask();
+
+ index.waitUntilIdle();
+ index.setDefaultField(IndexField.CONTENT);
+
+ final int nThreads = 10;
+ final int[] concurrencyLevel = new int[1];
+ ExecutorService executorService = Executors.newFixedThreadPool(nThreads);
+ try {
+ Collection<Callable<Object>> tasks = new HashSet<Callable<Object>>();
+ for (int x = 0; x < nThreads; ++x) {
+ tasks.add(new Callable<Object>() {
+
+ public Object call() throws Exception {
+ final int[] hitCount = new int[1];
+ index.find(repositoryTask.getSummary(), new TaskCollector() {
+
+ @Override
+ public void collect(ITask task) {
+ synchronized (concurrencyLevel) {
+ ++concurrencyLevel[0];
+ if (concurrencyLevel[0] < nThreads) {
+ try {
+ concurrencyLevel.wait(5000L);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ } else {
+ concurrencyLevel.notifyAll();
+ }
+ }
+ ++hitCount[0];
+ }
+ }, 100);
+ return hitCount[0] == 1;
+ }
+ });
+ }
+ List<Future<Object>> futures = executorService.invokeAll(tasks);
+ for (Future<Object> future : futures) {
+ assertEquals(Boolean.TRUE, future.get());
+ }
+ Assert.assertEquals(nThreads, concurrencyLevel[0]);
+ } finally {
+ executorService.shutdownNow();
+ }
+ }
+}
diff --git a/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/util/FullMockRepositoryConnector.java b/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/util/FullMockRepositoryConnector.java
index e090f6e..f14b94d 100644
--- a/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/util/FullMockRepositoryConnector.java
+++ b/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/util/FullMockRepositoryConnector.java
@@ -1,98 +1,98 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.index.tests.util;
-
-import java.util.Date;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.ITaskMapping;
-import org.eclipse.mylyn.tasks.core.RepositoryResponse;
-import org.eclipse.mylyn.tasks.core.RepositoryResponse.ResponseKind;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.AbstractTaskDataHandler;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.core.data.TaskMapper;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-
-/**
- * @author David Green
- */
-public class FullMockRepositoryConnector extends MockRepositoryConnector {
-
- private final AtomicInteger idSeed = new AtomicInteger(9000);
-
- @Override
- public boolean hasTaskChanged(TaskRepository taskRepository, ITask task, TaskData taskData) {
- ITaskMapping taskMapping = getTaskMapping(taskData);
- Date modificationDate = taskMapping.getModificationDate();
- return modificationDate != null && !modificationDate.equals(task.getModificationDate());
- }
-
- @Override
- public TaskMapper getTaskMapping(TaskData taskData) {
- return new TaskMapper(taskData, true);
- }
-
- @Override
- public void updateTaskFromTaskData(TaskRepository taskRepository, ITask task, TaskData taskData) {
- final Date originalModificationDate = task.getModificationDate();
-
- TaskMapper taskMapping = getTaskMapping(taskData);
- taskMapping.applyTo(task);
-
- if (taskData.isPartial()) {
- task.setModificationDate(originalModificationDate);
- }
- }
-
- @Override
- public AbstractTaskDataHandler getTaskDataHandler() {
- return new AbstractTaskDataHandler() {
-
- @Override
- public RepositoryResponse postTaskData(TaskRepository repository, TaskData taskData,
- Set<TaskAttribute> oldAttributes, IProgressMonitor monitor) throws CoreException {
- if (taskData.getTaskId() == null || taskData.getTaskId().length() == 0) {
- return new RepositoryResponse(ResponseKind.TASK_UPDATED, String.valueOf(idSeed.incrementAndGet()));
- } else {
- return new RepositoryResponse(ResponseKind.TASK_UPDATED, taskData.getTaskId());
- }
- }
-
- @Override
- public boolean initializeTaskData(TaskRepository repository, TaskData data,
- ITaskMapping initializationData, IProgressMonitor monitor) throws CoreException {
- TaskMapper mapper = getTaskMapping(data);
- mapper.setCreationDate(new Date());
- mapper.setDescription("");
- mapper.setModificationDate(mapper.getCreationDate());
- mapper.setOwner("");
- mapper.setProduct("Product1");
- mapper.setReporter("");
- mapper.setStatus("NEW");
- mapper.setSummary("");
- return false;
- }
-
- @Override
- public TaskAttributeMapper getAttributeMapper(TaskRepository repository) {
- return new TaskAttributeMapper(repository);
- }
- };
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.tasks.index.tests.util;
+
+import java.util.Date;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.mylyn.tasks.core.ITask;
+import org.eclipse.mylyn.tasks.core.ITaskMapping;
+import org.eclipse.mylyn.tasks.core.RepositoryResponse;
+import org.eclipse.mylyn.tasks.core.RepositoryResponse.ResponseKind;
+import org.eclipse.mylyn.tasks.core.TaskRepository;
+import org.eclipse.mylyn.tasks.core.data.AbstractTaskDataHandler;
+import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
+import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
+import org.eclipse.mylyn.tasks.core.data.TaskData;
+import org.eclipse.mylyn.tasks.core.data.TaskMapper;
+import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
+
+/**
+ * @author David Green
+ */
+public class FullMockRepositoryConnector extends MockRepositoryConnector {
+
+ private final AtomicInteger idSeed = new AtomicInteger(9000);
+
+ @Override
+ public boolean hasTaskChanged(TaskRepository taskRepository, ITask task, TaskData taskData) {
+ ITaskMapping taskMapping = getTaskMapping(taskData);
+ Date modificationDate = taskMapping.getModificationDate();
+ return modificationDate != null && !modificationDate.equals(task.getModificationDate());
+ }
+
+ @Override
+ public TaskMapper getTaskMapping(TaskData taskData) {
+ return new TaskMapper(taskData, true);
+ }
+
+ @Override
+ public void updateTaskFromTaskData(TaskRepository taskRepository, ITask task, TaskData taskData) {
+ final Date originalModificationDate = task.getModificationDate();
+
+ TaskMapper taskMapping = getTaskMapping(taskData);
+ taskMapping.applyTo(task);
+
+ if (taskData.isPartial()) {
+ task.setModificationDate(originalModificationDate);
+ }
+ }
+
+ @Override
+ public AbstractTaskDataHandler getTaskDataHandler() {
+ return new AbstractTaskDataHandler() {
+
+ @Override
+ public RepositoryResponse postTaskData(TaskRepository repository, TaskData taskData,
+ Set<TaskAttribute> oldAttributes, IProgressMonitor monitor) throws CoreException {
+ if (taskData.getTaskId() == null || taskData.getTaskId().length() == 0) {
+ return new RepositoryResponse(ResponseKind.TASK_UPDATED, String.valueOf(idSeed.incrementAndGet()));
+ } else {
+ return new RepositoryResponse(ResponseKind.TASK_UPDATED, taskData.getTaskId());
+ }
+ }
+
+ @Override
+ public boolean initializeTaskData(TaskRepository repository, TaskData data,
+ ITaskMapping initializationData, IProgressMonitor monitor) throws CoreException {
+ TaskMapper mapper = getTaskMapping(data);
+ mapper.setCreationDate(new Date());
+ mapper.setDescription("");
+ mapper.setModificationDate(mapper.getCreationDate());
+ mapper.setOwner("");
+ mapper.setProduct("Product1");
+ mapper.setReporter("");
+ mapper.setStatus("NEW");
+ mapper.setSummary("");
+ return false;
+ }
+
+ @Override
+ public TaskAttributeMapper getAttributeMapper(TaskRepository repository) {
+ return new TaskAttributeMapper(repository);
+ }
+ };
+ }
+}
diff --git a/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/util/MockTestContext.java b/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/util/MockTestContext.java
index f859df5..d106cd0 100644
--- a/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/util/MockTestContext.java
+++ b/org.eclipse.mylyn.tasks.index.tests/src/org/eclipse/mylyn/internal/tasks/index/tests/util/MockTestContext.java
@@ -1,157 +1,157 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.index.tests.util;
-
-import java.util.Date;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.commons.core.DelegatingProgressMonitor;
-import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
-import org.eclipse.mylyn.internal.tasks.core.LocalTask;
-import org.eclipse.mylyn.internal.tasks.core.RepositoryModel;
-import org.eclipse.mylyn.internal.tasks.core.TaskActivityManager;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.core.data.SynchronizationManger;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataManager;
-import org.eclipse.mylyn.internal.tasks.core.data.TaskDataStore;
-import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskMapping;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
-import org.eclipse.mylyn.tasks.core.data.TaskData;
-import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
-import org.eclipse.mylyn.tasks.tests.connector.MockTask;
-
-public class MockTestContext {
-
- private final TaskList taskList;
-
- private final TaskRepositoryManager repositoryManager;
-
- private final TaskDataManager dataManager;
-
- private final TaskDataStore dataStore;
-
- private final TaskActivityManager activityManager;
-
- private final SynchronizationManger synchronizationManger;
-
- private final RepositoryModel repositoryModel;
-
- private final TaskRepository mockRepository;
-
- private final TaskRepository localRepository;
-
- private final AtomicInteger idSeed = new AtomicInteger(1003);
-
- private final FullMockRepositoryConnector mockRepositoryConnector;
-
- public MockTestContext() {
- taskList = new TaskList();
- repositoryManager = new TaskRepositoryManager();
-
- mockRepositoryConnector = new FullMockRepositoryConnector();
- repositoryManager.addRepositoryConnector(mockRepositoryConnector);
- mockRepository = new TaskRepository(MockRepositoryConnector.CONNECTOR_KIND,
- MockRepositoryConnector.REPOSITORY_URL);
- repositoryManager.addRepository(mockRepository);
-
- repositoryManager.addRepositoryConnector(new LocalRepositoryConnector());
- localRepository = new TaskRepository(LocalRepositoryConnector.CONNECTOR_KIND,
- LocalRepositoryConnector.REPOSITORY_URL);
- repositoryManager.addRepository(localRepository);
-
- dataStore = new TaskDataStore(repositoryManager);
- activityManager = new TaskActivityManager(repositoryManager, taskList);
- repositoryModel = new RepositoryModel(taskList, repositoryManager);
- synchronizationManger = new SynchronizationManger(repositoryModel);
- dataManager = new TaskDataManager(dataStore, repositoryManager, taskList, activityManager,
- synchronizationManger);
-
- }
-
- public TaskList getTaskList() {
- return taskList;
- }
-
- public TaskRepositoryManager getRepositoryManager() {
- return repositoryManager;
- }
-
- public TaskDataManager getDataManager() {
- return dataManager;
- }
-
- public TaskDataStore getDataStore() {
- return dataStore;
- }
-
- public TaskActivityManager getActivityManager() {
- return activityManager;
- }
-
- public SynchronizationManger getSynchronizationManger() {
- return synchronizationManger;
- }
-
- public RepositoryModel getRepositoryModel() {
- return repositoryModel;
- }
-
- public ITask createLocalTask() {
- LocalTask task = new LocalTask(Integer.toString(idSeed.incrementAndGet()), "summary");
- task.setNotes("description " + task.getTaskKey());
-
- taskList.addTask(task);
-
- return task;
- }
-
- public ITask createRepositoryTask() throws CoreException {
- MockTask task = new MockTask(Integer.toString(idSeed.incrementAndGet()));
-
- TaskData taskData = new TaskData(new TaskAttributeMapper(mockRepository), task.getConnectorKind(),
- task.getRepositoryUrl(), task.getTaskId());
-
- mockRepositoryConnector.getTaskDataHandler().initializeTaskData(mockRepository, taskData, new TaskMapping(),
- new NullProgressMonitor());
-
- taskData.getRoot().getMappedAttribute(TaskAttribute.SUMMARY).setValue("summary");
- taskData.getRoot()
- .getMappedAttribute(TaskAttribute.DATE_CREATION)
- .setValue(Long.toString(new Date().getTime()));
- taskData.getRoot().getMappedAttribute(TaskAttribute.USER_REPORTER).setValue("reporter@example.com");
- taskData.getRoot().getMappedAttribute(TaskAttribute.USER_ASSIGNED).setValue("assignee@example.com");
- taskData.getRoot()
- .getMappedAttribute(TaskAttribute.DESCRIPTION)
- .setValue("task description " + task.getTaskKey());
-
- mockRepositoryConnector.getTaskMapping(taskData).applyTo(task);
-
- dataManager.putSubmittedTaskData(task, taskData, new DelegatingProgressMonitor());
- taskList.addTask(task);
-
- return task;
- }
-
- public TaskRepository getMockRepository() {
- return mockRepository;
- }
-
- public FullMockRepositoryConnector getMockRepositoryConnector() {
- return mockRepositoryConnector;
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.tasks.index.tests.util;
+
+import java.util.Date;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.mylyn.commons.core.DelegatingProgressMonitor;
+import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
+import org.eclipse.mylyn.internal.tasks.core.LocalTask;
+import org.eclipse.mylyn.internal.tasks.core.RepositoryModel;
+import org.eclipse.mylyn.internal.tasks.core.TaskActivityManager;
+import org.eclipse.mylyn.internal.tasks.core.TaskList;
+import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
+import org.eclipse.mylyn.internal.tasks.core.data.SynchronizationManger;
+import org.eclipse.mylyn.internal.tasks.core.data.TaskDataManager;
+import org.eclipse.mylyn.internal.tasks.core.data.TaskDataStore;
+import org.eclipse.mylyn.tasks.core.ITask;
+import org.eclipse.mylyn.tasks.core.TaskMapping;
+import org.eclipse.mylyn.tasks.core.TaskRepository;
+import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
+import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
+import org.eclipse.mylyn.tasks.core.data.TaskData;
+import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
+import org.eclipse.mylyn.tasks.tests.connector.MockTask;
+
+public class MockTestContext {
+
+ private final TaskList taskList;
+
+ private final TaskRepositoryManager repositoryManager;
+
+ private final TaskDataManager dataManager;
+
+ private final TaskDataStore dataStore;
+
+ private final TaskActivityManager activityManager;
+
+ private final SynchronizationManger synchronizationManger;
+
+ private final RepositoryModel repositoryModel;
+
+ private final TaskRepository mockRepository;
+
+ private final TaskRepository localRepository;
+
+ private final AtomicInteger idSeed = new AtomicInteger(1003);
+
+ private final FullMockRepositoryConnector mockRepositoryConnector;
+
+ public MockTestContext() {
+ taskList = new TaskList();
+ repositoryManager = new TaskRepositoryManager();
+
+ mockRepositoryConnector = new FullMockRepositoryConnector();
+ repositoryManager.addRepositoryConnector(mockRepositoryConnector);
+ mockRepository = new TaskRepository(MockRepositoryConnector.CONNECTOR_KIND,
+ MockRepositoryConnector.REPOSITORY_URL);
+ repositoryManager.addRepository(mockRepository);
+
+ repositoryManager.addRepositoryConnector(new LocalRepositoryConnector());
+ localRepository = new TaskRepository(LocalRepositoryConnector.CONNECTOR_KIND,
+ LocalRepositoryConnector.REPOSITORY_URL);
+ repositoryManager.addRepository(localRepository);
+
+ dataStore = new TaskDataStore(repositoryManager);
+ activityManager = new TaskActivityManager(repositoryManager, taskList);
+ repositoryModel = new RepositoryModel(taskList, repositoryManager);
+ synchronizationManger = new SynchronizationManger(repositoryModel);
+ dataManager = new TaskDataManager(dataStore, repositoryManager, taskList, activityManager,
+ synchronizationManger);
+
+ }
+
+ public TaskList getTaskList() {
+ return taskList;
+ }
+
+ public TaskRepositoryManager getRepositoryManager() {
+ return repositoryManager;
+ }
+
+ public TaskDataManager getDataManager() {
+ return dataManager;
+ }
+
+ public TaskDataStore getDataStore() {
+ return dataStore;
+ }
+
+ public TaskActivityManager getActivityManager() {
+ return activityManager;
+ }
+
+ public SynchronizationManger getSynchronizationManger() {
+ return synchronizationManger;
+ }
+
+ public RepositoryModel getRepositoryModel() {
+ return repositoryModel;
+ }
+
+ public ITask createLocalTask() {
+ LocalTask task = new LocalTask(Integer.toString(idSeed.incrementAndGet()), "summary");
+ task.setNotes("description " + task.getTaskKey());
+
+ taskList.addTask(task);
+
+ return task;
+ }
+
+ public ITask createRepositoryTask() throws CoreException {
+ MockTask task = new MockTask(Integer.toString(idSeed.incrementAndGet()));
+
+ TaskData taskData = new TaskData(new TaskAttributeMapper(mockRepository), task.getConnectorKind(),
+ task.getRepositoryUrl(), task.getTaskId());
+
+ mockRepositoryConnector.getTaskDataHandler().initializeTaskData(mockRepository, taskData, new TaskMapping(),
+ new NullProgressMonitor());
+
+ taskData.getRoot().getMappedAttribute(TaskAttribute.SUMMARY).setValue("summary");
+ taskData.getRoot()
+ .getMappedAttribute(TaskAttribute.DATE_CREATION)
+ .setValue(Long.toString(new Date().getTime()));
+ taskData.getRoot().getMappedAttribute(TaskAttribute.USER_REPORTER).setValue("reporter@example.com");
+ taskData.getRoot().getMappedAttribute(TaskAttribute.USER_ASSIGNED).setValue("assignee@example.com");
+ taskData.getRoot()
+ .getMappedAttribute(TaskAttribute.DESCRIPTION)
+ .setValue("task description " + task.getTaskKey());
+
+ mockRepositoryConnector.getTaskMapping(taskData).applyTo(task);
+
+ dataManager.putSubmittedTaskData(task, taskData, new DelegatingProgressMonitor());
+ taskList.addTask(task);
+
+ return task;
+ }
+
+ public TaskRepository getMockRepository() {
+ return mockRepository;
+ }
+
+ public FullMockRepositoryConnector getMockRepositoryConnector() {
+ return mockRepositoryConnector;
+ }
+}
diff --git a/org.eclipse.mylyn.tasks.index.ui/.classpath b/org.eclipse.mylyn.tasks.index.ui/.classpath
index 3f6d4f4..f092a94 100644
--- a/org.eclipse.mylyn.tasks.index.ui/.classpath
+++ b/org.eclipse.mylyn.tasks.index.ui/.classpath
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
- <accessrules>
- <accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/tasks/core/**"/>
- <accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/tasks/index/core/**"/>
- <accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/tasks/ui/**"/>
- <accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/provisional/**"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+ <accessrules>
+ <accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/tasks/core/**"/>
+ <accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/tasks/index/core/**"/>
+ <accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/tasks/ui/**"/>
+ <accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/provisional/**"/>
+ </accessrules>
+ </classpathentry>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.mylyn.tasks.index.ui/.project b/org.eclipse.mylyn.tasks.index.ui/.project
index c6bb2c8..89bd22b 100644
--- a/org.eclipse.mylyn.tasks.index.ui/.project
+++ b/org.eclipse.mylyn.tasks.index.ui/.project
@@ -1,34 +1,34 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylyn.tasks.index.ui</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.mylyn.tasks.index.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
<buildCommand>
<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
<arguments>
</arguments>
</buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.mylyn.tasks.index.ui/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.tasks.index.ui/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.tasks.index.ui/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.tasks.index.ui/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.tasks.index.ui/.settings/org.eclipse.pde.prefs
index c56b02e..3648b45 100644
--- a/org.eclipse.mylyn.tasks.index.ui/.settings/org.eclipse.pde.prefs
+++ b/org.eclipse.mylyn.tasks.index.ui/.settings/org.eclipse.pde.prefs
@@ -1,35 +1,35 @@
-#Tue Oct 18 18:20:28 PDT 2011
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=2
-compilers.p.internal=2
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=1
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
+#Tue Oct 18 18:20:28 PDT 2011
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=2
+compilers.p.internal=2
+compilers.p.missing-bundle-classpath-entries=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=0
+compilers.p.unknown-class=0
+compilers.p.unknown-element=0
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=0
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+compilers.use-project=true
+eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.tasks.index.ui/OSGI-INF/l10n/bundle.properties b/org.eclipse.mylyn.tasks.index.ui/OSGI-INF/l10n/bundle.properties
index 6f3dd07..f184885 100644
--- a/org.eclipse.mylyn.tasks.index.ui/OSGI-INF/l10n/bundle.properties
+++ b/org.eclipse.mylyn.tasks.index.ui/OSGI-INF/l10n/bundle.properties
@@ -1,12 +1,12 @@
-###############################################################################
-# Copyright (c) 2011 Tasktop Technologies and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Tasktop Technologies - initial API and implementation
-###############################################################################
-#Properties file for org.eclipse.mylyn.tasks.index.ui
+###############################################################################
+# Copyright (c) 2011 Tasktop Technologies and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Tasktop Technologies - initial API and implementation
+###############################################################################
+#Properties file for org.eclipse.mylyn.tasks.index.ui
Bundle-Name = Index
\ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.index.ui/build.properties b/org.eclipse.mylyn.tasks.index.ui/build.properties
index 8def890..6afd978 100644
--- a/org.eclipse.mylyn.tasks.index.ui/build.properties
+++ b/org.eclipse.mylyn.tasks.index.ui/build.properties
@@ -1,9 +1,9 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.xml,\
- OSGI-INF/,\
- about.html
-src.includes = about.html
-
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ OSGI-INF/,\
+ about.html
+src.includes = about.html
+
diff --git a/org.eclipse.mylyn.tasks.index.ui/plugin.xml b/org.eclipse.mylyn.tasks.index.ui/plugin.xml
index 8dd3ec5..57353cb 100644
--- a/org.eclipse.mylyn.tasks.index.ui/plugin.xml
+++ b/org.eclipse.mylyn.tasks.index.ui/plugin.xml
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
- <extension
- point="org.eclipse.mylyn.tasks.ui.searchHandler">
- <searchHandler
- class="org.eclipse.mylyn.internal.tasks.index.ui.IndexSearchHandler"/>
- </extension>
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.mylyn.tasks.ui.searchHandler">
+ <searchHandler
+ class="org.eclipse.mylyn.internal.tasks.index.ui.IndexSearchHandler"/>
+ </extension>
+</plugin>
diff --git a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/ContentProposal.java b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/ContentProposal.java
index 6c0fd36..f5979bc 100644
--- a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/ContentProposal.java
+++ b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/ContentProposal.java
@@ -1,53 +1,53 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.index.ui;
-
-import org.eclipse.jface.fieldassist.IContentProposal;
-
-class ContentProposal implements IContentProposal {
-
- private final String content;
-
- private final int cursorPosition;
-
- private final String label;
-
- private final String description;
-
- public ContentProposal(String content, String label, String description) {
- this(content, label, description, content.length());
- }
-
- public ContentProposal(String content, String label, String description, int cursorPosition) {
- this.content = content;
- this.cursorPosition = cursorPosition;
- this.label = label;
- this.description = description;
- }
-
- public String getContent() {
- return content;
- }
-
- public int getCursorPosition() {
- return cursorPosition;
- }
-
- public String getLabel() {
- return label;
- }
-
- public String getDescription() {
- return description;
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.tasks.index.ui;
+
+import org.eclipse.jface.fieldassist.IContentProposal;
+
+class ContentProposal implements IContentProposal {
+
+ private final String content;
+
+ private final int cursorPosition;
+
+ private final String label;
+
+ private final String description;
+
+ public ContentProposal(String content, String label, String description) {
+ this(content, label, description, content.length());
+ }
+
+ public ContentProposal(String content, String label, String description, int cursorPosition) {
+ this.content = content;
+ this.cursorPosition = cursorPosition;
+ this.label = label;
+ this.description = description;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public int getCursorPosition() {
+ return cursorPosition;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+}
diff --git a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/IndexSearchHandler.java b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/IndexSearchHandler.java
index 1b71b3a..95ed3f3 100644
--- a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/IndexSearchHandler.java
+++ b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/IndexSearchHandler.java
@@ -1,236 +1,236 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.tasks.index.ui;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.eclipse.jface.fieldassist.ContentProposalAdapter;
-import org.eclipse.jface.fieldassist.IContentProposal;
-import org.eclipse.jface.fieldassist.IContentProposalProvider;
-import org.eclipse.jface.fieldassist.TextContentAdapter;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex;
-import org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex.IndexField;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.search.AbstractSearchHandler;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.dialogs.PatternFilter;
-import org.eclipse.ui.fieldassist.ContentAssistCommandAdapter;
-
-/**
- * @author David Green
- */
-public class IndexSearchHandler extends AbstractSearchHandler {
-
- private static TaskListIndex theIndex;
-
- private static AtomicInteger referenceCount = new AtomicInteger();
-
- private TaskListIndex index;
-
- public IndexSearchHandler() {
- }
-
- @Override
- public Composite createSearchComposite(Composite parent) {
- Composite container = new Composite(parent, SWT.NULL);
- GridLayoutFactory.swtDefaults().applyTo(container);
-
- final Button button = new Button(container, SWT.CHECK);
- button.setText(Messages.IndexSearchHandler_summaryOnly);
- button.setToolTipText(Messages.IndexSearchHandler_summaryOnly_tooltip);
- button.setSelection(true);
-
- button.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- IndexField newDefaultField = button.getSelection() ? IndexField.SUMMARY : IndexField.CONTENT;
- index.setDefaultField(newDefaultField);
- fireFilterChanged();
- }
- });
-
- return container;
- }
-
- @Override
- public PatternFilter createFilter() {
- synchronized (IndexSearchHandler.class) {
- if (index == null) {
- if (theIndex == null) {
- theIndex = new TaskListIndex(TasksUiPlugin.getTaskList(), TasksUiPlugin.getTaskDataManager(),
- new File(TasksUiPlugin.getDefault().getDataDirectory(), ".taskListIndex")); //$NON-NLS-1$
- }
- index = theIndex;
- referenceCount.incrementAndGet();
- }
- }
- return new IndexedSubstringPatternFilter(index);
- }
-
- @Override
- public void adaptTextSearchControl(Text textControl) {
- IContentProposalProvider proposalProvider = new IContentProposalProvider() {
- public IContentProposal[] getProposals(String contents, int position) {
- List<IContentProposal> proposals = new ArrayList<IContentProposal>(10);
-
- String fieldPrefix = ""; //$NON-NLS-1$
- String prefix = ""; //$NON-NLS-1$
- if (position >= 0 && position <= contents.length()) {
- int i = position;
- while (i > 0 && !Character.isWhitespace(contents.charAt(i - 1)) && contents.charAt(i - 1) != ':') {
- --i;
- }
- if (i > 0 && contents.charAt(i - 1) == ':') {
- int fieldEnd = i - 1;
- int fieldStart = i - 1;
- while (fieldStart > 0 && Character.isLetter(contents.charAt(fieldStart - 1))) {
- --fieldStart;
- }
- fieldPrefix = contents.substring(fieldStart, fieldEnd);
- }
-
- prefix = contents.substring(i, position);
- }
-
- // if we have a field prefix
- if (fieldPrefix.length() > 0) {
- IndexField indexField = null;
- try {
- indexField = IndexField.fromFieldName(fieldPrefix);
- } catch (IllegalArgumentException e) {
- }
-
- // if it's a person field then suggest
- // people from the task list
- if (indexField != null && indexField.isPersonField()) {
- Set<String> addresses = new TreeSet<String>();
-
- Collection<AbstractTask> allTasks = TasksUiPlugin.getTaskList().getAllTasks();
- for (AbstractTask task : allTasks) {
- addAddresses(addresses, task);
- }
-
- for (String address : addresses) {
- if (address.startsWith(prefix)) {
- proposals.add(new ContentProposal(address.substring(prefix.length()), address, null));
- }
- }
- }
-
- } else {
- final Date now = new Date();
- final Date dateSearchUpperBound;
- final Date dateSearchOneWeekLowerBound;
- {
- GregorianCalendar calendar = new GregorianCalendar();
-
- calendar.setTime(now);
- calendar.add(Calendar.DAY_OF_WEEK, 1); // one day in future due to GMT conversion in index
- dateSearchUpperBound = calendar.getTime();
-
- calendar.setTime(now);
- calendar.add(Calendar.DAY_OF_WEEK, -7);
- dateSearchOneWeekLowerBound = calendar.getTime();
- }
-
- // suggest field name prefixes
- for (IndexField field : IndexField.values()) {
-
- // searching on URL is not useful
- if (!field.isUserVisible()) {
- continue;
- }
-
- if (field.fieldName().startsWith(prefix)) {
- String description;
- switch (field) {
- case CONTENT:
- description = Messages.IndexSearchHandler_hint_content;
- break;
- case PERSON:
- description = Messages.IndexSearchHandler_hint_person;
- break;
- default:
- description = NLS.bind(Messages.IndexSearchHandler_hint_generic, field.fieldName());
- }
- proposals.add(new ContentProposal(field.fieldName().substring(prefix.length()) + ":", //$NON-NLS-1$
- field.fieldName(), description));
-
- // for date fields give suggestion of date range search
- if (field.isDateTime()) {
- description = NLS.bind(Messages.IndexSearchHandler_Generic_date_range_search_1_week,
- field.fieldName());
-
- String label = NLS.bind(Messages.IndexSearchHandler_Past_week_date_range_label,
- field.fieldName());
-
- String queryText = index.computeQueryFieldDateRange(field, dateSearchOneWeekLowerBound,
- dateSearchUpperBound);
- proposals.add(new ContentProposal(queryText, label, description));
- }
- }
- }
- }
-
- return proposals.toArray(new IContentProposal[proposals.size()]);
- }
-
- private void addAddresses(Set<String> addresses, AbstractTask task) {
- String name = task.getOwner();
- if (name != null && name.trim().length() > 0) {
- addresses.add(name.trim());
- }
- }
- };
- ContentAssistCommandAdapter adapter = new ContentAssistCommandAdapter(textControl, new TextContentAdapter(),
- proposalProvider, null, new char[0]);
- adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_INSERT);
-
- // if we decorate the control it lets the user know that they can use content assist...
- // BUT it looks pretty bad.
-// ControlDecoration controlDecoration = new ControlDecoration(textControl, (SWT.TOP | SWT.LEFT));
-// controlDecoration.setShowOnlyOnFocus(true);
-// FieldDecoration contentProposalImage = FieldDecorationRegistry.getDefault().getFieldDecoration(
-// FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
-// controlDecoration.setImage(contentProposalImage.getImage());
- }
-
- @Override
- public void dispose() {
- synchronized (IndexSearchHandler.class) {
- if (index != null) {
- index = null;
- if (referenceCount.decrementAndGet() == 0) {
- theIndex.close();
- theIndex = null;
- }
- }
- }
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylyn.internal.tasks.index.ui;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.eclipse.jface.fieldassist.ContentProposalAdapter;
+import org.eclipse.jface.fieldassist.IContentProposal;
+import org.eclipse.jface.fieldassist.IContentProposalProvider;
+import org.eclipse.jface.fieldassist.TextContentAdapter;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
+import org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex;
+import org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex.IndexField;
+import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
+import org.eclipse.mylyn.internal.tasks.ui.search.AbstractSearchHandler;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.PatternFilter;
+import org.eclipse.ui.fieldassist.ContentAssistCommandAdapter;
+
+/**
+ * @author David Green
+ */
+public class IndexSearchHandler extends AbstractSearchHandler {
+
+ private static TaskListIndex theIndex;
+
+ private static AtomicInteger referenceCount = new AtomicInteger();
+
+ private TaskListIndex index;
+
+ public IndexSearchHandler() {
+ }
+
+ @Override
+ public Composite createSearchComposite(Composite parent) {
+ Composite container = new Composite(parent, SWT.NULL);
+ GridLayoutFactory.swtDefaults().applyTo(container);
+
+ final Button button = new Button(container, SWT.CHECK);
+ button.setText(Messages.IndexSearchHandler_summaryOnly);
+ button.setToolTipText(Messages.IndexSearchHandler_summaryOnly_tooltip);
+ button.setSelection(true);
+
+ button.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ IndexField newDefaultField = button.getSelection() ? IndexField.SUMMARY : IndexField.CONTENT;
+ index.setDefaultField(newDefaultField);
+ fireFilterChanged();
+ }
+ });
+
+ return container;
+ }
+
+ @Override
+ public PatternFilter createFilter() {
+ synchronized (IndexSearchHandler.class) {
+ if (index == null) {
+ if (theIndex == null) {
+ theIndex = new TaskListIndex(TasksUiPlugin.getTaskList(), TasksUiPlugin.getTaskDataManager(),
+ new File(TasksUiPlugin.getDefault().getDataDirectory(), ".taskListIndex")); //$NON-NLS-1$
+ }
+ index = theIndex;
+ referenceCount.incrementAndGet();
+ }
+ }
+ return new IndexedSubstringPatternFilter(index);
+ }
+
+ @Override
+ public void adaptTextSearchControl(Text textControl) {
+ IContentProposalProvider proposalProvider = new IContentProposalProvider() {
+ public IContentProposal[] getProposals(String contents, int position) {
+ List<IContentProposal> proposals = new ArrayList<IContentProposal>(10);
+
+ String fieldPrefix = ""; //$NON-NLS-1$
+ String prefix = ""; //$NON-NLS-1$
+ if (position >= 0 && position <= contents.length()) {
+ int i = position;
+ while (i > 0 && !Character.isWhitespace(contents.charAt(i - 1)) && contents.charAt(i - 1) != ':') {
+ --i;
+ }
+ if (i > 0 && contents.charAt(i - 1) == ':') {
+ int fieldEnd = i - 1;
+ int fieldStart = i - 1;
+ while (fieldStart > 0 && Character.isLetter(contents.charAt(fieldStart - 1))) {
+ --fieldStart;
+ }
+ fieldPrefix = contents.substring(fieldStart, fieldEnd);
+ }
+
+ prefix = contents.substring(i, position);
+ }
+
+ // if we have a field prefix
+ if (fieldPrefix.length() > 0) {
+ IndexField indexField = null;
+ try {
+ indexField = IndexField.fromFieldName(fieldPrefix);
+ } catch (IllegalArgumentException e) {
+ }
+
+ // if it's a person field then suggest
+ // people from the task list
+ if (indexField != null && indexField.isPersonField()) {
+ Set<String> addresses = new TreeSet<String>();
+
+ Collection<AbstractTask> allTasks = TasksUiPlugin.getTaskList().getAllTasks();
+ for (AbstractTask task : allTasks) {
+ addAddresses(addresses, task);
+ }
+
+ for (String address : addresses) {
+ if (address.startsWith(prefix)) {
+ proposals.add(new ContentProposal(address.substring(prefix.length()), address, null));
+ }
+ }
+ }
+
+ } else {
+ final Date now = new Date();
+ final Date dateSearchUpperBound;
+ final Date dateSearchOneWeekLowerBound;
+ {
+ GregorianCalendar calendar = new GregorianCalendar();
+
+ calendar.setTime(now);
+ calendar.add(Calendar.DAY_OF_WEEK, 1); // one day in future due to GMT conversion in index
+ dateSearchUpperBound = calendar.getTime();
+
+ calendar.setTime(now);
+ calendar.add(Calendar.DAY_OF_WEEK, -7);
+ dateSearchOneWeekLowerBound = calendar.getTime();
+ }
+
+ // suggest field name prefixes
+ for (IndexField field : IndexField.values()) {
+
+ // searching on URL is not useful
+ if (!field.isUserVisible()) {
+ continue;
+ }
+
+ if (field.fieldName().startsWith(prefix)) {
+ String description;
+ switch (field) {
+ case CONTENT:
+ description = Messages.IndexSearchHandler_hint_content;
+ break;
+ case PERSON:
+ description = Messages.IndexSearchHandler_hint_person;
+ break;
+ default:
+ description = NLS.bind(Messages.IndexSearchHandler_hint_generic, field.fieldName());
+ }
+ proposals.add(new ContentProposal(field.fieldName().substring(prefix.length()) + ":", //$NON-NLS-1$
+ field.fieldName(), description));
+
+ // for date fields give suggestion of date range search
+ if (field.isDateTime()) {
+ description = NLS.bind(Messages.IndexSearchHandler_Generic_date_range_search_1_week,
+ field.fieldName());
+
+ String label = NLS.bind(Messages.IndexSearchHandler_Past_week_date_range_label,
+ field.fieldName());
+
+ String queryText = index.computeQueryFieldDateRange(field, dateSearchOneWeekLowerBound,
+ dateSearchUpperBound);
+ proposals.add(new ContentProposal(queryText, label, description));
+ }
+ }
+ }
+ }
+
+ return proposals.toArray(new IContentProposal[proposals.size()]);
+ }
+
+ private void addAddresses(Set<String> addresses, AbstractTask task) {
+ String name = task.getOwner();
+ if (name != null && name.trim().length() > 0) {
+ addresses.add(name.trim());
+ }
+ }
+ };
+ ContentAssistCommandAdapter adapter = new ContentAssistCommandAdapter(textControl, new TextContentAdapter(),
+ proposalProvider, null, new char[0]);
+ adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_INSERT);
+
+ // if we decorate the control it lets the user know that they can use content assist...
+ // BUT it looks pretty bad.
+// ControlDecoration controlDecoration = new ControlDecoration(textControl, (SWT.TOP | SWT.LEFT));
+// controlDecoration.setShowOnlyOnFocus(true);
+// FieldDecoration contentProposalImage = FieldDecorationRegistry.getDefault().getFieldDecoration(
+// FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
+// controlDecoration.setImage(contentProposalImage.getImage());
+ }
+
+ @Override
+ public void dispose() {
+ synchronized (IndexSearchHandler.class) {
+ if (index != null) {
+ index = null;
+ if (referenceCount.decrementAndGet() == 0) {
+ theIndex.close();
+ theIndex = null;
+ }
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/IndexedSubstringPatternFilter.java b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/IndexedSubstringPatternFilter.java
index c3ce1f5..46fe2a9 100644
--- a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/IndexedSubstringPatternFilter.java
+++ b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/IndexedSubstringPatternFilter.java
@@ -1,51 +1,51 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.tasks.index.ui;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.mylyn.internal.provisional.commons.ui.SubstringPatternFilter;
-import org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex;
-import org.eclipse.mylyn.tasks.core.ITask;
-
-public class IndexedSubstringPatternFilter extends SubstringPatternFilter {
-
- private final TaskListIndex index;
-
- private String patternString;
-
- public IndexedSubstringPatternFilter(TaskListIndex index) {
- this.index = index;
- }
-
- @Override
- public void setPattern(String patternString) {
- if (patternString != null) {
- patternString = patternString.trim();
- }
- this.patternString = patternString;
- super.setPattern(patternString);
- }
-
- @Override
- protected boolean isLeafMatch(Viewer viewer, Object element) {
- if (patternString != null && patternString.length() > 0) {
- if (element instanceof ITask) {
- ITask task = (ITask) element;
- if (index.matches(task, patternString)) {
- return true;
- } else {
- // fall through so that we get non-indexed matching semantics
- }
- }
- }
- return super.isLeafMatch(viewer, element);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylyn.internal.tasks.index.ui;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.mylyn.internal.provisional.commons.ui.SubstringPatternFilter;
+import org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex;
+import org.eclipse.mylyn.tasks.core.ITask;
+
+public class IndexedSubstringPatternFilter extends SubstringPatternFilter {
+
+ private final TaskListIndex index;
+
+ private String patternString;
+
+ public IndexedSubstringPatternFilter(TaskListIndex index) {
+ this.index = index;
+ }
+
+ @Override
+ public void setPattern(String patternString) {
+ if (patternString != null) {
+ patternString = patternString.trim();
+ }
+ this.patternString = patternString;
+ super.setPattern(patternString);
+ }
+
+ @Override
+ protected boolean isLeafMatch(Viewer viewer, Object element) {
+ if (patternString != null && patternString.length() > 0) {
+ if (element instanceof ITask) {
+ ITask task = (ITask) element;
+ if (index.matches(task, patternString)) {
+ return true;
+ } else {
+ // fall through so that we get non-indexed matching semantics
+ }
+ }
+ }
+ return super.isLeafMatch(viewer, element);
+ }
+}
diff --git a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/Messages.java b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/Messages.java
index 34a7ff2..8f051f6 100644
--- a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/Messages.java
+++ b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/Messages.java
@@ -1,42 +1,42 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.index.ui;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author David Green
- */
-class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.index.ui.messages"; //$NON-NLS-1$
-
- public static String IndexSearchHandler_Generic_date_range_search_1_week;
-
- public static String IndexSearchHandler_hint_content;
-
- public static String IndexSearchHandler_hint_generic;
-
- public static String IndexSearchHandler_hint_person;
-
- public static String IndexSearchHandler_Past_week_date_range_label;
-
- public static String IndexSearchHandler_summaryOnly;
-
- public static String IndexSearchHandler_summaryOnly_tooltip;
- static {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- private Messages() {
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.tasks.index.ui;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * @author David Green
+ */
+class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.tasks.index.ui.messages"; //$NON-NLS-1$
+
+ public static String IndexSearchHandler_Generic_date_range_search_1_week;
+
+ public static String IndexSearchHandler_hint_content;
+
+ public static String IndexSearchHandler_hint_generic;
+
+ public static String IndexSearchHandler_hint_person;
+
+ public static String IndexSearchHandler_Past_week_date_range_label;
+
+ public static String IndexSearchHandler_summaryOnly;
+
+ public static String IndexSearchHandler_summaryOnly_tooltip;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/TasksIndexUi.java b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/TasksIndexUi.java
index 115a57b..4b5369e 100644
--- a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/TasksIndexUi.java
+++ b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/TasksIndexUi.java
@@ -1,20 +1,20 @@
-/*******************************************************************************
- * Copyright (c) 2011 Tasktop Technologies and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.index.ui;
-
-/**
- * @author David Green
- */
-public class TasksIndexUi {
-
- public static final String BUNDLE_ID = "org.eclipse.mylyn.tasks.index.ui"; //$NON-NLS-1$
-}
+/*******************************************************************************
+ * Copyright (c) 2011 Tasktop Technologies and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.tasks.index.ui;
+
+/**
+ * @author David Green
+ */
+public class TasksIndexUi {
+
+ public static final String BUNDLE_ID = "org.eclipse.mylyn.tasks.index.ui"; //$NON-NLS-1$
+}
diff --git a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/messages.properties b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/messages.properties
index 8c95521..c317226 100644
--- a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/messages.properties
+++ b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/messages.properties
@@ -1,17 +1,17 @@
-###############################################################################
-# Copyright (c) 2011 Tasktop Technologies and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Tasktop Technologies - initial API and implementation
-###############################################################################
-IndexSearchHandler_Generic_date_range_search_1_week=Search for tasks where the {0} field value\noccurs in the past week
-IndexSearchHandler_hint_content=Search for a term in the summary, description and comments
-IndexSearchHandler_hint_generic=Search on a term in the {0} field
-IndexSearchHandler_hint_person=Search for a user (reporter, assignee, watcher, commenter)
-IndexSearchHandler_Past_week_date_range_label={0} (past week)
-IndexSearchHandler_summaryOnly=Summary only
-IndexSearchHandler_summaryOnly_tooltip=Search only the summary when checked
+###############################################################################
+# Copyright (c) 2011 Tasktop Technologies and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Tasktop Technologies - initial API and implementation
+###############################################################################
+IndexSearchHandler_Generic_date_range_search_1_week=Search for tasks where the {0} field value\noccurs in the past week
+IndexSearchHandler_hint_content=Search for a term in the summary, description and comments
+IndexSearchHandler_hint_generic=Search on a term in the {0} field
+IndexSearchHandler_hint_person=Search for a user (reporter, assignee, watcher, commenter)
+IndexSearchHandler_Past_week_date_range_label={0} (past week)
+IndexSearchHandler_summaryOnly=Summary only
+IndexSearchHandler_summaryOnly_tooltip=Search only the summary when checked
diff --git a/org.eclipse.mylyn.tests.performance-feature/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.tests.performance-feature/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.tests.performance-feature/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.tests.performance/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.tests.performance/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.tests.performance/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.tests.report/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.tests.report/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.tests.report/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.tests.ui/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.tests.ui/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.tests.ui/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.trac.wiki-feature/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.trac.wiki-feature/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.trac.wiki-feature/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.trac.wiki/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.trac.wiki/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.trac.wiki/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.trac.wiki/META-INF/MANIFEST.MF b/org.eclipse.mylyn.trac.wiki/META-INF/MANIFEST.MF
index b9a7d3a..227e042 100644
--- a/org.eclipse.mylyn.trac.wiki/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.trac.wiki/META-INF/MANIFEST.MF
@@ -1,25 +1,25 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Mylyn Trac Connector (Incubation)
-Bundle-SymbolicName: org.eclipse.mylyn.trac.wiki;singleton:=true
-Bundle-Version: 3.7.0.qualifier
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: Eclipse Mylyn
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.jface.text,
- org.eclipse.team.ui,
- org.eclipse.ui,
- org.eclipse.ui.forms,
- org.eclipse.ui.editors,
- org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.trac.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.trac.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)"
-Bundle-Activator: org.eclipse.mylyn.internal.trac.wiki.TracWikiPlugin
-Export-Package: org.eclipse.mylyn.internal.trac.wiki;x-internal:=true,
- org.eclipse.mylyn.internal.trac.wiki.actions;x-internal:=true,
- org.eclipse.mylyn.internal.trac.wiki.editor;x-internal:=true
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Mylyn Trac Connector (Incubation)
+Bundle-SymbolicName: org.eclipse.mylyn.trac.wiki;singleton:=true
+Bundle-Version: 3.7.0.qualifier
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: Eclipse Mylyn
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.jface.text,
+ org.eclipse.team.ui,
+ org.eclipse.ui,
+ org.eclipse.ui.forms,
+ org.eclipse.ui.editors,
+ org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.trac.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.trac.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)"
+Bundle-Activator: org.eclipse.mylyn.internal.trac.wiki.TracWikiPlugin
+Export-Package: org.eclipse.mylyn.internal.trac.wiki;x-internal:=true,
+ org.eclipse.mylyn.internal.trac.wiki.actions;x-internal:=true,
+ org.eclipse.mylyn.internal.trac.wiki.editor;x-internal:=true
diff --git a/org.eclipse.mylyn.web.tasks-feature/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.web.tasks-feature/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.web.tasks-feature/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.web.tasks/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.web.tasks/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.web.tasks/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.web.tasks/META-INF/MANIFEST.MF b/org.eclipse.mylyn.web.tasks/META-INF/MANIFEST.MF
index 9bc187a..edbd98f 100644
--- a/org.eclipse.mylyn.web.tasks/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.web.tasks/META-INF/MANIFEST.MF
@@ -1,21 +1,21 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.mylyn.web.tasks;singleton:=true
-Bundle-Version: 3.7.0.qualifier
-Bundle-Activator: org.eclipse.mylyn.internal.web.tasks.TasksWebPlugin
-Bundle-Vendor: %Bundle-Vendor
-Require-Bundle: com.sun.syndication;bundle-version="0.9.0",
- org.jdom;bundle-version="1.0.0",
- org.eclipse.core.runtime,
- org.eclipse.ui,
- org.eclipse.ui.forms,
- org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)"
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.mylyn.internal.web.tasks;x-internal:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-Localization: plugin
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.mylyn.web.tasks;singleton:=true
+Bundle-Version: 3.7.0.qualifier
+Bundle-Activator: org.eclipse.mylyn.internal.web.tasks.TasksWebPlugin
+Bundle-Vendor: %Bundle-Vendor
+Require-Bundle: com.sun.syndication;bundle-version="0.9.0",
+ org.jdom;bundle-version="1.0.0",
+ org.eclipse.core.runtime,
+ org.eclipse.ui,
+ org.eclipse.ui.forms,
+ org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)"
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.mylyn.internal.web.tasks;x-internal:=true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Localization: plugin
diff --git a/org.eclipse.mylyn.web.tasks/plugin.properties b/org.eclipse.mylyn.web.tasks/plugin.properties
index ade762b..5c03538 100644
--- a/org.eclipse.mylyn.web.tasks/plugin.properties
+++ b/org.eclipse.mylyn.web.tasks/plugin.properties
@@ -1,3 +1,3 @@
-#Properties file for org.eclipse.mylyn.web.tasks
-Bundle-Vendor = Eclipse Mylyn
-Bundle-Name = Mylyn Web Templates Connector (Incubation)
+#Properties file for org.eclipse.mylyn.web.tasks
+Bundle-Vendor = Eclipse Mylyn
+Bundle-Name = Mylyn Web Templates Connector (Incubation)
diff --git a/org.eclipse.mylyn.web.tasks/src/org/eclipse/mylyn/internal/web/tasks/Messages.java b/org.eclipse.mylyn.web.tasks/src/org/eclipse/mylyn/internal/web/tasks/Messages.java
index 0775c99..fa81023 100644
--- a/org.eclipse.mylyn.web.tasks/src/org/eclipse/mylyn/internal/web/tasks/Messages.java
+++ b/org.eclipse.mylyn.web.tasks/src/org/eclipse/mylyn/internal/web/tasks/Messages.java
@@ -1,119 +1,119 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.web.tasks;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.web.tasks.messages"; //$NON-NLS-1$
-
- public static String ParameterEditorDialog_New_Property;
-
- public static String ParameterEditorDialog_Edit_Property;
-
- public static String ParameterEditorDialog_Name_;
-
- public static String ParameterEditorDialog_Value_;
-
- public static String ParameterEditorDialog_Name_should_be_Java_identifier;
-
- public static String ParametersEditor_Parameter;
-
- public static String ParametersEditor_Value;
-
- public static String ParametersEditor_Add_;
-
- public static String ParametersEditor_Remove_;
-
- public static String ParametersEditor_Edit_;
-
- public static String WebQueryWizardPage_Advanced_Configuration;
-
- public static String WebQueryWizardPage_complete;
-
- public static String WebQueryWizardPage_Create_web_query;
-
- public static String WebQueryWizardPage_Description;
-
- public static String WebQueryWizardPage_Id;
-
- public static String WebQueryWizardPage_incomplete;
-
- public static String WebQueryWizardPage_New_web_query;
-
- public static String WebQueryWizardPage_No_matching_results_Check_query_regexp;
-
- public static String WebQueryWizardPage_Open;
-
- public static String WebQueryWizardPage_Opening_Browser;
-
- public static String WebQueryWizardPage_Owner;
-
- public static String WebQueryWizardPage_Parsing_error_;
-
- public static String WebQueryWizardPage_Preview;
-
- public static String WebQueryWizardPage_Query_Pattern_;
-
- public static String WebQueryWizardPage_Query_result;
-
- public static String WebQueryWizardPage_Query_Title_;
-
- public static String WebQueryWizardPage_Query_URL_;
-
- public static String WebQueryWizardPage_Specify_query_parameters_for_X;
-
- public static String WebQueryWizardPage_Status;
-
- public static String WebQueryWizardPage_Type;
-
- public static String WebQueryWizardPage_Unable_to_fetch_resource_;
-
- public static String WebQueryWizardPage_Updating_preview;
-
- public static String WebRepositoryConnector_Require_two_matching_groups;
-
- public static String WebRepositoryConnector_Web_Template_Advanced_;
-
- public static String WebRepositoryConnector_Failed_to_parse_RSS_feed;
-
- public static String WebRepositoryConnector_Could_not_fetch_resource;
-
- public static String WebRepositorySettingsPage_Web_Repository_Settings;
-
- public static String WebRepositorySettingsPage_Select_server_template_example_and_modify_to_match_settings_for_your_project;
-
- public static String WebRepositorySettingsPage_Login_Form_URL_;
-
- public static String WebRepositorySettingsPage_Login_Token_Pattern;
-
- public static String WebRepositorySettingsPage_Advanced_Configuration;
-
- public static String WebRepositorySettingsPage_Task_URL_;
-
- public static String WebRepositorySettingsPage_New_Task_URL_;
-
- public static String WebRepositorySettingsPage_Query_Request_URL_;
-
- public static String WebRepositorySettingsPage_Query_Pattern_;
-
- public static String WebRepositorySettingsPage_Login_Request_URL_;
-
- public static String WebTaskEditorPageFactory_Browser;
- static {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- private Messages() {
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2004, 2008 Tasktop Technologies and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Tasktop Technologies - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.web.tasks;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.web.tasks.messages"; //$NON-NLS-1$
+
+ public static String ParameterEditorDialog_New_Property;
+
+ public static String ParameterEditorDialog_Edit_Property;
+
+ public static String ParameterEditorDialog_Name_;
+
+ public static String ParameterEditorDialog_Value_;
+
+ public static String ParameterEditorDialog_Name_should_be_Java_identifier;
+
+ public static String ParametersEditor_Parameter;
+
+ public static String ParametersEditor_Value;
+
+ public static String ParametersEditor_Add_;
+
+ public static String ParametersEditor_Remove_;
+
+ public static String ParametersEditor_Edit_;
+
+ public static String WebQueryWizardPage_Advanced_Configuration;
+
+ public static String WebQueryWizardPage_complete;
+
+ public static String WebQueryWizardPage_Create_web_query;
+
+ public static String WebQueryWizardPage_Description;
+
+ public static String WebQueryWizardPage_Id;
+
+ public static String WebQueryWizardPage_incomplete;
+
+ public static String WebQueryWizardPage_New_web_query;
+
+ public static String WebQueryWizardPage_No_matching_results_Check_query_regexp;
+
+ public static String WebQueryWizardPage_Open;
+
+ public static String WebQueryWizardPage_Opening_Browser;
+
+ public static String WebQueryWizardPage_Owner;
+
+ public static String WebQueryWizardPage_Parsing_error_;
+
+ public static String WebQueryWizardPage_Preview;
+
+ public static String WebQueryWizardPage_Query_Pattern_;
+
+ public static String WebQueryWizardPage_Query_result;
+
+ public static String WebQueryWizardPage_Query_Title_;
+
+ public static String WebQueryWizardPage_Query_URL_;
+
+ public static String WebQueryWizardPage_Specify_query_parameters_for_X;
+
+ public static String WebQueryWizardPage_Status;
+
+ public static String WebQueryWizardPage_Type;
+
+ public static String WebQueryWizardPage_Unable_to_fetch_resource_;
+
+ public static String WebQueryWizardPage_Updating_preview;
+
+ public static String WebRepositoryConnector_Require_two_matching_groups;
+
+ public static String WebRepositoryConnector_Web_Template_Advanced_;
+
+ public static String WebRepositoryConnector_Failed_to_parse_RSS_feed;
+
+ public static String WebRepositoryConnector_Could_not_fetch_resource;
+
+ public static String WebRepositorySettingsPage_Web_Repository_Settings;
+
+ public static String WebRepositorySettingsPage_Select_server_template_example_and_modify_to_match_settings_for_your_project;
+
+ public static String WebRepositorySettingsPage_Login_Form_URL_;
+
+ public static String WebRepositorySettingsPage_Login_Token_Pattern;
+
+ public static String WebRepositorySettingsPage_Advanced_Configuration;
+
+ public static String WebRepositorySettingsPage_Task_URL_;
+
+ public static String WebRepositorySettingsPage_New_Task_URL_;
+
+ public static String WebRepositorySettingsPage_Query_Request_URL_;
+
+ public static String WebRepositorySettingsPage_Query_Pattern_;
+
+ public static String WebRepositorySettingsPage_Login_Request_URL_;
+
+ public static String WebTaskEditorPageFactory_Browser;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/org.eclipse.mylyn.web.tasks/src/org/eclipse/mylyn/internal/web/tasks/messages.properties b/org.eclipse.mylyn.web.tasks/src/org/eclipse/mylyn/internal/web/tasks/messages.properties
index 7f28cbc..f074e41 100644
--- a/org.eclipse.mylyn.web.tasks/src/org/eclipse/mylyn/internal/web/tasks/messages.properties
+++ b/org.eclipse.mylyn.web.tasks/src/org/eclipse/mylyn/internal/web/tasks/messages.properties
@@ -1,47 +1,47 @@
-ParameterEditorDialog_New_Property=New Property
-ParameterEditorDialog_Edit_Property=Edit Property
-ParameterEditorDialog_Name_=&Name:
-ParameterEditorDialog_Value_=&Value:
-ParameterEditorDialog_Name_should_be_Java_identifier=Name should be a Java identifier
-ParametersEditor_Parameter=Parameter
-ParametersEditor_Value=Value
-ParametersEditor_Add_=&Add...
-ParametersEditor_Remove_=&Remove
-ParametersEditor_Edit_=&Edit...
-WebQueryWizardPage_Advanced_Configuration=Advanced &Configuration
-WebQueryWizardPage_complete=complete
-WebQueryWizardPage_Create_web_query=Create web query
-WebQueryWizardPage_Description=Description
-WebQueryWizardPage_Id=Id
-WebQueryWizardPage_incomplete=incomplete
-WebQueryWizardPage_New_web_query=New web query
-WebQueryWizardPage_No_matching_results_Check_query_regexp=No matching results. Check query regexp
-WebQueryWizardPage_Open=&Open
-WebQueryWizardPage_Opening_Browser=Opening Browser
-WebQueryWizardPage_Owner=Owner
-WebQueryWizardPage_Parsing_error_=Parsing error:
-WebQueryWizardPage_Preview=Previe&w
-WebQueryWizardPage_Query_Pattern_=Query &Pattern:
-WebQueryWizardPage_Query_result=Query result
-WebQueryWizardPage_Query_Title_=Query Title:
-WebQueryWizardPage_Query_URL_=&Query URL:
-WebQueryWizardPage_Specify_query_parameters_for_X=Specify query parameters for {0}
-WebQueryWizardPage_Status=Status
-WebQueryWizardPage_Type=Type
-WebQueryWizardPage_Unable_to_fetch_resource_=Unable to fetch resource:
-WebQueryWizardPage_Updating_preview=Updating preview
-WebRepositoryConnector_Require_two_matching_groups=Require two matching groups (taskId and summary). Check query regexp
-WebRepositoryConnector_Web_Template_Advanced_=Web Template (Advanced)
-WebRepositoryConnector_Failed_to_parse_RSS_feed=Failed to parse RSS feed:
-WebRepositoryConnector_Could_not_fetch_resource=Could not fetch resource:
-WebRepositorySettingsPage_Web_Repository_Settings=Web Repository Settings
-WebRepositorySettingsPage_Select_server_template_example_and_modify_to_match_settings_for_your_project=Select a server template example and modify to match the settings for your project, \nusually found in the query URL. For more connectors see http://eclipse.org/mylyn
-WebRepositorySettingsPage_Login_Form_URL_=Login &Form URL:
-WebRepositorySettingsPage_Login_Token_Pattern=Login T&oken Pattern:
-WebRepositorySettingsPage_Advanced_Configuration=Advanced &Configuration
-WebRepositorySettingsPage_Task_URL_=&Task URL:
-WebRepositorySettingsPage_New_Task_URL_=&New Task URL:
-WebRepositorySettingsPage_Query_Request_URL_=&Query Request URL:
-WebRepositorySettingsPage_Query_Pattern_=Query &Pattern:
-WebRepositorySettingsPage_Login_Request_URL_=Login &Request URL:
-WebTaskEditorPageFactory_Browser=Browser
+ParameterEditorDialog_New_Property=New Property
+ParameterEditorDialog_Edit_Property=Edit Property
+ParameterEditorDialog_Name_=&Name:
+ParameterEditorDialog_Value_=&Value:
+ParameterEditorDialog_Name_should_be_Java_identifier=Name should be a Java identifier
+ParametersEditor_Parameter=Parameter
+ParametersEditor_Value=Value
+ParametersEditor_Add_=&Add...
+ParametersEditor_Remove_=&Remove
+ParametersEditor_Edit_=&Edit...
+WebQueryWizardPage_Advanced_Configuration=Advanced &Configuration
+WebQueryWizardPage_complete=complete
+WebQueryWizardPage_Create_web_query=Create web query
+WebQueryWizardPage_Description=Description
+WebQueryWizardPage_Id=Id
+WebQueryWizardPage_incomplete=incomplete
+WebQueryWizardPage_New_web_query=New web query
+WebQueryWizardPage_No_matching_results_Check_query_regexp=No matching results. Check query regexp
+WebQueryWizardPage_Open=&Open
+WebQueryWizardPage_Opening_Browser=Opening Browser
+WebQueryWizardPage_Owner=Owner
+WebQueryWizardPage_Parsing_error_=Parsing error:
+WebQueryWizardPage_Preview=Previe&w
+WebQueryWizardPage_Query_Pattern_=Query &Pattern:
+WebQueryWizardPage_Query_result=Query result
+WebQueryWizardPage_Query_Title_=Query Title:
+WebQueryWizardPage_Query_URL_=&Query URL:
+WebQueryWizardPage_Specify_query_parameters_for_X=Specify query parameters for {0}
+WebQueryWizardPage_Status=Status
+WebQueryWizardPage_Type=Type
+WebQueryWizardPage_Unable_to_fetch_resource_=Unable to fetch resource:
+WebQueryWizardPage_Updating_preview=Updating preview
+WebRepositoryConnector_Require_two_matching_groups=Require two matching groups (taskId and summary). Check query regexp
+WebRepositoryConnector_Web_Template_Advanced_=Web Template (Advanced)
+WebRepositoryConnector_Failed_to_parse_RSS_feed=Failed to parse RSS feed:
+WebRepositoryConnector_Could_not_fetch_resource=Could not fetch resource:
+WebRepositorySettingsPage_Web_Repository_Settings=Web Repository Settings
+WebRepositorySettingsPage_Select_server_template_example_and_modify_to_match_settings_for_your_project=Select a server template example and modify to match the settings for your project, \nusually found in the query URL. For more connectors see http://eclipse.org/mylyn
+WebRepositorySettingsPage_Login_Form_URL_=Login &Form URL:
+WebRepositorySettingsPage_Login_Token_Pattern=Login T&oken Pattern:
+WebRepositorySettingsPage_Advanced_Configuration=Advanced &Configuration
+WebRepositorySettingsPage_Task_URL_=&Task URL:
+WebRepositorySettingsPage_New_Task_URL_=&New Task URL:
+WebRepositorySettingsPage_Query_Request_URL_=&Query Request URL:
+WebRepositorySettingsPage_Query_Pattern_=Query &Pattern:
+WebRepositorySettingsPage_Login_Request_URL_=Login &Request URL:
+WebTaskEditorPageFactory_Browser=Browser
diff --git a/org.eclipse.mylyn.wikitext.sandbox-feature/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.wikitext.sandbox-feature/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.wikitext.sandbox-feature/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.wikitext.sandbox.ui/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.mylyn.wikitext.sandbox.ui/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.mylyn.wikitext.sandbox.ui/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.mylyn.wikitext.sandbox.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.wikitext.sandbox.ui/META-INF/MANIFEST.MF
index 99c69c8..d5ed7ff 100644
--- a/org.eclipse.mylyn.wikitext.sandbox.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.wikitext.sandbox.ui/META-INF/MANIFEST.MF
@@ -1,10 +1,10 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Mylyn Incubator (Incubation)
-Bundle-SymbolicName: org.eclipse.mylyn.wikitext.sandbox.ui
-Bundle-Version: 3.7.0.qualifier
-Bundle-Vendor: Eclipse.org
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.mylyn.wikitext.core;bundle-version="1.3.0",
- org.eclipse.mylyn.wikitext.ui;bundle-version="1.3.0"
-Export-Package: org.eclipse.mylyn.internal.sandbox.wikitext.ui;x-internal:=true
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Mylyn Incubator (Incubation)
+Bundle-SymbolicName: org.eclipse.mylyn.wikitext.sandbox.ui
+Bundle-Version: 3.7.0.qualifier
+Bundle-Vendor: Eclipse.org
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.eclipse.mylyn.wikitext.core;bundle-version="1.3.0",
+ org.eclipse.mylyn.wikitext.ui;bundle-version="1.3.0"
+Export-Package: org.eclipse.mylyn.internal.sandbox.wikitext.ui;x-internal:=true