Message-ID: From: "MarekUniq (@MarekUniq)" To: "pgjdbc/pgjdbc" Date: Fri, 31 May 2024 13:15:19 +0000 Subject: Re: [pgjdbc/pgjdbc] PR #2646: feat: improve libpq compatibility for URL parsing, environment variables, passfile, and property naming In-Reply-To: References: List-Id: X-GitHub-Author-Login: MarekUniq X-GitHub-Comment-Id: 1622405123 X-GitHub-Comment-Type: review_comment X-GitHub-Commit: 7db00b9839b123548eefdf3a1a72235505f23264 X-GitHub-Issue: 2646 X-GitHub-Path: pgjdbc/src/main/java/org/postgresql/PGEnvironment.java X-GitHub-Repo: pgjdbc/pgjdbc X-GitHub-Type: review_comment X-GitHub-Url: https://github.com/pgjdbc/pgjdbc/pull/2646#discussion_r1622405123 Content-Type: text/plain; charset=utf-8 (on pgjdbc/src/main/java/org/postgresql/PGEnvironment.java) > The enum is public, it is located in a public org.postgresql package, nothing in its javadoc says anything regarding "for pgjdbc internal use only" and so on. > There might be usages of the enum outside of the driver. Exactly, this was the point of my question. There is an enum. It is meant to be used only internally by pgjdbc project. But, I have to make enum `public` because it is used by different packages inside pgjdbc project (technical/language limitation) Javadoc etc is soft restriction, public enum can still be used. I was wondering if there was an approach to the problem described above. How should we create classes/enums that are used by different packages in the pgjdbc project internally, but when renaming/moving/deleting them, the issue of "backward compatibility" is irrelevant.