Thread: Re; pg_dump from Java
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
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
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
> 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