[Jiemamy-notify:2038] commit [3161] 色々バグ潰し。NPEとか飛んでたぜw

Back to archive index

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());



Jiemamy-notify メーリングリストの案内
Back to archive index