2007-05-18 Stephan Holl * website/index.htm4, website/index-de.htm4: updated links to Release 0.2.0 2007-05-18 Jan-Oliver Wagner Release 0.2.0. * HowTo-Release.txt: Various additional steps for Windows Installer creation. * setup.py: extend setup rules to consider some Windows specific issues. * doc/InteProxy-de.odt, doc/InteProxy-en.odt: Finally the real date of release. 2007-05-18 Bernhard Herzog * inteproxy/main.py (setup_language): New function to set locale environment variables for gettext if they're not set yet. Improves locale handling on windows. (run_server): call setup_language 2007-05-16 Bernhard Herzog * inteproxy/resources.py (default_config_file): New function to determine the name of the default configuration file. * inteproxy/main.py (run_server): Use the new default_config_file function. 2007-05-16 Bernhard Herzog * inteproxy/resources.py (in_py2exe): New function to determine whether the program is running in a py2exe generated execitable * inteproxy/main.py (setup_logging): New function to setup logging. (run_server): Call setup_logging to initialize the logging and do it immediately after reading the config file, to avoid logging info to end up in the wrong place. 2007-05-16 Jan-Oliver Wagner Preparing 0.2.0 release. * HowTo-Release.txt: Updated especially the Windows Installer part. * inteproxy.iss, inteproxy/main.py: Increase version to 0.2.0. * doc/InteProxy-de.odt, doc/InteProxy-en.odt: Final typos, added date of release. 2007-05-16 Bernhard Herzog * inteproxy/resources.py (share_dir): When running InteProxy as an exectuable created with py2exe, determine the value of share_dir relative to the filename of the executable. 2007-05-16 Stephan Holl * doc/InteProxy-de.odt: typos * doc/InteProxy-en.odt: Updated english version to get it in parallel with german as well. Introducing layout and formatting from german version 2007-05-16 Jan-Oliver Wagner * doc/InteProxy-de.odt: Some fixes/typos here and there. 2007-05-14 Stephan Holl * doc/InteProxy-de.odt: Updated documentation for upcoming release: - added parts GUI, HTTP-webproxy, I18N, AccessConstraints/Fees, Bugfixes, Typos. needs some review, also translation into english needs to be done. 2007-05-10 Bernhard Herzog Reworked the way other threads open dialogs to make it work properly on windows. * inteproxy/gtkapp.py (InteProxyApplication.__init__): Initialize the gtk threads acquire the gtk lock here. See updated class doc-string for some more details. (InteProxyApplication.run): gtk.gdk.threads_init() moved to __init__ (InteProxyApplication.get_password) (InteProxyApplication.run_fees_dialog): Use call_in_gtk_thread to run the dialogs. (InteProxyApplication.is_gtk_thread): New method to determine whether a thread is the gtk thread. (InteProxyApplication.call_in_gtk_thread): New method to run a callback in the gtk thread. Used to run dialogs in the gtk thread. The method returns when the callback has returned in the gtk thread. 2007-05-10 Bernhard Herzog * inteproxy/resources.py (gettext): Handle case where the translation cannot be loaded. 2007-05-08 Bernhard Herzog * inteproxy/InteProxy-icon.png, inteproxy/InteProxy-logo.png, share/images/InteProxy-icon.png, share/images/InteProxy-logo.png: Moved the images to share/images. * inteproxy/resources.py (share_dir): Name of the share subdirectory determined at import time from the filename of the resources module (gettext): Use the share_dir variable (image_filename): Return image filenames relative to share_dir/images now. 2007-05-08 Bernhard Herzog * inteproxy/gtkapp.py (image_filename), inteproxy/resources.py (image_filename): Moved from gtkapp to resources 2007-05-08 Bernhard Herzog * inteproxy/gtkapp.py (InteProxyTextView.__init__): Add Tag "bold" (InteProxyMainWindow.__init__): Rephrase the text in the main window * po/de.po: Updated. 2007-05-08 Bernhard Herzog * po/de.po: New. German translations * po/Makefile: New. Commands to manage translations * po/README: New. Notes aout translations in InteProxy * inteproxy/resources.py: New. Provides acces to resources bundled with inteproxy. For now only implements translations. * inteproxy/gtkapp.py (InteProxyApplication), inteproxy/getpassword.py (get_password_with_cache): Internationalization of strings 2007-05-07 Bernhard Herzog * inteproxy/gtkapp.py, inteproxy/getpassword.py: Mark strings for translation 2007-05-07 Bernhard Herzog * inteproxy/feesdialog.py (handle_fees_and_access_constraints): Remove the little test exececuted when the module is run as a script. It doesn't work anymore and the dialog is now in gtkapp.py anyway. 2007-05-07 Bernhard Herzog * inteproxy/main.py (setup_urllib2): Do not instantiate a urllib2.HTTPBasicAuthHandler. Now InteProxy passes 401 responses ("Unauthorized") through to the client. (IntePasswordManager): Removed because it's no longer used. 2007-05-07 Bernhard Herzog * inteproxy/gtkapp.py (InteProxyTextView.__init__): Add two new default tags: "title" and "heading" (run_fees_dialog): Replace the label widgets with one InteProxyTextView instance. 2007-05-07 Bernhard Herzog * inteproxy/gtkapp.py (InteProxyTextView) (InteProxyMainWindow.__init__): Move some of the TextView initialization into the separate new class InteProxyTextView. 2007-05-04 Bernhard Herzog Fix for issue #369 * inteproxy/main.py (HTTPRedirectHandler): New. A HTTPRedirectHandler for urllib2 that switches off redirection handling. (setup_urllib2): Install HTTPRedirectHandler too. 2007-05-04 Bernhard Herzog * inteproxy/main.py (setup_urllib2): Build a list of handlers incrementatlly so that we can call build_opener in once place instead of two. 2007-05-02 Bernhard Herzog * inteproxy/feesdialog.py (handle_fees_and_access_constraints): Keep a copy of the response data around, so that it's passed to the caller properly. 2007-05-02 Bernhard Herzog * inteproxy/feesdialog.py: Remove special case for missing title. It should alway be present and it would make more sense to handle this case in the caller. 2007-05-02 Bernhard Herzog * inteproxy/transcoder.py (OWSProxyGETTranscoder.get_url): Only modify the URL if the user didn't cancel the username/password dialog 2007-05-02 Bernhard Herzog * inteproxy/getpassword.py (get_password_with_cache): Only add username/password to the cache if the user didn't cancel. 2007-05-02 Bernhard Herzog * inteproxy/gtkapp.py (StatusIcon.__init__) (InteProxyApplication.__init__): Move the logic that makes the status icon optional from InteProxyApplication to the StatusIcon, making InteProxyApplication a little simpler. (InteProxyApplication.__init__): Wait until the StatusIcon is actually shown before deciding whether to remove menu items and show the main window immediately. (StatusIcon.is_embedded, InteProxyApplication.hide_main_window): Adapt to the changed logic. 2007-05-02 Bernhard Herzog * inteproxy/gtkapp.py (InteProxyApplication.__init__): If no status icon is shown hide the File/Close menu item because it would hide the window, leaving the user without a way to quit InteProxy. (StatusIcon.is_embedded): New. Delegates to gtk.StatusIcon.is_embedded 2007-05-02 Bernhard Herzog * inteproxy/app.py: Remove unused imports 2007-05-02 Bernhard Herzog * inteproxy/main.py (run_server): Import the gtkapp module in the main function to avoid loading it when running test cases. Otherwise the gtk module will be loaded which requires a working X server connection. 2007-05-02 Bernhard Herzog * inteproxy/feesdialog.py (run_fees_dialog): Moved to gtkapp.py. * inteproxy/gtkapp.py (run_fees_dialog): Copy of feesdialog.run_fees_dialog, but changed to assume that gtk is available. * inteproxy/app.py (InteProxyApplication.run_fees_dialog): Turned into an abstract method 2007-04-30 Bernhard Herzog * inteproxy/getpassword.py: Remove top-level test code that runs the password dialog. 2007-04-30 Bernhard Herzog * inteproxy/getpassword.py (getpassword): Moved to gtkapp.py. * inteproxy/gtkapp.py (run_password_dialog): Copy of getpassword.getpassword, but changed to include a doc-string and the correct return value when the dialog is cancelled. (InteProxyApplication.get_password): Overwrite the inherited method to vall run_password_dialog. * inteproxy/app.py (InteProxyApplication.get_password): Turned into an abstract method 2007-04-30 Bernhard Herzog * inteproxy/gtkapp.py (run_about_dialog): New. Convenience function to run gtk.AboutDialog with properties given as keyword arguments. (InteProxyApplication.run_about_dialog): Use the new run_about_dialog function to run the dialog. Now the dialog shows the logo, version, copyright information and the web site URL. 2007-04-30 Bernhard Herzog * inteproxy/gtkapp.py (load_image): New. Loads an image as a pixbuf (InteProxyMainWindow.__init__): Use load_image to load the logo 2007-04-30 Bernhard Herzog * inteproxy/InteProxy-logo.png: New. InteProxy logo. * inteproxy/proxycore.py (MasterWorkerServer.get_inteproxy_url): New method to return the url of the inteproxy * inteproxy/gtkapp.py (image_filename): New. Determines the filename of image files bundled with inteproxy. (InteProxyMainWindow.__init__): Better content for the main window: the InteProxy logo and a hint about the usage as an HTTP proxy including the proxy URL. 2007-04-27 Bernhard Herzog * inteproxy/getpassword.py: Remove the code for the non-gtk user interface: (getpassword_pywin, getpassword_tty): removed. 2007-04-26 Bernhard Herzog * inteproxy/app.py: New. Base application class. * inteproxy/gtkapp.py: New. GTK based application with mainwindow and status icon * inteproxy/main.py (the_application): New. Global variable to hold the application object (run_server): Instantiate the gtk InteProxyApplication and run it. * inteproxy/getpassword.py (get_password_with_cache): Ask for the password via the application. * inteproxy/feesdialog.py (handle_fees_and_access_constraints): Run the dialog via the application * inteproxy/httpserver.py (ServerThread): New. Class to run the proxy server in a separate thread. * inteproxy/InteProxy-icon.png: New. Status icon. * inteproxy/proxycore.py: Tweak import statements because of newly introduced circular imports. 2007-04-24 Bernhard Herzog * InteProxy.py, inteproxy/main.py: Move practically everything from InteProxy.py to the new file inteproxy/main.py. InteProxy.py now only imports a function from inteproxy.main and calls it. 2007-04-24 Bernhard Herzog * inteproxy/proxycore.py: New. Core classes and functions of InteProxy. * InteProxy.py (MasterWorkerServer, InteProxyHTTPRequestHandler) (log_date_time_string): Moved to inteproxy/proxycore.py 2007-04-24 Bernhard Herzog * inteproxy/httpserver.py: New. Move parts of InteProxy.py here to form a new base class for HTTP servers that can be run in a thread and stopped from other threads. * InteProxy.py (MasterWorkerServer): Derive from inteproxy.httpserver.HTTPServer (MasterWorkerServer.serve_forever, MasterWorkerServer.server_close): Removed. They're in the base classe now. 2007-04-24 Stephan Holl * rpm/inteproxy-sles9.spec: Updated to reflect the backported python2.4-packages. created a wrapper-script to run from whithin the path. 2007-04-23 Bernhard Herzog * inteproxy/feesdialog.py: New. Dialog for fees and access constraints and code to extract the information from a GetCapabilities response. * InteProxy.py (InteProxyHTTPRequestHandler.handle_proxy_request): Show the feesdialog when appropriate 2007-04-23 Bernhard Herzog * inteproxy, inteproxy/__init__.py: New. Introduce inteproxy package for better code organisation * getpassword.py, proxyconnection.py, threadpool.py, transcoder.py: Moved to the new inteproxy package * InteProxy.py, test/test_owsproxy_get_transcoder.py, test/test_owsproxy_post_transcoder.py, test/test_threadpool.py, test/test_transcoder_map.py: Adapt to code reorganization 2007-04-20 Stephan Holl * website/index-de.htm4: german translation finished 2007-04-20 Stephan Holl * website/index.htm4: typos, small corrections * website/template_header.m4: added logic to switch lang also for workflow-subtext/headline * website/Makefile: added clean target 2007-04-20 Jan-Oliver Wagner * website/index.htm4: Some Typos fixed, clean-ups. 2007-04-20 Stephan Holl * website/pix/InteProxy-WorkFlow-de.png, pix/InteProxy-WorkFlow-en_small.png, pix/InteProxy-WorkFlow-en.png: New. workflow-graphics for website * pix/InteProxy-logo.png: shrinked * index.htm4: addded english texts, links * template_header.m4: added div for workflow, footer * inteproxy.css: changed color schema to grey/blue 2007-04-20 Stephan Holl * rpm/inteproxy-sles9.spec: New. added SPEC-file to build inteproxy-0.1.2-RPMs on SLES9 2007-04-19 Jan-Oliver Wagner * website/website, website/index.htm4, website/inteproxy.css, website/index-de.htm4, website/Makefile, website/template.m4, website/template_header.m4, website/pix, website/pix/InteProxy-logo.png: New. Coarse skeleton for a website. 2007-04-19 Jan-Oliver Wagner * doc/InteProxy-de.odt: Proof-reading and various small improvements. 2007-04-18 Bernhard Herzog * threadpool.py: New. Simple thread pool class to replace the global queue and worker thread function in InteProxy.py * test/test_threadpool.py: New. Tests for the thread pool * InteProxy.py (the_queue, worker_thread): Removed. The functionality is now in threadpool.py (MasterWorkerServer.__init__): New. Extend base class method to initialize a thread pool (MasterWorkerServer.process_request): Handle requests with the thread pool (run_server): Adapt to MasterWorkerServer and thread pool changes. 2007-04-18 Bernhard Herzog * InteProxy.py (InteProxyHTTPRequestHandler): Fix debug level comment. 2007-04-18 Stephan Holl * doc/InteProxy-de.odt: changed the URL for OL app to demo.intevation.org, some typos, fixes 2007-04-17 Stephan Holl * doc/InteProxy-de.odt: updated docs with scenario of adding secure to webmap-clients, Niedersachsenviewer Plus, OpenLayers 2007-04-17 Bernhard Herzog * getpassword.py: Add new window system "gtk". gtk is the default now. Also, the getpassword module can be run directly as a script now, to test the default dialog. (getpassword_gtk): New. Implements a simple password dialog using gtk 2007-04-17 Jan-Oliver Wagner * doc/InteProxy-logo.svg, InteProxy-logo.png: New. The logo of InteProxy. 2007-04-17 Bernhard Herzog * InteProxy.py (run_server): Use an absolute filename for the default config file, so that it must be in the same directory as InteProxy.py and we don't accidentally pick up other config files if InteProxy is started with a different working directory. 2007-04-12 Stephan Holl * InteProxy-de.odt/InteProxy-en.odt: Update of documentation + Adding header/footer/pagenumbers + Describing all calling-parameter-options + Adding section about configuration-file + describing scenario how to use InteProxy as webproxy _and_ OWSProxy + text-cosmetics 2007-04-12 Bernhard Herzog * InteProxy.py: Import getpassword to make http basic authentication work again. 2007-04-11 Bernhard Herzog * test/test_transcoder_map.py (TestTranscoderMap.test_get_transcoder_http_proxy) (TestTranscoderMap.test_get_transcoder_inteproxy_style): New. Tests for the get_transcoder method. (TestTranscoderMap.test, TestTranscoderMap.test_lookup): Renamed the test method to test_lookup. 2007-04-11 Bernhard Herzog * transcoder.py (TranscoderMap.get_transcoder, get_transcoder): Turn the get_transcoder function into a method of TranscoderMap. * InteProxy.py (InteProxyHTTPRequestHandler.handle_proxy_request): get_transcoder is now a method of the transcoder map. 2007-04-11 Bernhard Herzog * transcoder.py (get_transcoder): Simplify the logic. We only need to special case the "old" inteproxy style 2007-04-11 Bernhard Herzog * transcoder.py (get_transcoder): Make "http" the default scheme for the old InteProxy case, so that inteproxy by default simply forwards the requests. 2007-04-05 Bernhard Herzog * transcoder.py (TranscoderMap): Add a doc-string 2007-04-05 Bernhard Herzog * test/test_transcoder_map.py: New. Test cases for the TranscoderMap * test/support.py: New. Support code for test cases 2007-04-05 Bernhard Herzog * transcoder.py (create_transcoder_map): New. Creates the default transcoder map 2007-04-05 Bernhard Herzog * transcoder.py (IdentityTranscoder): Turn it into a new-style class (HTTPSTranscoder.__init__): Use super to call the base class constructor 2007-04-05 Bernhard Herzog * transcoder.py (IdentityTranscoder): Fix doc-string 2007-04-05 Bernhard Herzog * InteProxy.py (run_server): Add command line option --config-file with default inteproxy.cfg. Read the transcoder configuration from the file specified with this option. * transcoder.py (HTTPSTranscoder): New base class for the OWSProxy transcoders. HTTPSTranscoder turns all URLs into https urls. (TranscoderMap): New class for the transcoder_map. This takes care of the lookup and can read a config file. (transcoder_map): Is now a TranscoderMap instance. (get_transcoder): Uses transcoder_map directly now. Also no longer hard-wires conversion to https urls. (lookup_transcoder): removed again. It functionality is now part of transcoder_map * demo.cfg: New. Example configuration. 2007-04-05 Bernhard Herzog * InteProxy.py (InteProxyHTTPRequestHandler.transfer_data.limit_length): If debug level is less than two, limit the length of the debug output with the actual data transferred. When all the data is shown the other usually more interesting debug information is easily overlooked. 2007-04-05 Bernhard Herzog First step towards http proxy. InteProxy can be used as a http proxy now as well (it still supports the old mode at the same time). This implements part of feature request #349 * transcoder.py (lookup_transcoder): New method extracted from get_transcoder to handle the actual transcoder lookup. (get_transcoder): Handles the case when InteProxy is used as an HTTP Proxy. 2007-04-04 Bernhard Herzog * InteProxy.py (run_server): The default value of the debug level is now 0 instead of None 2007-03-29 Jan-Oliver Wagner Preparing release 0.1.2. * doc/InteProxy-en.odt, doc/InteProxy-de.odt: Updated and added title page, table of contents, workflow figure, version history. Raised version to 0.1.2. * doc/InteProxy-WorkFlow-en.odg: New. English translation of the german version. * HowTo-Release.txt: New. Describes roughly how to make a new InteProxy release. * InteProxy.py, inteproxy.iss: Raised version to 0.1.2. 2007-02-13 Jan-Oliver Wagner * doc/InteProxy-WorkFlow-de.odg: New. Figure that illustrates the work flow for InteProxy. 2007-02-08 Bernhard Herzog * transcoder.py (OWSProxyPOSTTranscoder.convert_body): Handle WFS Transaction in the same way as GetFeature. Based on a patch by Stephan Holl 2007-02-08 Bernhard Herzog * InteProxy.py (InteProxyHTTPRequestHandler.handle_proxy_request): Set the protocol version of the InteProxyHTTPRequestHandler to the version used in the request. Ideally it should be set to the version of the reply received from the remote host. But that's not possible to implement with urllib2. See the comments in the code. Fixes issue #271. 2007-02-08 Bernhard Herzog * InteProxy.py (run_server): New option --workers to specify the number of the worker threads. Default is 5. run_server now starts the requested number of threads. * getpassword.py (get_password_with_cache): Access the password cache in a thread-safe way. 2007-02-08 Bernhard Herzog * test/runtests.py, test/test_owsproxy_post_transcoder.py, test/test_owsproxy_get_transcoder.py: New files with the beginnings of a test suite. 2007-02-08 Bernhard Herzog * transcoder.py (OWSProxyGETTranscoder.get_url): Quote username and password properly. 2007-02-07 Bernhard Herzog * getpassword.py: Remove unused import 2007-02-07 Bernhard Herzog * transcoder.py: New module for classes that are used to modify http requests * InteProxy.py (InteProxyHTTPRequestHandler.handle_proxy_request): Use a transcoder to convert urls and -- this is new -- also the body of the request if there is one. (InteProxyHTTPRequestHandler.convert_url): Removed. The functionality of this method is now in the transcoder module 2007-02-07 Bernhard Herzog * getpassword.py: New module for the password handling code. * InteProxy.py: Move the password handling into a separate module. (InteProxyHTTPRequestHandler.convert_url): Use the new getpassword module 2007-01-30 Bernhard Herzog * InteProxy.py (getpassword_crt, getpassword_tty): renamed getpassword_crt to getpassword_tty. "tty" is a better term for the terminal "window system" than "crt" 2007-01-30 Bernhard Herzog * InteProxy.py (InteProxyHTTPRequestHandler.handle_proxy_request): Read the client request body before the new https request for the actual server is created. This will make it easier to deal with cases wehre the body has to be modified. 2007-01-30 Bernhard Herzog Add a --debug-level option. * InteProxy.py (InteProxyHTTPRequestHandler.debug_level): New class variable indicating the debug level. (InteProxyHTTPRequestHandler.handle_proxy_request) (InteProxyHTTPRequestHandler.transfer_data): log debug information (InteProxyHTTPRequestHandler.log_debug): New method to actually log the debug message if debug_level > 0 (setup_urllib2): New parameter debuglevel which is passed through to the various http handlers to activate their debug output. (run_server): New command line option --debug-level to set the debug level. 2007-01-26 Bernhard Herzog * InteProxy.py (InteProxyHTTPRequestHandler.handle_proxy_request): Fix typo in comment 2006-12-04 Jan-Oliver Wagner * InteProxy.py, inteproxy.iss: Updating version number to 0.1.1. 2006-12-04 Jan-Oliver Wagner * doc/InteProxy-de.odt, doc/InteProxy-en.odt: Updated and extended documentation for upconing 0.1.1 release. 2006-11-16 Thomas Arendsen Hein * InteProxy.py (setup_urllib2): Use proxyconnection module when https_proxy environment variable is set. 2006-11-16 Thomas Arendsen Hein * proxyconnection.py (ConnectHTTPHandler, ConnectHTTPSHandler): Set proxy via ConnectHTTPHandler/ConnectHTTPSHandler, this fixes redirections and makes setting the proxy easier. Taken from Norm Petterson's comment on 2005-05-04: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/456195 2006-11-16 Thomas Arendsen Hein * proxyconnection.py (ProxyHTTPConnection.request): "int(port)" instead of just "port", so passing ports really works "rest or '/'" instead of "url" to make HTTP/1.0-only servers happy (__main__): use sys.argv for passing URL and proxy:port for tests. 2006-11-16 Thomas Arendsen Hein * proxyconnection.py: New. urrlib2 opener for SSL proxy (CONNECT) 2006-11-16 Jan-Oliver Wagner * InteProxy.py (inteproxy_version): New. Version string. (setup_urllib2): Replaced HTTPHandler by ProxyHandler to make InteProxy use Proxies properly. (run_server): Print out version at startup. 2006-11-13 Jan-Oliver Wagner * inteproxy.iss: Updated to 0.1. 2006-11-13 Jan-Oliver Wagner Updated documentation. * doc/InteProxy-de.odt: Updated and extended. * doc/InteProxy-en.odt: New. English version. 2006-11-13 Jan-Oliver Wagner * InteProxy.py (pw_cache): Added global password Cache. (InteProxyHTTPRequestHandler.convert_url): Added use of password cache. 2006-11-01 Jan-Oliver Wagner * doc/InteProxy-de.odt: New. German user documentation for InteProxy. 2006-11-01 Jan-Oliver Wagner * setup.py: New. Setup rule for py2exe. * inteproxy.iss: New. InnoSetup setup file for InteProxy. 2006-10-31 Jan-Oliver Wagner * InteProxy.py (InteProxyHTTPRequestHandler.convert_url): Added mandatory user authentication dialog and adding the authentication data in the deegree OWS-Proxy syntax to the proxied URL. * ChangeLog: Started.