You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
|
Feb
|
Mar
(16) |
Apr
(2) |
May
|
Jun
(3) |
Jul
(11) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Twincling S. C. N. <twi...@li...> - 2013-03-16 14:40:08
|
Hi, I've just learned about the water crisis and would be grateful if you could spend a few minutes to help solve it: https://waterforward.charitywater.org/AMmPol6c Thanks, chiluveru -- the charity: water team WaterForward, 387 Tehama Street, San Francisco, CA 94103, USA. Click here to unsubscribe: https://waterforward.charitywater.org/opt_out?token=AMmPol6c&email=twincling-commits%40lists.sourceforge.net |
From: Twincling S. C. N. <twi...@li...> - 2010-06-16 14:07:17
|
We're excited to let you know that Snehith Chiluveru has invited you to Dropbox! Snehith Chiluveru has been using Dropbox to sync and share files online and across computers, and thought you might want it too. Visit http://www.dropbox.com/link/20.q7SWRKjVGX/NjIyMjU5NzIwNw to get started. - The Dropbox Team ____________________________________________________ To stop receiving invites from Dropbox, please go to http://www.dropbox.com/bl/1448c8485d74/twincling-commits%40lists.sourceforge.net |
From: Twincling S. C. N. <twi...@li...> - 2009-09-02 16:16:53
|
Hello I am creating a birthday calendar for myself. Can you please click on the link below and enter your birthday for me? http://www.birthdayalarm.com/bd2/80006071a12201696b1478366347c110360277d1386 Chiluveru |
From: Twincling S. C. N. <twi...@li...> - 2009-07-31 17:14:32
|
Revision: 35 http://twincling.svn.sourceforge.net/twincling/?rev=35&view=rev Author: saifi Date: 2009-07-31 17:14:24 +0000 (Fri, 31 Jul 2009) Log Message: ----------- The modules here are . Alan.pm (responsible for License analysis) . Logic.pm (inference rules, relationship related to license algebra) . Report.pm (reports of analysis) . Util.pm (handlers, utility functions) As part of the install, twincling-alan.pl will get copied to /usr/local/bin/twincling-alan . This will be main command. All the ALAN test cases go into t/ directory. The usage documentation of twincling-alan, may be referred to by running the command 'perldoc twincling-alan.pl' Added Paths: ----------- alan/src/ alan/src/.cvsignore alan/src/Build.PL alan/src/Changes alan/src/MANIFEST alan/src/README alan/src/apache.license alan/src/lib/ alan/src/lib/Twincling/ alan/src/lib/Twincling/Alan/ alan/src/lib/Twincling/Alan/Logic.pm alan/src/lib/Twincling/Alan/Report.pm alan/src/lib/Twincling/Alan/Util.pm alan/src/lib/Twincling/Alan.pm alan/src/main/ alan/src/main/twincling-alan.pl alan/src/t/ alan/src/t/00-load.t alan/src/t/boilerplate.t alan/src/t/pod-coverage.t alan/src/t/pod.t Added: alan/src/.cvsignore =================================================================== --- alan/src/.cvsignore (rev 0) +++ alan/src/.cvsignore 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,10 @@ +blib* +Makefile +Makefile.old +Build +_build* +pm_to_blib* +*.tar.gz +.lwpcookies +Twincling-Alan-* +cover_db Added: alan/src/Build.PL =================================================================== --- alan/src/Build.PL (rev 0) +++ alan/src/Build.PL 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,17 @@ +use strict; +use warnings; +use Module::Build; + +my $builder = Module::Build->new( + module_name => 'Twincling::Alan', + license => 'apache', + dist_author => 'Twincling Technology Foundation, India. <pro...@tw...>', + dist_version_from => 'lib/Twincling/Alan.pm', + build_requires => { + 'Test::More' => 0, + }, + add_to_cleanup => [ 'Twincling-Alan-*' ], + create_makefile_pl => 'traditional', +); + +$builder->create_build_script(); Added: alan/src/Changes =================================================================== --- alan/src/Changes (rev 0) +++ alan/src/Changes 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,5 @@ +Revision history for Twincling-Alan + +init 2009-07-31 + created the module using Module::Starter + module-starter --dir=src --module=Twincling::Alan,Twincling::Alan::Report,Twincling::Alan::Logic,Twincling::Alan::Util Added: alan/src/MANIFEST =================================================================== --- alan/src/MANIFEST (rev 0) +++ alan/src/MANIFEST 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,11 @@ +Build.PL +Changes +MANIFEST +README +lib/Twincling/Alan.pm +lib/Twincling/Alan/Logic.pm +lib/Twincling/Alan/Report.pm +lib/Twincling/Alan/Util.pm +t/00-load.t +t/pod-coverage.t +t/pod.t Added: alan/src/README =================================================================== --- alan/src/README (rev 0) +++ alan/src/README 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,62 @@ +Twincling Alan + +Introduction (what is Alan ?) +Alan is (A)utomatic (L)icense (An)alyzer. + +Value Proposition (why Alan ?) +Alan is intended to serve as the first line of license analysis +for source code dependencies by providing a handy tool for teams +or programmers (working on projects licensed under ASL 2.0) to +assess the compatibility of another library, source tree or file +translation unit with their code. + +The frame of reference is Apache Software License (ASL) 2.0 and +mappings to other licenses will be managed in an extensible +rules database. + + +INSTALLATION + +To install this module, run the following commands: + + perl Build.PL + ./Build + ./Build test + ./Build install + + +SUPPORT AND DOCUMENTATION + +After installing, you can find documentation for this module with the +perldoc command. + + perldoc twincling-alan + +You can also look for information at: + + Alan website + http://www.twincling.org/project/alan + + Alan issue tracker + http://www.twincling.org/project/issues/alan + + +COPYRIGHT AND LICENCE + + Copyright (C) 2005,2006,2007,2008,2009. + Twincling Technology Foundation. + Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ + All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an "AS IS" + BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + express or implied. See the License for the specific language + governing permissions and limitations under the License. + Added: alan/src/apache.license =================================================================== --- alan/src/apache.license (rev 0) +++ alan/src/apache.license 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. Added: alan/src/lib/Twincling/Alan/Logic.pm =================================================================== --- alan/src/lib/Twincling/Alan/Logic.pm (rev 0) +++ alan/src/lib/Twincling/Alan/Logic.pm 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,106 @@ +package Twincling::Alan::Logic; + +use warnings; +use strict; + +=head1 NAME + +Twincling::Alan::Logic - The great new Twincling::Alan::Logic! + +=head1 VERSION + +Version 0.01 + +=cut + +our $VERSION = '0.01'; + + +=head1 SYNOPSIS + +Quick summary of what the module does. + +Perhaps a little code snippet. + + use Twincling::Alan::Logic; + + my $foo = Twincling::Alan::Logic->new(); + ... + +=head1 EXPORT + +A list of functions that can be exported. You can delete this section +if you don't export anything, such as for a purely object-oriented module. + +=head1 FUNCTIONS + +=head2 function1 + +=cut + +sub function1 { +} + +=head2 function2 + +=cut + +sub function2 { +} + +=head1 AUTHOR + +Twincling Technology Foundation, India., C<< <projects at twincling.org> >> + +=head1 BUGS + +Please report any bugs or feature requests to C<bug-twincling-alan at rt.cpan.org>, or through +the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Twincling-Alan>. I will be notified, and then you'll +automatically be notified of progress on your bug as I make changes. + + + + +=head1 SUPPORT + +You can find documentation for this module with the perldoc command. + + perldoc Twincling::Alan::Logic + + +You can also look for information at: + +=over 4 + +=item * RT: CPAN's request tracker + +L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Twincling-Alan> + +=item * AnnoCPAN: Annotated CPAN documentation + +L<http://annocpan.org/dist/Twincling-Alan> + +=item * CPAN Ratings + +L<http://cpanratings.perl.org/d/Twincling-Alan> + +=item * Search CPAN + +L<http://search.cpan.org/dist/Twincling-Alan/> + +=back + + +=head1 ACKNOWLEDGEMENTS + + +=head1 COPYRIGHT & LICENSE + +Copyright 2009 Twincling Technology Foundation, India., all rights reserved. + +This program is released under the following license: apache + + +=cut + +1; # End of Twincling::Alan::Logic Added: alan/src/lib/Twincling/Alan/Report.pm =================================================================== --- alan/src/lib/Twincling/Alan/Report.pm (rev 0) +++ alan/src/lib/Twincling/Alan/Report.pm 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,106 @@ +package Twincling::Alan::Report; + +use warnings; +use strict; + +=head1 NAME + +Twincling::Alan::Report - The great new Twincling::Alan::Report! + +=head1 VERSION + +Version 0.01 + +=cut + +our $VERSION = '0.01'; + + +=head1 SYNOPSIS + +Quick summary of what the module does. + +Perhaps a little code snippet. + + use Twincling::Alan::Report; + + my $foo = Twincling::Alan::Report->new(); + ... + +=head1 EXPORT + +A list of functions that can be exported. You can delete this section +if you don't export anything, such as for a purely object-oriented module. + +=head1 FUNCTIONS + +=head2 function1 + +=cut + +sub function1 { +} + +=head2 function2 + +=cut + +sub function2 { +} + +=head1 AUTHOR + +Twincling Technology Foundation, India., C<< <projects at twincling.org> >> + +=head1 BUGS + +Please report any bugs or feature requests to C<bug-twincling-alan at rt.cpan.org>, or through +the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Twincling-Alan>. I will be notified, and then you'll +automatically be notified of progress on your bug as I make changes. + + + + +=head1 SUPPORT + +You can find documentation for this module with the perldoc command. + + perldoc Twincling::Alan::Report + + +You can also look for information at: + +=over 4 + +=item * RT: CPAN's request tracker + +L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Twincling-Alan> + +=item * AnnoCPAN: Annotated CPAN documentation + +L<http://annocpan.org/dist/Twincling-Alan> + +=item * CPAN Ratings + +L<http://cpanratings.perl.org/d/Twincling-Alan> + +=item * Search CPAN + +L<http://search.cpan.org/dist/Twincling-Alan/> + +=back + + +=head1 ACKNOWLEDGEMENTS + + +=head1 COPYRIGHT & LICENSE + +Copyright 2009 Twincling Technology Foundation, India., all rights reserved. + +This program is released under the following license: apache + + +=cut + +1; # End of Twincling::Alan::Report Added: alan/src/lib/Twincling/Alan/Util.pm =================================================================== --- alan/src/lib/Twincling/Alan/Util.pm (rev 0) +++ alan/src/lib/Twincling/Alan/Util.pm 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,106 @@ +package Twincling::Alan::Util; + +use warnings; +use strict; + +=head1 NAME + +Twincling::Alan::Util - The great new Twincling::Alan::Util! + +=head1 VERSION + +Version 0.01 + +=cut + +our $VERSION = '0.01'; + + +=head1 SYNOPSIS + +Quick summary of what the module does. + +Perhaps a little code snippet. + + use Twincling::Alan::Util; + + my $foo = Twincling::Alan::Util->new(); + ... + +=head1 EXPORT + +A list of functions that can be exported. You can delete this section +if you don't export anything, such as for a purely object-oriented module. + +=head1 FUNCTIONS + +=head2 function1 + +=cut + +sub function1 { +} + +=head2 function2 + +=cut + +sub function2 { +} + +=head1 AUTHOR + +Twincling Technology Foundation, India., C<< <projects at twincling.org> >> + +=head1 BUGS + +Please report any bugs or feature requests to C<bug-twincling-alan at rt.cpan.org>, or through +the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Twincling-Alan>. I will be notified, and then you'll +automatically be notified of progress on your bug as I make changes. + + + + +=head1 SUPPORT + +You can find documentation for this module with the perldoc command. + + perldoc Twincling::Alan::Util + + +You can also look for information at: + +=over 4 + +=item * RT: CPAN's request tracker + +L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Twincling-Alan> + +=item * AnnoCPAN: Annotated CPAN documentation + +L<http://annocpan.org/dist/Twincling-Alan> + +=item * CPAN Ratings + +L<http://cpanratings.perl.org/d/Twincling-Alan> + +=item * Search CPAN + +L<http://search.cpan.org/dist/Twincling-Alan/> + +=back + + +=head1 ACKNOWLEDGEMENTS + + +=head1 COPYRIGHT & LICENSE + +Copyright 2009 Twincling Technology Foundation, India., all rights reserved. + +This program is released under the following license: apache + + +=cut + +1; # End of Twincling::Alan::Util Added: alan/src/lib/Twincling/Alan.pm =================================================================== --- alan/src/lib/Twincling/Alan.pm (rev 0) +++ alan/src/lib/Twincling/Alan.pm 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,106 @@ +package Twincling::Alan; + +use warnings; +use strict; + +=head1 NAME + +Twincling::Alan - The great new Twincling::Alan! + +=head1 VERSION + +Version 0.01 + +=cut + +our $VERSION = '0.01'; + + +=head1 SYNOPSIS + +Quick summary of what the module does. + +Perhaps a little code snippet. + + use Twincling::Alan; + + my $foo = Twincling::Alan->new(); + ... + +=head1 EXPORT + +A list of functions that can be exported. You can delete this section +if you don't export anything, such as for a purely object-oriented module. + +=head1 FUNCTIONS + +=head2 function1 + +=cut + +sub function1 { +} + +=head2 function2 + +=cut + +sub function2 { +} + +=head1 AUTHOR + +Twincling Technology Foundation, India., C<< <projects at twincling.org> >> + +=head1 BUGS + +Please report any bugs or feature requests to C<bug-twincling-alan at rt.cpan.org>, or through +the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Twincling-Alan>. I will be notified, and then you'll +automatically be notified of progress on your bug as I make changes. + + + + +=head1 SUPPORT + +You can find documentation for this module with the perldoc command. + + perldoc Twincling::Alan + + +You can also look for information at: + +=over 4 + +=item * RT: CPAN's request tracker + +L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Twincling-Alan> + +=item * AnnoCPAN: Annotated CPAN documentation + +L<http://annocpan.org/dist/Twincling-Alan> + +=item * CPAN Ratings + +L<http://cpanratings.perl.org/d/Twincling-Alan> + +=item * Search CPAN + +L<http://search.cpan.org/dist/Twincling-Alan/> + +=back + + +=head1 ACKNOWLEDGEMENTS + + +=head1 COPYRIGHT & LICENSE + +Copyright 2009 Twincling Technology Foundation, India., all rights reserved. + +This program is released under the following license: apache + + +=cut + +1; # End of Twincling::Alan Added: alan/src/main/twincling-alan.pl =================================================================== --- alan/src/main/twincling-alan.pl (rev 0) +++ alan/src/main/twincling-alan.pl 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,106 @@ +#!/usr/local/bin/perl -W +# +# Copyright (C) 2005,2006,2007,2008,2009. +# Twincling Technology Foundation. +# Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ +# All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an "AS IS" +# BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +# express or implied. See the License for the specific language +# governing permissions and limitations under the License. +# +## + + +=head1 NAME + +twincling-alan - automated license analysis for source code dependencies. + +=cut + +use warnings; +use strict; + +use Twincling::Alan + + +=head1 SYNOPSIS + +twincling-alan [options] + +Options: + + tree path to a project tree eg. /home/src/project + package package format eg. project.rpm, project.tgz, project.bin + repo repository eg. git, svn, cvs eg. svn://project.org/svn/project/trunk + file single file eg. /home/src/sort.c + archive tree structured archive bitstream eg. project.tar.gz + version version of twincling-alan + + +Example: + + alan tree /home/src/project + alan package project.rpm + alan repo svn://project.org/svn/project/trunk + alan file /home/src/sort.c + alan archive project.tar.gz + alan version + + +=head1 DESCRIPTION + +Alan is intended to serve as the first line of license analysis +for source code dependencies by providing a handy tool for teams +or programmers (working on projects licensed under ASL 2.0) to +assess the compatibility of another library, source tree or file +translation unit with their code code. + +The frame of reference is Apache Software License (ASL) 2.0 and +mappings to other licenses will be managed in an extensible +rules database. + +=head1 CONFIGURATION + +The user of Alan, will run the program from the command line +stating the source path or URL where the source code is +available + +The Alan program will analyse the source code from the +perspective of the pivot license (Apache License 2.0 is the +default), look up the reference database and mapping rules +database and generate a report. + + author : Twincling Technology Foundation, India. + email : pro...@tw... + website : http://www.twincling.org/project/alan + +=head1 COPYRIGHT AND LICENCE + + Copyright (C) 2005,2006,2007,2008,2009. + Twincling Technology Foundation. + Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ + All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an "AS IS" + BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + express or implied. See the License for the specific language + governing permissions and limitations under the License. + +=cut + Property changes on: alan/src/main/twincling-alan.pl ___________________________________________________________________ Added: svn:executable + * Added: alan/src/t/00-load.t =================================================================== --- alan/src/t/00-load.t (rev 0) +++ alan/src/t/00-load.t 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,12 @@ +#!perl -T + +use Test::More tests => 4; + +BEGIN { + use_ok( 'Twincling::Alan' ); + use_ok( 'Twincling::Alan::Report' ); + use_ok( 'Twincling::Alan::Logic' ); + use_ok( 'Twincling::Alan::Util' ); +} + +diag( "Testing Twincling::Alan $Twincling::Alan::VERSION, Perl $], $^X" ); Added: alan/src/t/boilerplate.t =================================================================== --- alan/src/t/boilerplate.t (rev 0) +++ alan/src/t/boilerplate.t 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,58 @@ +#!perl -T + +use strict; +use warnings; +use Test::More tests => 6; + +sub not_in_file_ok { + my ($filename, %regex) = @_; + open( my $fh, '<', $filename ) + or die "couldn't open $filename for reading: $!"; + + my %violated; + + while (my $line = <$fh>) { + while (my ($desc, $regex) = each %regex) { + if ($line =~ $regex) { + push @{$violated{$desc}||=[]}, $.; + } + } + } + + if (%violated) { + fail("$filename contains boilerplate text"); + diag "$_ appears on lines @{$violated{$_}}" for keys %violated; + } else { + pass("$filename contains no boilerplate text"); + } +} + +sub module_boilerplate_ok { + my ($module) = @_; + not_in_file_ok($module => + 'the great new $MODULENAME' => qr/ - The great new /, + 'boilerplate description' => qr/Quick summary of what the module/, + 'stub function definition' => qr/function[12]/, + ); +} + +TODO: { + local $TODO = "Need to replace the boilerplate text"; + + not_in_file_ok(README => + "The README is used..." => qr/The README is used/, + "'version information here'" => qr/to provide version information/, + ); + + not_in_file_ok(Changes => + "placeholder date/time" => qr(Date/time) + ); + + module_boilerplate_ok('lib/Twincling/Alan.pm'); + module_boilerplate_ok('lib/Twincling/Alan/Report.pm'); + module_boilerplate_ok('lib/Twincling/Alan/Logic.pm'); + module_boilerplate_ok('lib/Twincling/Alan/Util.pm'); + + +} + Added: alan/src/t/pod-coverage.t =================================================================== --- alan/src/t/pod-coverage.t (rev 0) +++ alan/src/t/pod-coverage.t 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,18 @@ +use strict; +use warnings; +use Test::More; + +# Ensure a recent version of Test::Pod::Coverage +my $min_tpc = 1.08; +eval "use Test::Pod::Coverage $min_tpc"; +plan skip_all => "Test::Pod::Coverage $min_tpc required for testing POD coverage" + if $@; + +# Test::Pod::Coverage doesn't require a minimum Pod::Coverage version, +# but older versions don't recognize some common documentation styles +my $min_pc = 0.18; +eval "use Pod::Coverage $min_pc"; +plan skip_all => "Pod::Coverage $min_pc required for testing POD coverage" + if $@; + +all_pod_coverage_ok(); Added: alan/src/t/pod.t =================================================================== --- alan/src/t/pod.t (rev 0) +++ alan/src/t/pod.t 2009-07-31 17:14:24 UTC (rev 35) @@ -0,0 +1,12 @@ +#!perl -T + +use strict; +use warnings; +use Test::More; + +# Ensure a recent version of Test::Pod +my $min_tp = 1.22; +eval "use Test::Pod $min_tp"; +plan skip_all => "Test::Pod $min_tp required for testing POD" if $@; + +all_pod_files_ok(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-07-31 15:20:06
|
Revision: 34 http://twincling.svn.sourceforge.net/twincling/?rev=34&view=rev Author: saifi Date: 2009-07-31 15:19:59 +0000 (Fri, 31 Jul 2009) Log Message: ----------- Draft version of the ALAN usecase model. Added Paths: ----------- alan/docs/ alan/docs/alan.xmi Added: alan/docs/alan.xmi =================================================================== --- alan/docs/alan.xmi (rev 0) +++ alan/docs/alan.xmi 2009-07-31 15:19:59 UTC (rev 34) @@ -0,0 +1,168 @@ +<?xml version="1.0" encoding="UTF-8"?> +<XMI verified="false" xmi.version="1.2" timestamp="2009-07-08T22:22:42" xmlns:UML="http://schema.omg.org/spec/UML/1.3" > + <XMI.header> + <XMI.documentation> + <XMI.exporter>umbrello uml modeller http://uml.sf.net</XMI.exporter> + <XMI.exporterVersion>1.5.8</XMI.exporterVersion> + <XMI.exporterEncoding>UnicodeUTF8</XMI.exporterEncoding> + </XMI.documentation> + <XMI.metamodel xmi.version="1.3" href="UML.xml" xmi.name="UML" /> + </XMI.header> + <XMI.content> + <UML:Model isSpecification="false" isAbstract="false" isLeaf="false" xmi.id="m1" isRoot="false" name="UML Model" > + <UML:Namespace.ownedElement> + <UML:Stereotype visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="folder" name="folder" /> + <UML:Stereotype visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="datatype" name="datatype" /> + <UML:Model stereotype="folder" visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Logical View" name="Logical View" > + <UML:Namespace.ownedElement> + <UML:Package stereotype="folder" visibility="public" isSpecification="false" namespace="Logical View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Datatypes" name="Datatypes" > + <UML:Namespace.ownedElement> + <UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="sib5fhPuxtp7" name="int" /> + <UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="PX2SbXtFKGN1" name="char" /> + <UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="eQQ0ZktRSW2l" name="bool" /> + <UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="RAa3zIQKXk8E" name="float" /> + <UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="0Oi7sZCx7H7s" name="double" /> + <UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="GB5G1tUxfDwV" name="short" /> + <UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="2wlhJL37Lmez" name="long" /> + <UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="sOFrogCBHQPg" name="unsigned int" /> + <UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="HaMVVEIARYIM" name="unsigned short" /> + <UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="wpNLW7PXOx7Z" name="unsigned long" /> + <UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="xLF6evGOGWS8" name="string" /> + </UML:Namespace.ownedElement> + </UML:Package> + </UML:Namespace.ownedElement> + <XMI.extension xmi.extender="umbrello" > + <diagrams> + <diagram showopsig="1" linecolor="#ff0000" snapx="10" showattribassocs="1" snapy="10" linewidth="0" showattsig="1" showpackage="1" showstereotype="1" name="class diagram" font="Sans Serif,10,-1,0,50,0,0,0,0,0" canvasheight="655" canvaswidth="1044" localid="" snapcsgrid="0" showgrid="0" showops="1" usefillcolor="1" fillcolor="#ffff00" zoom="100" xmi.id="ke1U1wl02pcm" documentation="" showscope="1" snapgrid="0" showatts="1" type="1" > + <widgets/> + <messages/> + <associations/> + </diagram> + </diagrams> + </XMI.extension> + </UML:Model> + <UML:Model stereotype="folder" visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Use Case View" name="Use Case View" > + <UML:Namespace.ownedElement> + <UML:UseCase visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="gOm8kXzpa7kt" name="init" /> + <UML:UseCase visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="9rJm6HmX02Bv" name="help" /> + <UML:UseCase visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="XimN1vPlpQmX" name="read repository" /> + <UML:UseCase visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="krpDd0YmNqSy" name="read rpm" /> + <UML:UseCase visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="u5ttQrvHfGk4" name="get the source code" /> + <UML:UseCase visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="uxNw9tBkSoMH" name="read archive" /> + <UML:UseCase visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="m4YQV3mr2zzB" name="read directory" /> + <UML:UseCase visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="0BmVK3MdKSrT" name="read file" /> + <UML:UseCase visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="ehCIhPxMzAGa" name="specify working dir" /> + <UML:UseCase visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="xJlp4tec6NtY" name="set pivot license" /> + <UML:UseCase visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="LCngIVci6qG7" name="do license analysis" /> + <UML:Actor visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="96pNq8VUjGZV" comment="user of alan application" name="user" /> + <UML:Actor visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="IkKurnhsyI9I" name="Lawyer" /> + <UML:Actor visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="pp7aUIkZ29WE" name="Developer" /> + <UML:Actor visibility="public" isSpecification="false" namespace="Use Case View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Pisk0Chz9gaD" name="Manager" /> + <UML:Generalization discriminator="" visibility="public" isSpecification="false" namespace="Use Case View" child="pp7aUIkZ29WE" xmi.id="qPtsuuRvKri1" parent="96pNq8VUjGZV" name="" /> + <UML:Generalization discriminator="" visibility="public" isSpecification="false" namespace="Use Case View" child="Pisk0Chz9gaD" xmi.id="ldwFsrkq1C8r" parent="96pNq8VUjGZV" name="" /> + <UML:Generalization discriminator="" visibility="public" isSpecification="false" namespace="Use Case View" child="IkKurnhsyI9I" xmi.id="7gQYqzbBDQrY" parent="96pNq8VUjGZV" name="" /> + </UML:Namespace.ownedElement> + <XMI.extension xmi.extender="umbrello" > + <diagrams> + <diagram showopsig="1" linecolor="#ff0000" snapx="10" showattribassocs="1" snapy="10" linewidth="0" showattsig="1" showpackage="1" showstereotype="1" name="Alan use cases" font="Sans Serif,10,-1,0,50,0,0,0,0,0" canvasheight="655" canvaswidth="1044" localid="" snapcsgrid="0" showgrid="0" showops="1" usefillcolor="1" fillcolor="#ffff00" zoom="100" xmi.id="4VQ3azsJ0mlb" documentation="" showscope="1" snapgrid="0" showatts="1" type="2" > + <widgets> + <usecasewidget width="70" showstereotype="1" x="234" y="88" usesdiagramusefillcolor="1" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="53" linecolor="none" xmi.id="gOm8kXzpa7kt" usefillcolor="1" linewidth="none" font="Sans Serif,10,-1,0,50,0,0,0,0,0" /> + <usecasewidget width="70" showstereotype="1" x="371" y="134" usesdiagramusefillcolor="1" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="53" linecolor="none" xmi.id="9rJm6HmX02Bv" usefillcolor="1" linewidth="none" font="Sans Serif,10,-1,0,50,0,0,0,0,0" /> + <usecasewidget width="117" showstereotype="1" x="543" y="249" usesdiagramusefillcolor="1" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="53" linecolor="none" xmi.id="XimN1vPlpQmX" usefillcolor="1" linewidth="none" font="Sans Serif,10,-1,0,50,0,0,0,0,0" /> + <usecasewidget width="148" showstereotype="1" x="247" y="231" usesdiagramusefillcolor="1" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="53" linecolor="none" xmi.id="u5ttQrvHfGk4" usefillcolor="1" linewidth="none" font="Sans Serif,10,-1,0,50,0,0,0,0,0" /> + <usecasewidget width="96" showstereotype="1" x="632" y="313" usesdiagramusefillcolor="1" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="53" linecolor="none" xmi.id="uxNw9tBkSoMH" usefillcolor="1" linewidth="none" font="Sans Serif,10,-1,0,50,0,0,0,0,0" /> + <usecasewidget width="72" showstereotype="1" x="584" y="404" usesdiagramusefillcolor="1" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="53" linecolor="none" xmi.id="krpDd0YmNqSy" usefillcolor="1" linewidth="none" font="Sans Serif,10,-1,0,50,0,0,0,0,0" /> + <usecasewidget width="108" showstereotype="1" x="481" y="474" usesdiagramusefillcolor="1" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="53" linecolor="none" xmi.id="m4YQV3mr2zzB" usefillcolor="1" linewidth="none" font="Sans Serif,10,-1,0,50,0,0,0,0,0" /> + <usecasewidget width="70" showstereotype="1" x="385" y="456" usesdiagramusefillcolor="1" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="53" linecolor="none" xmi.id="0BmVK3MdKSrT" usefillcolor="1" linewidth="none" font="Sans Serif,10,-1,0,50,0,0,0,0,0" /> + <usecasewidget width="141" showstereotype="1" x="353" y="344" usesdiagramusefillcolor="1" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="53" linecolor="none" xmi.id="ehCIhPxMzAGa" usefillcolor="1" linewidth="none" font="Sans Serif,10,-1,0,50,0,0,0,0,0" /> + <usecasewidget width="123" showstereotype="1" x="220" y="474" usesdiagramusefillcolor="1" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="53" linecolor="none" xmi.id="xJlp4tec6NtY" usefillcolor="1" linewidth="none" font="Sans Serif,10,-1,0,50,0,0,0,0,0" /> + <actorwidget width="37" showstereotype="1" x="121" y="271" usesdiagramusefillcolor="1" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="63" linecolor="none" xmi.id="96pNq8VUjGZV" usefillcolor="1" linewidth="none" font="Sans Serif,10,-1,0,50,0,0,0,0,0" /> + <actorwidget width="67" showstereotype="1" x="106" y="410" usesdiagramusefillcolor="1" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="63" linecolor="none" xmi.id="Pisk0Chz9gaD" usefillcolor="1" linewidth="none" font="Sans Serif,10,-1,0,50,0,0,0,0,0" /> + <actorwidget width="56" showstereotype="1" x="179" y="368" usesdiagramusefillcolor="1" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="63" linecolor="none" xmi.id="IkKurnhsyI9I" usefillcolor="1" linewidth="none" font="Sans Serif,10,-1,0,50,0,0,0,0,0" /> + <actorwidget width="75" showstereotype="1" x="20" y="356" usesdiagramusefillcolor="1" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="63" linecolor="none" xmi.id="pp7aUIkZ29WE" usefillcolor="1" linewidth="none" font="Sans Serif,10,-1,0,50,0,0,0,0,0" /> + </widgets> + <messages/> + <associations> + <assocwidget indexa="1" indexb="1" widgetaid="pp7aUIkZ29WE" linecolor="none" totalcounta="2" xmi.id="qPtsuuRvKri1" widgetbid="96pNq8VUjGZV" totalcountb="2" type="500" linewidth="none" > + <linepath> + <startpoint startx="95" starty="356" /> + <endpoint endx="121" endy="334" /> + </linepath> + </assocwidget> + <assocwidget indexa="1" indexb="1" widgetaid="Pisk0Chz9gaD" linecolor="none" totalcounta="2" xmi.id="ldwFsrkq1C8r" widgetbid="96pNq8VUjGZV" totalcountb="2" type="500" linewidth="none" > + <linepath> + <startpoint startx="136" starty="410" /> + <endpoint endx="136" endy="334" /> + </linepath> + </assocwidget> + <assocwidget indexa="1" indexb="1" widgetaid="IkKurnhsyI9I" linecolor="none" totalcounta="2" xmi.id="7gQYqzbBDQrY" widgetbid="96pNq8VUjGZV" totalcountb="2" type="500" linewidth="none" > + <linepath> + <startpoint startx="179" starty="368" /> + <endpoint endx="158" endy="334" /> + </linepath> + </assocwidget> + </associations> + </diagram> + </diagrams> + </XMI.extension> + </UML:Model> + <UML:Model stereotype="folder" visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Component View" name="Component View" > + <UML:Namespace.ownedElement/> + </UML:Model> + <UML:Model stereotype="folder" visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Deployment View" name="Deployment View" > + <UML:Namespace.ownedElement/> + </UML:Model> + <UML:Model stereotype="folder" visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Entity Relationship Model" name="Entity Relationship Model" > + <UML:Namespace.ownedElement/> + </UML:Model> + </UML:Namespace.ownedElement> + </UML:Model> + </XMI.content> + <XMI.extensions xmi.extender="umbrello" > + <docsettings viewid="4VQ3azsJ0mlb" uniqueid="x3nSVhiJ7Pb0" documentation="" /> + <listview> + <listitem open="1" type="800" label="Views" > + <listitem open="1" type="801" id="Logical View" > + <listitem open="0" type="807" id="ke1U1wl02pcm" label="class diagram" /> + <listitem open="0" type="830" id="Datatypes" > + <listitem open="1" type="829" id="eQQ0ZktRSW2l" /> + <listitem open="1" type="829" id="PX2SbXtFKGN1" /> + <listitem open="1" type="829" id="0Oi7sZCx7H7s" /> + <listitem open="1" type="829" id="RAa3zIQKXk8E" /> + <listitem open="1" type="829" id="sib5fhPuxtp7" /> + <listitem open="1" type="829" id="2wlhJL37Lmez" /> + <listitem open="1" type="829" id="GB5G1tUxfDwV" /> + <listitem open="1" type="829" id="xLF6evGOGWS8" /> + <listitem open="1" type="829" id="sOFrogCBHQPg" /> + <listitem open="1" type="829" id="wpNLW7PXOx7Z" /> + <listitem open="1" type="829" id="HaMVVEIARYIM" /> + </listitem> + </listitem> + <listitem open="1" type="802" id="Use Case View" > + <listitem open="0" type="805" id="4VQ3azsJ0mlb" label="Alan use cases" /> + <listitem open="1" type="811" id="pp7aUIkZ29WE" /> + <listitem open="1" type="811" id="IkKurnhsyI9I" /> + <listitem open="1" type="811" id="Pisk0Chz9gaD" /> + <listitem open="1" type="811" id="96pNq8VUjGZV" /> + <listitem open="1" type="812" id="LCngIVci6qG7" /> + <listitem open="1" type="812" id="u5ttQrvHfGk4" /> + <listitem open="1" type="812" id="9rJm6HmX02Bv" /> + <listitem open="1" type="812" id="gOm8kXzpa7kt" /> + <listitem open="1" type="812" id="uxNw9tBkSoMH" /> + <listitem open="1" type="812" id="m4YQV3mr2zzB" /> + <listitem open="1" type="812" id="0BmVK3MdKSrT" /> + <listitem open="1" type="812" id="XimN1vPlpQmX" /> + <listitem open="1" type="812" id="krpDd0YmNqSy" /> + <listitem open="1" type="812" id="xJlp4tec6NtY" /> + <listitem open="1" type="812" id="ehCIhPxMzAGa" /> + </listitem> + <listitem open="1" type="821" id="Component View" /> + <listitem open="1" type="827" id="Deployment View" /> + <listitem open="1" type="836" id="Entity Relationship Model" /> + </listitem> + </listview> + <codegeneration> + <codegenerator language="C++" /> + </codegeneration> + </XMI.extensions> +</XMI> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-07-31 15:18:50
|
Revision: 33 http://twincling.svn.sourceforge.net/twincling/?rev=33&view=rev Author: saifi Date: 2009-07-31 15:18:33 +0000 (Fri, 31 Jul 2009) Log Message: ----------- committed a copy of Apache License 2.0 This file should be copied to the home directory of all Open Source projects executed at Twincling Technology Foundation, India. Added Paths: ----------- license/apache.license Added: license/apache.license =================================================================== --- license/apache.license (rev 0) +++ license/apache.license 2009-07-31 15:18:33 UTC (rev 33) @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-07-29 10:04:02
|
Revision: 32 http://twincling.svn.sourceforge.net/twincling/?rev=32&view=rev Author: saifi Date: 2009-07-29 10:03:41 +0000 (Wed, 29 Jul 2009) Log Message: ----------- A collection of licenses used from the pkgsrc.org CVS repository, goes to licenses/ directory Rulings on various legal cases and interpretation thereof will be placed in rulings/ directory. Added Paths: ----------- alan/legal/ alan/legal/licenses/ alan/legal/licenses/3proxy-0.5-license alan/legal/licenses/adobe-acrobat-license alan/legal/licenses/amap-license alan/legal/licenses/amiwm-license alan/legal/licenses/apache-1.1 alan/legal/licenses/apache-2.0 alan/legal/licenses/apple-admin-license alan/legal/licenses/apple-public-source-license alan/legal/licenses/artistic alan/legal/licenses/artistic-2.0 alan/legal/licenses/astrolog-license alan/legal/licenses/bcmfw-license alan/legal/licenses/bicom-license alan/legal/licenses/cardboard-schedule-license alan/legal/licenses/cdif-license alan/legal/licenses/citrix_ica-license alan/legal/licenses/corecode-license alan/legal/licenses/cpl-1.0 alan/legal/licenses/cucipop-license alan/legal/licenses/cyberbit-ttf-license alan/legal/licenses/dbz-ttf-license alan/legal/licenses/djb-nonlicense alan/legal/licenses/eclipse-license alan/legal/licenses/edcommon-license alan/legal/licenses/emiclock-license alan/legal/licenses/epsg-license alan/legal/licenses/expatobjc-license alan/legal/licenses/faces-license alan/legal/licenses/fep-license alan/legal/licenses/flash-license alan/legal/licenses/foiltex-license alan/legal/licenses/fprot-workstation-license alan/legal/licenses/fs-kit-license alan/legal/licenses/gate88-license alan/legal/licenses/gated-license alan/legal/licenses/generic-nonlicense alan/legal/licenses/glimpse-license alan/legal/licenses/gnu-fdl-v1.1 alan/legal/licenses/gnu-fdl-v1.2 alan/legal/licenses/gnu-fdl-v1.3 alan/legal/licenses/gnu-gpl-v2 alan/legal/licenses/gnu-gpl-v3 alan/legal/licenses/gnu-lgpl-v2 alan/legal/licenses/gnu-lgpl-v2.1 alan/legal/licenses/gnu-lgpl-v3 alan/legal/licenses/hptools-license alan/legal/licenses/hydra-license alan/legal/licenses/idea-license alan/legal/licenses/inlineegg-license alan/legal/licenses/intel-acpica-license alan/legal/licenses/intel-ipw-license alan/legal/licenses/jbuilder-jit-license alan/legal/licenses/jdk-license alan/legal/licenses/jdk13-license alan/legal/licenses/jpeg2ps-license alan/legal/licenses/kermit-license alan/legal/licenses/lame-license alan/legal/licenses/lc-license alan/legal/licenses/lha-license alan/legal/licenses/libFoundation-license alan/legal/licenses/majordomo-license alan/legal/licenses/mame-license alan/legal/licenses/miros alan/legal/licenses/mit alan/legal/licenses/modified-bsd alan/legal/licenses/molden-license alan/legal/licenses/morganstanley-license alan/legal/licenses/mozilla-trademark-license alan/legal/licenses/mpg123-license alan/legal/licenses/mpl-1.0 alan/legal/licenses/mpl-1.1 alan/legal/licenses/mplayer-codec-license alan/legal/licenses/ms-ttf-license alan/legal/licenses/mush-license alan/legal/licenses/nntpcache-license alan/legal/licenses/nntpclnt-license alan/legal/licenses/nvidia-license alan/legal/licenses/open-font-license alan/legal/licenses/openmotif-license alan/legal/licenses/opera-850-license alan/legal/licenses/opera-license alan/legal/licenses/original-bsd alan/legal/licenses/pcps-license alan/legal/licenses/phylip-license alan/legal/licenses/pine-license alan/legal/licenses/postfix-license alan/legal/licenses/povray-license alan/legal/licenses/public-domain alan/legal/licenses/pvs-license alan/legal/licenses/quake3arena-license alan/legal/licenses/quakedata-license alan/legal/licenses/radiance-license alan/legal/licenses/rar-license alan/legal/licenses/rsaref-license alan/legal/licenses/ruby-license alan/legal/licenses/sap-license alan/legal/licenses/scsl23-license alan/legal/licenses/scsl3-jini-tsa-1.0-license alan/legal/licenses/sendmail-license alan/legal/licenses/sendmail-open-source-license alan/legal/licenses/shorten-license alan/legal/licenses/simian-license alan/legal/licenses/skype-license alan/legal/licenses/softmaker-office-demo-license alan/legal/licenses/speedtouch-firmware-license alan/legal/licenses/spim-license alan/legal/licenses/srp_client-license alan/legal/licenses/ssh-communications-security-license alan/legal/licenses/su2-license alan/legal/licenses/sun-jdk14-license alan/legal/licenses/sun-jdk6-license alan/legal/licenses/sun-jre14-license alan/legal/licenses/sun-jre6-license alan/legal/licenses/sun-jrl-16-license alan/legal/licenses/sun-jsdk20-license alan/legal/licenses/sun-swing-license alan/legal/licenses/sysinfo-license alan/legal/licenses/szip-license alan/legal/licenses/tdir-license alan/legal/licenses/teamspeak-license-200700213 alan/legal/licenses/tin-license alan/legal/licenses/titrax-license alan/legal/licenses/trn-license alan/legal/licenses/ttd-pseudolicense alan/legal/licenses/unace-license alan/legal/licenses/unace-source-license alan/legal/licenses/unarj-license alan/legal/licenses/unrar-license alan/legal/licenses/uvscan-license alan/legal/licenses/velena-license alan/legal/licenses/vhf-public-license alan/legal/licenses/vim-license alan/legal/licenses/vmware-license alan/legal/licenses/xanim-license alan/legal/licenses/xdoom-license alan/legal/licenses/xephem-license alan/legal/licenses/xmill-license alan/legal/licenses/xv-license alan/legal/licenses/zoo-license alan/legal/licenses/zpl alan/legal/rulings/ Added: alan/legal/licenses/3proxy-0.5-license =================================================================== --- alan/legal/licenses/3proxy-0.5-license (rev 0) +++ alan/legal/licenses/3proxy-0.5-license 2009-07-29 10:03:41 UTC (rev 32) @@ -0,0 +1,31 @@ +3proxy 0.5 Public License Agreement + +This software provided "as is" without any guaranties or support. + +This software is FREEWARE. You can use it under terms of current version +of GNU GPL (General Public License) available from +http://www.gnu.org/licenses/gpl.txt or under conditions below: + +1. You are granted non-exclusive rights to compile, modify, use and +re-distribute this program. +2. In case this software is redistributed in binary form, source code +MUST be available for user for free. +3. In case this software redistributed embedded in hardware device or +pre-installed version of operation system and source code is not available, +documentation MUST refer to http://www.security.nnov.ru/ as a source of +software. +4. In case this software is modified or is used as a part of another project +license MUST NOT be modified. +5. Authors of this software MAY change terms of this license for future +versions of this product. + +(c) 2000-2006 by 3APA3A (3A...@se...) +(c) 2000-2006 by SECURITY.NNOV (http://www.security.nnov.ru) +(c) 2000-2006 by Vladimir Dubrovin (vl...@sa...) + + +This software uses: + RSA Data Security, Inc. MD4 Message-Digest Algorithm + RSA Data Security, Inc. MD5 Message-Digest Algorithm + +$Id: 3proxy-0.5-license,v 1.1 2008/02/27 16:14:43 apb Exp $ Added: alan/legal/licenses/adobe-acrobat-license =================================================================== --- alan/legal/licenses/adobe-acrobat-license (rev 0) +++ alan/legal/licenses/adobe-acrobat-license 2009-07-29 10:03:41 UTC (rev 32) @@ -0,0 +1,345 @@ +End user license agreement + +ADOBE SYSTEMS INCORPORATED + +FOR ADOBE(R) ACROBAT(R) READER(R) SOFTWARE. + +End User License Agreement + +Please return any accompanying registration form to receive +registration benefits. + +NOTICE TO USER: PLEASE READ THIS CONTRACT CAREFULLY. BY USING ALL +OR ANY PORTION OF THE SOFTWARE YOU ACCEPT ALL THE TERMS AND CONDITIONS +OF THIS AGREEMENT, INCLUDING, IN PARTICULAR THE LIMITATIONS ON: +USE CONTAINED IN SECTION 2; TRANSFERABILITY IN SECTION 4; WARRANTY +IN SECTION 6 AND 7; AND LIABILITY IN SECTION 8. YOU AGREE THAT THIS +AGREEMENT IS ENFORCEABLE LIKE ANY WRITTEN NEGOTIATED AGREEMENT +SIGNED BY YOU. IF YOU DO NOT AGREE, DO NOT USE THIS SOFTWARE. IF +YOU ACQUIRED THE SOFTWARE ON TANGIBLE MEDIA (e.g. CD) WITHOUT AN +OPPORTUNITY TO REVIEW THIS LICENSE AND YOU DO NOT ACCEPT THIS +AGREEMENT, YOU MAY OBTAIN A REFUND OF ANY AMOUNT YOU ORIGINALLY +PAID IF YOU: (A) DO NOT USE THE SOFTWARE AND (B) RETURN IT, WITH +PROOF OF PAYMENT, TO THE LOCATION FROM WHICH IT WAS OBTAINED WITHIN +THIRTY (30) DAYS OF THE PURCHASE DATE. + +1. Definitions. "Software" means (a) all of the contents of the +files, disk(s), CD-ROM(s) or other media with which this Agreement +is provided, including but not limited to (i) Adobe or third party +computer information or software; (ii) related explanatory written +materials or files ("Documentation"); and (iii) fonts; and (b) +upgrades, modified versions, updates, additions, and copies of the +Software, if any, licensed to you by Adobe (collectively, "Updates"). +"Use" or "Using" means to access, install, download, copy or +otherwise benefit from using the functionality of the Software in +accordance with the Documentation. "Permitted Number" means one +(1) unless otherwise indicated under a valid license (e.g. volume +license) granted by Adobe. "Computer" means an electronic device +that accepts information in digital or similar form and manipulates +it for a specific result based on a sequence of instructions. +"Adobe" means Adobe Systems Incorporated, a Delaware corporation, +345 Park Avenue, San Jose, California 95110, if subsection 10(a) +of this Agreement applies; otherwise it means Adobe Systems Software +Ireland Limited, Unit 3100, Lake Drive, City West Campus, Saggart +D24, Republic of Ireland, a company organized under the laws of +Ireland and an affiliate and licensee of Adobe Systems Incorporated. + +2. Software License. As long as you comply with the terms of this +End User License Agreement (this "Agreement"), Adobe grants to you +a non-exclusive license to Use the Software for the purposes +described in the Documentation. Some third party materials included +in the Software may be subject to other terms and conditions, which +are typically found in a "Read Me" file located near such materials. + +2.1. General Use. You may install and Use a copy of the Software +on your compatible computer, up to the Permitted Number of computers. + +2.2. Server Use and Distribution. + +2.2.1. Subject to the terms of this Agreement, you may install one +copy of such Software on a computer file server within your internal +network for the sole and exclusive purpose of using such Software +(from an unlimited number of client computers on your internal +network) via (a) the Network File System (NFS) for UNIX versions +of Acrobat Reader or (b) Windows Terminal Services. Unless otherwise +expressly permitted hereunder, no other server or network use of +the Software is permitted, including but not limited to using the +Software (i) either directly or through commands, data or instructions +from or to another computer or (ii) for internal network, internet +or web hosting services. + +2.2.2. For information on how to distribute Adobe Acrobat Reader +on tangible media or through an internal network please refer to +the sections entitled "How to Distribute Acrobat Reader" at +www.adobe.com. + +2.3. Backup Copy. You may make one backup copy of the Software, +provided your backup copy is not installed or used on any computer. +You may not transfer the rights to a backup copy unless you transfer +all rights in the Software as provided under Section 4. + +2.4. Home Use. You, as the primary user of the computer on which +the Software is installed, may also install the Software on one of +your home computers. However, the Software may not be used on your +home computer at the same time the Software on the primary computer +is being used. + +2.5 No Modification. You may customize or extend the functionality +of the installer for the Software as specifically allowed by +instructions found at www.adobe.com or http://partners.adobe.com +(e.g., installation of additional plug-in and help files). You may +not otherwise alter or modify the Software or create a new installer +for the Software. The Software is licensed and distributed by Adobe +for viewing, distributing and sharing PDF files. You are not +authorized to integrate or use the Software with any other software, +plug-in or enhancement which uses or relies upon the Software when +converting or transforming PDF files into other file formats (e.g., +a PDF file into a TIFF, JPEG, or SVG file). You are not authorized +to integrate or use the Software with any (a) Adobe Acrobat Reader +plug-in software not developed in accordance with the Adobe +Integration Key License Agreement or (b) other software or enhancement +that uses Inter Application Communication (IAC) to programmatically +interface with Adobe Acrobat Reader for the purpose of (i) creating +a file that contains data (e.g., an XML or comments file), (ii) +saving modifications to a PDF file or (iii) rendering a PDF file +in such other software's application window. + +3. Intellectual Property Rights. + +3.1 Title. The Software and any copies that you are authorized by +Adobe to make are the intellectual property of and are owned by +Adobe Systems Incorporated and its suppliers. The structure, +organization and code of the Software are the valuable trade secrets +and confidential information of Adobe Systems Incorporated and its +suppliers. The Software is protected by copyright, including without +limitation by United States Copyright Law, international treaty +provisions and applicable laws in the country in which it is being +used. You may not copy the Software, except as set forth in Section +2 ("Software License"). Any copies that you are permitted to make +pursuant to this Agreement must contain the same copyright and +other proprietary notices that appear on or in the Software. + +3.2 Reverse Engineer. Unless specifically and expressly permitted +by Adobe, you agree not to modify, adapt or translate the Software. +You also agree not to reverse engineer, decompile, disassemble or +otherwise attempt to discover the source code of the Software except +to the extent you may be expressly permitted to decompile under +applicable law, it is essential to do so in order to achieve +operability of the Software with another software program, and you +have first requested Adobe to provide the information necessary to +achieve such operability and Adobe has not made such information +available. Adobe has the right to impose reasonable conditions and +to request a reasonable fee before providing such information. Any +information supplied by Adobe or obtained by you, as permitted +hereunder, may only be used by you for the purpose described herein +and may not be disclosed to any third party or used to create any +software which is substantially similar to the expression of the +Software. Requests for information should be directed to the Adobe +Customer Support Department. + +3.3 Document Features. The Software may contain features and +functionality that appear disabled or "grayed out" (the "Document +Features"). The Document Features will only activate when opening +certain PDF documents that have been created using corresponding +enabling technology available from Adobe. You agree not to access, +or attempt to access, disabled Document Features or otherwise +circumvent the permissions that control activation of such Document +Features. + +3.4 Trademarks. Trademarks shall be used in accordance with accepted +trademark practice, including identification of trademarks owners' +names. Trademarks can only be used to identify printed output +produced by the Software and such use of any trademark does not +give you any rights of ownership in that trademark. + +3.5 Reservation. Except as expressly stated herein, this Agreement +does not grant you any intellectual property rights in the Software +and all rights not expressly granted herein are reserved by Adobe. + +4. Transfer. You may not, rent, lease, sublicense or authorize all +or any portion of the Software to be copied onto another user's +computer except as may be expressly permitted herein. You may, +however, transfer all your rights to Use the Software to another +person or legal entity provided that: (a) you also transfer each +this Agreement, the Software and all other software or hardware +bundled or pre-installed with the Software, including all copies, +Updates and prior versions, and all copies of font software converted +into other formats, to such person or entity; (b) you retain no +copies, including backups and copies stored on a computer; and (c) +the receiving party accepts the terms and conditions of this +Agreement and any other terms and conditions upon which you legally +purchased a license to the Software. Notwithstanding the foregoing, +you may not transfer education, pre-release, or not for resale +copies of the Software. + +5. Multiple Environment Software / Multiple Language Software / +Dual Media Software / Multiple Copies/ Bundles / Updates. If the +Software supports multiple platforms or languages, if you receive +the Software on multiple media, if you otherwise receive multiple +copies of the Software, or if you received the Software bundled +with other software, the total number of your computers on which +all versions of the Software are installed may not exceed the +Permitted Number. You may not, rent, lease, sublicense, lend or +transfer any versions or copies of such Software you do not Use. +If the Software is an Update to a previous version of the Software, +you must possess a valid license to such previous version in order +to Use the Update. You may continue to Use the previous version of +the Software on your computer after you receive the Update to assist +you in the transition to the Update, provided that: the Update and +the previous version are installed on the same computer; the previous +version or copies thereof are not transferred to another party or +computer unless all copies of the Update are also transferred to +such party or computer; and you acknowledge that any obligation +Adobe may have to support the previous version of the Software may +be ended upon availability of the Update. + +6. NO WARRANTY. The Software is being delivered to you "AS IS" and +Adobe makes no warranty as to its use or performance. ADOBE AND +ITS SUPPLIERS DO NOT AND CANNOT WARRANT THE PERFORMANCE OR RESULTS +YOU MAY OBTAIN BY USING THE SOFTWARE. EXCEPT FOR ANY WARRANTY, +CONDITION, REPRESENTATION OR TERM TO THE EXTENT TO WHICH THE SAME +CANNOT OR MAY NOT BE EXCLUDED OR LIMITED BY LAW APPLICABLE TO YOU +IN YOUR JURISDICTION, ADOBE AND ITS SUPPLIERS MAKE NO WARRANTIES +CONDITIONS, REPRESENTATIONS, OR TERMS (EXPRESS OR IMPLIED WHETHER +BY STATUTE, COMMON LAW, CUSTOM, USAGE OR OTHERWISE) AS TO ANY MATTER +INCLUDING WITHOUT LIMITATION NONINFRINGEMENT OF THIRD PARTY RIGHTS, +MERCHANTABILITY, INTEGRATION, SATISFACTORY QUALITY, OR FITNESS FOR +ANY PARTICULAR PURPOSE. + +7. Pre-release Product Additional Terms. If the product you have +received with this license is pre-commercial release or beta Software +("Pre-release Software"), then the following Section applies. To +the extent that any provision in this Section is in conflict with +any other term or condition in this Agreement, this Section shall +supercede such other term(s) and condition(s) with respect to the +Pre-release Software, but only to the extent necessary to resolve +the conflict. You acknowledge that the Software is a pre-release +version, does not represent final product from Adobe, and may +contain bugs, errors and other problems that could cause system or +other failures and data loss. Consequently, the Pre-release Software +is provided to you "AS-IS", and Adobe disclaims any warranty or +liability obligations to you of any kind. WHERE LEGALLY LIABILITY +CANNOT BE EXCLUDED FOR PRE-RELEASE SOFTWARE, BUT IT MAY BE LIMITED, +ADOBE'S LIABILITY AND THAT OF ITS SUPPLIERS SHALL BE LIMITED TO +THE SUM OF FIFTY DOLLARS (U.S. $50) IN TOTAL. You acknowledge that +Adobe has not promised or guaranteed to you that Pre-release Software +will be announced or made available to anyone in the future, that +Adobe has no express or implied obligation to you to announce or +introduce the Pre-release Software and that Adobe may not introduce +a product similar to or compatible with the Pre-release Software. +Accordingly, you acknowledge that any research or development that +you perform regarding the Pre-release Software or any product +associated with the Pre-release Software is done entirely at your +own risk. During the term of this Agreement, if requested by Adobe, +you will provide feedback to Adobe regarding testing and use of +the Pre-release Software, including error or bug reports. If you +have been provided the Pre-release Software pursuant to a separate +written agreement, such as the Adobe Systems Incorporated Serial +Agreement for Unreleased Products, your use of the Software is also +governed by such agreement. You agree that you may not and certify +that you will not sublicense, lease, loan, rent, or transfer the +Pre-release Software. Upon receipt of a later unreleased version +of the Pre-release Software or release by Adobe of a publicly +released commercial version of the Software, whether as a stand-alone +product or as part of a larger product, you agree to return or +destroy all earlier Pre-release Software received from Adobe and +to abide by the terms of the End User License Agreement for any +such later versions of the Pre-release Software. Notwithstanding +anything in this Section to the contrary, if you are located outside +the United States of America, you agree that you will return or +destroy all unreleased versions of the Pre-release Software within +thirty (30) days of the completion of your testing of the Software +when such date is earlier than the date for Adobe's first commercial +shipment of the publicly released (commercial) Software. + +8. LIMITATION OF LIABILITY. IN NO EVENT WILL ADOBE OR ITS SUPPLIERS +BE LIABLE TO YOU FOR ANY DAMAGES, CLAIMS OR COSTS WHATSOEVER OR +ANY CONSEQUENTIAL, INDIRECT, INCIDENTAL DAMAGES, OR ANY LOST PROFITS +OR LOST SAVINGS, EVEN IF AN ADOBE REPRESENTATIVE HAS BEEN ADVISED +OF THE POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS OR FOR +ANY CLAIM BY ANY THIRD PARTY. THE FOREGOING LIMITATIONS AND EXCLUSIONS +APPLY TO THE EXTENT PERMITTED BY APPLICABLE LAW IN YOUR JURISDICTION. +ADOBE'S AGGREGATE LIABILITY AND THAT OF ITS SUPPLIERS UNDER OR IN +CONNECTION WITH THIS AGREEMENT SHALL BE LIMITED TO THE AMOUNT PAID +FOR THE SOFTWARE, IF ANY. Nothing contained in this Agreement limits +Adobe's liability to you in the event of death or personal injury +resulting from Adobe's negligence or for the tort of deceit (fraud). +Adobe is acting on behalf of its suppliers for the purpose of +disclaiming, excluding and/or limiting obligations, warranties and +liability as provided in this Agreement, but in no other respects +and for no other purpose. For further information, please see the +jurisdiction specific information at the end of this Agreement, if +any, or contact Adobe's Customer Support Department. + +9. Export Rules. You agree that the Software will not be shipped, +transferred or exported into any country or used in any manner +prohibited by the United States Export Administration Act or any +other export laws, restrictions or regulations (collectively the +"Export Laws"). In addition, if the Software is identified as export +controlled items under the Export Laws, you represent and warrant +that you are not a citizen, or otherwise located within, an embargoed +nation (including without limitation Iran, Iraq, Syria, Sudan, +Libya, Cuba, North Korea, and Serbia) and that you are not otherwise +prohibited under the Export Laws from receiving the Software. All +rights to Use the Software are granted on condition that such rights +are forfeited if you fail to comply with the terms of this Agreement. + +10. Governing Law. This Agreement will be governed by and construed +in accordance with the substantive laws in force: (a) in the State +of California, if a license to the Software is obtained when you +are in the United States, Canada, or Mexico; or (b) in Japan, if +a license to the Software is obtained when you are in Japan, China, +Korea, or other Southeast Asian country where all official languages +are written in either an ideographic script (e.g., hanzi, kanji, +or hanja), and/or other script based upon or similar in structure +to an ideographic script, such as hangul or kana; or (c) Ireland, +if a license to the Software is purchased when you are in any other +jurisdiction not described above. The respective courts of Santa +Clara County, California when California law applies, Tokyo District +Court in Japan, when Japanese law applies, and the competent courts +of Ireland, when the law of Ireland applies, shall each have +non-exclusive jurisdiction over all disputes relating to this +Agreement. This Agreement will not be governed by the conflict of +law rules of any jurisdiction or the United Nations Convention on +Contracts for the International Sale of Goods, the application of +which is expressly excluded. + +12. Notice to U.S. Government End Users. The Software and Documentation +are "Commercial Items," as that term is defined at 48 C.F.R. S:2.101, +consisting of "Commercial Computer Software" and "Commercial Computer +Software Documentation," as such terms are used in 48 C.F.R. +S:12.212 or 48 C.F.R. S:227.7202, as applicable. Consistent with +48 C.F.R. S:12.212 or 48 C.F.R. S:S:227.7202-1 through 227.7202-4, +as applicable, the Commercial Computer Software and Commercial +Computer Software Documentation are being licensed to U.S. Government +end users (a) only as Commercial Items and (b) with only those +rights as are granted to all other end users pursuant to the terms +and conditions herein. Unpublished-rights reserved under the +copyright laws of the United States. Adobe Systems Incorporated, +345 Park Avenue, San Jose, CA 95110-2704, USA. For U.S. Government +End Users, Adobe agrees to comply with all applicable equal +opportunity laws including, if appropriate, the provisions of +Executive Order 11246, as amended, Section 402 of the Vietnam Era +Veterans Readjustment Assistance Act of 1974 (38 USC 4212), and +Section 503 of the Rehabilitation Act of 1973, as amended, and the +regulations at 41 CFR Parts 60-1 through 60-60, 60-250, and 60-741. +The affirmative action clause and regulations contained in the +preceding sentence shall be incorporated by reference in this +Agreement. + +13. Compliance with Licenses. If you are a business or organization, +you agree that upon request from Adobe or Adobe's authorized +representative, you will within thirty (30) days fully document +and certify that use of any and all Software at the time of the +request is in conformity with your valid licenses from Adobe. + +If you have any questions regarding this Agreement or if you wish +to request any information from Adobe please use the address and +contact information included with this product to contact the Adobe +office serving your jurisdiction. + +Adobe, Acrobat, and Acrobat Reader are registered trademarks of +Adobe Systems Incorporated in the United States and/or other +countries. + +Reader_WWEULA_English_05.15.02 Added: alan/legal/licenses/amap-license =================================================================== --- alan/legal/licenses/amap-license (rev 0) +++ alan/legal/licenses/amap-license 2009-07-29 10:03:41 UTC (rev 32) @@ -0,0 +1,29 @@ + + LICENCE FOR AMAP (all version) + by van Hauser <vh...@th...> + + +1. This software comes with no warrenty or promised features. If it works +for you - fine. It just comes "AS-IS", which means as a bunch of bits and bytes. + +2. Anyone may use this software and pass it on to other persons or companies +as long as it is not charged for! (except for a small transfer/medium fee) + +3. This tool may *NOT* be used for illegal purpose. Please check the law +which affects your doing. I will have got no liability for any damage etc. +done with this tool legally or illegaly. + +4. If this tool is used while providing a commercial service (e.g. as part +of a penetration test) the report has to state the tools name and version, +and additionally the authors (van Hauser and Dj RevMoon) and the distribution +homepage (http://www.thc.org). + +5. If this tool is used within a commercial tool (being called out of such a +tool or being incorporated), the report generated has to state the tools name +and version, and additionally the authors (van Hauser and Dj RevMoon) and the +distribution homepage (http://www.thc.org). A tool is "commercial" if it either +costs money to purchase it, has a license fee, and/or has costs for upgrades. +Additionally, a commercial version or license etc. must be made available to +the author free of charge. + +6. In all other respects the GPL 2.0 applies Added: alan/legal/licenses/amiwm-license =================================================================== --- alan/legal/licenses/amiwm-license (rev 0) +++ alan/legal/licenses/amiwm-license 2009-07-29 10:03:41 UTC (rev 32) @@ -0,0 +1,43 @@ + +amiwm is Copyright 1995-1998 by Marcus Comstedt <ma...@ly...> + +Amiga, AmigaOS and Workbench are registered trademarks of +AMIGA International Inc. + + +Generic amiwm License +===================== + +This license applies to whomever receives this file. It is a generic +license to use and distribute amiwm. If you want to acquire the software +under a different license, please contact the author. This license is +in part based on the XV license by John Bradley. + +Permission to copy and distribute amiwm in its entirety, for +non-commercial purposes, is hereby granted without fee, provided +that this license information and copyright notice appear in all copies. + +If you redistribute amiwm, the *entire* contents of this distribution +must be distributed, including the README, INSTALL and LICENSE files, +the sources, and the various scripts and Makefiles. + +You may distribute binaries built from the unmodified amiwm sources, for +non-commercial purposes, provided that the entire amiwm source distribution +is also included, as per the preceding paragraph. + +You may distribute amiwm as a component of an aggregate software +distribution, provided that no other condition of this license is violated. +In particular, the entire amiwm distribution must be included in the +aggregate software distribution. + +Unrestricted use of the software is also hereby granted without fee. +Distribution and modification of source or binaries are not considered use +and explicitly covered by other paragraphs of this license. + +The software may be modified for your own purposes, but modified versions +may not be distributed without prior consent of the author. You may +freely distribute patches against the unmodified source code. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the author be held liable for any damages +arising from the use of this software. Added: alan/legal/licenses/apache-1.1 =================================================================== --- alan/legal/licenses/apache-1.1 (rev 0) +++ alan/legal/licenses/apache-1.1 2009-07-29 10:03:41 UTC (rev 32) @@ -0,0 +1,58 @@ +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2000 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact ap...@ap.... + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + * + * Portions of this software are based upon public domain software + * originally written at the National Center for Supercomputing Applications, + * University of Illinois, Urbana-Champaign. + */ + Added: alan/legal/licenses/apache-2.0 =================================================================== --- alan/legal/licenses/apache-2.0 (rev 0) +++ alan/legal/licenses/apache-2.0 2009-07-29 10:03:41 UTC (rev 32) @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. Added: alan/legal/licenses/apple-admin-license =================================================================== --- alan/legal/licenses/apple-admin-license (rev 0) +++ alan/legal/licenses/apple-admin-license 2009-07-29 10:03:41 UTC (rev 32) @@ -0,0 +1,173 @@ +ENGLISH + +Apple Computer, Inc. +Administration Software License Agreement + +PLEASE READ THIS SOFTWARE LICENSE AGREEMENT ("LICENSE") CAREFULLY BEFORE USING +THE SOFTWARE. BY USING THE SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE TERMS +OF THIS LICENSE. IF YOU ARE ACCESSING THE SOFTWARE ELECTRONICALLY, SIGNIFY +YOUR AGREEMENT TO BE BOUND BY THE TERMS OF THIS LICENSE BY CLICKING THE +"AGREE/ACCEPT" BUTTON. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE, DO +NOT USE THE SOFWARE AND (IF APPLICABLE) RETURN THE APPLE SOFTWARE TO THE PLACE +WHERE YOU OBTAINED IT FOR A REFUND OR, IF THE SOFTWARE WAS ACCESSED +ELECTRONICALLY, CLICK "DISAGREE/DECLINE". + +IMPORTANT NOTE: To the extent this software may be used to reproduce +materials, it is licensed to you only for reproduction of materials you are +authorized or legally permitted to reproduce. + +1. General. The administration software and any related documentation, and any +fonts accompanying this License whether on disk, in read only memory, or on +any other media (collectively, the Apple Software ) are licensed, not sold, +to you by Apple Computer, Inc. ( Apple ) for use only under the terms of this +License, and Apple reserves all rights not expressly granted to you. The +licenses granted herein are limited to Apple's and its licensors' intellectual +property rights in the Apple Software and do not include any other patents or +intellectual property rights. You own the media on which the Apple Software is +recorded but Apple and/or Apple's licensor(s) retain title to the Apple +Software. The Apple Software in this package and any copies which this License +authorizes you to make are subject to this License. The terms of this License +will govern any software upgrades provided by Apple that replace and/or +supplement the original Apple Software product, unless such upgrade is +accompanied by a separate license in which case the terms of that license will +govern. + +2. Permitted License Uses and Restrictions. This License allows you to install +and copy the Apple Software for use on multiple computers on a network to +monitor and manage your storage device. You may make multiple copies of the +Apple Software in machine-readable form provided that such copies include all +copyright or other proprietary notices contained on the original and that such +copies are used for the purpose as specified above.. Except as and only to the +extent expressly permitted in this License or by applicable law, you may not +copy, decompile, reverse engineer, disassemble, modify, or create derivative +works of the Apple Software or any part thereof. THE APPLE SOFTWARE IS NOT +INTENDED FOR USE IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION +OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL SYSTEMS, LIFE SUPPORT MACHINES +OR OTHER EQUIPMENT IN WHICH THE FAILURE OF THE APPLE SOFTWARE COULD LEAD TO +DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE. + +3. Transfer. You may not rent, lease, lend, redistribute or sublicense the +Apple Software. You may, however, make a one-time permanent transfer of all of +your license rights to the Apple Software (in its original form as provided by +Apple) to another party, provided that: (a) the transfer must include all of +the Apple Software, including all its component parts, original media, printed +materials and this License; (b) you do not retain any copies of the Apple +Software, full or partial, including copies stored on a computer or other +storage device; and (c) the party receiving the Apple Software reads and +agrees to accept the terms and conditions of this License. NFR (Not for +Resale) Copies: Notwithstanding other sections of this License, Apple Software +labeled or otherwise provided to you on a promotional basis may only be used +for demonstration, testing and evaluation purposes and may not be resold or +transferred. + +4. Termination. This License is effective until terminated. Your rights under +this License will terminate automatically without notice from Apple if you +fail to comply with any term(s) of this License. Upon the termination of this +License, you shall cease all use of the Apple Software and destroy all copies, +full or partial, of the Apple Software. + +5. Limited Warranty on Media. Apple warrants the media on which the Apple +Software is recorded and delivered by Apple to be free from defects in +materials and workmanship under normal use for a period of ninety (90) days +from the date of original retail purchase. Your exclusive remedy under this +Section shall be, at Apple s option, a refund of the purchase price of the +product containing the Apple Software or replacement of the Apple Software +which is returned to Apple or an Apple authorized representative with a copy +of the receipt. THIS LIMITED WARRANTY AND ANY IMPLIED WARRANTIES ON THE MEDIA +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, OF +SATISFACTORY QUALITY, AND OF FITNESS FOR A PARTICULAR PURPOSE, ARE LIMITED IN +DURATION TO NINETY (90) DAYS FROM THE DATE OF ORIGINAL RETAIL PURCHASE. SOME +JURISDICTIONS DO NOT ALLOW LIMITATIONS ON HOW LONG AN IMPLIED WARRANTY LASTS, +SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. THE LIMITED WARRANTY SET FORTH +HEREIN IS THE ONLY WARRANTY MADE TO YOU AND IS PROVIDED IN LIEU OF ANY OTHER +WARRANTIES (IF ANY) CREATED BY ANY DOCUMENTATION, PACKAGING OR OTHERWISE. THIS +LIMITED WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS, AND YOU MAY ALSO HAVE OTHER +RIGHTS WHICH VARY BY JURISDICTION. + +6. Disclaimer of Warranties. YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT USE OF +THE APPLE SOFTWARE IS AT YOUR SOLE RISK AND THAT THE ENTIRE RISK AS TO +SATISFACTORY QUALITY, PERFORMANCE, ACCURACY AND EFFORT IS WITH YOU. EXCEPT FOR +THE LIMITED WARRANTY ON MEDIA SET FORTH ABOVE AND TO THE MAXIMUM EXTENT +PERMITTED BY APPLICABLE LAW, THE APPLE SOFTWARE IS PROVIDED "AS IS", WITH ALL +FAULTS AND WITHOUT WARRANTY OF ANY KIND, AND APPLE AND APPLE'S LICENSORS +(COLLECTIVELY REFERRED TO AS "APPLE" FOR THE PURPOSES OF SECTIONS 6 AND 7) +HEREBY DISCLAIM ALL WARRANTIES AND CONDITIONS WITH RESPECT TO THE APPLE +SOFTWARE, EITHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF SATISFACTORY +QUALITY, OF FITNESS FOR APARTICULAR PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, +AND NON-INFRINGEMENT OF THIRD PARTY RIGHTS. APPLE DOES NOT WARRANT AGAINST +INTERFERENCE WITH YOUR ENJOYMENT OF THE APPLE SOFTWARE, THAT THE FUNCTIONS +CONTAINED IN THE APPLE SOFTWARE WILL MEET YOUR REQUIREMENTS, THAT THE +OPERATION OF THE APPLE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT +DEFECTS IN THE APPLE SOFTWARE WILL BE CORRECTED. NO ORAL OR WRITTEN +INFORMATION OR ADVICE GIVEN BY APPLE OR AN APPLE AUTHORIZED REPRESENTATIVE +SHALL CREATE A WARRANTY. SHOULD THE APPLE SOFTWARE PROVE DEFECTIVE, YOU ASSUME +THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. SOME +JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES OR LIMITATIONS +ON APPLICABLE STATUTORY RIGHTS OF A CONSUMER, SO THE ABOVE EXCLUSION AND +LIMITATIONS MAY NOT APPLY TO YOU. + +7. Limitation of Liability. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT +SHALL APPLE BE LIABLE FOR PERSONAL INJURY, OR ANY INCIDENTAL, SPECIAL, +INDIRECT OR CONSEQUENTIAL DAMAGES WHATSOEVER, INCLUDING, WITHOUT LIMITATION, +DAMAGES FOR LOSS OF PROFITS, LOSS OF DATA, BUSINESS INTERRUPTION OR ANY OTHER +COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR RELATED TO YOUR USE OR +INABILITY TO USE THE SERVER SOFTWARE, HOWEVER CAUSED, REGARDLESS OF THE THEORY +OF LIABILITY (CONTRACT, TORT OR OTHERWISE) AND EVEN IF APPLE HAS BEEN ADVISED +OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE +LIMITATION OF LIABILITY FOR PERSONAL INJURY, OR OF INCIDENTAL OR CONSEQUENTIAL +DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. In no event shall Apple's +total liability to you for all damages (other than as may be required by +applicable law in cases involving personal injury) exceed the amount of fifty +dollars ($50.00). The foregoing limitations will apply even if the above +stated remedy fails of its essential purpose. + +8. Export Law Assurances. You may not use or otherwise export or reexport the +Apple Software except as authorized by United States law and the laws of the +jurisdiction in which the Apple Software was obtained. In particular, but +without limitation, the Apple Software may not be exported or re-exported (a) +into (or to a national or resident of) any U.S. embargoed countries (currently +Cuba, Iran, Iraq, Libya, North Korea, Sudan, and Syria) or (b) to anyone on +the U.S. Treasury Department's list of Specially Designated Nationals or the +U.S. Department of Commerce Denied Person s List or Entity List. By using the +Apple Software, you represent and warrant that you are not located in, under +control of, or a national or resident of any such country or on any such list. + +9. Government End Users. The Apple Software and related documentation are +"Commercial Items", as that term is defined at 48 C.F.R. \xA72.101, consisting of +"Commercial Computer Software" and "Commercial Computer Software +Documentation", as such terms are used in 48 C.F.R. \xA712.212 or 48 C.F.R. +\xA7227.7202, as applicable. Consistent with 48 C.F.R. \xA712.212 or 48 C.F.R. +\xA7227.7202-1through 227.7202-4, as applicable, the Commercial Computer Software +and Commercial Computer Software Documentation are being licensed to U.S. +Government end users (a) only as Commercial Items and (b) with only those +rights as are granted to all other end users pursuant to the terms and +conditions herein. Unpublished-rights reserved under the copyright laws of the +United States. + +10. Controlling Law and Severability. This License will be governed by and +construed in accordance with the laws of the State of California, as applied +to agreements entered into and to be performed entirely within California +between California residents. This License shall not be governed by the United +Nations Convention on Contracts for the International Sale of Goods, the +application of which is expressly excluded. If for any reason a court of +competent jurisdiction finds any provision, or portion thereof, to be +unenforceable, the remainder of this License shall continue in full force and +effect. + +11. Complete Agreement; Governing Language. This License constitutes the +entire agreement between the parties with respect to the use of the Server +Software licensed hereunder and supersedes all prior or contemporaneous +understandings regarding such subject matter. No amendment to or modification +of this License will be binding unless in writing and signed by Apple. Any +translation of this License is done for local requirements and in the event of +a dispute between the English and any non-English versions, the English +version of this License shall govern. + +12. MPEG-2 Notice. To the extent that the Apple Software contains MPEG-2 +functionality, the following provision applies: ANY USE OF THIS PRODUCT OTHER +THAN CONSUMER PERSONAL USE IN ANY MANNER THAT COMPLIES WITH THE MPEG-2 +STANDARD FOR ENCODING VIDEO INFORMATION FOR PACKAGED MEDIA IS EXPRESSLY +PROHIBITED WITHOUT A LICENSE UNDER APPLICABLE PATENTS IN THE MPEG-2 PATENT +PORTFOLIO, WHICH LICENSE IS AVAILABLE FROM MPEG LA, L.L.C, 250 STEELE STREET, +SUITE 300, DENVER, COLORADO 80206. EA0169 Added: alan/legal/licenses/apple-public-source-license =================================================================== --- alan/legal/licenses/apple-public-source-license (rev 0) +++ alan/legal/licenses/apple-public-source-license 2009-07-29 10:03:41 UTC (rev 32) @@ -0,0 +1,367 @@ +APPLE PUBLIC SOURCE LICENSE +Version 2.0 - August 6, 2003 + +Please read this License carefully before downloading this software. +By downloading or using this software, you are agreeing to be bound by +the terms of this License. If you do not or cannot agree to the terms +of this License, please do not download or use the software. + +1. General; Definitions. This License applies to any program or other +work which Apple Computer, Inc. ("Apple") makes publicly available and +which contains a notice placed by Apple identifying such program or +work as "Original Code" and stating that it is subject to the terms of +this Apple Public Source License version 2.0 ("License"). As used in +this License: + +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is +the grantor of rights, (i) claims of patents that are now or hereafter +acquired, owned by or assigned to Apple and (ii) that cover subject +matter contained in the Original Code, but only to the extent +necessary to use, reproduce and/or distribute the Original Code +without infringement; and (b) in the case where You are the grantor of +rights, (i) claims of patents that are now or hereafter acquired, +owned by or assigned to You and (ii) that cover subject matter in Your +Modifications, taken alone or in combination with Original Code. + +1.2 "Contributor" means any person or entity that creates or +contributes to the creation of Modifications. + +1.3 "Covered Code" means the Original Code, Modifications, the +combination of Original Code and any Modifications, and/or any +respective portions thereof. + +1.4 "Externally Deploy" means: (a) to sublicense, distribute or +otherwise make Covered Code available, directly or indirectly, to +anyone other than You; ... [truncated message content] |
From: Twincling S. C. N. <twi...@li...> - 2009-07-15 18:14:33
|
Revision: 31 http://twincling.svn.sourceforge.net/twincling/?rev=31&view=rev Author: saifi Date: 2009-07-15 18:14:12 +0000 (Wed, 15 Jul 2009) Log Message: ----------- Unity project description and presentation added. Unity is common User Experience infrastructure project. Added Paths: ----------- unity/ unity/docs/ unity/docs/unity.odp unity/docs/unity.txt Added: unity/docs/unity.odp =================================================================== (Binary files differ) Property changes on: unity/docs/unity.odp ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: unity/docs/unity.txt =================================================================== --- unity/docs/unity.txt (rev 0) +++ unity/docs/unity.txt 2009-07-15 18:14:12 UTC (rev 31) @@ -0,0 +1,20 @@ +Twincling Unity project + +Unity project goal is to create a common 'Twincling User +eXperience" infrastructure. + +Whether we develop Web UI, desktop UI or mobile UI, the +application interface experience, the cues, the usage patterns, +and the flows must be the same. + +So if a user looks at Protangler, gongtong, Triage or Tacos or +any Twincling project interface for that matter, (s)he should be +able to see the unity of approach and expect that a link or a +notification or a flow or a cue means the same. + +This is a noble but tough goal and creative exploration involves +seeking what can be removed and simplified rather than added. + +First artifact that is under spotlight is + . the Home page + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-07-04 10:39:56
|
Revision: 30 http://twincling.svn.sourceforge.net/twincling/?rev=30&view=rev Author: saifi Date: 2009-07-04 10:39:50 +0000 (Sat, 04 Jul 2009) Log Message: ----------- fixed template bugs. Modified Paths: -------------- support/templates/project Modified: support/templates/project =================================================================== --- support/templates/project 2009-07-04 03:19:13 UTC (rev 29) +++ support/templates/project 2009-07-04 10:39:50 UTC (rev 30) @@ -116,7 +116,7 @@ <strong>Mailing Lists</strong> <br /> -<a href="https://lists.sourceforge.net/lists/listinfo/twincling-">twincling-PRJ-lowercase</a> +<a href="https://lists.sourceforge.net/lists/listinfo/twincling-PRJ">twincling-PRJ-lowercase</a> <br /> <a href="https://lists.sourceforge.net/lists/listinfo/twincling-engg">twincling-engg</a> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-07-04 03:19:31
|
Revision: 29 http://twincling.svn.sourceforge.net/twincling/?rev=29&view=rev Author: saifi Date: 2009-07-04 03:19:13 +0000 (Sat, 04 Jul 2009) Log Message: ----------- added project container directories. Added Paths: ----------- dmod/ gongtong/ jrs/ protangler/ qin/ shine/ tacos/ triage/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-07-03 17:12:13
|
Revision: 28 http://twincling.svn.sourceforge.net/twincling/?rev=28&view=rev Author: saifi Date: 2009-07-03 17:11:58 +0000 (Fri, 03 Jul 2009) Log Message: ----------- 1. updated the template with PRJ entries 2. added a separate chapter for Schedule 3. All chapters need to have PRJ prefix for SEO Modified Paths: -------------- support/templates/project Modified: support/templates/project =================================================================== --- support/templates/project 2009-07-02 15:32:42 UTC (rev 27) +++ support/templates/project 2009-07-03 17:11:58 UTC (rev 28) @@ -109,7 +109,6 @@ <br /> <a href="http://twincling.org/forum/PRJ-ID">http://twincling.org/forum/PRJ-nid</a> -<br /> <br /> </p> @@ -175,15 +174,18 @@ Add the following chapters in the order shown. The indented entries are the sections of the chapter at 'h3' level. +PRJ Requirements Specification +PRJ Use cases +PRJ Detailed Design +PRJ Schedule +PRJ Developer Guide +PRJ User Guide + Requirements Specification Customer needs / pain points Vision / Goals Market pulse Feature List - Schedule - Iteration plan - Issues - Blockers Use cases Primary Scenarios @@ -197,6 +199,7 @@ Detailed Design Components Interfaces + Modules Types, Mixins, Traits Deployment Diagrams @@ -205,12 +208,18 @@ Test Cases Error/Exception handling +Schedule + Iteration plan + Issues + Blockers + Developer Guide Handbook Architecture Protocols Behaviours Interfaces + Modules Types, Traits Plugins How to build software This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-07-02 15:32:45
|
Revision: 27 http://twincling.svn.sourceforge.net/twincling/?rev=27&view=rev Author: saifi Date: 2009-07-02 15:32:42 +0000 (Thu, 02 Jul 2009) Log Message: ----------- template updated with modifications to fix Drupal issues. . removed HTML comments . removed unused paragraphs . annotated casing requirements for PRJ string Modified Paths: -------------- support/templates/project Modified: support/templates/project =================================================================== --- support/templates/project 2009-07-02 15:18:52 UTC (rev 26) +++ support/templates/project 2009-07-02 15:32:42 UTC (rev 27) @@ -10,14 +10,9 @@ <tr> -<!-- content section begin --> <td valign="top" style="border-right:solid silver 1px;"> <p> - -</p> - -<p> <strong>Introduction (what is PRJ ?)</strong> <br /> @@ -44,16 +39,11 @@ </p> </td> -<!-- content section end --> -<!-- right section --> + <td valign="top" width="33%"> <p> - -</p> - -<p> <strong>Project</strong> <br /> Status: Active @@ -83,18 +73,15 @@ <strong>Source code (view)</strong> <br /> -<a href="http://twincling.svn.sourceforge.net/viewvc/twincling/PRJ/">PRJ SVN view</a> +<a href="http://twincling.svn.sourceforge.net/viewvc/twincling/PRJ-lowercase/">PRJ SVN view</a> <br /> </p> <p> <strong>Source code (checkout)</strong> -<br /> +<br /> <code> - -URL: /svnroot/twincling/PRJ/ -<br /> - +URL: /svnroot/twincling/PRJ-lowercase/ svn checkout $URL </code> <br /> @@ -121,7 +108,7 @@ <strong>Discussion Forum</strong> <br /> -<a href="http://twincling.org/forum/PRJ-ID">http://twincling.org/forum/PRJ-ID</a> +<a href="http://twincling.org/forum/PRJ-ID">http://twincling.org/forum/PRJ-nid</a> <br /> <br /> </p> @@ -130,10 +117,10 @@ <strong>Mailing Lists</strong> <br /> -<a href="https://lists.sourceforge.net/lists/listinfo/twincling-">twincling-PRJ</a> +<a href="https://lists.sourceforge.net/lists/listinfo/twincling-">twincling-PRJ-lowercase</a> <br /> -<a href="https://lists.sourceforge.net/lists/listinfo/twincling-engg">twincling-ENGG</a> +<a href="https://lists.sourceforge.net/lists/listinfo/twincling-engg">twincling-engg</a> <br /> </p> @@ -147,7 +134,7 @@ <p> <strong>Team Blogs</strong> -<br /> <a href="http://www.twincling.org/taxonomy/term/PRJ-ID">Aggregator</a> +<br /> <a href="http://www.twincling.org/taxonomy/term/PRJ-nid">Aggregator</a> <br /> </p> @@ -166,10 +153,6 @@ <br /> </p> -<p> -<br /> -</p> - </td> </tr> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-07-02 15:19:01
|
Revision: 26 http://twincling.svn.sourceforge.net/twincling/?rev=26&view=rev Author: saifi Date: 2009-07-02 15:18:52 +0000 (Thu, 02 Jul 2009) Log Message: ----------- container directory for Twincling ALAN project. Added Paths: ----------- alan/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-07-01 20:16:29
|
Revision: 25 http://twincling.svn.sourceforge.net/twincling/?rev=25&view=rev Author: saifi Date: 2009-07-01 20:16:13 +0000 (Wed, 01 Jul 2009) Log Message: ----------- project website template. With a well defined schema for layout and documentation, the template will help ensure consistency across the various projects hosted at twincling.org Added Paths: ----------- support/templates/project Added: support/templates/project =================================================================== --- support/templates/project (rev 0) +++ support/templates/project 2009-07-01 20:16:13 UTC (rev 25) @@ -0,0 +1,251 @@ +<p> +<table width="100%" border="0"> + + +<tr> +<td align="left" valign="top" colspan="2"> +<img src="http://www.twincling.org/files/PRJ.png"> +</td> +</tr> + +<tr> + +<!-- content section begin --> +<td valign="top" style="border-right:solid silver 1px;"> + +<p> + +</p> + +<p> +<strong>Introduction (what is PRJ ?)</strong> +<br /> + + +<br /> +</p> + +<p> +<strong>Value Proposition (why PRJ ?)</strong> +<br /> + + +<br /> +</p> + +<p> +<strong>Latest News</strong> +<br /> +<ul> +<li>yyyy-mm-dd news-item</li> +</ul> + +<br /> +</p> + +</td> +<!-- content section end --> + +<!-- right section --> +<td valign="top" width="33%"> + +<p> + +</p> + +<p> +<strong>Project</strong> +<br /> + Status: Active +<br /> + Init date: 2009-MM-DD +<br /> + Fini date: - +<br /> +</p> + +<p> +<strong>License</strong> +<br /> <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache Software License V 2.0</a> +<br /> <a href="http://twincling.org/node/277">Software License information</a></li> +<br /> <a href="http://www.twincling.org/node/428">Contributor License Agreement</a></li> +<br /> +</p> + +<p> +<strong>Tags</strong> +<br /> + PRJ +<br /> +</p> + +<p> +<strong>Source code (view)</strong> +<br /> + +<a href="http://twincling.svn.sourceforge.net/viewvc/twincling/PRJ/">PRJ SVN view</a> +<br /> +</p> + +<p> +<strong>Source code (checkout)</strong> +<br /> +<code> + +URL: /svnroot/twincling/PRJ/ +<br /> + +svn checkout $URL +</code> +<br /> +</p> + +<p> +<strong>Issue Tracker</strong> +<br /> + +<a href="http://www.twincling.org/project/issues?projects=PRJ">View issues</a> +<br /> +</p> + +<p> +<strong>IRC</strong> +<br /> + <strong>#twincling</strong><br /> + <strong>#twincling-PRJ</strong><br /> + <a href="http://www.twincling.org/irc">http://twincling.org/irc</a> +<br /> +</p> + +<p> +<strong>Discussion Forum</strong> +<br /> + +<a href="http://twincling.org/forum/PRJ-ID">http://twincling.org/forum/PRJ-ID</a> +<br /> +<br /> +</p> + +<p> +<strong>Mailing Lists</strong> +<br /> + +<a href="https://lists.sourceforge.net/lists/listinfo/twincling-">twincling-PRJ</a> +<br /> + +<a href="https://lists.sourceforge.net/lists/listinfo/twincling-engg">twincling-ENGG</a> +<br /> +</p> + +<p> +<strong>Contact</strong> +<br /> + +<a href="http://www.twincling.org/contact">http://twincling.org/contact</a> +<br /> +</p> + +<p> +<strong>Team Blogs</strong> +<br /> <a href="http://www.twincling.org/taxonomy/term/PRJ-ID">Aggregator</a> +<br /> +</p> + +<p> +<strong>Team members</strong> +<br /> +<br /> +<br /> +</p> + +<p> +<strong>How to join ?</strong> +<br /> Read about <a href="http://twincling.org/node/299">Twincling culture</a>. +<br /> Apply with details, cf. <a href="http://www.twincling.org/node/474">Notification</a> +<br /> Meet people as per IRC <a href="http://www.twincling.org/node/485">Schedule</a> +<br /> +</p> + +<p> +<br /> +</p> + +</td> +</tr> + + +<tr> +<td colspan="2" valign="top" style="font-size:small;"> +Legal Notice: The <a href="http://www.twincling.org/">Twincling</a> Open Source <a href="http://sourceforge.net/projects/twincling">project</a> and its artifacts including but not limited to schematic drawings, documentation, software source code are protected under the <a href="http://www.education.nic.in/CprAct.pdf">Indian Copyright Act, 1957</a>. The copyright notice for translation unit is listed prominently in the Twincling <a href="https://twincling.svn.sourceforge.net/svnroot/twincling/license/">public subversion repository</a>. Your usage of software source code by way of modification requires you to <strong>retain the copyright notice</strong> in each translation unit. Copyright infringment is a criminal offence, under Section 63 of the Indian Copyright Act. All disputes are subject to the courts of Hyderabad/Secunderabad, state of Andhra Pradesh, Republic of India. +</td> +</tr> + +</table> +</p> + +<p> +<strong>PRJ project documentation</strong> +</p> + +<pre> +Twincling Project creator Notes +Add the following chapters in the order shown. +The indented entries are the sections of the chapter at 'h3' level. + +Requirements Specification + Customer needs / pain points + Vision / Goals + Market pulse + Feature List + Schedule + Iteration plan + Issues + Blockers + +Use cases + Primary Scenarios + Secondary Scenarios + Exception Scenarios + Work flows + Sketches + UI mockups + Photo notes + +Detailed Design + Components + Interfaces + Types, Mixins, Traits + Deployment + Diagrams + Sequence + concurrency + Test Cases + Error/Exception handling + +Developer Guide + Handbook + Architecture + Protocols + Behaviours + Interfaces + Types, Traits + Plugins + How to build software + How to contribute patches + +User Guide + Mind map + Use case + Workflows + Screen shots + How you can help the project + Market + Sponsor + Evangelize + Evaluate + Promote + Add Link + How to make feature requests + How to report defects + +</pre> Property changes on: support/templates/project ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-06-24 14:22:25
|
Revision: 23 http://twincling.svn.sourceforge.net/twincling/?rev=23&view=rev Author: saifi Date: 2009-06-24 13:58:35 +0000 (Wed, 24 Jun 2009) Log Message: ----------- 1. appended year 2009 to license files. Modified Paths: -------------- license/c.license license/cpp.license license/erlang.license license/javascript.license license/php.license license/ruby.license license/shell.license license/sql.license license/text.license Modified: license/c.license =================================================================== --- license/c.license 2009-04-11 03:59:23 UTC (rev 22) +++ license/c.license 2009-06-24 13:58:35 UTC (rev 23) @@ -1,5 +1,5 @@ /** - * Copyright (C) 2005,2006,2007,2008. + * Copyright (C) 2005,2006,2007,2008,2009. * Twincling Technology Foundation. * Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ * All rights reserved. @@ -16,4 +16,4 @@ * express or implied. See the License for the specific language * governing permissions and limitations under the License. */ - \ No newline at end of file + Modified: license/cpp.license =================================================================== --- license/cpp.license 2009-04-11 03:59:23 UTC (rev 22) +++ license/cpp.license 2009-06-24 13:58:35 UTC (rev 23) @@ -1,5 +1,5 @@ /** - * Copyright (C) 2005,2006,2007,2008. + * Copyright (C) 2005,2006,2007,2008,2009. * Twincling Technology Foundation. * Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ * All rights reserved. @@ -16,4 +16,4 @@ * express or implied. See the License for the specific language * governing permissions and limitations under the License. */ - \ No newline at end of file + Modified: license/erlang.license =================================================================== --- license/erlang.license 2009-04-11 03:59:23 UTC (rev 22) +++ license/erlang.license 2009-06-24 13:58:35 UTC (rev 23) @@ -1,6 +1,6 @@ %%%% %% -%% Copyright (C) 2005,2006,2007,2008. +%% Copyright (C) 2005,2006,2007,2008,2009. %% Twincling Technology Foundation. %% Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ %% All rights reserved. Modified: license/javascript.license =================================================================== --- license/javascript.license 2009-04-11 03:59:23 UTC (rev 22) +++ license/javascript.license 2009-06-24 13:58:35 UTC (rev 23) @@ -1,5 +1,5 @@ /** - * Copyright (C) 2005,2006,2007,2008. + * Copyright (C) 2005,2006,2007,2008,2009. * Twincling Technology Foundation. * Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ * All rights reserved. @@ -16,4 +16,4 @@ * express or implied. See the License for the specific language * governing permissions and limitations under the License. */ - \ No newline at end of file + Modified: license/php.license =================================================================== --- license/php.license 2009-04-11 03:59:23 UTC (rev 22) +++ license/php.license 2009-06-24 13:58:35 UTC (rev 23) @@ -1,5 +1,5 @@ /** - * Copyright (C) 2005,2006,2007,2008. + * Copyright (C) 2005,2006,2007,2008,2009. * Twincling Technology Foundation. * Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ * All rights reserved. @@ -16,4 +16,4 @@ * express or implied. See the License for the specific language * governing permissions and limitations under the License. */ - \ No newline at end of file + Modified: license/ruby.license =================================================================== --- license/ruby.license 2009-04-11 03:59:23 UTC (rev 22) +++ license/ruby.license 2009-06-24 13:58:35 UTC (rev 23) @@ -1,6 +1,6 @@ ## # -# Copyright (C) 2005,2006,2007,2008. +# Copyright (C) 2005,2006,2007,2008,2009. # Twincling Technology Foundation. # Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ # All rights reserved. Modified: license/shell.license =================================================================== --- license/shell.license 2009-04-11 03:59:23 UTC (rev 22) +++ license/shell.license 2009-06-24 13:58:35 UTC (rev 23) @@ -1,6 +1,6 @@ #! /bin/bash # -# Copyright (C) 2005,2006,2007,2008. +# Copyright (C) 2005,2006,2007,2008,2009. # Twincling Technology Foundation. # Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ # All rights reserved. @@ -17,4 +17,4 @@ # express or implied. See the License for the specific language # governing permissions and limitations under the License. # -## \ No newline at end of file +## Modified: license/sql.license =================================================================== --- license/sql.license 2009-04-11 03:59:23 UTC (rev 22) +++ license/sql.license 2009-06-24 13:58:35 UTC (rev 23) @@ -1,5 +1,5 @@ -- -- --- Copyright (C) 2005,2006,2007,2008. +-- Copyright (C) 2005,2006,2007,2008,2009. -- Twincling Technology Foundation. -- Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ -- All rights reserved. Modified: license/text.license =================================================================== --- license/text.license 2009-04-11 03:59:23 UTC (rev 22) +++ license/text.license 2009-06-24 13:58:35 UTC (rev 23) @@ -1,4 +1,4 @@ - Copyright (C) 2005,2006,2007,2008. + Copyright (C) 2005,2006,2007,2008,2009. Twincling Technology Foundation. Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ All rights reserved. @@ -15,4 +15,4 @@ express or implied. See the License for the specific language governing permissions and limitations under the License. - \ No newline at end of file + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-06-24 14:18:49
|
Revision: 24 http://twincling.svn.sourceforge.net/twincling/?rev=24&view=rev Author: saifi Date: 2009-06-24 14:05:49 +0000 (Wed, 24 Jun 2009) Log Message: ----------- 1. added scala.license template file. Added Paths: ----------- license/scala.license Added: license/scala.license =================================================================== --- license/scala.license (rev 0) +++ license/scala.license 2009-06-24 14:05:49 UTC (rev 24) @@ -0,0 +1,19 @@ +/** + * Copyright (C) 2005,2006,2007,2008,2009. + * Twincling Technology Foundation. + * Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an "AS IS" + * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + Property changes on: license/scala.license ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling R. C. N. <twi...@li...> - 2009-06-21 11:38:02
|
From: Twincling R. C. N. <twi...@li...> - 2009-03-24 12:57:00
|
Revision: 20 http://twincling.svn.sourceforge.net/twincling/?rev=20&view=rev Author: phanindra_t Date: 2009-03-24 12:56:44 +0000 (Tue, 24 Mar 2009) Log Message: ----------- Added Paths: ----------- dswitch/src/libsource/mysql5.0.51/srctoint/ dswitch/src/libsource/mysql5.0.51/srctoint/mysql_to_psql.cpp Added: dswitch/src/libsource/mysql5.0.51/srctoint/mysql_to_psql.cpp =================================================================== --- dswitch/src/libsource/mysql5.0.51/srctoint/mysql_to_psql.cpp (rev 0) +++ dswitch/src/libsource/mysql5.0.51/srctoint/mysql_to_psql.cpp 2009-03-24 12:56:44 UTC (rev 20) @@ -0,0 +1,615 @@ +/** + * Copyright (C) 2005,2006,2007,2008. + * Twincling Technology Foundation. + * Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an "AS IS" + * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + +/** + * This code switches datasets from MySQL 5.0.51 to Interim Database +*/ + +#include <QtSql> +#include <QString> +#include <QTextStream> +#include <QFile> +#include <stdio.h> +#include <QDateTime> +#include <stdlib.h> +#include "../../../include/extplugins.h" + +ExtMySQL::ExtMySQL(int x, QStringList y) +{ + arg=x; + argl=y; + + db_source=QSqlDatabase::addDatabase("QMYSQL"); + db_int=QSqlDatabase::addDatabase("QPSQL","second"); + + db_source.setHostName(argl[0]); + db_source.setUserName(argl[1]); + db_source.setPassword(argl[2]); + + db_int.setHostName("localhost"); + db_int.setUserName(argl[3]); + db_int.setPassword(argl[4]); + db_int.setDatabaseName("postgres"); +} + +int ExtMySQL::dSwitchMySQL() +{ + freopen ("log.txt","a",stderr); + qDebug()<<"*********************Error Log*************************"; + qDebug()<<qd.currentDateTime()<< "\n"; + + if(db_source.open()==false) + { + qDebug() << "Can not open source database"<<"\n" << db_source.lastError()<<"\n"; + return -1; + } + else if(db_int.open()==false) + { + qDebug() << "Can not open intermediate database"<<"\n"<< db_int.lastError()<<"\n"; + return -1; + } + else + { + qDebug() << "Opening Source database: " << argl[1]; + qDebug() << "Opening interim database with the provided user and password" << "\n"; + + QSqlQuery dropdb_q(db_int); + dropdb_q.exec("drop database twincdbint"); + if(dropdb_q.lastError().isValid()) + { + if(dropdb_q.lastError().text().contains("does not exist",Qt::CaseInsensitive)) + qDebug() << endl; + else + { + qDebug() << "\nOn Interim database(PostgreSQL)\ndrop database twincdbint" << "\n" << dropdb_q.lastError() << "line 57" << endl; + return -1; + } + } + qDebug() << "Interim database(PostgreSQL) clear" << endl; + + + QSqlQuery psql_createdb_query(db_int); + psql_createdb_query.exec("create database twincdbint"); + if(psql_createdb_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ncreate database twincdbint" << "\n" <<psql_createdb_query.lastError() << "line 67" << endl; + + db_int.close(); + db_int.setDatabaseName("twincdbint"); + + if(db_int.open()==false) + { + qDebug() << "Can not open intermediate database twincdbint"<<"\n"<< db_int.lastError()<<"\n"; + return -1; + } + + QSqlQuery psqldb_query(db_int); + psqldb_query.exec("create table tblsch(tname varchar ,tsql varchar,dname varchar,forkey int default 0,primary key(tname,dname))"); + if(psqldb_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ncreate table tblsch(tname varchar PRIMARY KEY,tsql varchar,dname varchar,forkey int default 0)" << "\n" << psqldb_query.lastError() << "line 81" << endl; + + QSqlQuery psql_indexsch_query(db_int); + psql_indexsch_query.exec("create table indexsch (idxname varchar,tbl varchar,sql varchar,dname varchar)"); + if(psql_indexsch_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ncreate table indexsch (idxname varchar,tbl varchar,sql varchar,dname varchar)" << "\n" << psql_indexsch_query.lastError() << "line 86" << endl; + + QSqlQuery psql_trig_query(db_int); + psql_trig_query.exec("create table trigsch (trigname varchar,tbl varchar, sql varchar,dname varchar)"); + if(psql_trig_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ncreate table trigsch (trigname varchar,tbl varchar, sql varchar,dname varchar)" << "\n" << psql_trig_query.lastError() << "line 91" << endl; + + QSqlQuery psql_viewsch_query(db_int); + psql_viewsch_query.exec("create table viewsch (viewname varchar,sql varchar,dname varchar)"); + if(psql_viewsch_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ncreate table viewsch (viewname varchar,sql varchar,dname varchar)" << "\n" << psql_viewsch_query.lastError() << "line 96" << endl; + + QSqlQuery psql_procsch_query(db_int); + psql_viewsch_query.exec("create table procsch (proc_name varchar , proc_sql varchar , dname varchar )"); + if(psql_viewsch_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ncreate table procsch (proc_name varchar , proc_sql varchar , dname varchar )" << "\n" << psql_viewsch_query.lastError() << "line 101" << endl; + + QSqlQuery psql_funcsch_query(db_int); + psql_funcsch_query.exec("create table funcsch (func_name varchar , func_sql varchar , dname varchar )"); + if(psql_funcsch_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ncreate table funcsch (func_name varchar , func_sql varchar , dname varchar )" << "\n" << psql_funcsch_query.lastError() << "line 106" << endl; + +//creating a list of databases + psqldb_query.exec("create table dbl(dname varchar(30))"); + if(psqldb_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ncreate table dbl(dname varchar(30))" << "\n" << psqldb_query.lastError() << "line 111" << endl; + + QSqlQuery db_query; + db_query.exec("show databases"); + if(db_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nshow databases" << "\n" << db_query.lastError() << "line 116" << endl; + + QSqlQuery psql_dbs_query(db_int); + + while(db_query.next()) + { + QString dbstr=db_query.value(0).toString(); + if(dbstr.compare("information_schema") && dbstr.compare("mysql")) + { + dbstr.replace("'","''"); + psql_dbs_query.exec("insert into dbl values('"+dbstr+"')"); + if(psql_dbs_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ninsert into dbl values('"+dbstr+"')" << "\n" << psql_dbs_query.lastError() << "line 128" << endl; + } + } +//extracting each database + db_query.first(); + db_query.previous(); + int n; + + while(db_query.next()) + { + + dbn=db_query.value(0).toString(); + + n=tableExtract(); + + n=dataExtract(); + + n=triggerExtract(); + + n=indexExtract(); + + n=procExtract(); + + n=funcExtract(); + + n=viewExtract(); + } + + } + qDebug() <<"\n\n"; + fclose (stderr); + + db_source.close(); + db_int.close(); + return 1; +}//dswitchMySQL() + +int ExtMySQL::tableExtract() +{ + if(dbn.compare("information_schema") && dbn.compare("mysql")) + { + QSqlQuery tbl_query,tbl_col_query,fk_query; + QSqlQuery psql_tbl_create(db_int),psqldb_query(db_int),psql_tbl_query(db_int),psql_tbldata_ins(db_int); + + tbl_query.exec("show tables from "+dbn+" where tables_in_"+dbn+" not in(select table_name from information_schema.views where table_schema='"+dbn+"')"); + if(tbl_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nshow tables from "+dbn+" where tables_in_"+dbn+" not in(select table_name from information_schema.views where table_schema='"+dbn+"')" << "\n" << tbl_query.lastError() << "line 173" << endl; + int n=1; + while(tbl_query.next()) + { + int prim=0; + QString tbl_name=tbl_query.value(0).toString(); + + psql_tbl_create.exec(" create table "+tbl_name+"_"+dbn+"_d ( col_name varchar , col_type varchar , prim int )"); + if(psql_tbl_create.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ncreate table "+tbl_name+"_"+dbn+"_d ( col_name varchar , col_type varchar , prim int ) " << "\n" << psql_tbl_create.lastError() << "line 183" << endl; + + QString tbl_sql="create table "+tbl_name+"( \n"; + + tbl_col_query.exec("show columns from "+dbn+"."+tbl_name); + if(tbl_col_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nshow columns from "+dbn+"."+tbl_name+" "<< "\n" << tbl_col_query.lastError() << "line 189" << endl; + + QString primarys=" primary key ( "; + int pe=0; + while(tbl_col_query.next()) + { + QString col_name=tbl_col_query.value(0).toString(); + QString col_type=tbl_col_query.value(1).toString(); + QString col_null=tbl_col_query.value(2).toString(); + + col_name=QChar('"')+col_name+QChar('"'); + if(!col_null.compare("YES")) + col_null=""; + else + col_null="NOT NULL"; + + QString col_key=tbl_col_query.value(3).toString(); + if(!col_key.compare("MUL")) + { + col_key=""; + prim=0; + } + else if(!col_key.compare("PRI")) + { + col_key="PRIMARY KEY"; + prim=1; + pe++; + primarys.append(" "+col_name+" , "); + } + QString colins_sql; + QString q=""; + q.append(QString::number(prim,10)); + colins_sql=" insert into "+tbl_name+"_"+dbn+"_d values ( '"+col_name+"','"+col_type+"','"+q+"' ) "; + colins_sql.replace(QChar('"'),""); + psql_tbldata_ins.exec(colins_sql); + if(psql_tbldata_ins.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\n" << colins_sql << "\n" << psql_tbldata_ins.lastError() << "line 225" << endl; + + QString col_default=tbl_col_query.value(4).toString(); + if(!col_key.compare("PRIMARY KEY")) + col_default=""; + else if(!col_default.compare(NULL)) + col_default="default NULL"; + else + col_default="default "+col_default; + + col_key=""; + + QString tbl_sql2=col_name+" "+col_type+" "+col_null+" "+col_key +" "+col_default+", \n"; + tbl_sql.append(tbl_sql2); + } + + if(pe!=0) + { + int idp=primarys.lastIndexOf(","); + primarys.replace(idp,1,""); + primarys.append(") , \n"); + tbl_sql.append(primarys); + } + + fk_query.exec("show create table "+dbn+"."+tbl_name); + if(fk_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nshow create table "+dbn+"."+tbl_name+" " << "\n" << fk_query.lastError() << "line 251" << endl; + + while(fk_query.next()) + { + QString fk_name=fk_query.value(1).toString(); + QString fk_check="FOREIGN KEY"; + int pos=0,ini=0; + while((pos=fk_name.indexOf(fk_check,ini,Qt::CaseInsensitive))!=-1) + { + ini=fk_name.indexOf("`)",pos); + ini=fk_name.indexOf("`)",ini+1); + QString for_key=fk_name.mid(pos,ini-pos+2); + QString tbl_sql3=for_key+", \n"; + tbl_sql.append(tbl_sql3); + } + } + + tbl_sql.append(")"); + int cpos=tbl_sql.lastIndexOf(", \n)"); + tbl_sql.replace(cpos,3,""); + + tbl_sql.replace("'","''"); + psql_tbl_query.exec("insert into tblsch values('"+tbl_name+"','"+tbl_sql+"','"+dbn+"') "); + if(psql_tbl_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\n insert into tblsch values('"+tbl_name+"','"+tbl_sql+"','"+dbn+"') " << "\n" << psql_tbl_query.lastError() << "line 275" << endl; + n++; + } + } + return 1; +}//tableExtract() + +int ExtMySQL::dataExtract() +{ + if(dbn.compare("information_schema") && dbn.compare("mysql")) + { + QSqlQuery tbl_query; + tbl_query.exec("show tables from "+dbn); + if(tbl_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nshow tables from "+dbn+" " << "\n" << tbl_query.lastError() << "line 289" << endl; + while(tbl_query.next()) + { + QSqlQuery tbl_col_query,tbl_data_query; + QSqlQuery psql_tbl_create(db_int),psql_data_query(db_int); + QString tbl_name=tbl_query.value(0).toString(); + + QString creat_sql=""; + tbl_col_query.exec("show columns from "+dbn+"."+tbl_name); + if(tbl_col_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nshow columns from "+dbn+"."+tbl_name+" " << "\n" << tbl_col_query.lastError() << "line 299" << endl; + + int n=tbl_col_query.size(); + int count=0; + while(tbl_col_query.next()) + { + count++; + QString q=tbl_col_query.value(0).toString(); + q=QChar('"')+q+QChar('"'); + + if (count!=n) + creat_sql.append(" "+q+" bytea , "); + else + creat_sql.append(" "+q+" bytea "); + } + + QString createtbl_sql; + createtbl_sql="create table "+tbl_name+"_"+dbn+" ("+creat_sql+")"; + psql_tbl_create.exec(createtbl_sql); + if(psql_tbl_create.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\n" << createtbl_sql << "\n" << psql_tbl_create.lastError() << "line 319" << endl; + + tbl_data_query.exec("select * from "+dbn+"."+tbl_name); + if(tbl_data_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nselect * from "+dbn+"."+tbl_name+" " << "\n" << tbl_data_query.lastError() << "line 323" << endl; + QString tbl_data,tbl_data1; + + while(tbl_data_query.next()) + { + tbl_data=""; + for( int i=0; i< tbl_col_query.size();i++) + { + tbl_data.append("'"); + tbl_data1 = tbl_data_query.value(i).toString(); + tbl_data1.replace("'","''"); + tbl_data.append(tbl_data1); + tbl_data.append("'"); + if(i!=n-1) + tbl_data.append(","); + } + psql_data_query.exec("insert into "+tbl_name+"_"+dbn+" values("+tbl_data+")"); + if(psql_data_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ninsert into "+tbl_name+"_"+dbn+" values("+tbl_data+") " << "\n" << psql_data_query.lastError() << "line 341" << endl; + } + } + + + } + return 1; + +}//dataExtract() + +int ExtMySQL::viewExtract() +{ + if(dbn.compare("information_schema") && dbn.compare("mysql")) + { + QSqlQuery db_view_query,view_create_query,set_ansi_query,usedb_query; + QSqlQuery psql_viewsql_query(db_int); + + usedb_query.exec("use "+dbn+" "); + if(usedb_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nuse "+dbn+" " << "\n" << usedb_query.lastError() << "line 360" << endl; + + db_view_query.exec("select table_name from information_schema.views where TABLE_SCHEMA='"+dbn+"'"); + if(db_view_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nselect table_name from information_schema.views where TABLE_SCHEMA='"+dbn+"' " << "\n" << db_view_query.lastError() << "line 364" << endl; + + int count=1; + while(db_view_query.next()) + { + QString view_sql,view_name = db_view_query.value(0).toString(); + + set_ansi_query.exec("set sql_mode='ansi' "); + if(set_ansi_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nset sql_mode='ansi'" << "\n" << set_ansi_query.lastError() << "line 373" << endl; + + view_create_query.exec("show create view "+dbn+"."+view_name+""); + if(view_create_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nshow create view "+dbn+"."+view_name+" "<< "\n" << view_create_query.lastError() << "line 377" << endl;; + view_create_query.first(); + + view_sql = view_create_query.value(1).toString(); + view_sql.replace("_latin1",""); + view_sql.replace("'","''"); + + psql_viewsql_query.exec("insert into viewsch values('"+view_name+"','"+view_sql+"','"+dbn+"')"); + if(psql_viewsql_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ninsert into viewsch values('"+view_name+"','"+view_sql+"','"+dbn+"')" << "\n" << psql_viewsql_query.lastError() << "line 386" << endl; + count++; + } + set_ansi_query.exec("set sql_mode=default "); + if(set_ansi_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nset sql_mode=default" << "\n" << set_ansi_query.lastError() << "line 391" << endl; + } + return 1; +}//viewExtract() + +int ExtMySQL::triggerExtract() +{ + if(dbn.compare("information_schema") && dbn.compare("mysql")) + { + QSqlQuery trig_count_query,trig_query; + QSqlQuery psql_trigsql_query(db_int); + + trig_count_query.exec("select count(trigger_name) from information_schema.triggers where trigger_schema='"+dbn+"'"); + if(trig_count_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nselect count(trigger_name) from information_schema.triggers where trigger_schema='"+dbn+"' " << "\n" << trig_count_query.lastError() << "line 405" << endl; + + if(trig_count_query.next()) + + trig_query.exec("show triggers from "+dbn); + if(trig_query.lastError().isValid()) + qDebug() << "\nOn Sourec database(MySQL)\nshow triggers from "+dbn+" " << "\n" << trig_query.lastError() << "line 411" << endl; + + int n=1; + while(trig_query.next()) + { + + QString trig_name=trig_query.value(0).toString(); + + QString trig_tbl=trig_query.value(2).toString(); + + QString trig_event=trig_query.value(1).toString(); + QString trig_timing=trig_query.value(4).toString(); + QString trig_stmt=trig_query.value(3).toString(); + + QString trig_sql="CREATE TRIGGER "+trig_name+" "+trig_timing+" "+trig_event+" ON "+trig_tbl+" FOR EACH ROW "+trig_stmt; + + n++; + trig_sql.replace("'","''"); + psql_trigsql_query.exec("insert into trigsch values('"+trig_name+"','"+trig_tbl+"','"+trig_sql+"','"+dbn+"')"); + if(psql_trigsql_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ninsert into trigsch values('"+trig_name+"','"+trig_tbl+"','"+trig_sql+"','"+dbn+"')" << "\n" << psql_trigsql_query.lastError() << "line 431" << endl; + } + } + + return 1; +}//triggerExtract() + +int ExtMySQL::indexExtract() +{ + if(dbn.compare("information_schema") && dbn.compare("mysql")) + { + QSqlQuery idx_count_query,idx_info_query,idx_colnum_query,idx_query; + QSqlQuery psql_idx_query(db_int),psql_idxsql_query(db_int),psql_idxcol_creat_query(db_int),psql_idxcol_query(db_int); + + idx_count_query.exec("select count(distinct(index_name)) from information_schema.statistics where table_schema='"+dbn+"' and INDEX_NAME NOT LIKE 'PRIMARY'"); + if(idx_count_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nselect count(distinct(index_name)) from information_schema.statistics where table_schema='"+dbn+"' and INDEX_NAME NOT LIKE 'PRIMARY' " << "\n" << idx_count_query.lastError() << "line 447" << endl; + + if(idx_count_query.next()) + + idx_query.exec("select distinct(index_name) from information_schema.statistics where table_schema='"+dbn+"' and INDEX_NAME NOT LIKE 'PRIMARY'"); + if(idx_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nselect distinct(index_name) from information_schema.statistics where table_schema='"+dbn+"' and INDEX_NAME NOT LIKE 'PRIMARY'" << "\n" << idx_query.lastError() << "line 453" << endl; + + int n=1; + while(idx_query.next()) + { + + QString idx_name=idx_query.value(0).toString(); + psql_idxcol_creat_query.exec("create table "+idx_name+"_"+dbn+"_d (col varchar)"); + if(psql_idxcol_creat_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ncreate table "+idx_name+"_"+dbn+"_d (col varchar)" << "\n" << psql_idxcol_creat_query.lastError() << "line 462" << endl; + + idx_info_query.exec("select table_name,non_unique,column_name,index_type from information_schema.statistics where table_schema='"+dbn+"' and INDEX_NAME='"+idx_name+"'"); + if(idx_info_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nselect table_name,non_unique,column_name,index_type from information_schema.statistics where table_schema='"+dbn+"' and INDEX_NAME='"+idx_name+"' " << "\n" << idx_info_query.lastError() << "line 466" << endl; + + psql_idxcol_query.prepare("insert into "+idx_name+"_"+dbn+"_d values(?)"); + while(idx_info_query.next()) + { + idx_colnum_query.exec("select count(*) from information_schema.statistics where table_schema='"+dbn+"' and INDEX_NAME='"+idx_name+"'"); + if(idx_colnum_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nselect count(*) from information_schema.statistics where table_schema='"+dbn+"' and INDEX_NAME='"+idx_name+"')" << "\n" << idx_colnum_query.lastError() << "line 473" << endl; + int idx_colnum=0; + if(idx_colnum_query.next()) + idx_colnum=idx_colnum_query.value(0).toInt(); + + QString idx_tbl=idx_info_query.value(0).toString(); + + QString idx_uni; + int idx_unique=idx_info_query.value(1).toInt(); + + if(idx_unique==1) + idx_uni=""; + else + idx_uni=" UNIQUE"; + + QString idx_col; + + QString idx_type=idx_info_query.value(3).toString(); + + QString idx_sql; + + idx_sql=" CREATE "+idx_uni+" INDEX '"+idx_name+"' ON '"+idx_tbl+"' ( "; + + while(idx_colnum!=0) + { + idx_col=idx_info_query.value(2).toString(); + + idx_sql=idx_sql+"'"+idx_col+"', "; + --idx_colnum; + + psql_idxcol_query.bindValue(0,idx_col); + psql_idxcol_query.exec(); + if(psql_idxcol_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ninsert into "+idx_name+"_"+dbn+"_d values('"+idx_col+"')" << "\n" << psql_idxcol_query.lastError() << "line 506" << endl; + + idx_info_query.next(); + } + + idx_sql.append(")"); + int cpos=idx_sql.indexOf(", )"); + idx_sql.replace(cpos, 1,""); + + n++; + idx_sql.replace("'","''"); + psql_idxsql_query.exec("insert into indexsch values('"+idx_name+"','"+idx_tbl+"','"+idx_sql+"','"+dbn+"')"); + if(psql_idxsql_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ninsert into indexsch values('"+idx_name+"','"+idx_tbl+"','"+idx_sql+"','"+dbn+"') " << "\n" << psql_idxsql_query.lastError() << "line 519" << endl; + } + } + } + return 1; +}//indexExtract() + +int ExtMySQL::procExtract() +{ + if(dbn.compare("information_schema") && dbn.compare("mysql")) + { + QSqlQuery db_proc_query,proc_create_query,db_procount_query; + QSqlQuery psql_procsql_query(db_int); + + db_proc_query.exec("select name from mysql.proc where db='"+dbn+"' and type='PROCEDURE' "); + if(db_proc_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nselect name from mysql.proc where db='"+dbn+"' and type='PROCEDURE' " << "\n" << db_proc_query.lastError() << "line 535" << endl; + + int count = 1; + + while(db_proc_query.next()) + { + QString proc_sql,proc_name = db_proc_query.value(1).toString(); + + proc_create_query.exec("show create procedure "+dbn+"."+proc_name+""); + if(proc_create_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nshow create procedure "+dbn+"."+proc_name+" " << "\n" << proc_create_query.lastError() << "line 545" << endl; + proc_create_query.first(); + + count++; + proc_sql = proc_create_query.value(2).toString(); + proc_sql.replace("'","''"); + psql_procsql_query.exec("insert into procsch values('"+proc_name+"','"+proc_sql+"','"+dbn+"')"); + if(psql_procsql_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ninsert into procsch values('"+proc_name+"','"+proc_sql+"','"+dbn+"') " << "\n" << psql_procsql_query.lastError() << "line 553" << endl; + } + } + return 1; +}//procExtract() + +int ExtMySQL::funcExtract() +{ + if(dbn.compare("information_schema") && dbn.compare("mysql")) + { + + + QSqlQuery db_func_query,func_create_query; + QSqlQuery psql_funcsql_query(db_int); + db_func_query.exec("select name from mysql.proc where db='"+dbn+"' and type='FUNCTION'"); + if(db_func_query.lastError().isValid()) + qDebug() << "\nOn Source database(MySQL)\nselect name from mysql.proc where db='"+dbn+"' and type='FUNCTION'" << "\n" << db_func_query.lastError() << "line 569" << endl; + + int count = 1; + while(db_func_query.next()) + { + QString func_sql,func_name; + func_name = db_func_query.value(1).toString(); + + func_create_query.exec("show create function "+dbn+"."+func_name); + if(func_create_query.lastError().isValid()) + qDebug() << "\nOn Source database(PostgreSQL)\nshow create function "+dbn+"."+func_name+" " << "\n" << func_create_query.lastError() << "line 579" << endl; + func_create_query.first(); + + count++; + func_sql = func_create_query.value(2).toString(); + func_sql.replace("'","''"); + psql_funcsql_query.exec("insert into funcsch values('"+func_name+"','"+func_sql+"','"+dbn+"')"); + if(psql_funcsql_query.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\ninsert into funcsch values('"+func_name+"','"+func_sql+"','"+dbn+"') " << "\n" << psql_funcsql_query.lastError() << "line 587" << endl; + } + } + + return 1; +}//funcExtract This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling R. C. N. <twi...@li...> - 2009-03-23 15:34:08
|
Revision: 19 http://twincling.svn.sourceforge.net/twincling/?rev=19&view=rev Author: siddharthpal Date: 2009-03-23 15:34:03 +0000 (Mon, 23 Mar 2009) Log Message: ----------- Added Paths: ----------- dswitch/doc/dswitch.pdf Added: dswitch/doc/dswitch.pdf =================================================================== --- dswitch/doc/dswitch.pdf (rev 0) +++ dswitch/doc/dswitch.pdf 2009-03-23 15:34:03 UTC (rev 19) @@ -0,0 +1,15830 @@ +%PDF-1.5 +%\xB5\xB5\xB5\xB5 +1 0 obj +<</Type/Catalog/Pages 2 0 R/Lang(en-US) /StructTreeRoot 254 0 R/MarkInfo<</Marked true>>>> +endobj +2 0 obj +<</Type/Pages/Count 64/Kids[ 3 0 R 16 0 R 22 0 R 24 0 R 26 0 R 49 0 R 60 0 R 69 0 R 71 0 R 73 0 R 75 0 R 77 0 R 80 0 R 82 0 R 84 0 R 87 0 R 90 0 R 93 0 R 96 0 R 99 0 R 108 0 R 110 0 R 117 0 R 121 0 R 124 0 R 126 0 R 128 0 R 130 0 R 132 0 R 136 0 R 140 0 R 142 0 R 144 0 R 148 0 R 152 0 R 154 0 R 156 0 R 158 0 R 160 0 R 162 0 R 166 0 R 170 0 R 175 0 R 181 0 R 183 0 R 187 0 R 191 0 R 195 0 R 197 0 R 201 0 R 205 0 R 208 0 R 211 0 R 213 0 R 216 0 R 219 0 R 224 0 R 227 0 R 230 0 R 235 0 R 238 0 R 240 0 R 242 0 R 244 0 R] >> +endobj +3 0 obj +<</Type/Page/Parent 2 0 R/Resources<</Font<</F1 5 0 R/F2 7 0 R/F3 12 0 R>>/XObject<</Image9 9 0 R/Image10 10 0 R>>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 14 0 R 15 0 R] /MediaBox[ 0 0 612 792] /Contents 4 0 R/Group<</Type/Group/S/Transparency/CS/DeviceRGB>>/Tabs/S/StructParents 0>> +endobj +4 0 obj +<</Filter/FlateDecode/Length 661>> +stream +x\x9C\xAD\x95[O\xDB0\xC7\xDF#\xE5;\x9C\xC7dRO|\xB7#!\xB4BabS7\xB2'\xC4CԖ6Zo낦}\xFB\xBBH \x94\xB2\xAA\x92\xE3Z\xF6\xEF\xFC}.>YwUW\xB7堆\xA3\xA3\xAC[\xD7\xE5`2\xC2uV,\x967Y\xF1w9\xCA\xFA帚\x97u\xB5\x98\xC3I\xEFN\x8A8\xCA\xCE9p\x8ELAqG\xFD8hŐ\x83U\xB5\x81bG\xC6~\xF8G\xD7 \xA47P|\x8E\xA33:\xEE\x9BCV \x8A>tV\x84Sͽpvy +\x90\xF5\xBD\xC0\xCBӋ\xB0{\xBF֜\xEC\ |
From: Twincling R. C. N. <twi...@li...> - 2009-03-23 15:32:03
|
Revision: 18 http://twincling.svn.sourceforge.net/twincling/?rev=18&view=rev Author: siddharthpal Date: 2009-03-23 15:31:55 +0000 (Mon, 23 Mar 2009) Log Message: ----------- Removed Paths: ------------- dswitch/doc/dswitch.pdf Deleted: dswitch/doc/dswitch.pdf =================================================================== --- dswitch/doc/dswitch.pdf 2009-03-23 03:39:31 UTC (rev 17) +++ dswitch/doc/dswitch.pdf 2009-03-23 15:31:55 UTC (rev 18) @@ -1,15657 +0,0 @@ -%PDF-1.5 -%\xB5\xB5\xB5\xB5 -1 0 obj -<</Type/Catalog/Pages 2 0 R/Lang(en-US) /StructTreeRoot 252 0 R/MarkInfo<</Marked true>>>> -endobj -2 0 obj -<</Type/Pages/Count 62/Kids[ 3 0 R 16 0 R 22 0 R 24 0 R 26 0 R 49 0 R 62 0 R 69 0 R 71 0 R 73 0 R 76 0 R 78 0 R 80 0 R 83 0 R 86 0 R 89 0 R 92 0 R 95 0 R 104 0 R 106 0 R 113 0 R 117 0 R 120 0 R 122 0 R 124 0 R 126 0 R 128 0 R 132 0 R 136 0 R 138 0 R 142 0 R 146 0 R 150 0 R 152 0 R 154 0 R 156 0 R 158 0 R 160 0 R 164 0 R 168 0 R 173 0 R 179 0 R 181 0 R 185 0 R 189 0 R 193 0 R 195 0 R 199 0 R 203 0 R 206 0 R 209 0 R 211 0 R 214 0 R 217 0 R 222 0 R 225 0 R 228 0 R 233 0 R 236 0 R 238 0 R 240 0 R 242 0 R] >> -endobj -3 0 obj -<</Type/Page/Parent 2 0 R/Resources<</Font<</F1 5 0 R/F2 7 0 R/F3 12 0 R>>/XObject<</Image9 9 0 R/Image10 10 0 R>>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 14 0 R 15 0 R] /MediaBox[ 0 0 612 792] /Contents 4 0 R/Group<</Type/Group/S/Transparency/CS/DeviceRGB>>/Tabs/S/StructParents 0>> -endobj -4 0 obj -<</Filter/FlateDecode/Length 661>> -stream -x\x9C\xAD\x95[O\xDB0\xC7\xDF#\xE5;\x9C\xC7dRO|\xB7#!\xB4BabS7\xB2'\xC4CԖ6Zo낦}\xFB\xBBH \x94\xB2\xAA\x92\xE3Z\xF6\xEF\xFC}.>YwUW\xB7堆\xA3\xA3\xAC[\xD7\xE5`2\xC2uV,\x967Y\xF1w9\xCA\xFA帚\x97u\xB5\x98\xC3I\xEFN\x8A8\xCA\xCE9p\x8ELAqG\xFD8hŐ\x83U\xB5\x81bG\xC6~\xF8G\xD7 \xA47P|\x8E\xA33:\xEE\x9BCV \x8A>tV\x84Sͽpvy -\x90\xF5\xBD\xC0\xCBӋ\xB0{\xBF֜\xEC\ |
From: Twincling S. C. N. <twi...@li...> - 2009-03-23 03:39:37
|
Revision: 17 http://twincling.svn.sourceforge.net/twincling/?rev=17&view=rev Author: siddharthpal Date: 2009-03-23 03:39:31 +0000 (Mon, 23 Mar 2009) Log Message: ----------- Added Paths: ----------- dswitch/src/guiwindow.cpp Added: dswitch/src/guiwindow.cpp =================================================================== --- dswitch/src/guiwindow.cpp (rev 0) +++ dswitch/src/guiwindow.cpp 2009-03-23 03:39:31 UTC (rev 17) @@ -0,0 +1,952 @@ +/** + * Copyright (C) 2005,2006,2007,2008. + * Twincling Technology Foundation. + * Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an "AS IS" + * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + +/** + * This code will create and validate the GUI +*/ + +#include <QtGui> + + #include "guiwindow.h" + #include "extplugins.h" + +int res1,res2; +PluginThread *pl; + + Window::Window(QWidget *parent) + : QDialog(parent) + + { + QPixmap qpx(":/images/dswitch0.png"); + dsLogo=new QLabel(); + dsLogo->setPixmap(qpx); + + srcBrowseButton = createButton(tr("&Browse..."), SLOT(srcBrowse())); + + srcBrowseButton->hide(); + tarBrowseButton = createButton(tr("Browse..."), SLOT(tarBrowse())); + tarBrowseButton->hide(); + dswitch = new QPushButton(tr("SWITCH")); + + aboutUs = new QPushButton(tr("About")); + connect(aboutUs, SIGNAL(clicked()),this, SLOT(showAbout())); + + log=new QPushButton(tr("LOG")); + + connect(dswitch, SIGNAL(clicked()),this, SLOT(runPlugin())); + connect(log,SIGNAL(clicked()),this, SLOT(openLog())); + + sourceComboBox = createComboBox(tr("")); + sourceComboBox->addItem("SQLite 2.8.17"); + sourceComboBox->addItem("SQLite 3.6.10"); + sourceComboBox->addItem("MySQL 5.0.51"); + connect(sourceComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(enableFields(int))); + + targetComboBox = createComboBox(tr("")); + targetComboBox->QComboBox::clear(); + connect(targetComboBox,SIGNAL(currentIndexChanged(QString)),this, SLOT(enable_usnpass(QString))); + targetComboBox->hide(); + + vtbC = createComboBox(tr("No")); + vtbC->addItem(tr("Yes")); + vtbC->hide(); + connect(vtbC, SIGNAL(currentIndexChanged(int)),this,SLOT(enable_vtb(int))); + + vtbNum = createComboBox(tr("1")); + vtbNum->addItem("2"); + vtbNum->addItem("3"); + vtbNum->addItem("4"); + vtbNum->addItem("5"); + vtbNum->hide(); + connect(vtbNum, SIGNAL(currentIndexChanged(int)), this, SLOT(enable_combo())); + + msgBox = new QMessageBox(); + + modBrowseButton[0] = createButton(tr("Browse..."),SLOT(browse1())); + modBrowseButton[1] = createButton(tr("Browse..."),SLOT(browse2())); + modBrowseButton[2] = createButton(tr("Browse..."),SLOT(browse3())); + modBrowseButton[3] = createButton(tr("Browse..."),SLOT(browse4())); + modBrowseButton[4] = createButton(tr("Browse..."),SLOT(browse5())); + + for(int i=0;i<=4;i++) + { + int j=i+1; + QString q="Custom Module "; + q.append(QString::number(j,10)); + mod[i] = new QLabel(q); + mod[i]->hide(); + lmod[i] =createLineEdit(); + lmod[i]->hide(); + modBrowseButton[i]->hide(); + } + + sqlitePath=createLineEdit(); + userName = new QLineEdit(); + password=new QLineEdit(); + password->setEchoMode(QLineEdit::Password); + sqlitePath->hide(); + userName->hide(); + password->hide(); + tarU = new QLineEdit(); + tarP = new QLineEdit(); + tarP->setEchoMode(QLineEdit::Password); + tarU->hide(); + tarP->hide(); + tarSave = createLineEdit(); + tarSave->hide(); + + stat = new QLineEdit(); + stat->setEnabled(false); + + iUser =new QLineEdit(); + iPass =new QLineEdit(); + iPass->setEchoMode(QLineEdit::Password); + iUser->hide(); + iPass->hide(); + sHostname=new QLineEdit(); + tHostname=new QLineEdit(); + sHostname->setText("localhost"); + tHostname->setText("localhost"); + sHostname->hide(); + tHostname->hide(); + + sqlitec = sqlitePath->palette(); + userc = userName->palette(); + passc = password->palette(); + + sourceDB = new QLabel(tr("Select the Source Database:")); + path = new QLabel(tr("SQLite Database Path")); + user = new QLabel(tr("User Name")); + pass = new QLabel(tr("Password")); + path->hide(); + user->hide(); + pass->hide(); + vtbN = new QLabel(tr("Number of Modules used:")); + vtbN->hide(); + vtbCon = new QLabel(tr("Does it contain Virtual Tables:")); + vtbCon->hide(); + + tarDB = new QLabel(tr("Select the Target Database:")); + tarDB->hide(); + tarUsn = new QLabel(tr("UserName:")); + tarUsn->hide(); + tarPass = new QLabel(tr("Password:")); + tarPass->hide(); + tarSavePath = new QLabel(tr("Save in directory:")); + tarSavePath->hide(); + status = new QLabel(tr("Status:")); + iU=new QLabel(tr("PostgreSQL (Interim) UserName:")); + iP=new QLabel(tr("PostgreSQL (Interim) Password:")); + iU->hide(); + iP->hide(); + sHost=new QLabel(tr("Hostname:")); + tHost=new QLabel(tr("Hostname:")); + sHost->hide(); + tHost->hide(); + + listModules = new QListWidget(); + + new QListWidgetItem(tr("FTS3"), listModules); + new QListWidgetItem(tr("RTREE"), listModules); + new QListWidgetItem(tr("Custom..."), listModules); + listModules->setSelectionMode(QAbstractItemView::ExtendedSelection); + listModules->hide(); + + connect(listModules,SIGNAL(itemClicked ( QListWidgetItem *)),this,SLOT(limit_mod())); + + QGroupBox *groupBoxSource = new QGroupBox(tr("Source Database Selection:")); + QGroupBox *groupBoxInt = new QGroupBox(tr("PostgreSQL (Interim) Database:")); + QGroupBox *groupBoxTarget = new QGroupBox(tr("Target Database Selection:")); + + QGridLayout *sourceLayout=new QGridLayout; + QGridLayout *interimLayout=new QGridLayout; + QGridLayout *targetLayout=new QGridLayout; + + sourceLayout->addWidget(sourceDB, 0, 0); + sourceLayout->addWidget(sourceComboBox, 0, 1, 1, 3); + + sourceLayout->addWidget(user, 1, 0); + sourceLayout->addWidget(userName, 1, 1, 1, 3); + + sourceLayout->addWidget(pass, 2, 0); + sourceLayout->addWidget(password, 2, 1, 1, 3); + + sourceLayout->addWidget(sHost, 3, 0); + sourceLayout->addWidget(sHostname, 3, 1, 1, 3); + + sourceLayout->addWidget(path, 4, 0); + sourceLayout->addWidget(sqlitePath, 4, 1, 1, 2); + sourceLayout->addWidget(srcBrowseButton, 4, 3); + + sourceLayout->addWidget(vtbCon, 5, 0); + sourceLayout->addWidget(vtbC, 5, 1); + sourceLayout->addWidget(vtbN, 5, 2, 1, 1, Qt::AlignRight); + sourceLayout->addWidget(vtbNum, 5, 3); + + sourceLayout->addWidget(listModules, 6, 0, 5, 1); + sourceLayout->addWidget(mod[0], 6, 1, Qt::AlignRight); + sourceLayout->addWidget(lmod[0], 6, 2); + sourceLayout->addWidget(modBrowseButton[0], 6, 3); + + sourceLayout->addWidget(mod[1], 7, 1,Qt::AlignRight); + sourceLayout->addWidget(lmod[1], 7, 2); + sourceLayout->addWidget(modBrowseButton[1], 7, 3); + + sourceLayout->addWidget(mod[2], 8, 1,Qt::AlignRight); + sourceLayout->addWidget(lmod[2], 8, 2); + sourceLayout->addWidget(modBrowseButton[2], 8, 3); + + sourceLayout->addWidget(mod[3], 9, 1,Qt::AlignRight); + sourceLayout->addWidget(lmod[3], 9, 2); + sourceLayout->addWidget(modBrowseButton[3], 9, 3); + + sourceLayout->addWidget(mod[4], 10, 1,Qt::AlignRight); + sourceLayout->addWidget(lmod[4], 10, 2); + sourceLayout->addWidget(modBrowseButton[4], 10, 3); + + groupBoxSource->setLayout(sourceLayout); + + + interimLayout->addWidget(iU,0,0); + interimLayout->addWidget(iUser,0,1,1,3); + + interimLayout->addWidget(iP,1,0); + interimLayout->addWidget(iPass,1,1,1,3); + + groupBoxInt->setLayout(interimLayout); + + targetLayout->addWidget(tarDB,0,0); + targetLayout->addWidget(targetComboBox,0,1,1,3); + + targetLayout->addWidget(tarUsn,1,0); + targetLayout->addWidget(tarU,1,1,1,3); + + targetLayout->addWidget(tarPass,2,0); + targetLayout->addWidget(tarP,2,1,1,3); + + targetLayout->addWidget(tHost,3,0); + targetLayout->addWidget(tHostname, 3, 1, 1, 3); + + targetLayout->addWidget(tarSavePath,4,0); + targetLayout->addWidget(tarSave,4,1,1,2); + targetLayout->addWidget(tarBrowseButton,4,3); + + groupBoxTarget->setLayout(targetLayout); + + QGridLayout *mainLayout = new QGridLayout; + + mainLayout->addWidget(dsLogo,0,0,1,4,Qt::AlignTop); + + mainLayout->addWidget(groupBoxSource,1,0,1,4); + mainLayout->addWidget(groupBoxInt,2,0,1,4); + mainLayout->addWidget(groupBoxTarget,3,0,1,4); + + mainLayout->addWidget(status,4,0); + mainLayout->addWidget(stat,4,1,1,1); + + mainLayout->addWidget(dswitch,5,0,1,1); + mainLayout->addWidget(aboutUs,5,2,1,1); + mainLayout->addWidget(log,5,3,1,1); + + setLayout(mainLayout); + + QPixmap ttl(":images/titlelogo.png"); + setWindowIcon(QIcon(ttl)); + + setWindowTitle(tr("DSwitch")); + resize(800, 600); + } + + void Window::srcBrowse() + { + QString filepath = QFileDialog::getOpenFileName(this, tr("Open File"),"", tr("All Files (*.* *)"),0,0); + if (!filepath.isEmpty()) + sqlitePath->setText(filepath); + } + + void Window::tarBrowse() + { + QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"), "", QFileDialog::ShowDirsOnly); + if (!dir.isEmpty()) + tarSave->setText(dir); + } + + + void Window::browse1() + { + QString filepath = QFileDialog::getOpenFileName(this, tr("Open File"),"", tr("Library File(*.so *.dll)"),0,0); + if (!filepath.isEmpty()) + lmod[0]->setText(filepath); + } + + void Window::browse2() + { + QString filepath = QFileDialog::getOpenFileName(this, tr("Open File"),"", tr("All Files (*.so *.dll)"),0,0); + if (!filepath.isEmpty()) + lmod[1]->setText(filepath); + } + + void Window::browse3() + { + QString filepath = QFileDialog::getOpenFileName(this, tr("Open File"),"", tr("All Files (*.so *.dll)"),0,0); + if (!filepath.isEmpty()) + lmod[2]->setText(filepath); + } + + void Window::browse4() + { + QString filepath = QFileDialog::getOpenFileName(this, tr("Open File"),"", tr("All Files (*.so *.dll)"),0,0); + if (!filepath.isEmpty()) + lmod[3]->setText(filepath); + } + + void Window::browse5() + { + QString filepath = QFileDialog::getOpenFileName(this, tr("Open File"),"", tr("All Files (*.so *.dll)"),0,0); + if (!filepath.isEmpty()) + lmod[4]->setText(filepath); + } + + QPushButton *Window::createButton(const QString &text, const char *member) + { + QPushButton *button = new QPushButton(text); + connect(button, SIGNAL(clicked()), this, member); + return button; + } + + QComboBox *Window::createComboBox(const QString &text) + { + QComboBox *comboBox = new QComboBox; + comboBox->setEditable(false); + comboBox->addItem(text); + return comboBox; + } + +QLineEdit *Window::createLineEdit() +{ + QLineEdit *lineEdit=new QLineEdit(); + lineEdit->setEnabled(false); + QPalette p = lineEdit->palette(); + p.setColor( QPalette::Base, QColor(200,200,200) ); + lineEdit->setPalette(p); + lineEdit->setFixedHeight(25); + return lineEdit; +} + +void Window::enableFields(int index) +{ + targetComboBox->QComboBox::clear(); + int i=0; + while(i<5) + { + lmod[i]->hide(); + mod[i]->hide(); + modBrowseButton[i]->hide(); + i++; + } + listModules->hide(); + vtbN->hide(); + vtbNum->hide(); + tarUsn->hide(); + tarPass->hide(); + tarU->hide(); + tarP->hide(); + tarSavePath->hide(); + tarSave->hide(); + tarBrowseButton->hide(); + tHostname->hide(); + tHost->hide(); + + if(index==0) + { + sqlitePath->hide(); + userName->hide(); + password->hide(); + srcBrowseButton->hide(); + path->hide(); + user->hide(); + pass->hide(); + + vtbCon->hide(); + vtbC->hide(); + targetComboBox->QComboBox::clear(); + + targetComboBox->hide(); + tarDB->hide(); + iU->hide(); + iP->hide(); + iUser->hide(); + iPass->hide(); + sHostname->hide(); + sHost->hide(); + } + else if(index==1 || index==2) + { + iU->show(); + iP->show(); + iUser->show(); + iPass->show(); + + sqlitePath->show(); + userName->hide(); + password->hide(); + srcBrowseButton->show(); + + path->show(); + user->hide(); + pass->hide(); + + sHostname->hide(); + sHost->hide(); + + if(index==2) + { + vtbCon->show(); + vtbC->show(); + vtbC->QComboBox::setCurrentIndex(0); + + targetComboBox->show(); + targetComboBox->QComboBox::clear(); + //targetComboBox->addItem(tr("")); + targetComboBox->addItem("MySQL 5.0.51"); + targetComboBox->addItem("SQLite 2.8.17"); + tarDB->show(); + } + else + { + vtbCon->hide(); + vtbC->hide(); + targetComboBox->show(); + targetComboBox->QComboBox::clear(); + //targetComboBox->addItem(tr("")); + targetComboBox->addItem("MySQL 5.0.51"); + targetComboBox->addItem("SQLite 3.6.10"); + tarDB->show(); + } + } + else + { + iU->show(); + iP->show(); + iUser->show(); + iPass->show(); + + path->hide(); + user->show(); + pass->show(); + + sHostname->show(); + sHost->show(); + + sqlitePath->hide(); + userName->show(); + password->show(); + srcBrowseButton->hide(); + + vtbCon->hide(); + vtbC->hide(); + targetComboBox->show(); + targetComboBox->QComboBox::clear(); + + targetComboBox->addItem("SQLite 2.8.17"); + targetComboBox->addItem("SQLite 3.6.10"); + tarDB->show(); + } +} + + +void Window::enable_vtb(int index) +{ + if(index==1) + { + vtbNum->show(); + vtbN->show(); + listModules->show(); + } + else + { + vtbNum->hide(); + vtbN->hide(); + listModules->hide(); + } + int i=0; + while(i<5) + { + lmod[i]->hide(); + mod[i]->hide(); + modBrowseButton[i]->hide(); + i++; + } + QItemSelectionModel *selectionModel = listModules->selectionModel(); + selectionModel->clearSelection(); +} + +void Window::showAbout() +{ + QString abt="DSwitch Demo\nReleased under Apache Software License (ASL) 2.0"; + abt.append("\n\nTeam:\nSiddharth Pal\nsi...@gm..."); + abt.append("\n\nT Phanindra\nph...@gm..."); + + msgBox->setText(abt); + msgBox->exec(); +} + + +void Window::enable_combo() +{ + //userName->show(); + QItemSelectionModel *selectionModel = listModules->selectionModel(); + selectionModel->clearSelection(); + int i=0; + while(i<5) + { + lmod[i]->hide(); + mod[i]->hide(); + modBrowseButton[i]->hide(); + i++; + } +} + +void Window::limit_mod() +{ + QItemSelectionModel *selectionModel = listModules->selectionModel(); + QModelIndexList moduleList; + moduleList << selectionModel->selectedIndexes(); + int j=0,i=0,k=0; + + int diff = moduleList.size() - vtbNum->currentIndex(); + k=diff; + while(k>1) + { + selectionModel->select(moduleList.takeFirst(), QItemSelectionModel::Deselect); + k--; + } + + i=0; + while(i<moduleList.size()) + { + if(moduleList[i].row() == 2) + j++; + i++; + } + k=moduleList.size() - vtbNum->currentIndex(); + i=0; + if(j!=0) + { + while(k<=1) + { + lmod[i]->show(); + mod[i]->show(); + modBrowseButton[i]->show(); + i++; k++; + } + while(i<5) + { + lmod[i]->hide(); + mod[i]->hide(); + modBrowseButton[i]->hide(); + i++; + } + } + else + for(i=0;i<5;i++) + { + lmod[i]->hide(); + mod[i]->hide(); + modBrowseButton[i]->hide(); + } +} + +void Window::enable_usnpass(QString text) +{ + if(text.contains("SQLite",Qt::CaseInsensitive)) + { + tarUsn->hide(); + tarPass->hide(); + tarU->hide(); + tarP->hide(); + tarSavePath->show(); + tarSave->show(); + tarBrowseButton->show(); + tHostname->hide(); + tHost->hide(); + } + else + { + tarUsn->show(); + tarPass->show(); + tarU->show(); + tarP->show(); + tarSavePath->hide(); + tarSave->hide(); + tarBrowseButton->hide(); + tHostname->show(); + tHost->show(); + } +} + +void Window::runPlugin() +{ + QStringList arg1,arg2; + if(!iUser->text().compare("")) + { + msgBox->setText("Please enter PostgreSQL (interim) UserName:"); + msgBox->exec(); + return; + } + if(!iPass->text().compare("")) + { + msgBox->setText("Please enter PostgreSQL (interim) Password:"); + msgBox->exec(); + return; + } + + if(sourceComboBox->currentIndex() == 0) + { + msgBox->setText("Please select a Source Database"); + msgBox->exec(); + } + else if(sourceComboBox->currentIndex() == 1) + { + QString p=sqlitePath->text(); + if(!p.compare("")) + { + msgBox->setText("Please enter the location of the SQLite 2.8.17 Source Database"); + msgBox->exec(); + } + else + { + arg1 << sqlitePath->text() << iUser->text() << iPass->text(); + if(targetComboBox->currentIndex()==0) + { + if(!tarU->text().compare("")) + { + msgBox->setText("Please enter MySQL username"); + msgBox->exec(); + } + else if(!tHostname->text().compare("")) + { + msgBox->setText("Please enter MySQL Hostname"); + msgBox->exec(); + } + else + { + msgBox->setText("No MySQL 5.1 engine supports 'check(expr)'.\nCHECK('expr') constraints are parsed but are not enforced."); + msgBox->exec(); + + arg2 << iUser->text() << iPass->text() << tHostname->text() << tarU->text() << tarP->text(); + + stat->setText("In Progress..."); + pl=new PluginThread(1,0,arg1.count(),arg1,arg2.count(),arg2); + pl->start(); + + dswitch->setEnabled(false); + connect(pl,SIGNAL(finished()),this,SLOT(updateStatus())); + + } + } + else if(targetComboBox->currentIndex()==1) + { + if(!tarSave->text().compare("")) + { + msgBox->setText("Please enter the target directory"); + msgBox->exec(); + } + else + { + msgBox->setText("SQLite does not support Foreign Keys.\nFOREIGN KEY constraints are parsed but are not enforced."); + msgBox->exec(); + + arg2 << iUser->text() << iPass->text() << tarSave->text(); + + stat->setText("In Progress..."); + pl=new PluginThread(1,1,arg1.count(),arg1,arg2.count(),arg2); + pl->start(); + + dswitch->setEnabled(false); + connect(pl,SIGNAL(finished()),this,SLOT(updateStatus())); + + } + } + } + } + else if(sourceComboBox->currentIndex() == 2) + { + QString p=sqlitePath->text(); + if(!p.compare("")) + { + msgBox->setText("Please enter the location of the SQLite 3.6.10 Source Database"); + msgBox->exec(); + } + else + { + if(vtbC->currentIndex()==0) + { + arg1 << sqlitePath->text() << iUser->text() << iPass->text() << "n"; + } + else if(vtbC->currentIndex()==1) + { + QItemSelectionModel *selectionModel = listModules->selectionModel(); + QModelIndexList moduleList; + moduleList << selectionModel->selectedIndexes(); + int i=0,j=0,temp=0; + + while(i<moduleList.size()) + { + if(moduleList[i].row() == 2) + j++; + i++; + } + int k=vtbNum->currentIndex() + 1; + int diff = k - moduleList.size(); + + if(j==0 && k!=moduleList.size()) + { + QString msg="Please select all "; + msg.append(QString::number(k,10)); + msg+=" modules"; + msgBox->setText(msg); + msgBox->exec(); + return; + } + else if(j!=0) + { + temp=diff; + while(temp>=0) + { + QString m=lmod[temp]->text(); + if(!m.compare("")) + { + QString mod_msg="Please browse the path for custom module "; + int modid=temp+1; + mod_msg.append(QString::number(modid,10)); + msgBox->setText(mod_msg); + msgBox->exec(); + return; + } + temp--; + } + } + + arg1 << sqlitePath->text() << iUser->text() << iPass->text() << "y"; + i=0; + while(i<moduleList.size()) + { + switch(moduleList[i].row()) + { + case 0: arg1 << "./vtblmod/fts3.so"; + break; + case 1: arg1 << "./vtblmod/rtree.so"; + break; + } + i++; + } + + if(j!=0) + { + temp=diff; + while(temp>=0) + { + arg1 << lmod[temp]->text(); + temp--; + } + } + } + if(targetComboBox->currentIndex()==0) + { + if(!tarU->text().compare("")) + { + msgBox->setText("Please enter MySQL username"); + msgBox->exec(); + } + else if(!tHostname->text().compare("")) + { + msgBox->setText("Please enter MySQL Hostname"); + msgBox->exec(); + } + else + { + msgBox->setText("No MySQL 5.1 engine supports 'check(expr)'.\nCHECK('expr') constraints are parsed but are not enforced."); + msgBox->exec(); + + arg2 << iUser->text() << iPass->text() << tHostname->text() << tarU->text() << tarP->text(); + + stat->setText("In Progress..."); + pl=new PluginThread(2,0,arg1.count(),arg1,arg2.count(),arg2); + pl->start(); + + dswitch->setEnabled(false); + connect(pl,SIGNAL(finished()),this,SLOT(updateStatus())); + + } + } + if(targetComboBox->currentIndex()==1) + { + if(!tarSave->text().compare("")) + { + msgBox->setText("Please enter the target directory"); + msgBox->exec(); + } + else + { + msgBox->setText("SQLite does not support Foreign Keys.\nFOREIGN KEY constraints are parsed but are not enforced."); + msgBox->exec(); + + arg2 << iUser->text() << iPass->text() << tarSave->text(); + + stat->setText("In Progress..."); + pl=new PluginThread(2,1,arg1.count(),arg1,arg2.count(),arg2); + pl->start(); + + dswitch->setEnabled(false); + connect(pl,SIGNAL(finished()),this,SLOT(updateStatus())); + } + } + } + } + else if(sourceComboBox->currentIndex() == 3) + { + QString p=userName->text(); + if(!p.compare("")) + { + msgBox->setText("Please enter the username of MySQL 5.0.51 Source Database"); + msgBox->exec(); + } + else if(!sHostname->text().compare("")) + { + msgBox->setText("Please enter MySQL Hostname"); + msgBox->exec(); + } + else + { + arg1 << sHostname->text() << userName->text() << password->text() << iUser->text() << iPass->text(); + if(targetComboBox->currentIndex()==0 || targetComboBox->currentIndex()==1) + { + if(!tarSave->text().compare("")) + { + msgBox->setText("Please enter the target directory"); + msgBox->exec(); + } + else + { + msgBox->setText("SQLite does not support Foreign Keys.\nFOREIGN KEY constraints are parsed but are not enforced."); + msgBox->exec(); + + arg2 << iUser->text() << iPass->text() << tarSave->text(); + + stat->setText("In Progress..."); + pl=new PluginThread(3,targetComboBox->currentIndex(),arg1.count(),arg1,arg2.count(),arg2); + pl->start(); + + dswitch->setEnabled(false); + connect(pl,SIGNAL(finished()),this,SLOT(updateStatus())); + + } + } + } + } +} + +void Window::updateStatus() +{ + dswitch->setEnabled(true); + + if(res1==-1 || res2==-1) + { + msgBox->setText("Error..."); + msgBox->exec(); + stat->setText("Error..."); + } + else if(res2==-2) + { + msgBox->setText("Database Switched.\n Error deleting interim database"); + msgBox->exec(); + stat->setText("Switched (Error deleting interim database)"); + } + else + { + msgBox->setText("Successfully Switched"); + msgBox->exec(); + stat->setText("Switched"); + } +} + +void Window::openLog() +{ + QUrl url("log.txt"); + QDesktopServices::openUrl(url); +} + + void PluginThread::run() + { + if(x==1) + { + ExtSqlite2 *s=new ExtSqlite2(a1,l1); + res1=s->dSwitchSqlite2(); + if(res1!=-1) + { + if(y==0) + { + ExtIntMySQL *m=new ExtIntMySQL(a2,l2); + res2=m->dSwitchIntMySQL(); + } + else if(y==1) + { + ExtIntSqlite3 *t=new ExtIntSqlite3(a2,l2); + res2=t->dSwitchIntSqlite3(); + } + } + } + else if(x==2) + { + ExtSqlite3 *s=new ExtSqlite3(a1,l1); + res1=s->dSwitchSqlite3(); + if(res1!=-1) + { + if(y==0) + { + ExtIntMySQL *m=new ExtIntMySQL(a2,l2); + res2=m->dSwitchIntMySQL(); + } + if(y==1) + { + ExtIntSqlite2 *t=new ExtIntSqlite2(a2,l2); + res2=t->dSwitchIntSqlite2(); + } + } + } + else if(x==3) + { + ExtMySQL *s=new ExtMySQL(a1,l1); + res1=s->dSwitchMySQL(); + if(res1!=-1) + { + if(y==0) + { + ExtIntSqlite2 *t=new ExtIntSqlite2(a2,l2); + res2=t->dSwitchIntSqlite2(); + } + else if(y==1) + { + ExtIntSqlite3 *t=new ExtIntSqlite3(a2,l2); + res2=t->dSwitchIntSqlite3(); + } + } + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-03-23 03:39:11
|
Revision: 16 http://twincling.svn.sourceforge.net/twincling/?rev=16&view=rev Author: siddharthpal Date: 2009-03-23 03:39:01 +0000 (Mon, 23 Mar 2009) Log Message: ----------- Added Paths: ----------- dswitch/src/guimain.cpp Added: dswitch/src/guimain.cpp =================================================================== --- dswitch/src/guimain.cpp (rev 0) +++ dswitch/src/guimain.cpp 2009-03-23 03:39:01 UTC (rev 16) @@ -0,0 +1,35 @@ +/** + * Copyright (C) 2005,2006,2007,2008. + * Twincling Technology Foundation. + * Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an "AS IS" + * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + +/** + * This creates a QApplication which runs the GUI window +*/ + +#include <QApplication> +#include <QIcon> +#include "guiwindow.h" + + int main(int argc, char *argv[]) + { + QApplication app(argc, argv); + + Window window; + window.show(); + return app.exec(); + } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-03-23 03:38:37
|
Revision: 15 http://twincling.svn.sourceforge.net/twincling/?rev=15&view=rev Author: siddharthpal Date: 2009-03-23 03:38:32 +0000 (Mon, 23 Mar 2009) Log Message: ----------- Added Paths: ----------- dswitch/src/guiwindow.h Added: dswitch/src/guiwindow.h =================================================================== --- dswitch/src/guiwindow.h (rev 0) +++ dswitch/src/guiwindow.h 2009-03-23 03:38:32 UTC (rev 15) @@ -0,0 +1,130 @@ +/** + * Copyright (C) 2005,2006,2007,2008. + * Twincling Technology Foundation. + * Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an "AS IS" + * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + + /** + * This header file is used by the "guiwindow.cpp" to create the GUI + */ + + #include <QDialog> + #include <QThread> + #include <QWizard> + + class QComboBox; + class QLabel; + class QPushButton; + class QLineEdit; + class QListWidget; + class QMessageBox; + + class Window : public QDialog + { + Q_OBJECT + + public: + Window(QWidget *parent = 0); + + private slots: + void srcBrowse(); + void browse1(); + void browse2(); + void browse3(); + void browse4(); + void browse5(); + void tarBrowse(); + void enableFields(int index); + void enable_combo(); + void limit_mod(); + void enable_vtb(int index); + void enable_usnpass(QString text); + void runPlugin(); + void updateStatus(); + void openLog(); + void showAbout(); + + private: + + QPushButton *createButton(const QString &text, const char *member); + QComboBox *createComboBox(const QString &text = QString()); + QLineEdit *createLineEdit(); + + QPalette sqlitec; + QPalette userc; + QPalette passc; + QComboBox *sourceComboBox; + QComboBox *vtbNum; + QComboBox *vtbC; + QComboBox *targetComboBox; + QLineEdit *userName; + QLineEdit *password; + + QLineEdit *lmod[5]; + QLineEdit *tarU; + QLineEdit *tarP; + + QLabel *dsLogo; + QLabel *vtbN; + QLabel *sourceDB; + QLabel *user; + QLabel *pass; + QLabel *path; + QLabel *vtb; + QLabel *mod[5]; + QLabel *vtbCon; + QLabel *tarDB; + QLabel *tarUsn; + QLabel *tarPass; + QLabel *tarSavePath; + QLabel *status; + QLabel *iU; + QLabel *iP; + QLabel *sHost; + QLabel *tHost; + QListWidget *listModules; + QPushButton *srcBrowseButton,*modBrowseButton[5],*tarBrowseButton; + QPushButton *dswitch; + QPushButton *log; + QPushButton *aboutUs; + + QLineEdit *sqlitePath; + QLineEdit *tarSave; + QLineEdit *stat; + QLineEdit *iUser; + QLineEdit *iPass; + QLineEdit *sHostname; + QLineEdit *tHostname; + QMessageBox *msgBox; + }; + +class PluginThread : public QThread + { + private: + int x,y,a1,a2; + QStringList l1,l2; + public: + PluginThread(int a, int b, int args, QStringList argl1, int argt, QStringList argl2) + { + x=a; + y=b; + a1=args; + a2=argt; + l1=argl1; + l2=argl2; + } + void run(); + }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-03-23 03:36:29
|
Revision: 14 http://twincling.svn.sourceforge.net/twincling/?rev=14&view=rev Author: siddharthpal Date: 2009-03-23 03:36:24 +0000 (Mon, 23 Mar 2009) Log Message: ----------- Added Paths: ----------- dswitch/src/include/extplugins.h Added: dswitch/src/include/extplugins.h =================================================================== --- dswitch/src/include/extplugins.h (rev 0) +++ dswitch/src/include/extplugins.h 2009-03-23 03:36:24 UTC (rev 14) @@ -0,0 +1,141 @@ +/** + * Copyright (C) 2005,2006,2007,2008. + * Twincling Technology Foundation. + * Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an "AS IS" + * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + +/** + * This header file contains the full declaration of the classes used in switching datasets +*/ + +#include <QtSql> +class ExtSqlite2 +{ + private: + int arg; + QStringList argl; + QDateTime qd; + QSqlDatabase db_source; + QSqlDatabase db_int; + QString db_str2; + + public: + ExtSqlite2(int x, QStringList y); + int dSwitchSqlite2(); + void extTables(); + void extViews(); + void extTriggers(); + void extIndexes(); +}; + +class ExtIntSqlite2 +{ + private: + int arg; + QStringList argl; + QDateTime qd; + QSqlDatabase db_tar; + QSqlDatabase db_int; + + public: + ExtIntSqlite2(int x, QStringList y); + int dSwitchIntSqlite2(); + void extIntTables(QString dbn); + void extIntViews(QString dbn); + void extIntTriggers(QString dbn); + void extIntIndexes(QString dbn); + void extIntVirtualTables(QString dbn); +}; + +class ExtSqlite3 +{ + private: + int arg; + QStringList argl; + QDateTime qd; + QSqlDatabase db_source; + QSqlDatabase db_int; + QString db_str2; + + public: + ExtSqlite3(int x, QStringList y); + int dSwitchSqlite3(); + void extTables(); + void extVirtualTables(); + void extViews(); + void extTriggers(); + void extIndexes(); +}; + +class ExtIntSqlite3 +{ + private: + int arg; + QStringList argl; + QDateTime qd; + QSqlDatabase db_tar; + QSqlDatabase db_int; + + public: + ExtIntSqlite3(int x, QStringList y); + int dSwitchIntSqlite3(); + void extIntTables(QString dbn); + void extIntViews(QString dbn); + void extIntTriggers(QString dbn); + void extIntIndexes(QString dbn); +}; + +class ExtMySQL +{ + private: + int arg; + QStringList argl; + QDateTime qd; + QSqlDatabase db_source; + QSqlDatabase db_int; + QString dbn; + + public: + ExtMySQL(int x, QStringList y); + int dSwitchMySQL(); + int tableExtract(); + int viewExtract(); + int triggerExtract(); + int indexExtract(); + int dataExtract(); + int funcExtract(); + int procExtract(); + +}; + +class ExtIntMySQL +{ + private: + int arg; + QStringList argl; + QDateTime qd; + QSqlDatabase db_tar; + QSqlDatabase db_int; + + public: + ExtIntMySQL(int x, QStringList y); + int dSwitchIntMySQL(); + void extIntTables(QString dbn); + void extIntViews(QString dbn); + void extIntTriggers(QString dbn); + void extIntIndexes(QString dbn); + void extIntVirtualTables(QString dbn); +}; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Twincling S. C. N. <twi...@li...> - 2009-03-23 03:34:27
|
Revision: 13 http://twincling.svn.sourceforge.net/twincling/?rev=13&view=rev Author: siddharthpal Date: 2009-03-23 03:34:19 +0000 (Mon, 23 Mar 2009) Log Message: ----------- Added Paths: ----------- dswitch/src/libsource/mysql5.0.51/inttotar/ dswitch/src/libsource/mysql5.0.51/inttotar/psql_to_mysql.cpp Added: dswitch/src/libsource/mysql5.0.51/inttotar/psql_to_mysql.cpp =================================================================== --- dswitch/src/libsource/mysql5.0.51/inttotar/psql_to_mysql.cpp (rev 0) +++ dswitch/src/libsource/mysql5.0.51/inttotar/psql_to_mysql.cpp 2009-03-23 03:34:19 UTC (rev 13) @@ -0,0 +1,365 @@ +/** + * Copyright (C) 2005,2006,2007,2008. + * Twincling Technology Foundation. + * Hyderabad, Andhra Pradesh, India. http://www.twincling.org/ + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an "AS IS" + * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + +/** + * This code switches datasets from Interim Database to MySQL 5.0.51 +*/ + +#include <QtSql> +#include <QString> +#include <QTextStream> +#include <QFile> +#include <stdio.h> +#include <QDateTime> +#include <stdlib.h> +#include "../../../include/extplugins.h" + +ExtIntMySQL::ExtIntMySQL(int x, QStringList y) +{ + arg=x; + argl=y; + + db_tar=QSqlDatabase::addDatabase("QMYSQL"); + db_tar.setHostName(argl[2]); + db_tar.setUserName(argl[3]); + db_tar.setPassword(argl[4]); + + db_int=QSqlDatabase::addDatabase("QPSQL","second"); + db_int.setHostName("localhost"); + db_int.setUserName(argl[0]); + db_int.setPassword(argl[1]); + db_int.setDatabaseName("twincdbint"); +} + +int ExtIntMySQL::dSwitchIntMySQL() +{ + freopen ("log.txt","a",stderr); + + if(db_int.open()==false) + { + qDebug() << "Can not open intermediate database"<<"\n"<< db_int.lastError()<<"\n"; + return -1; + } + if(db_tar.open()==false) + { + qDebug() << "Cannot open target database" << "\n" << db_tar.lastError() << "\n"; + return -1; + } + else + { + qDebug() << "Opening interim database with the provided user and password" << "\n"; + + QSqlQuery dbl_q(db_int); + dbl_q.exec("select dname from dbl"); + if(dbl_q.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\nselect dname from dbl" << "\n" << dbl_q.lastError() << "line 48" << endl; + + while(dbl_q.next()) + { + QString dbn=dbl_q.value(0).toString(); + QString dbn0=dbn; + + QSqlQuery createdb_query(db_tar); + + int dbid=0; + createdb_query.exec("create database "+dbn+" "); + while(createdb_query.lastError().isValid()) + { + if(createdb_query.lastError().text().contains("database exists",Qt::CaseInsensitive)) + { + dbn0=dbn; + dbn0.append(QString::number(dbid,10)); + } + createdb_query.exec("create database "+dbn0+" "); + dbid++; + } + + db_tar.close(); + db_tar.setDatabaseName(dbn0); + + if(db_tar.open()==false) + { + qDebug() << "Can not open target database"<<"\n" << db_tar.lastError()<<"\n"; + return -1; + } + + qDebug() << "Opening Target database: " << dbn << endl; + + extIntTables(dbn); + + extIntVirtualTables(dbn); + + extIntViews(dbn); + + extIntTriggers(dbn); + + extIntIndexes(dbn); + } + + db_int.close(); + db_int.setDatabaseName("postgres"); + + if(db_int.open()==false) + { + qDebug() << "Can not open target database for removal of interim database"<<"\n" << db_tar.lastError()<<"\n"; + return -2; + } + + QSqlQuery dropdb_q(db_int); + dropdb_q.exec("drop database twincdbint"); + if(dropdb_q.lastError().isValid()) + { + if(dropdb_q.lastError().text().contains("does not exist",Qt::CaseInsensitive)) + qDebug() << "\nInterim database(PostgreSQL) twincdbint deleted" << "\n" << "line 106" << endl; + else + qDebug() << "\nOn Interim database(PostgreSQL)\ndrop database twincdbint" << "\n" << dropdb_q.lastError() << "line 108" << endl; + } + qDebug() << "\nInterim database(PostgreSQL) twincdbint deleted" << endl; + + + qDebug() << "***********************************************************" << "\n\n\n\n\n\n"; + fclose (stderr); + db_tar.close(); + db_int.close(); + return 1; + } +} + +void ExtIntMySQL::extIntTables(QString dbn) +{ + QSqlQuery tbl_q(db_int),tbl_dat_q(db_int),tbl_cnt_q(db_int); + QSqlQuery tbl_creat_q(db_tar),tbl_ins_q(db_tar); + tbl_q.exec("select tname, tsql, dname ,forkey from tblsch where dname='"+dbn+"'"); + if(tbl_q.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\nselect tname, tsql, dname ,forkey from tblsch where dname='"+dbn+"'" << "\n" << tbl_q.lastError() << "line 127" << endl; + while(tbl_q.next()) + { + QString table_name=tbl_q.value(0).toString(); + QString table_sql=tbl_q.value(1).toString(); + int for_key=tbl_q.value(3).toInt(); + + int idv=table_sql.indexOf("varchar",0,Qt::CaseInsensitive); + while(idv!=-1) + { + int id1=table_sql.indexOf(",",idv); + if(id1==-1) + id1=table_sql.indexOf(")",idv); + + int id2=table_sql.indexOf("(",idv); + if(id2<idv || id2>id1) + table_sql.replace(idv,7,"TEXT"); //7 is the length of "varchar" + + idv=table_sql.indexOf("varchar",idv+1,Qt::CaseInsensitive); + } + + if (for_key) + { + table_sql.append("engine=innodb"); + } + + int idbrack=table_sql.indexOf("("); + table_sql.replace(idbrack,1," ("); + + table_sql.replace(QChar('"'),"`"); + table_sql.replace("'","`"); + tbl_creat_q.exec(table_sql); + if(tbl_creat_q.lastError().isValid()) + qDebug() << "\nOn Target database(MySQL)\n"<< table_sql << "\n" << tbl_creat_q.lastError() << "line 160" << endl; + + tbl_cnt_q.exec("select count(*) from "+table_name+"_"+dbn+"_d"); + if(tbl_cnt_q.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\nselect count(*) from "+table_name+"_"+dbn+"_d" << "\n" << tbl_cnt_q.lastError() << "line 164" << endl; + int cnt=0,i=0; + if(tbl_cnt_q.next()) + cnt=tbl_cnt_q.value(0).toInt(); + + tbl_dat_q.exec("select * from "+table_name+"_"+dbn); + if(tbl_dat_q.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\nselect * from "+table_name+"_"+dbn+" " << "\n" <<tbl_dat_q.lastError() << "line 171" << endl; + + while(tbl_dat_q.next() && cnt!=0) + { + QString ins="insert into "+table_name+" values ("; + while(i<cnt) + { + QString dat=tbl_dat_q.value(i).toString(); + dat.replace("'","''"); + ins+="'"+dat+"',"; + i++; + } + i=0; + ins+=")"; + int cpos=ins.indexOf(",)"); + ins.replace(cpos,1,""); + tbl_ins_q.exec(ins); + if(tbl_ins_q.lastError().isValid()) + qDebug() << "\nOn Target database(MySQL)\n" << ins << "\n" <<tbl_ins_q.lastError() << "line 189" << endl; + } + } +} + +void ExtIntMySQL::extIntVirtualTables(QString dbn) +{ + QSqlQuery vtb_q(db_int),vtb_col_q(db_int),vtb_cnt_q(db_int),vtb_dat_q(db_int),vtb_crt,vtb_ins_q; + vtb_q.exec("select vtname from vtblsch where dname='"+dbn+"'"); + if(vtb_q.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\nselect vtname from vtblsch where dname='"+dbn+"' " << "\n" << vtb_q.lastError() << "line 199" << endl; + + while(vtb_q.next()) + { + QString vtbn=vtb_q.value(0).toString(); + QString vtb_sql="create table "+vtbn+" ("; + + vtb_col_q.exec("select * from "+vtbn+"_"+dbn+"_d"); + if(vtb_col_q.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\nselect * from "+vtbn+"_"+dbn+"_d " << "\n" << vtb_col_q.lastError() << "line 208" << endl; + + while(vtb_col_q.next()) + { + QString vtbcolnm=vtb_col_q.value(0).toString(); + QString vtbcoldt=vtb_col_q.value(1).toString(); + + vtb_sql +=vtbcolnm+" "+vtbcoldt+", \n"; + } + + vtb_sql.append(")"); + int cpos=vtb_sql.indexOf(", \n)"); + vtb_sql.replace(cpos,3,""); + + vtb_crt.exec(vtb_sql); + if(vtb_crt.lastError().isValid()) + qDebug() << "\nOn Target database(MySQL)\n" << vtb_sql << "\n" << vtb_crt.lastError() << "line 224" << endl; + + vtb_cnt_q.exec("select count(*) from "+vtbn+"_"+dbn+"_d"); + if(vtb_cnt_q.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\nselect count(*) from "+vtbn+"_"+dbn+"_d " << "\n" << vtb_cnt_q.lastError() << "line 228" << endl; + int cnt=0,i=0; + if(vtb_cnt_q.next()) + cnt=vtb_cnt_q.value(0).toInt(); + + vtb_dat_q.exec("select * from "+vtbn+"_"+dbn); + if(vtb_dat_q.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\nselect * from "+vtbn+"_"+dbn+" " << "\n" << vtb_dat_q.lastError() << "line 235" << endl; + + while(vtb_dat_q.next() && cnt!=0) + { + QString vtb_ins="insert into "+vtbn+" values ("; + while(i<cnt) + { + QString dat=vtb_dat_q.value(i).toString(); + vtb_ins+="'"+dat+"',"; + i++; + } + i=0; + vtb_ins+=")"; + cpos=vtb_ins.indexOf(",)"); + vtb_ins.replace(cpos,1,""); + vtb_ins_q.exec(vtb_ins); + if(vtb_ins_q.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\n" << vtb_ins << "\n" << vtb_ins_q.lastError() << "line 252" << endl; + } + } +} + +void ExtIntMySQL::extIntViews(QString dbn) +{ + QSqlQuery view_q(db_int),view_creat_q(db_tar); + + view_q.exec("select viewname, sql from viewsch where dname='"+dbn+"'"); + if(view_q.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\nselect viewname, sql from viewsch where dname='"+dbn+"' " << "\n" << view_q.lastError() << "line 263" << endl; + + while(view_q.next()) + { + QString vname=view_q.value(0).toString(); + QString vsql=view_q.value(1).toString(); + + view_creat_q.exec(vsql); + if(view_creat_q.lastError().isValid()) + qDebug() << "\nOn Target database(MySQL)\n" << vsql << "\n" << view_creat_q.lastError() << "line 272" << endl; + } +} + +void ExtIntMySQL::extIntIndexes(QString dbn) +{ + QSqlQuery idx_q(db_int),idx_creat_q(db_tar); + + idx_q.exec("select sql from indexsch where dname='"+dbn+"'"); + if(idx_q.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\nselect sql from indexsch where dname='"+dbn+"' " << "\n" << idx_q.lastError() << "line 282" << endl; + + while(idx_q.next()) + { + QString idxsql=idx_q.value(0).toString(); + + idx_creat_q.exec(idxsql); + if(idx_creat_q.lastError().isValid()) + qDebug() << "\nOn Target database(MySQL)\n" << idxsql << "\n" << idx_creat_q.lastError() << "line 290" << endl; + } +} + +void ExtIntMySQL::extIntTriggers(QString dbn) +{ + QSqlQuery trig_q(db_int),trig_creat_q(db_tar); + + trig_q.exec("select sql, tbl from trigsch where dname='"+dbn+"'"); + if(trig_q.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\nselect sql, tbl from trigsch where dname='"+dbn+"' " << "\n" <<trig_q.lastError() << "line 300" << endl; + + while(trig_q.next()) + { + QString trigsql=trig_q.value(0).toString(); + QString trigtbl=trig_q.value(1).toString(); + + int id1=trigsql.indexOf(" EACH ", 0,Qt::CaseInsensitive); + + int idbegin=trigsql.indexOf(" BEGIN ",0,Qt::CaseInsensitive); + if(idbegin==-1) + { + idbegin=trigsql.indexOf("\nBEGIN ",0,Qt::CaseInsensitive); + if(idbegin==-1) + { + idbegin=trigsql.indexOf("\nBEGIN\n",0,Qt::CaseInsensitive); + if(idbegin==-1) + idbegin=trigsql.indexOf(" BEGIN\n",0,Qt::CaseInsensitive); + } + } + + int idtn=trigsql.indexOf(" "+trigtbl+" "); + if(idtn==-1 || idtn > idbegin) + { + idtn=trigsql.indexOf(" "+trigtbl+"\n",0,Qt::CaseInsensitive); + if(idtn==-1 || idtn > idbegin) + { + idtn=trigsql.indexOf("\n"+trigtbl+"\n ",0,Qt::CaseInsensitive); + if(idtn==-1 || idtn > idbegin) + idtn=trigsql.indexOf("\n"+trigtbl+" ",0,Qt::CaseInsensitive); + } + } + + if(id1<idtn || id1>idbegin) + trigsql.insert(idbegin," FOR EACH ROW "); + + trig_creat_q.exec(trigsql); + if(trig_creat_q.lastError().isValid()) + qDebug() << "\nOn Interim database(PostgreSQL)\n" << trigsql << "\n" <<trig_creat_q.lastError() << "line 338" << endl; + } + +} + \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |