diff --git a/org.adempiere.base/src/org/compiere/dbPort/Convert.java b/org.adempiere.base/src/org/compiere/dbPort/Convert.java index 6330eb1e7c..5d67befa76 100644 --- a/org.adempiere.base/src/org/compiere/dbPort/Convert.java +++ b/org.adempiere.base/src/org/compiere/dbPort/Convert.java @@ -529,9 +529,8 @@ public abstract class Convert public static String getMigrationScriptFolder(String dbtype) { // migration/iD[version]/[oracle|postgresql] directory String version = Adempiere.MAIN_VERSION.substring(8); - boolean isIDE = Files.isDirectory(Paths.get(Adempiere.getAdempiereHome() + File.separator + "org.adempiere.base")); String homeScript; - if (isIDE) + if (Util.isDeveloperMode()) homeScript = Adempiere.getAdempiereHome() + File.separator; else homeScript = System.getProperty("java.io.tmpdir") + File.separator; diff --git a/org.adempiere.base/src/org/compiere/util/Env.java b/org.adempiere.base/src/org/compiere/util/Env.java index d7536ec76e..bd784ef55a 100644 --- a/org.adempiere.base/src/org/compiere/util/Env.java +++ b/org.adempiere.base/src/org/compiere/util/Env.java @@ -118,6 +118,7 @@ public final class Env public static final String HAS_ALIAS = "$HasAlias"; public static final String IS_CAN_APPROVE_OWN_DOC = "#IsCanApproveOwnDoc"; public static final String IS_CLIENT_ADMIN = "#IsClientAdmin"; + public static final String DEVELOPER_MODE = "#DeveloperMode"; /** Context Language identifier */ public static final String LANGUAGE = "#AD_Language"; public static final String LANGUAGE_NAME = "#LanguageName"; diff --git a/org.adempiere.base/src/org/compiere/util/Login.java b/org.adempiere.base/src/org/compiere/util/Login.java index 332c3b6f0a..753914928d 100644 --- a/org.adempiere.base/src/org/compiere/util/Login.java +++ b/org.adempiere.base/src/org/compiere/util/Login.java @@ -874,6 +874,7 @@ public class Login // Other Settings Env.setContext(m_ctx, "#YYYY", "Y"); + Env.setContext(m_ctx, Env.DEVELOPER_MODE, Util.isDeveloperMode() ? "Y" : "N"); Env.setContext(m_ctx, Env.STANDARD_PRECISION, 2); // AccountSchema Info (first) diff --git a/org.adempiere.base/src/org/compiere/util/Util.java b/org.adempiere.base/src/org/compiere/util/Util.java index 9bcace9f17..af82be0c00 100644 --- a/org.adempiere.base/src/org/compiere/util/Util.java +++ b/org.adempiere.base/src/org/compiere/util/Util.java @@ -21,6 +21,8 @@ import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; +import java.nio.file.Files; +import java.nio.file.Paths; import java.sql.Timestamp; import java.text.AttributedCharacterIterator; import java.text.AttributedString; @@ -42,6 +44,8 @@ import javax.swing.InputMap; import javax.swing.JComponent; import javax.swing.KeyStroke; +import org.compiere.Adempiere; + import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.pdf.PdfContentByte; @@ -777,4 +781,11 @@ public class Util return value == null ? false : value.matches(UUID_REGEX); } + /** + * @return true if there is a directory org.adempiere.base within AdempiereHome (is the case when executed from Eclipse) + */ + public static boolean isDeveloperMode() { + return Files.isDirectory(Paths.get(Adempiere.getAdempiereHome() + File.separator + "org.adempiere.base")); + } + } // Util