Обсуждение: Re; pg_dump from Java

Поиск
Список
Период
Сортировка

Re; pg_dump from Java

От
"Michael Schmidt"
Дата:
Folks,
I've continued to work on the problem (stubbornness + free time is a deadly combination) and have gotten a solution others might find helpful.  In Java 1.5 (5.0 per their new numbering) there is a new ProcessBuilder class.  It is a different way to create a runtime process that allows setting environmental variables.  Of particular interest is the redirectErrorStream() method, which does just that - combines stderr with stdin.  This simplifies matters - allowing the use of just one BufferedReader and lo and behold - the Password: prompt showed up.  You can't readLine() it, but nevertheless, it is accessible. 
 
Later!
Michael Schmidt

Re: Re; pg_dump from Java

От
Markus Schaber
Дата:
Hi, Michael,

Michael Schmidt wrote:

> I've continued to work on the problem (stubbornness + free time is a
> deadly combination) and have gotten a solution others might find
> helpful.  In Java 1.5 (5.0 per their new numbering) there is a new
> ProcessBuilder class.  It is a different way to create a runtime process
> that allows setting environmental variables.

Maybe you can also use the appropriate environmental variable to pass
the password to pg_dump, it should work for all libpq based applications¹.

http://www.postgresql.org/docs/8.1/interactive/libpq-envars.html

This should work even nicer than parsing stdout / stderr.



HTH,
Markus

¹ Exception is debian, they put wrappers into the path which don't
honour those variables, and do their own magic.
--
Markus Schaber | Logical Tracking&Tracing International AG
Dipl. Inf.     | Software Development GIS

Fight against software patents in EU! www.ffii.org www.nosoftwarepatents.org


Re: Re; pg_dump from Java

От
"Michael Schmidt"
Дата:
Markus,
 
Thanks for the info about these environment variables - pretty handy stuff!  However, it seems a possible drawback in using them is that they could compromise cross-platform compatibility.  Also, there was mention that PGPASSWORD could pose security issues on some systems.  As I have it set up now, the user enters the password into the application on the first database access and it is stored for the duration of the session only. 
 
Michael Schmidt
 
> I've continued to work on the problem (stubbornness + free time is a
> deadly combination) and have gotten a solution others might find
> helpful.  In Java 1.5 (5.0 per their new numbering) there is a new
> ProcessBuilder class.  It is a different way to create a runtime process
> that allows setting environmental variables.

Maybe you can also use the appropriate environmental variable to pass
the password to pg_dump, it should work for all libpq based applications¹.

http://www.postgresql.org/docs/8.1/interactive/libpq-envars.html

This should work even nicer than parsing stdout / stderr.



HTH,
Markus

¹ Exception is debian, they put wrappers into the path which don't
honour those variables, and do their own magic.
--
Markus Schaber | Logical Tracking&Tracing International AG
Dipl. Inf.     | Software Development GIS

Fight against software patents in EU! www.ffii.org www.nosoftwarepatents.org


---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match