svnno****@sourc*****
svnno****@sourc*****
2009年 4月 7日 (火) 21:55:34 JST
Revision: 3161 http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=3161 Author: daisuke_m Date: 2009-04-07 21:55:33 +0900 (Tue, 07 Apr 2009) Log Message: ----------- 色々バグ潰し。NPEとか飛んでたぜw Modified Paths: -------------- artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/DatabaseTest.java artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/TestDatabaseInstance.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/importer/DatabaseImporter.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/importer/DefaultDatabaseImportConfig.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DefaultDatabaseConnectionConfig.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DriverUtil.java artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/composer/importer/DatabaseImporterTest.java artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/DatabaseCleanerTest.java hestia/trunk/org.jiemamy.eclipse.importer.jpa/src/main/java/org/jiemamy/eclipse/importer/jpa/JpaImportWizard.java hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/composer/DatabaseImportWizard.java hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/composer/DatabaseImportWizardPage.java Removed Paths: ------------- artemis/trunk/jiemamy-artemis-test/src/test/resources/mysql-connector-java-5.0.4.jar -------------- next part -------------- Modified: artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/DatabaseTest.java =================================================================== --- artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/DatabaseTest.java 2009-04-07 10:45:03 UTC (rev 3160) +++ artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/DatabaseTest.java 2009-04-07 12:55:33 UTC (rev 3161) @@ -80,7 +80,7 @@ DatabaseCleaner databaseCleaner = new DatabaseCleaner(); DefaultDatabaseImportConfig importConfig = new DefaultDatabaseImportConfig(); - BeanUtils.copyProperties(connectionConfig, importConfig); + BeanUtils.copyProperties(importConfig, connectionConfig); importConfig.setDialect(jiemamy.getDialect(jiemamy.getFactory().getRootModel())); importConfig.setSchema(jiemamy.getFactory().getRootModel().getSchemaName()); Modified: artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/TestDatabaseInstance.java =================================================================== --- artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/TestDatabaseInstance.java 2009-04-07 10:45:03 UTC (rev 3160) +++ artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/TestDatabaseInstance.java 2009-04-07 12:55:33 UTC (rev 3161) @@ -85,7 +85,7 @@ } DefaultDatabaseConnectionConfig config = new DefaultDatabaseConnectionConfig(); - config.setDriverJarPath(driverJarPaths.toArray(new URL[driverJarPaths.size()])); + config.setDriverJarPaths(driverJarPaths.toArray(new URL[driverJarPaths.size()])); config.setDriverClassName(props.getProperty(key + "_driverClass")); config.setUri(props.getProperty(key + "_uri")); config.setUsername(props.getProperty(key + "_user")); Deleted: artemis/trunk/jiemamy-artemis-test/src/test/resources/mysql-connector-java-5.0.4.jar =================================================================== (Binary files differ) Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/importer/DatabaseImporter.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/importer/DatabaseImporter.java 2009-04-07 10:45:03 UTC (rev 3160) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/importer/DatabaseImporter.java 2009-04-07 12:55:33 UTC (rev 3161) @@ -59,7 +59,7 @@ public static final String DATABASE_NAME = "databaseName"; /** ConfigKey: ドライバJARファイルのURL (URL[]) */ - public static final String DRIVER_JAR_PATH = "driverJarPath"; + public static final String DRIVER_JAR_PATH = "driverJarPaths"; /** ConfigKey: ドライバの完全修飾クラス名 (String) */ public static final String DRIVER_CLASS_NAME = "driverClassName"; Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/importer/DefaultDatabaseImportConfig.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/importer/DefaultDatabaseImportConfig.java 2009-04-07 10:45:03 UTC (rev 3160) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/importer/DefaultDatabaseImportConfig.java 2009-04-07 12:55:33 UTC (rev 3161) @@ -49,6 +49,9 @@ } public String[] getEntityTypes() { + if (entityTypes == null) { + return null; + } return entityTypes.clone(); } @@ -57,6 +60,9 @@ } public String[] getSelectedEntities() { + if (selectedEntities == null) { + return null; + } return selectedEntities.clone(); } Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DefaultDatabaseConnectionConfig.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DefaultDatabaseConnectionConfig.java 2009-04-07 10:45:03 UTC (rev 3160) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DefaultDatabaseConnectionConfig.java 2009-04-07 12:55:33 UTC (rev 3161) @@ -31,7 +31,7 @@ private String driverClassName; /** ドライバJARファイルのパス配列 */ - private URL[] driverJarPath; + private URL[] driverJarPaths; /** 接続パスワード */ private String password; @@ -48,7 +48,7 @@ } public URL[] getDriverJarPaths() { - return driverJarPath.clone(); + return driverJarPaths.clone(); } public String getPassword() { @@ -75,10 +75,14 @@ /** * ドライバJARファイルのパス配列を設定する。 * - * @param driverJarPath ドライバJARファイルのパス配列 + * @param driverJarPaths ドライバJARファイルのパス配列 */ - public void setDriverJarPath(URL[] driverJarPath) { - this.driverJarPath = driverJarPath.clone(); + public void setDriverJarPaths(URL[] driverJarPaths) { + if (driverJarPaths != null) { + this.driverJarPaths = driverJarPaths.clone(); + } else { + this.driverJarPaths = null; + } } /** Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DriverUtil.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DriverUtil.java 2009-04-07 10:45:03 UTC (rev 3160) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DriverUtil.java 2009-04-07 12:55:33 UTC (rev 3161) @@ -46,62 +46,6 @@ */ public final class DriverUtil { - /** - * JARファイル内の、{@link Driver}を実装したクラスのリストを抽出する。 - * - * @author daisuke - */ - private static final class GetDriverClassesFromJarHandler implements ResourceHandler { - - private static Logger logger = LoggerFactory.getLogger(GetDriverClassesFromJarHandler.class); - - private static final String CLASS_EXTENSION = ".class"; - - private final List<Class<? extends Driver>> driverList; - - private final URLClassLoader classLoader; - - - /** - * インスタンスを生成する。 - * - * @param driverList 見つかったドライバクラスを保持するリスト - * @param classLoader ドライバを読み込むクラスローダ - */ - private GetDriverClassesFromJarHandler(List<Class<? extends Driver>> driverList, URLClassLoader classLoader) { - this.driverList = driverList; - this.classLoader = classLoader; - } - - public void processResource(String path, InputStream is) throws TraversalHandlerException { - if (path.endsWith(CLASS_EXTENSION) == false) { - return; - } - - String ccls = StringUtils.substring(path, 0, -1 * CLASS_EXTENSION.length()); - try { - Class<?> clazz = classLoader.loadClass(ccls.replaceAll("/", ClassUtils.PACKAGE_SEPARATOR)); - Class<?>[] interfaceClasses = clazz.getInterfaces(); - for (Class<?> interfaceClass : interfaceClasses) { - if (interfaceClass.equals(Driver.class)) { - // 直前でロジックによる型チェックを行っているため、キャスト安全である。 - @SuppressWarnings("unchecked") - Class<? extends Driver> driverClass = (Class<? extends Driver>) clazz; - driverList.add(driverClass); - } - } - } catch (NoClassDefFoundError e) { - // ignore - logger.warn("", e); - } catch (ClassNotFoundException ignore) { - throw new UnexpectedConditionError("クラスは必ず存在するはずである。"); - } catch (Throwable t) { - throw new TraversalHandlerException(t); - } - } - } - - private static Logger logger = LoggerFactory.getLogger(DriverUtil.class); @@ -166,4 +110,60 @@ private DriverUtil() { throw new UnexpectedConditionError("不到達ポイント"); } + + + /** + * JARファイル内の、{@link Driver}を実装したクラスのリストを抽出する。 + * + * @author daisuke + */ + private static final class GetDriverClassesFromJarHandler implements ResourceHandler { + + private static Logger logger = LoggerFactory.getLogger(GetDriverClassesFromJarHandler.class); + + private static final String CLASS_EXTENSION = ".class"; + + private final List<Class<? extends Driver>> driverList; + + private final URLClassLoader classLoader; + + + /** + * インスタンスを生成する。 + * + * @param driverList 見つかったドライバクラスを保持するリスト + * @param classLoader ドライバを読み込むクラスローダ + */ + private GetDriverClassesFromJarHandler(List<Class<? extends Driver>> driverList, URLClassLoader classLoader) { + this.driverList = driverList; + this.classLoader = classLoader; + } + + public void processResource(String path, InputStream is) throws TraversalHandlerException { + if (path.endsWith(CLASS_EXTENSION) == false) { + return; + } + + String ccls = StringUtils.substring(path, 0, -1 * CLASS_EXTENSION.length()); + try { + Class<?> clazz = classLoader.loadClass(ccls.replaceAll("/", ClassUtils.PACKAGE_SEPARATOR)); + Class<?>[] interfaceClasses = clazz.getInterfaces(); + for (Class<?> interfaceClass : interfaceClasses) { + if (interfaceClass.equals(Driver.class)) { + // 直前でロジックによる型チェックを行っているため、キャスト安全である。 + @SuppressWarnings("unchecked") + Class<? extends Driver> driverClass = (Class<? extends Driver>) clazz; + driverList.add(driverClass); + } + } + } catch (NoClassDefFoundError e) { + // ignore +// logger.warn("NoClassDefFoundError: ", e); + } catch (ClassNotFoundException ignore) { + throw new UnexpectedConditionError("クラスは必ず存在するはずである。"); + } catch (Throwable t) { + throw new TraversalHandlerException(t); + } + } + } } Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/composer/importer/DatabaseImporterTest.java =================================================================== --- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/composer/importer/DatabaseImporterTest.java 2009-04-07 10:45:03 UTC (rev 3160) +++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/composer/importer/DatabaseImporterTest.java 2009-04-07 12:55:33 UTC (rev 3161) @@ -205,7 +205,7 @@ private DatabaseImportConfig createConfig() throws MalformedURLException { DefaultDatabaseImportConfig config = new DefaultDatabaseImportConfig(); config.setDialect(dialect); - config.setDriverJarPath(new URL[] { + config.setDriverJarPaths(new URL[] { new File("./src/test/resources/h2-1.1.102.jar").toURL() }); config.setDriverClassName("org.h2.Driver"); Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/DatabaseCleanerTest.java =================================================================== --- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/DatabaseCleanerTest.java 2009-04-07 10:45:03 UTC (rev 3160) +++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/DatabaseCleanerTest.java 2009-04-07 12:55:33 UTC (rev 3161) @@ -71,7 +71,7 @@ Dialect dialect = reflectionDialectProvider.getInstance("org.jiemamy.dialect.postgresql.PostgresqlDialect"); config.setDialect(dialect); config.setDriverClassName("org.postgresql.Driver"); - config.setDriverJarPath(new URL[] { + config.setDriverJarPaths(new URL[] { new File("./src/test/resources/postgresql-8.3-603.jdbc3.jar").toURL() }); config.setUsername("postgres"); Modified: hestia/trunk/org.jiemamy.eclipse.importer.jpa/src/main/java/org/jiemamy/eclipse/importer/jpa/JpaImportWizard.java =================================================================== --- hestia/trunk/org.jiemamy.eclipse.importer.jpa/src/main/java/org/jiemamy/eclipse/importer/jpa/JpaImportWizard.java 2009-04-07 10:45:03 UTC (rev 3160) +++ hestia/trunk/org.jiemamy.eclipse.importer.jpa/src/main/java/org/jiemamy/eclipse/importer/jpa/JpaImportWizard.java 2009-04-07 12:55:33 UTC (rev 3161) @@ -65,7 +65,7 @@ config = new DefaultJpaImportConfig(); // TODO ページクラスから情報をconfigに詰め替え -// config.setDriverJarPath(page.getDriverJarPath()); +// config.setDriverJarPaths(page.getDriverJarPaths()); // config.setDriverClassName(page.getDriverClassName()); // // config.setUri(page.getUri()); Modified: hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/composer/DatabaseImportWizard.java =================================================================== --- hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/composer/DatabaseImportWizard.java 2009-04-07 10:45:03 UTC (rev 3160) +++ hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/composer/DatabaseImportWizard.java 2009-04-07 12:55:33 UTC (rev 3161) @@ -77,7 +77,7 @@ public boolean performFinish() { config = new DefaultDatabaseImportConfig(); - config.setDriverJarPath(page.getDriverJarPath()); + config.setDriverJarPaths(page.getDriverJarPaths()); config.setDriverClassName(page.getDriverClassName()); config.setUri(page.getUri()); Modified: hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/composer/DatabaseImportWizardPage.java =================================================================== --- hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/composer/DatabaseImportWizardPage.java 2009-04-07 10:45:03 UTC (rev 3160) +++ hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/composer/DatabaseImportWizardPage.java 2009-04-07 12:55:33 UTC (rev 3161) @@ -236,7 +236,7 @@ * * @return ドライバJARファイルのパス配列 */ - public URL[] getDriverJarPath() { + public URL[] getDriverJarPaths() { String[] paths = lstDriverJars.getItems(); List<URL> result = CollectionsUtil.newArrayList(paths.length); for (String path : paths) { @@ -402,7 +402,7 @@ String oldSelection = cmbDriverClass.getText(); cmbDriverClass.removeAll(); try { - List<Class<? extends Driver>> driverClasses = DriverUtil.getDriverClasses(getDriverJarPath()); + List<Class<? extends Driver>> driverClasses = DriverUtil.getDriverClasses(getDriverJarPaths()); for (Class<? extends Driver> clazz : driverClasses) { String className = clazz.getName(); cmbDriverClass.add(className); @@ -425,7 +425,7 @@ private void testConnection() { Connection connection = null; try { - Driver driver = DriverUtil.getDriverInstance(getDriverJarPath(), getDriverClassName()); + Driver driver = DriverUtil.getDriverInstance(getDriverJarPaths(), getDriverClassName()); Properties info = new Properties(); info.setProperty("user", getUsername()); info.setProperty("password", getPassword());