Revision: 3532
Author: jfuerth
Date: Mon May 10 22:46:35 2010
Log: NEW - bug 2800: After downloading Architect EE, it should be obvious
how to get started
http://trillian.sqlpower.ca/bugzilla/show_bug.cgi?id=2800
WebStart requires us to be careful about classloaders. Specifically, the
system classloader does not include our application's jar files!
http://code.google.com/p/power-architect/source/detail?r=3532
Modified:
/trunk/src/main/java/ca/sqlpower/architect/ProjectLoader.java
/trunk/src/main/java/ca/sqlpower/architect/ddl/DDLUtils.java
/trunk/src/main/java/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java
/trunk/src/main/java/ca/sqlpower/architect/enterprise/NetworkConflictResolver.java
/trunk/src/main/java/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java
/trunk/src/main/java/ca/sqlpower/architect/swingui/CompareDMPanel.java
/trunk/src/main/java/ca/sqlpower/architect/swingui/DDLExportPanel.java
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/ProjectLoader.java Wed May
5 09:39:03 2010
+++ /trunk/src/main/java/ca/sqlpower/architect/ProjectLoader.java Mon May
10 22:46:35 2010
@@ -898,7 +898,7 @@
public Object createObject(Attributes attributes) throws
SQLException {
try {
GenericDDLGenerator ddlg =
- (GenericDDLGenerator)
Class.forName(attributes.getValue("type")).newInstance();
+ (GenericDDLGenerator)
Class.forName(attributes.getValue("type"), true,
ProjectLoader.class.getClassLoader()).newInstance();
ddlg.setTargetCatalog(attributes.getValue("target-catalog"));
ddlg.setTargetSchema(attributes.getValue("target-schema"));
return ddlg;
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/ddl/DDLUtils.java Fri May 29
07:57:16 2009
+++ /trunk/src/main/java/ca/sqlpower/architect/ddl/DDLUtils.java Mon May 10
22:46:35 2010
@@ -153,7 +153,7 @@
for (JDBCDataSourceType dst : dsc.getDataSourceTypes()) {
if (dst.getDDLGeneratorClass() != null) {
try {
- Class<?> loadedClass =
Class.forName(dst.getDDLGeneratorClass());
+ Class<?> loadedClass =
Class.forName(dst.getDDLGeneratorClass(), true,
DDLUtils.class.getClassLoader());
Class<? extends DDLGenerator> ddlgClass =
loadedClass.asSubclass(DDLGenerator.class);
if ( (!dbTypeList.contains(ddlgClass)) &&
(!Modifier.isAbstract(ddlgClass.getModifiers())) ) {
dbTypeList.add(ddlgClass);
@@ -171,10 +171,10 @@
public static DDLGenerator createDDLGenerator(JDBCDataSource ads)
throws InstantiationException,
IllegalAccessException, ClassNotFoundException {
- Class generatorClass;
+ Class<?> generatorClass;
String className = ads.getParentType().getDDLGeneratorClass();
if (className != null) {
- generatorClass = Class.forName(className);
+ generatorClass = Class.forName(className, true,
DDLUtils.class.getClassLoader());
} else {
generatorClass = DEFAULT_DDL_GENERATOR_CLASS;
}
=======================================
---
/trunk/src/main/java/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java
Mon May 10 19:04:12 2010
+++
/trunk/src/main/java/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java
Mon May 10 22:46:35 2010
@@ -140,7 +140,7 @@
String ddlgClass = prefs.get(this.projectLocation.getUUID() + ".ddlg",
null);
if (ddlgClass != null) {
try {
- DDLGenerator ddlg = (DDLGenerator)
Class.forName(ddlgClass).newInstance();
+ DDLGenerator ddlg = (DDLGenerator)
Class.forName(ddlgClass, true,
ArchitectClientSideSession.class.getClassLoader()).newInstance();
setDDLGenerator(ddlg);
ddlg.setTargetCatalog(prefs.get(this.projectLocation.getUUID()
+ ".targetCatalog", null));
ddlg.setTargetSchema(prefs.get(this.projectLocation.getUUID()
+ ".targetSchema", null));
=======================================
---
/trunk/src/main/java/ca/sqlpower/architect/enterprise/NetworkConflictResolver.java
Fri Apr 30 15:31:53 2010
+++
/trunk/src/main/java/ca/sqlpower/architect/enterprise/NetworkConflictResolver.java
Mon May 10 22:46:35 2010
@@ -513,7 +513,7 @@
type = spo.getClass();
parentId = spo.getParent().getUUID();
} else if (o != null) {
- type = Class.forName(o.getType());
+ type = Class.forName(o.getType(), true,
NetworkConflictResolver.class.getClassLoader());
parentId = o.getParentUUID();
} else {
continue;
@@ -555,7 +555,7 @@
iterator.remove();
PlayPenContentPane cp =
session.getWorkspace().getPlayPenContentPane();
try {
- Class<PlayPenComponent> type =
(Class<PlayPenComponent>) Class.forName(o.getType());
+ Class<PlayPenComponent> type =
(Class<PlayPenComponent>) Class.forName(o.getType(), true,
NetworkConflictResolver.class.getClassLoader());
int newIndex = -1;
if
(PlayPenContentPane.isDependentComponentType(type)) {
if (o.getIndex() <
cp.getFirstDependentComponentIndex()) {
=======================================
---
/trunk/src/main/java/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java
Mon May 10 11:20:07 2010
+++
/trunk/src/main/java/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java
Mon May 10 22:46:35 2010
@@ -443,7 +443,7 @@
if (context.isMacOSX()) {
try {
- Class osxAdapter =
ClassLoader.getSystemClassLoader().loadClass("ca.sqlpower.architect.swingui.OSXAdapter");
//$NON-NLS-1$
+ Class<?> osxAdapter =
ArchitectSwingSessionImpl.class.getClassLoader().loadClass("ca.sqlpower.architect.swingui.OSXAdapter");
//$NON-NLS-1$
// The main registration method. Takes quitAction,
prefsAction, aboutAction.
Class[] defArgs = { Action.class, Action.class,
Action.class };
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/CompareDMPanel.java
Thu Feb 25 09:46:15 2010
+++ /trunk/src/main/java/ca/sqlpower/architect/swingui/CompareDMPanel.java
Mon May 10 22:46:35 2010
@@ -746,7 +746,7 @@
String generatorClass =
dataSource.getParentType().getDDLGeneratorClass();
if (generatorClass != null) {
try {
-
sqlTypeDropdown.setSelectedItem(Class.forName(generatorClass));
+
sqlTypeDropdown.setSelectedItem(Class.forName(generatorClass, true,
CompareDMPanel.class.getClassLoader()));
} catch (ClassNotFoundException ex) {
logger.error("Error when finding the
DDLGenerator class for the selected database!", ex); //$NON-NLS-1$
}
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/DDLExportPanel.java
Thu Feb 25 09:46:15 2010
+++ /trunk/src/main/java/ca/sqlpower/architect/swingui/DDLExportPanel.java
Mon May 10 22:46:35 2010
@@ -103,7 +103,7 @@
String generatorClass =
dataSource.getParentType().getDDLGeneratorClass();
if (generatorClass != null) {
try {
-
dbType.setSelectedItem(Class.forName(generatorClass));
+
dbType.setSelectedItem(Class.forName(generatorClass, true,
DDLExportPanel.class.getClassLoader()));
} catch (ClassNotFoundException ex) {
logger.error("Error when finding the
DDLGenerator class for the selected database!", ex); //$NON-NLS-1$
}