📄 configurationpanel.java
字号:
javaHome = javaHome.substring(0, javaHome.length()-4);
fJavaHome.setText(javaHome);
// AppsServer
fAppsServer.setText(InetAddress.getLocalHost().getHostName());
// Database Server
fDatabaseServer.setText(InetAddress.getLocalHost().getHostName());
// Mail Server
fMailServer.setText(InetAddress.getLocalHost().getHostName());
// Get TNS Names
fillTNSName("");
} // !envLoaded
// Default FTP stuff
if (!m_properties.containsKey(COMPIERE_FTP_SERVER))
{
m_properties.setProperty(COMPIERE_FTP_SERVER, "localhost");
m_properties.setProperty(COMPIERE_FTP_USER, "anonymous");
m_properties.setProperty(COMPIERE_FTP_PASSWORD, "user@host.com");
m_properties.setProperty(COMPIERE_FTP_PREFIX, "my");
}
// Default Java Options
if (!m_properties.containsKey(COMPIERE_JAVA_OPTIONS))
m_properties.setProperty(COMPIERE_JAVA_OPTIONS, "-Xms32m -Xmx128m");
// (String)m_properties.get(COMPIERE_DB_URL) // derived
} // dynInit
/**
* Fill TNS Name
* @param defaultValue defaultValue
*/
private void fillTNSName (String defaultValue)
{
// default value to lowercase or null
String def = defaultValue;
if (def != null && def.trim().length() == 0)
def = null;
if (def != null)
{
def = def.toLowerCase();
fTNSName.addItem(def);
}
// Search for Oracle Info
String path = System.getProperty("java.library.path");
String[] entries = path.split(File.pathSeparator);
for (int e = 0; e < entries.length; e++)
{
String entry = entries[e].toLowerCase();
if (entry.indexOf("ora") != -1 && entry.endsWith("bin"))
{
StringBuffer sb = getTNS_File (entries[e].substring(0, entries[e].length()-4));
String[] tnsnames = getTNS_Names (sb);
if (tnsnames != null)
{
for (int i = 0; i < tnsnames.length; i++)
{
String tns = tnsnames[i];
if (!tns.equals(def))
fTNSName.addItem(tns);
}
break;
}
}
} // for all path entries
// Set first entry
fTNSName.addActionListener(this);
if (fTNSName.getItemCount() > 0)
fTNSName.setSelectedIndex(0);
} // fillTNSName
/**
* Get File tnmsnames.ora in StringBuffer
* @param oraHome ORACLE_HOME
* @return tnsnames.ora or null
*/
private StringBuffer getTNS_File (String oraHome)
{
String tnsnames = oraHome + File.separator
+ "network" + File.separator
+ "admin" + File.separator
+ "tnsnames.ora";
File tnsfile = new File (tnsnames);
if (!tnsfile.exists())
return null;
System.out.println("Searching " + tnsnames);
StringBuffer sb = new StringBuffer();
try
{
FileReader fr = new FileReader (tnsfile);
int c;
while ((c = fr.read()) != -1)
sb.append((char)c);
}
catch (IOException ex)
{
System.err.println("Error Reading " + tnsnames);
ex.printStackTrace();
return null;
}
if (sb.length() == 0)
return null;
return sb;
} // getTNS_File
/**
* Get TNS Names entries.
* Assumes standard tnsmanes.ora formatting of NetMgr
* @param tnsnames content of tnsnames.ora
* @return tns names or null
*/
private String[] getTNS_Names (StringBuffer tnsnames)
{
if (tnsnames == null)
return null;
ArrayList list = new ArrayList();
Pattern pattern = Pattern.compile("$", Pattern.MULTILINE);
String[] lines = pattern.split(tnsnames);
for (int i = 0; i < lines.length; i++)
{
String line = lines[i].trim();
if (line.length() > 0
&& Character.isLetter(line.charAt(0)) // no # (
&& line.indexOf("=") != -1
&& line.indexOf("EXTPROC_") == -1
&& line.indexOf("_HTTP") == -1)
{
String entry = line.substring(0, line.indexOf('=')).trim().toLowerCase();
System.out.println("- " + entry);
list.add(entry);
}
}
// Convert to Array
if (list.size() == 0)
return null;
String[] retValue = new String[list.size()];
list.toArray(retValue);
return retValue;
} // getTNS_Names
/*************************************************************************/
/**
* ActionListener
* @param e event
*/
public void actionPerformed(ActionEvent e)
{
if (m_testing)
return;
// TNS Name Changed
if (e.getSource() == fTNSName)
{
String tns = (String)fTNSName.getSelectedItem();
if (tns != null)
{
int pos = tns.indexOf('.');
if (pos != -1)
tns = tns.substring(0, pos);
fDatabaseName.setText(tns);
}
}
else if (e.getSource() == bJavaHome)
setPath (fJavaHome);
else if (e.getSource() == bCompiereHome)
setPath (fCompiereHome);
else if (e.getSource() == bHelp)
new Setup_Help((Frame)SwingUtilities.getWindowAncestor(this));
else if (e.getSource() == bTest)
startTest();
else if (e.getSource() == bSave)
save();
} // actionPerformed
/**
* Set Path in Field
* @param field field to set Path
*/
private void setPath (JTextField field)
{
JFileChooser fc = new JFileChooser(field.getText());
fc.setDialogType(JFileChooser.OPEN_DIALOG);
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fc.setMultiSelectionEnabled(false);
if (fc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION)
field.setText(fc.getSelectedFile().getAbsolutePath());
} // setPath
/*************************************************************************/
/**
* Start Test Async.
* @return SwingWorker
*/
private SwingWorker startTest()
{
SwingWorker worker = new SwingWorker()
{
// Start it
public Object construct()
{
m_testing = true;
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
bTest.setEnabled(false);
m_success = false;
m_errorString = null;
try
{
test();
}
catch (Exception ex)
{
m_errorString = ex.getMessage();
}
//
setCursor(Cursor.getDefaultCursor());
if (m_errorString == null)
m_success = true;
bTest.setEnabled(true);
m_testing = false;
return new Boolean(m_success);
}
// Finish it
public void finished()
{
if (m_errorString != null)
{
System.err.println(m_errorString);
JOptionPane.showConfirmDialog (null, m_errorString, res.getString("ServerError"),
JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
}
}
};
worker.start();
return worker;
} // startIt
/**
* Test it
* @throws Exception
*/
private void test() throws Exception
{
System.out.println();
System.out.println("** Test **");
bSave.setEnabled(false);
// Java Home
m_errorString = res.getString("ErrorJavaHome");
m_javaHome = new File (fJavaHome.getText());
if (!m_javaHome.exists())
return;
File tools = new File (fJavaHome.getText() + File.separator + "lib" + File.separator + "tools.jar");
if (!tools.exists())
{
System.err.println("Not Found Java SDK = " + tools);
return;
}
System.out.println("OK: JavaHome=" + m_javaHome.getAbsolutePath());
m_properties.setProperty(JAVA_HOME, m_javaHome.getAbsolutePath());
// Java Version
final String VERSION = "1.4.1";
boolean versionOK = false;
String jh = m_javaHome.getAbsolutePath();
if (jh.indexOf(VERSION) != -1) // file name has version = assuming OK
versionOK = true;
String thisJH = System.getProperty("java.home");
if (thisJH.indexOf(jh) != -1) // wre are running the version currently
{
String thisJV = System.getProperty("java.version");
versionOK = thisJV.indexOf(VERSION) != -1;
if (versionOK)
System.out.println(" Java Version OK = " + thisJV);
}
if (!versionOK)
System.out.println("** Please check Java Version - should be " + VERSION + "*");
// Compiere Home
m_errorString = res.getString("ErrorCompiereHome");
m_compiereHome = new File (fCompiereHome.getText());
if (!m_compiereHome.exists())
{
System.err.println("Not found CompiereHome = " + m_compiereHome);
return;
}
System.out.println("OK: CompiereHome = " + m_compiereHome);
m_properties.setProperty(COMPIERE_HOME, m_compiereHome.getAbsolutePath());
// AppsServer
m_errorString = res.getString("ErrorAppsServer");
String server = fAppsServer.getText();
if (server == null || server.length() == 0 || server.toLowerCase().indexOf("localhost") != -1)
{
System.err.println("Not correct AppsServer = " + m_appsServer);
return;
}
m_appsServer = InetAddress.getByName(server);
System.out.println("OK: AppsServer = " + m_appsServer);
m_properties.setProperty(COMPIERE_APPS_SERVER, m_appsServer.getHostName());
m_RMIoverHTTP=cbRMIoverHTTP.isSelected();
m_properties.setProperty(COMPIERE_RMI_OVER_HTTP, Boolean.toString(m_RMIoverHTTP));
if(m_RMIoverHTTP){
m_properties.setProperty("COMPIERE_RMI_OVER_HTTP_START","<!--RMI over HTTP enabled -->");
m_properties.setProperty("COMPIERE_RMI_OVER_HTTP_STOP","<!--RMI over HTTP enabled (end of block) -->");
m_properties.setProperty("COMPIERE_WITHOUT_RMI_OVER_HTTP_START","<!--RMI over HTTP is enabled ");
m_properties.setProperty("COMPIERE_WITHOUT_RMI_OVER_HTTP_STOP"," RMI over HTTP is enabled (end of block) -->");
}else{
m_properties.setProperty("COMPIERE_RMI_OVER_HTTP_START","<!--RMI over HTTP is disabled ");
m_properties.setProperty("COMPIERE_RMI_OVER_HTTP_STOP","RMI over HTTP is disabled (end of block) -->");
m_properties.setProperty("COMPIERE_WITHOUT_RMI_OVER_HTTP_START","<!--RMI over HTTP is disabled using this --> ");
m_properties.setProperty("COMPIERE_WITHOUT_RMI_OVER_HTTP_STOP"," <!--RMI over HTTP is disabled (end of block) -->");
}
// Web Port
m_errorString = res.getString("ErrorWebPort");
m_statusBar.setText(lWebPort.getText());
m_WebPort = Integer.parseInt(fWebPort.getText());
// HTML Port Use
if (testPort ("http", m_appsServer.getHostName(), m_WebPort, "/") || !testServerPort(m_WebPort))
{
System.err.println("Not correct WebPort = " + m_WebPort);
return;
}
System.out.println("OK: WebPort = " + m_WebPort);
m_properties.setProperty(COMPIERE_WEB_PORT, String.valueOf(m_WebPort));
// Derive SSL Port
int sslPort = m_WebPort == 80 ? 443 : 8443;
System.out.println("SSL WebPort = " + sslPort);
m_properties.setProperty(COMPIERE_SSL_PORT, String.valueOf(sslPort));
// JNP Port
m_errorString = res.getString("ErrorJNPPort");
m_statusBar.setText(lJNPPort.getText());
m_JNPPort = Integer.parseInt(fJNPPort.getText());
// HTML Port Use
if (testPort (m_appsServer, m_JNPPort, false) || !testServerPort(m_JNPPort))
{
System.err.println("Not correct JNPPort = " + m_JNPPort);
return;
}
System.out.println("OK: JNPPort = " + m_JNPPort);
m_properties.setProperty(COMPIERE_JNP_PORT, String.valueOf(m_JNPPort));
// Database Server
m_errorString = res.getString("ErrorDatabaseServer");
m_statusBar.setText(lDatabaseServer.getText());
server = fDatabaseServer.getText();
if (server == null || server.length() == 0 || server.toLowerCase().indexOf("localhost") != -1)
{
System.err.println("Not correct Database Server = " + server);
return;
}
m_databaseServer = InetAddress.getByName(server);
System.out.println("OK: Database Server = " + m_databaseServer);
m_properties.setProperty(COMPIERE_DB_SERVER, m_databaseServer.getHostName());
// Database Port
m_errorString = res.getString("ErrorDatabasePort");
m_databasePort = Integer.parseInt(fDatabasePort.getText());
// Database Port Use
if (!testPort (m_databaseServer, m_databasePort, true))
{
System.err.println("Error Database Port = " + m_databasePort);
return;
}
System.out.println("OK: Database Port = " + m_databasePort);
m_properties.setProperty(COMPIERE_DB_PORT, String.valueOf(m_databasePort));
// JDBC Database Info
m_errorString = res.getString("ErrorJDBC");
m_statusBar.setText(lDatabaseName.getText());
m_databaseName = fDatabaseName.getText(); // SID
m_systemPassword = new String(fSystemPassword.getPassword());
if (!testJDBC("system", m_systemPassword))
{
System.err.println("Error Database Name = " + m_databaseName);
System.err.println("Error Database SystemID = system/" + m_systemPassword);
return;
}
System.out.println("OK: Database Name = " + m_databaseName);
m_properties.setProperty(COMPIERE_DB_NAME, m_databaseName);
System.out.println("OK: Database SystemID = system/" + m_systemPassword);
m_properties.setProperty(COMPIERE_DB_SYSTEM, m_systemPassword);
// URL (derived) jdbc:oracle:thin:@prod1:1521:prod1
StringBuffer url = new StringBuffer("jdbc:oracle:thin:@")
.append(m_databaseServer).append(":")
.append(m_databasePort).append(":").append(m_databaseName);
System.out.println("OK: Database URL = " + url.toString());
m_properties.setProperty(COMPIERE_DB_URL, url.toString());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -